redox_scheme/
scheme.rs

1use crate::*;
2use syscall::dirent::DirentBuf;
3use syscall::error::*;
4
5pub trait Scheme {
6    #[allow(unused_variables)]
7    fn open(&mut self, path: &str, flags: usize, uid: u32, gid: u32) -> Result<usize> {
8        Err(Error::new(ENOENT))
9    }
10    #[allow(unused_variables)]
11    fn xopen(&mut self, path: &str, flags: usize, ctx: &CallerCtx) -> Result<OpenResult> {
12        convert_to_this_scheme(self.open(path, flags, ctx.uid, ctx.gid))
13    }
14
15    #[allow(unused_variables)]
16    fn rmdir(&mut self, path: &str, uid: u32, gid: u32) -> Result<usize> {
17        Err(Error::new(ENOENT))
18    }
19
20    #[allow(unused_variables)]
21    fn unlink(&mut self, path: &str, uid: u32, gid: u32) -> Result<usize> {
22        Err(Error::new(ENOENT))
23    }
24
25    /* Resource operations */
26    #[allow(unused_variables)]
27    fn dup(&mut self, old_id: usize, buf: &[u8]) -> Result<usize> {
28        Err(Error::new(EBADF))
29    }
30
31    #[allow(unused_variables)]
32    fn xdup(&mut self, old_id: usize, buf: &[u8], ctx: &CallerCtx) -> Result<OpenResult> {
33        convert_to_this_scheme(self.dup(old_id, buf))
34    }
35
36    #[allow(unused_variables)]
37    fn read_old(&mut self, id: usize, buf: &mut [u8]) -> Result<usize> {
38        Err(Error::new(EBADF))
39    }
40    #[allow(unused_variables)]
41    fn read(&mut self, id: usize, buf: &mut [u8], offset: u64, fcntl_flags: u32) -> Result<usize> {
42        self.read_old(id, buf)
43    }
44
45    #[allow(unused_variables)]
46    fn write_old(&mut self, id: usize, buf: &[u8]) -> Result<usize> {
47        Err(Error::new(EBADF))
48    }
49    #[allow(unused_variables)]
50    fn write(&mut self, id: usize, buf: &[u8], offset: u64, fcntl_flags: u32) -> Result<usize> {
51        self.write_old(id, buf)
52    }
53
54    #[allow(unused_variables)]
55    fn getdents<'buf>(
56        &mut self,
57        id: usize,
58        buf: DirentBuf<&'buf mut [u8]>,
59        opaque_offset: u64,
60    ) -> Result<DirentBuf<&'buf mut [u8]>> {
61        Err(Error::new(EOPNOTSUPP))
62    }
63
64    #[allow(unused_variables)]
65    fn fsize(&mut self, id: usize) -> Result<u64> {
66        Err(Error::new(ESPIPE))
67    }
68
69    #[allow(unused_variables)]
70    fn fchmod(&mut self, id: usize, mode: u16) -> Result<usize> {
71        Err(Error::new(EBADF))
72    }
73
74    #[allow(unused_variables)]
75    fn fchown(&mut self, id: usize, uid: u32, gid: u32) -> Result<usize> {
76        Err(Error::new(EBADF))
77    }
78
79    #[allow(unused_variables)]
80    fn fcntl(&mut self, id: usize, cmd: usize, arg: usize) -> Result<usize> {
81        Err(Error::new(EBADF))
82    }
83
84    #[allow(unused_variables)]
85    fn fevent(&mut self, id: usize, flags: EventFlags) -> Result<EventFlags> {
86        Err(Error::new(EBADF))
87    }
88
89    #[allow(unused_variables)]
90    fn fpath(&mut self, id: usize, buf: &mut [u8]) -> Result<usize> {
91        Err(Error::new(EBADF))
92    }
93
94    #[allow(unused_variables)]
95    fn frename(&mut self, id: usize, path: &str, uid: u32, gid: u32) -> Result<usize> {
96        Err(Error::new(EBADF))
97    }
98
99    #[allow(unused_variables)]
100    fn fstat(&mut self, id: usize, stat: &mut Stat) -> Result<usize> {
101        Err(Error::new(EBADF))
102    }
103
104    #[allow(unused_variables)]
105    fn fstatvfs(&mut self, id: usize, stat: &mut StatVfs) -> Result<usize> {
106        Err(Error::new(EBADF))
107    }
108
109    #[allow(unused_variables)]
110    fn fsync(&mut self, id: usize) -> Result<usize> {
111        Err(Error::new(EBADF))
112    }
113
114    #[allow(unused_variables)]
115    fn ftruncate(&mut self, id: usize, len: usize) -> Result<usize> {
116        Err(Error::new(EBADF))
117    }
118
119    #[allow(unused_variables)]
120    fn futimens(&mut self, id: usize, times: &[TimeSpec]) -> Result<usize> {
121        Err(Error::new(EBADF))
122    }
123
124    #[allow(unused_variables)]
125    fn mmap_prep(&mut self, id: usize, offset: u64, size: usize, flags: MapFlags) -> Result<usize> {
126        Err(Error::new(EOPNOTSUPP))
127    }
128
129    #[allow(unused_variables)]
130    fn munmap(&mut self, id: usize, offset: u64, size: usize, flags: MunmapFlags) -> Result<usize> {
131        Err(Error::new(EOPNOTSUPP))
132    }
133}