diff --git a/Cargo.toml b/Cargo.toml index 695ab23..7aed107 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "redox_syscall" -version = "0.1.46" +version = "0.1.47" description = "A Rust library to access raw Redox system calls" license = "MIT" authors = ["Jeremy Soller "] diff --git a/src/call.rs b/src/call.rs index 3b44185..cf89465 100644 --- a/src/call.rs +++ b/src/call.rs @@ -323,8 +323,10 @@ pub fn sigaction(sig: usize, act: Option<&SigAction>, oldact: Option<&mut SigAct } /// Get and/or set signal masks -pub fn sigprocmask(how: usize, set: &[u64; 2], oset: &mut [u64; 2]) -> Result { - unsafe { syscall3(SYS_SIGPROCMASK, how, set.as_ptr() as usize, oset.as_mut_ptr() as usize) } +pub fn sigprocmask(how: usize, set: Option<&[u64; 2]>, oldset: Option<&mut [u64; 2]>) -> Result { + unsafe { syscall3(SYS_SIGPROCMASK, how, + set.map(|x| x as *const _).unwrap_or_else(ptr::null) as usize, + oldset.map(|x| x as *mut _).unwrap_or_else(ptr::null_mut) as usize) } } // Return from signal handler