diff --git a/src/flag.rs b/src/flag.rs index 679fe5e..47e3939 100644 --- a/src/flag.rs +++ b/src/flag.rs @@ -34,10 +34,6 @@ pub const MODE_PERM: u16 = 0x0FFF; pub const MODE_SETUID: u16 = 0o4000; pub const MODE_SETGID: u16 = 0o2000; -pub const SEEK_SET: usize = 0; -pub const SEEK_CUR: usize = 1; -pub const SEEK_END: usize = 2; - pub const O_RDONLY: usize = 0x0000_0000; pub const O_WRONLY: usize = 0x0001_0000; pub const O_RDWR: usize = 0x0002_0000; @@ -52,4 +48,40 @@ pub const O_CREAT: usize = 0x0200_0000; pub const O_TRUNC: usize = 0x0400_0000; pub const O_EXCL: usize = 0x0800_0000; +pub const SEEK_SET: usize = 0; +pub const SEEK_CUR: usize = 1; +pub const SEEK_END: usize = 2; + +pub const SIGHUP: usize = 1; +pub const SIGINT: usize = 2; +pub const SIGQUIT: usize = 3; +pub const SIGILL: usize = 4; +pub const SIGTRAP: usize = 5; +pub const SIGABRT: usize = 6; +pub const SIGBUS: usize = 7; +pub const SIGFPE: usize = 8; +pub const SIGKILL: usize = 9; +pub const SIGUSR1: usize = 10; +pub const SIGSEGV: usize = 11; +pub const SIGUSR2: usize = 12; +pub const SIGPIPE: usize = 13; +pub const SIGALRM: usize = 14; +pub const SIGTERM: usize = 15; +pub const SIGSTKFLT: usize= 16; +pub const SIGCHLD: usize = 17; +pub const SIGCONT: usize = 18; +pub const SIGSTOP: usize = 19; +pub const SIGTSTP: usize = 20; +pub const SIGTTIN: usize = 21; +pub const SIGTTOU: usize = 22; +pub const SIGURG: usize = 23; +pub const SIGXCPU: usize = 24; +pub const SIGXFSZ: usize = 25; +pub const SIGVTALRM: usize= 26; +pub const SIGPROF: usize = 27; +pub const SIGWINCH: usize = 28; +pub const SIGIO: usize = 29; +pub const SIGPWR: usize = 30; +pub const SIGSYS: usize = 31; + pub const WNOHANG: usize = 1; diff --git a/src/lib.rs b/src/lib.rs index 8cc7916..7646c00 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -112,6 +112,10 @@ pub unsafe fn iopl(level: usize) -> Result { syscall1(SYS_IOPL, level) } +pub fn kill(pid: usize, sig: usize) -> Result { + unsafe { syscall2(SYS_KILL, pid, sig) } +} + pub unsafe fn link(old: *const u8, new: *const u8) -> Result { syscall2(SYS_LINK, old as usize, new as usize) } diff --git a/src/number.rs b/src/number.rs index d5c5856..408d185 100644 --- a/src/number.rs +++ b/src/number.rs @@ -41,6 +41,7 @@ pub const SYS_GETGID: usize = 200; pub const SYS_GETPID: usize = 20; pub const SYS_GETUID: usize = 199; pub const SYS_IOPL: usize = 110; +pub const SYS_KILL: usize = 37; pub const SYS_NANOSLEEP: usize =162; pub const SYS_PHYSALLOC: usize =945; pub const SYS_PHYSFREE: usize = 946;