X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/874b3b5a74d815aa91f325e5573052a3c8ce1d39..87067c7f16425837971f5c1b5fd0fc5338757377:/lunaix-os/includes/lunaix/signal.h diff --git a/lunaix-os/includes/lunaix/signal.h b/lunaix-os/includes/lunaix/signal.h index 43cfb99..af191af 100644 --- a/lunaix-os/includes/lunaix/signal.h +++ b/lunaix-os/includes/lunaix/signal.h @@ -1,48 +1,33 @@ #ifndef __LUNAIX_SIGNAL_H #define __LUNAIX_SIGNAL_H -#include +#include #define _SIG_NUM 16 #define _SIG_PENDING(bitmap, sig) ((bitmap) & (1 << (sig))) -#define _SIGSEGV 1 -#define _SIGALRM 2 -#define _SIGCHLD 3 -#define _SIGCLD _SIGCHLD -#define _SIGINT 4 -#define _SIGKILL 5 -#define _SIGSTOP 6 -#define _SIGCONT 7 -#define _SIGTERM 8 - -#define __SIGNAL(num) (1 << (num)) -#define __SIGSET(bitmap, num) (bitmap = bitmap | __SIGNAL(num)) -#define __SIGTEST(bitmap, num) (bitmap & __SIGNAL(num)) -#define __SIGCLEAR(bitmap, num) ((bitmap) = (bitmap) & ~__SIGNAL(num)) - -#define _SIGNAL_UNMASKABLE (__SIGNAL(_SIGKILL) | __SIGNAL(_SIGSTOP)) - -#define _SIG_BLOCK 1 -#define _SIG_UNBLOCK 2 -#define _SIG_SETMASK 3 - -typedef unsigned int sigset_t; -typedef void (*sighandler_t)(int); - -__LXSYSCALL2(int, signal, int, signum, sighandler_t, handler); - -__LXSYSCALL1(int, sigpending, sigset_t, *set); -__LXSYSCALL1(int, sigsuspend, const sigset_t, *mask); - -__LXSYSCALL3(int, - sigprocmask, - int, - how, - const sigset_t, - *set, - sigset_t, - *oldset); +#define _SIGSEGV SIGSEGV +#define _SIGALRM SIGALRM +#define _SIGCHLD SIGCHLD +#define _SIGCLD SIGCLD +#define _SIGINT SIGINT +#define _SIGKILL SIGKILL +#define _SIGSTOP SIGSTOP +#define _SIGCONT SIGCONT +#define _SIGTERM SIGTERM +#define _SIG_BLOCK SIG_BLOCK +#define _SIG_UNBLOCK SIG_UNBLOCK +#define _SIG_SETMASK SIG_SETMASK + +#define sigset(num) (1 << (num)) +#define sigset_add(set, num) (set = set | sigset(num)) +#define sigset_test(set, num) (set & sigset(num)) +#define sigset_clear(set, num) ((set) = (set) & ~sigset(num)) +#define sigset_union(set, set2) ((set) = (set) | (set2)) +#define sigset_intersect(set, set2) ((set) = (set) & (set2)) + +int +signal_send(pid_t pid, int signum); #endif /* __LUNAIX_SIGNAL_H */