1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
pub use self::os::{sem_t}; pub use self::os::{SEM_FAILED}; use {NTStr, int_t, uint_t, char_t}; use sys::types::{mode_t}; use time::{timespec}; #[cfg(target_os = "linux")] #[path = "linux/mod.rs"] mod os; pub fn sem_close(sem: *mut sem_t) -> int_t { extern { fn sem_close(sem: *mut sem_t) -> int_t; } unsafe { sem_close(sem) } } pub fn sem_destroy(sem: *mut sem_t) -> int_t { extern { fn sem_destroy(sem: *mut sem_t) -> int_t; } unsafe { sem_destroy(sem) } } pub fn sem_getvalue(sem: *mut sem_t, sval: &mut int_t) -> int_t { extern { fn sem_getvalue(sem: *mut sem_t, sval: *mut int_t) -> int_t; } unsafe { sem_getvalue(sem, sval as *mut _) } } pub fn sem_init(sem: *mut sem_t, pshared: int_t, value: uint_t) -> int_t { extern { fn sem_init(sem: *mut sem_t, pshared: int_t, value: uint_t) -> int_t; } unsafe { sem_init(sem, pshared, value) } } pub fn sem_open<T: NTStr>(name: &T, oflag: int_t, mode: mode_t, value: uint_t) -> *mut sem_t { extern { fn sem_open(name: *const char_t, oflag: int_t, ...) -> *mut sem_t; } unsafe { sem_open(name.as_ptr(), oflag, mode, value) } } pub fn sem_post(sem: *mut sem_t) -> int_t { extern { fn sem_post(sem: *mut sem_t) -> int_t; } unsafe { sem_post(sem) } } pub fn sem_timedwait(sem: *mut sem_t, abstime: ×pec) -> int_t { extern { fn sem_timedwait(sem: *mut sem_t, abstime: *const timespec) -> int_t; } unsafe { sem_timedwait(sem, abstime as *const _) } } pub fn sem_trywait(sem: *mut sem_t) -> int_t { extern { fn sem_trywait(sem: *mut sem_t) -> int_t; } unsafe { sem_trywait(sem) } } pub fn sem_unlink<T: NTStr>(name: &T) -> int_t { extern { fn sem_unlink(name: *const char_t) -> int_t; } unsafe { sem_unlink(name.as_ptr()) } } pub fn sem_wait(sem: *mut sem_t) -> int_t { extern { fn sem_wait(sem: *mut sem_t) -> int_t; } unsafe { sem_wait(sem) } }