Enable getitimer, setitimer, and sigprocmask

This commit is contained in:
Jeremy Soller
2018-12-28 21:47:49 -07:00
parent 5cb92284f2
commit 083642fb17
8 changed files with 209 additions and 116 deletions
+1 -8
View File
@@ -15,7 +15,7 @@ use header::sys_ioctl::{winsize, TCGETS, TCSETS, TIOCGWINSZ};
use header::sys_select::fd_set;
use header::sys_stat::stat;
use header::sys_statvfs::statvfs;
use header::sys_time::{itimerval, timeval, timezone};
use header::sys_time::{timeval, timezone};
// use header::sys_times::tms;
use header::sys_utsname::utsname;
use header::termios::termios;
@@ -59,9 +59,6 @@ fn e(sys: usize) -> usize {
pub struct Sys;
impl Sys {
fn getitimer(which: c_int, out: *mut itimerval) -> c_int {
e(unsafe { syscall!(GETITIMER, which, out) }) as c_int
}
// fn getrusage(who: c_int, r_usage: *mut rusage) -> c_int {
// e(unsafe { syscall!(GETRUSAGE, who, r_usage) }) as c_int
@@ -72,10 +69,6 @@ impl Sys {
e(unsafe { syscall!(IOCTL, fd, request, out) }) as c_int
}
fn setitimer(which: c_int, new: *const itimerval, old: *mut itimerval) -> c_int {
e(unsafe { syscall!(SETITIMER, which, new, old) }) as c_int
}
// fn times(out: *mut tms) -> clock_t {
// unsafe { syscall!(TIMES, out) as clock_t }
// }
+13 -6
View File
@@ -4,14 +4,13 @@ use super::super::types::*;
use super::super::PalSignal;
use super::{e, Sys};
use header::signal::{sigaction, sigset_t};
impl Sys {
fn sigprocmask(how: c_int, set: *const sigset_t, oset: *mut sigset_t) -> c_int {
e(unsafe { syscall!(RT_SIGPROCMASK, how, set, oset, mem::size_of::<sigset_t>()) }) as c_int
}
}
use header::sys_time::itimerval;
impl PalSignal for Sys {
fn getitimer(which: c_int, out: *mut itimerval) -> c_int {
e(unsafe { syscall!(GETITIMER, which, out) }) as c_int
}
fn kill(pid: pid_t, sig: c_int) -> c_int {
e(unsafe { syscall!(KILL, pid, sig) }) as c_int
}
@@ -29,6 +28,10 @@ impl PalSignal for Sys {
}
}
fn setitimer(which: c_int, new: *const itimerval, old: *mut itimerval) -> c_int {
e(unsafe { syscall!(SETITIMER, which, new, old) }) as c_int
}
unsafe fn sigaction(sig: c_int, act: *const sigaction, oact: *mut sigaction) -> c_int {
e(syscall!(
RT_SIGACTION,
@@ -38,4 +41,8 @@ impl PalSignal for Sys {
mem::size_of::<sigset_t>()
)) as c_int
}
fn sigprocmask(how: c_int, set: *const sigset_t, oset: *mut sigset_t) -> c_int {
e(unsafe { syscall!(RT_SIGPROCMASK, how, set, oset, mem::size_of::<sigset_t>()) }) as c_int
}
}