signal adding sig(timed)wait implementations
This commit is contained in:
@@ -5,8 +5,9 @@ use super::{
|
||||
e, Sys,
|
||||
};
|
||||
use crate::header::{
|
||||
signal::{NSIG, sigaction, sigset_t, stack_t},
|
||||
signal::{NSIG, sigaction, siginfo_t, sigset_t, stack_t},
|
||||
sys_time::itimerval,
|
||||
time::timespec,
|
||||
};
|
||||
|
||||
impl PalSignal for Sys {
|
||||
@@ -62,4 +63,8 @@ impl PalSignal for Sys {
|
||||
fn sigsuspend(set: *const sigset_t) -> c_int {
|
||||
e(unsafe { syscall!(RT_SIGSUSPEND, set, NSIG/8) }) as c_int
|
||||
}
|
||||
|
||||
fn sigtimedwait(set: *const sigset_t, sig: *mut siginfo_t, tp: *const timespec) -> c_int {
|
||||
e(unsafe { syscall!(RT_SIGTIMEDWAIT, set, sig, tp, NSIG/8) }) as c_int
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
use super::super::{types::*, Pal};
|
||||
use crate::header::{
|
||||
signal::{sigaction, sigset_t, stack_t},
|
||||
signal::{sigaction, siginfo_t, sigset_t, stack_t},
|
||||
sys_time::itimerval,
|
||||
time::timespec,
|
||||
};
|
||||
|
||||
pub trait PalSignal: Pal {
|
||||
@@ -24,4 +25,6 @@ pub trait PalSignal: Pal {
|
||||
fn sigprocmask(how: c_int, set: *const sigset_t, oset: *mut sigset_t) -> c_int;
|
||||
|
||||
fn sigsuspend(set: *const sigset_t) -> c_int;
|
||||
|
||||
fn sigtimedwait(set: *const sigset_t, sig: *mut siginfo_t, tp: *const timespec) -> c_int;
|
||||
}
|
||||
|
||||
@@ -8,8 +8,9 @@ use super::{
|
||||
use crate::{
|
||||
header::{
|
||||
errno::{EINVAL, ENOSYS},
|
||||
signal::{sigaction, sigset_t, stack_t},
|
||||
signal::{sigaction, siginfo_t, sigset_t, stack_t},
|
||||
sys_time::{itimerval, ITIMER_REAL},
|
||||
time::timespec,
|
||||
},
|
||||
platform::errno,
|
||||
};
|
||||
@@ -166,4 +167,11 @@ impl PalSignal for Sys {
|
||||
}
|
||||
-1
|
||||
}
|
||||
|
||||
fn sigtimedwait(set: *const sigset_t, sig: *mut siginfo_t, tp: *const timespec) -> c_int {
|
||||
unsafe {
|
||||
errno = ENOSYS;
|
||||
}
|
||||
-1
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user