redox_scheme/
scheme_block.rs

1use crate::*;
2use syscall::dirent::DirentBuf;
3use syscall::error::*;
4
5pub trait SchemeBlock {
6    #[allow(unused_variables)]
7    fn open(&mut self, path: &str, flags: usize, uid: u32, gid: u32) -> Result<Option<usize>> {
8        Err(Error::new(ENOENT))
9    }
10    #[allow(unused_variables)]
11    fn xopen(&mut self, path: &str, flags: usize, ctx: &CallerCtx) -> Result<Option<OpenResult>> {
12        convert_to_this_scheme_block(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<Option<usize>> {
17        Err(Error::new(ENOENT))
18    }
19
20    #[allow(unused_variables)]
21    fn unlink(&mut self, path: &str, uid: u32, gid: u32) -> Result<Option<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<Option<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<Option<OpenResult>> {
33        convert_to_this_scheme_block(self.dup(old_id, buf))
34    }
35
36    #[allow(unused_variables)]
37    fn read_old(&mut self, id: usize, buf: &mut [u8]) -> Result<Option<usize>> {
38        Err(Error::new(EBADF))
39    }
40    #[allow(unused_variables)]
41    fn read(
42        &mut self,
43        id: usize,
44        buf: &mut [u8],
45        offset: u64,
46        fcntl_flags: u32,
47    ) -> Result<Option<usize>> {
48        self.read_old(id, buf)
49    }
50
51    #[allow(unused_variables)]
52    fn write_old(&mut self, id: usize, buf: &[u8]) -> Result<Option<usize>> {
53        Err(Error::new(EBADF))
54    }
55    #[allow(unused_variables)]
56    fn write(
57        &mut self,
58        id: usize,
59        buf: &[u8],
60        offset: u64,
61        fcntl_flags: u32,
62    ) -> Result<Option<usize>> {
63        self.write_old(id, buf)
64    }
65
66    #[allow(unused_variables)]
67    fn getdents<'buf>(
68        &mut self,
69        id: usize,
70        buf: DirentBuf<&'buf mut [u8]>,
71        opaque_offset: u64,
72    ) -> Result<Option<DirentBuf<&'buf mut [u8]>>> {
73        Err(Error::new(EOPNOTSUPP))
74    }
75
76    #[allow(unused_variables)]
77    fn fsize(&mut self, id: usize) -> Result<Option<u64>> {
78        Err(Error::new(ESPIPE))
79    }
80
81    #[allow(unused_variables)]
82    fn fchmod(&mut self, id: usize, mode: u16) -> Result<Option<usize>> {
83        Err(Error::new(EBADF))
84    }
85
86    #[allow(unused_variables)]
87    fn fchown(&mut self, id: usize, uid: u32, gid: u32) -> Result<Option<usize>> {
88        Err(Error::new(EBADF))
89    }
90
91    #[allow(unused_variables)]
92    fn fcntl(&mut self, id: usize, cmd: usize, arg: usize) -> Result<Option<usize>> {
93        Err(Error::new(EBADF))
94    }
95
96    #[allow(unused_variables)]
97    fn fevent(&mut self, id: usize, flags: EventFlags) -> Result<Option<EventFlags>> {
98        Err(Error::new(EBADF))
99    }
100
101    #[allow(unused_variables)]
102    fn fpath(&mut self, id: usize, buf: &mut [u8]) -> Result<Option<usize>> {
103        Err(Error::new(EBADF))
104    }
105
106    #[allow(unused_variables)]
107    fn frename(&mut self, id: usize, path: &str, uid: u32, gid: u32) -> Result<Option<usize>> {
108        Err(Error::new(EBADF))
109    }
110
111    #[allow(unused_variables)]
112    fn fstat(&mut self, id: usize, stat: &mut Stat) -> Result<Option<usize>> {
113        Err(Error::new(EBADF))
114    }
115
116    #[allow(unused_variables)]
117    fn fstatvfs(&mut self, id: usize, stat: &mut StatVfs) -> Result<Option<usize>> {
118        Err(Error::new(EBADF))
119    }
120
121    #[allow(unused_variables)]
122    fn fsync(&mut self, id: usize) -> Result<Option<usize>> {
123        Err(Error::new(EBADF))
124    }
125
126    #[allow(unused_variables)]
127    fn ftruncate(&mut self, id: usize, len: usize) -> Result<Option<usize>> {
128        Err(Error::new(EBADF))
129    }
130
131    #[allow(unused_variables)]
132    fn futimens(&mut self, id: usize, times: &[TimeSpec]) -> Result<Option<usize>> {
133        Err(Error::new(EBADF))
134    }
135
136    #[allow(unused_variables)]
137    fn mmap_prep(
138        &mut self,
139        id: usize,
140        offset: u64,
141        size: usize,
142        flags: MapFlags,
143    ) -> Result<Option<usize>> {
144        Err(Error::new(EOPNOTSUPP))
145    }
146
147    #[allow(unused_variables)]
148    fn munmap(
149        &mut self,
150        id: usize,
151        offset: u64,
152        size: usize,
153        flags: MunmapFlags,
154    ) -> Result<Option<usize>> {
155        Err(Error::new(EOPNOTSUPP))
156    }
157}