diff --git a/src/scheme/scheme.rs b/src/scheme/scheme.rs index 50927f036d..735cc0fb3d 100644 --- a/src/scheme/scheme.rs +++ b/src/scheme/scheme.rs @@ -61,6 +61,9 @@ pub trait Scheme { }, SYS_CLOSE => self.close(packet.b), + KSMSG_MMAP_PREP => self.mmap_prep(packet.b, u64::from(packet.uid) | (u64::from(packet.gid) << 32), packet.c, MapFlags::from_bits_truncate(packet.d)), + KSMSG_MUNMAP => self.munmap(packet.b, u64::from(packet.uid) | (u64::from(packet.gid) << 32), packet.c), + _ => Err(Error::new(ENOSYS)) }; @@ -178,4 +181,14 @@ pub trait Scheme { fn close(&self, id: usize) -> Result { Err(Error::new(EBADF)) } + + #[allow(unused_variables)] + fn mmap_prep(&self, id: usize, offset: u64, size: usize, flags: MapFlags) -> Result { + Err(Error::new(EOPNOTSUPP)) + } + + #[allow(unused_variables)] + fn munmap(&self, id: usize, offset: u64, size: usize) -> Result { + Err(Error::new(EOPNOTSUPP)) + } } diff --git a/src/scheme/scheme_block.rs b/src/scheme/scheme_block.rs index 391882746e..3ac6cf3414 100644 --- a/src/scheme/scheme_block.rs +++ b/src/scheme/scheme_block.rs @@ -61,6 +61,9 @@ pub trait SchemeBlock { }, SYS_CLOSE => self.close(packet.b), + KSMSG_MMAP_PREP => self.mmap_prep(packet.b, u64::from(packet.uid) | (u64::from(packet.gid) << 32), packet.c, MapFlags::from_bits_truncate(packet.d)), + KSMSG_MUNMAP => self.munmap(packet.b, u64::from(packet.uid) | (u64::from(packet.gid) << 32), packet.c), + _ => Err(Error::new(ENOSYS)) }; @@ -178,4 +181,14 @@ pub trait SchemeBlock { fn close(&self, id: usize) -> Result> { Err(Error::new(EBADF)) } + + #[allow(unused_variables)] + fn mmap_prep(&self, id: usize, offset: u64, size: usize, flags: MapFlags) -> Result> { + Err(Error::new(EOPNOTSUPP)) + } + + #[allow(unused_variables)] + fn munmap(&self, id: usize, offset: u64, size: usize) -> Result> { + Err(Error::new(EOPNOTSUPP)) + } } diff --git a/src/scheme/scheme_block_mut.rs b/src/scheme/scheme_block_mut.rs index b7ca832479..1f65df0451 100644 --- a/src/scheme/scheme_block_mut.rs +++ b/src/scheme/scheme_block_mut.rs @@ -61,6 +61,9 @@ pub trait SchemeBlockMut { }, SYS_CLOSE => self.close(packet.b), + KSMSG_MMAP_PREP => self.mmap_prep(packet.b, u64::from(packet.uid) | (u64::from(packet.gid) << 32), packet.c, MapFlags::from_bits_truncate(packet.d)), + KSMSG_MUNMAP => self.munmap(packet.b, u64::from(packet.uid) | (u64::from(packet.gid) << 32), packet.c), + _ => Err(Error::new(ENOSYS)) }; @@ -178,4 +181,14 @@ pub trait SchemeBlockMut { fn close(&mut self, id: usize) -> Result> { Err(Error::new(EBADF)) } + + #[allow(unused_variables)] + fn mmap_prep(&mut self, id: usize, offset: u64, size: usize, flags: MapFlags) -> Result> { + Err(Error::new(EOPNOTSUPP)) + } + + #[allow(unused_variables)] + fn munmap(&mut self, id: usize, offset: u64, size: usize) -> Result> { + Err(Error::new(EOPNOTSUPP)) + } } diff --git a/src/scheme/scheme_mut.rs b/src/scheme/scheme_mut.rs index a7a7a3a76a..0b166ca04c 100644 --- a/src/scheme/scheme_mut.rs +++ b/src/scheme/scheme_mut.rs @@ -61,6 +61,9 @@ pub trait SchemeMut { }, SYS_CLOSE => self.close(packet.b), + KSMSG_MMAP_PREP => self.mmap_prep(packet.b, MapFlags::from_bits_truncate(packet.c), packet.d, u64::from(packet.uid) | (u64::from(packet.gid) << 32)), + KSMSG_MUNMAP => self.munmap(packet.b, packet.c, u64::from(packet.uid) | (u64::from(packet.gid) << 32)), + _ => Err(Error::new(ENOSYS)) }; @@ -178,4 +181,14 @@ pub trait SchemeMut { fn close(&mut self, id: usize) -> Result { Err(Error::new(EBADF)) } + + #[allow(unused_variables)] + fn mmap_prep(&mut self, id: usize, flags: MapFlags, size: usize, offset: u64) -> Result { + Err(Error::new(EOPNOTSUPP)) + } + + #[allow(unused_variables)] + fn munmap(&mut self, id: usize, size: usize, offset: u64) -> Result { + Err(Error::new(EOPNOTSUPP)) + } }