|
@@ -14,6 +14,11 @@ pub mod sys;
|
|
|
#[path = "redox.rs"]
|
|
|
pub mod sys;
|
|
|
|
|
|
+pub use sys::*;
|
|
|
+
|
|
|
+use core::{mem, ptr};
|
|
|
+use platform::types::*;
|
|
|
+
|
|
|
const SIG_ERR: usize = !0;
|
|
|
|
|
|
pub const SIG_BLOCK: c_int = 0;
|
|
@@ -30,10 +35,8 @@ pub struct sigaction {
|
|
|
pub sa_mask: sigset_t
|
|
|
}
|
|
|
|
|
|
-pub use sys::*;
|
|
|
-
|
|
|
-use core::{mem, ptr};
|
|
|
-use platform::types::*;
|
|
|
+pub const NSIG: usize = 64;
|
|
|
+pub type sigset_t = c_ulong;
|
|
|
|
|
|
#[no_mangle]
|
|
|
pub extern "C" fn kill(pid: pid_t, sig: c_int) -> c_int {
|
|
@@ -73,9 +76,9 @@ pub extern "C" fn sigaddset(set: *mut sigset_t, mut signo: c_int) -> c_int {
|
|
|
}
|
|
|
|
|
|
let signo = signo as usize - 1; // 0-indexed usize, please!
|
|
|
-
|
|
|
- let bits_each = 8 * mem::size_of::<sigset_t>();
|
|
|
- (unsafe { *set })[signo / bits_each] = 1 << (signo & (bits_each - 1));
|
|
|
+ unsafe {
|
|
|
+ *set |= 1 << (signo & (8 * mem::size_of::<sigset_t>() - 1));
|
|
|
+ }
|
|
|
0
|
|
|
}
|
|
|
|
|
@@ -86,16 +89,16 @@ pub extern "C" fn sigdelset(set: *mut sigset_t, signo: c_int) -> c_int {
|
|
|
|
|
|
#[no_mangle]
|
|
|
pub extern "C" fn sigemptyset(set: *mut sigset_t) -> c_int {
|
|
|
- for i in unsafe { &mut (*set) } {
|
|
|
- *i = 0;
|
|
|
+ unsafe {
|
|
|
+ *set = 0;
|
|
|
}
|
|
|
0
|
|
|
}
|
|
|
|
|
|
#[no_mangle]
|
|
|
pub extern "C" fn sigfillset(set: *mut sigset_t) -> c_int {
|
|
|
- for i in unsafe { &mut (*set) } {
|
|
|
- *i = c_ulong::max_value();
|
|
|
+ unsafe {
|
|
|
+ *set = c_ulong::max_value();
|
|
|
}
|
|
|
0
|
|
|
}
|