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 #[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}