diff --git a/src/call.rs b/src/call.rs index bc1af0dc20..32f266ce11 100644 --- a/src/call.rs +++ b/src/call.rs @@ -264,16 +264,6 @@ pub unsafe fn physmap(physical_address: usize, size: usize, flags: PhysmapFlags) syscall3(SYS_PHYSMAP, physical_address, size, flags.bits()) } -/// Unmap previously mapped physical memory -/// -/// # Errors -/// -/// * `EPERM` - `uid != 0` -/// * `EFAULT` - `virtual_address` has not been mapped -pub unsafe fn physunmap(virtual_address: usize) -> Result { - syscall1(SYS_PHYSUNMAP, virtual_address) -} - /// Create a pair of file descriptors referencing the read and write ends of a pipe pub fn pipe2(fds: &mut [usize; 2], flags: usize) -> Result { unsafe { syscall2(SYS_PIPE2, fds.as_ptr() as usize, flags) } diff --git a/src/data.rs b/src/data.rs index 45d2dd8625..3afb8bb603 100644 --- a/src/data.rs +++ b/src/data.rs @@ -149,6 +149,24 @@ pub struct SigAction { pub sa_mask: [u64; 2], pub sa_flags: SigActionFlags, } +impl Deref for SigAction { + type Target = [u8]; + fn deref(&self) -> &[u8] { + unsafe { + slice::from_raw_parts(self as *const SigAction as *const u8, + mem::size_of::()) + } + } +} + +impl DerefMut for SigAction { + fn deref_mut(&mut self) -> &mut [u8] { + unsafe { + slice::from_raw_parts_mut(self as *mut SigAction as *mut u8, + mem::size_of::()) + } + } +} #[allow(dead_code)] unsafe fn _assert_size_of_function_is_sane() { diff --git a/src/number.rs b/src/number.rs index 2b9205a269..cb8471f257 100644 --- a/src/number.rs +++ b/src/number.rs @@ -58,7 +58,6 @@ pub const SYS_PHYSALLOC: usize =945; pub const SYS_PHYSALLOC3: usize=9453; pub const SYS_PHYSFREE: usize = 946; pub const SYS_PHYSMAP: usize = 947; -pub const SYS_PHYSUNMAP: usize =948; pub const SYS_VIRTTOPHYS: usize=949; pub const SYS_PIPE2: usize = 331; pub const SYS_SETPGID: usize = 57;