feat: open(2), close(2), mkdir(2) and readdir(2) syscall
[lunaix-os.git] / lunaix-os / includes / lunaix / signal.h
1 #ifndef __LUNAIX_SIGNAL_H
2 #define __LUNAIX_SIGNAL_H
3
4 #include <lunaix/syscall.h>
5
6 #define _SIG_NUM 16
7
8 #define _SIG_PENDING(bitmap, sig) ((bitmap) & (1 << (sig)))
9
10 #define _SIGSEGV 1
11 #define _SIGALRM 2
12 #define _SIGCHLD 3
13 #define _SIGCLD _SIGCHLD
14 #define _SIGINT 4
15 #define _SIGKILL 5
16 #define _SIGSTOP 6
17 #define _SIGCONT 7
18 #define _SIGTERM 8
19
20 #define __SIGNAL(num) (1 << (num))
21 #define __SIGSET(bitmap, num) (bitmap = bitmap | __SIGNAL(num))
22 #define __SIGTEST(bitmap, num) (bitmap & __SIGNAL(num))
23 #define __SIGCLEAR(bitmap, num) ((bitmap) = (bitmap) & ~__SIGNAL(num))
24
25 #define _SIGNAL_UNMASKABLE (__SIGNAL(_SIGKILL) | __SIGNAL(_SIGSTOP))
26
27 #define _SIG_BLOCK 1
28 #define _SIG_UNBLOCK 2
29 #define _SIG_SETMASK 3
30
31 typedef unsigned int sigset_t;
32 typedef void (*sighandler_t)(int);
33
34 __LXSYSCALL2(int, signal, int, signum, sighandler_t, handler);
35
36 __LXSYSCALL1(int, sigpending, sigset_t, *set);
37 __LXSYSCALL1(int, sigsuspend, const sigset_t, *mask);
38
39 __LXSYSCALL3(int,
40              sigprocmask,
41              int,
42              how,
43              const sigset_t,
44              *set,
45              sigset_t,
46              *oldset);
47
48 #endif /* __LUNAIX_SIGNAL_H */