From e0b382a5e2369ab9c16a15cde8f8e717ea2f796e Mon Sep 17 00:00:00 2001 From: jD91mZM2 Date: Mon, 10 Aug 2020 16:57:30 +0200 Subject: [PATCH] WIP: funmap3 --- src/number.rs | 3 ++- src/scheme/scheme.rs | 8 +++++++- src/scheme/scheme_block.rs | 8 +++++++- src/scheme/scheme_block_mut.rs | 8 +++++++- src/scheme/scheme_mut.rs | 8 +++++++- 5 files changed, 30 insertions(+), 5 deletions(-) diff --git a/src/number.rs b/src/number.rs index 2e69098..6572cc2 100644 --- a/src/number.rs +++ b/src/number.rs @@ -30,7 +30,8 @@ pub const SYS_FEXEC: usize = SYS_CLASS_FILE | 11; pub const SYS_FMAP: usize = SYS_CLASS_FILE | SYS_ARG_SLICE | 90; pub const SYS_FMAP2: usize = SYS_CLASS_FILE | SYS_ARG_SLICE | 900; pub const SYS_FUNMAP: usize = SYS_CLASS_FILE | 91; -pub const SYS_FUNMAP2: usize = SYS_CLASS_FILE | 92; +pub const SYS_FUNMAP2: usize = SYS_CLASS_FILE | 92; +pub const SYS_FUNMAP3: usize = SYS_CLASS_FILE | 95; pub const SYS_FPATH: usize = SYS_CLASS_FILE | SYS_ARG_MSLICE | 928; pub const SYS_FRENAME: usize = SYS_CLASS_FILE | SYS_ARG_PATH | 38; pub const SYS_FSTAT: usize = SYS_CLASS_FILE | SYS_ARG_MSLICE | 28; diff --git a/src/scheme/scheme.rs b/src/scheme/scheme.rs index bc2476d..13725fc 100644 --- a/src/scheme/scheme.rs +++ b/src/scheme/scheme.rs @@ -33,6 +33,7 @@ pub trait Scheme { }, SYS_FUNMAP => self.funmap(packet.b), SYS_FUNMAP2 => self.funmap2(packet.b, packet.c), + SYS_FUNMAP3 => self.funmap3(packet.b, packet.c, packet.d), SYS_FPATH => self.fpath(packet.b, unsafe { slice::from_raw_parts_mut(packet.c as *mut u8, packet.d) }), SYS_FRENAME => self.frename(packet.b, unsafe { slice::from_raw_parts(packet.c as *const u8, packet.d) }, packet.uid, packet.gid), SYS_FSTAT => if packet.d >= mem::size_of::() { @@ -144,7 +145,12 @@ pub trait Scheme { } #[allow(unused_variables)] - fn funmap2(&self, address: usize, length: usize) -> Result { + fn funmap2(&self, address: usize, size: usize) -> Result { + Ok(0) + } + + #[allow(unused_variables)] + fn funmap3(&self, id: usize, address: usize, size: usize) -> Result { Ok(0) } diff --git a/src/scheme/scheme_block.rs b/src/scheme/scheme_block.rs index 772a74c..bb29924 100644 --- a/src/scheme/scheme_block.rs +++ b/src/scheme/scheme_block.rs @@ -33,6 +33,7 @@ pub trait SchemeBlock { }, SYS_FUNMAP => self.funmap(packet.b), SYS_FUNMAP2 => self.funmap2(packet.b, packet.c), + SYS_FUNMAP3 => self.funmap3(packet.b, packet.c, packet.d), SYS_FPATH => self.fpath(packet.b, unsafe { slice::from_raw_parts_mut(packet.c as *mut u8, packet.d) }), SYS_FRENAME => self.frename(packet.b, unsafe { slice::from_raw_parts(packet.c as *const u8, packet.d) }, packet.uid, packet.gid), SYS_FSTAT => if packet.d >= mem::size_of::() { @@ -144,7 +145,12 @@ pub trait SchemeBlock { } #[allow(unused_variables)] - fn funmap2(&self, address: usize, length: usize) -> Result> { + fn funmap2(&self, address: usize, size: usize) -> Result> { + Ok(Some(0)) + } + + #[allow(unused_variables)] + fn funmap3(&self, id: usize, address: usize, size: usize) -> Result> { Ok(Some(0)) } diff --git a/src/scheme/scheme_block_mut.rs b/src/scheme/scheme_block_mut.rs index e2f9040..160b84a 100644 --- a/src/scheme/scheme_block_mut.rs +++ b/src/scheme/scheme_block_mut.rs @@ -33,6 +33,7 @@ pub trait SchemeBlockMut { }, SYS_FUNMAP => self.funmap(packet.b), SYS_FUNMAP2 => self.funmap2(packet.b, packet.c), + SYS_FUNMAP3 => self.funmap3(packet.b, packet.c, packet.d), SYS_FPATH => self.fpath(packet.b, unsafe { slice::from_raw_parts_mut(packet.c as *mut u8, packet.d) }), SYS_FRENAME => self.frename(packet.b, unsafe { slice::from_raw_parts(packet.c as *const u8, packet.d) }, packet.uid, packet.gid), SYS_FSTAT => if packet.d >= mem::size_of::() { @@ -144,7 +145,12 @@ pub trait SchemeBlockMut { } #[allow(unused_variables)] - fn funmap2(&mut self, address: usize, length: usize) -> Result> { + fn funmap2(&mut self, address: usize, size: usize) -> Result> { + Ok(Some(0)) + } + + #[allow(unused_variables)] + fn funmap3(&mut self, id: usize, address: usize, size: usize) -> Result> { Ok(Some(0)) } diff --git a/src/scheme/scheme_mut.rs b/src/scheme/scheme_mut.rs index 8cfe110..a6f0bb1 100644 --- a/src/scheme/scheme_mut.rs +++ b/src/scheme/scheme_mut.rs @@ -33,6 +33,7 @@ pub trait SchemeMut { }, SYS_FUNMAP => self.funmap(packet.b), SYS_FUNMAP2 => self.funmap2(packet.b, packet.c), + SYS_FUNMAP3 => self.funmap3(packet.b, packet.c, packet.d), SYS_FPATH => self.fpath(packet.b, unsafe { slice::from_raw_parts_mut(packet.c as *mut u8, packet.d) }), SYS_FRENAME => self.frename(packet.b, unsafe { slice::from_raw_parts(packet.c as *const u8, packet.d) }, packet.uid, packet.gid), SYS_FSTAT => if packet.d >= mem::size_of::() { @@ -144,7 +145,12 @@ pub trait SchemeMut { } #[allow(unused_variables)] - fn funmap2(&mut self, address: usize, length: usize) -> Result { + fn funmap2(&mut self, address: usize, size: usize) -> Result { + Ok(0) + } + + #[allow(unused_variables)] + fn funmap3(&mut self, id: usize, address: usize, size: usize) -> Result { Ok(0) } -- GitLab