Add MMAP_PREP and MUNMAP to scheme traits.
This commit is contained in:
@@ -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<usize> {
|
||||
Err(Error::new(EBADF))
|
||||
}
|
||||
|
||||
#[allow(unused_variables)]
|
||||
fn mmap_prep(&self, id: usize, offset: u64, size: usize, flags: MapFlags) -> Result<usize> {
|
||||
Err(Error::new(EOPNOTSUPP))
|
||||
}
|
||||
|
||||
#[allow(unused_variables)]
|
||||
fn munmap(&self, id: usize, offset: u64, size: usize) -> Result<usize> {
|
||||
Err(Error::new(EOPNOTSUPP))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<Option<usize>> {
|
||||
Err(Error::new(EBADF))
|
||||
}
|
||||
|
||||
#[allow(unused_variables)]
|
||||
fn mmap_prep(&self, id: usize, offset: u64, size: usize, flags: MapFlags) -> Result<Option<usize>> {
|
||||
Err(Error::new(EOPNOTSUPP))
|
||||
}
|
||||
|
||||
#[allow(unused_variables)]
|
||||
fn munmap(&self, id: usize, offset: u64, size: usize) -> Result<Option<usize>> {
|
||||
Err(Error::new(EOPNOTSUPP))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<Option<usize>> {
|
||||
Err(Error::new(EBADF))
|
||||
}
|
||||
|
||||
#[allow(unused_variables)]
|
||||
fn mmap_prep(&mut self, id: usize, offset: u64, size: usize, flags: MapFlags) -> Result<Option<usize>> {
|
||||
Err(Error::new(EOPNOTSUPP))
|
||||
}
|
||||
|
||||
#[allow(unused_variables)]
|
||||
fn munmap(&mut self, id: usize, offset: u64, size: usize) -> Result<Option<usize>> {
|
||||
Err(Error::new(EOPNOTSUPP))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<usize> {
|
||||
Err(Error::new(EBADF))
|
||||
}
|
||||
|
||||
#[allow(unused_variables)]
|
||||
fn mmap_prep(&mut self, id: usize, flags: MapFlags, size: usize, offset: u64) -> Result<usize> {
|
||||
Err(Error::new(EOPNOTSUPP))
|
||||
}
|
||||
|
||||
#[allow(unused_variables)]
|
||||
fn munmap(&mut self, id: usize, size: usize, offset: u64) -> Result<usize> {
|
||||
Err(Error::new(EOPNOTSUPP))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user