X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/cd103ea1b3ff029cfc458b3913975b5600915341..3b6a05fc894d0c1a3d431045ee5a53955ba093a0:/lunaix-os/includes/lunaix/signal.h diff --git a/lunaix-os/includes/lunaix/signal.h b/lunaix-os/includes/lunaix/signal.h index 4a4cf0b..43cfb99 100644 --- a/lunaix-os/includes/lunaix/signal.h +++ b/lunaix-os/includes/lunaix/signal.h @@ -1,20 +1,28 @@ #ifndef __LUNAIX_SIGNAL_H #define __LUNAIX_SIGNAL_H -#define _SIG_NUM 8 +#include + +#define _SIG_NUM 16 #define _SIG_PENDING(bitmap, sig) ((bitmap) & (1 << (sig))) -#define _SIGSEGV 0 -#define _SIGALRM 1 -#define _SIGCHLD 2 -#define _SIGCLD SIGCHLD -#define _SIGINT 3 -#define _SIGKILL 4 -#define _SIGSTOP 5 -#define _SIGCONT 6 +#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 ((1 << _SIGKILL) | (1 << _SIGSTOP)) +#define _SIGNAL_UNMASKABLE (__SIGNAL(_SIGKILL) | __SIGNAL(_SIGSTOP)) #define _SIG_BLOCK 1 #define _SIG_UNBLOCK 2 @@ -23,4 +31,18 @@ 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); + #endif /* __LUNAIX_SIGNAL_H */