diff options
Diffstat (limited to 'usr/klibc/__signal.c')
-rw-r--r-- | usr/klibc/__signal.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/usr/klibc/__signal.c b/usr/klibc/__signal.c new file mode 100644 index 0000000..d174b8e --- /dev/null +++ b/usr/klibc/__signal.c @@ -0,0 +1,20 @@ +/* + * __signal.c + */ + +#include <signal.h> + +__sighandler_t __signal(int signum, __sighandler_t handler, int flags) +{ + struct sigaction sa; + + sa.sa_handler = handler; + sa.sa_flags = flags; + sigemptyset(&sa.sa_mask); + + if (sigaction(signum, &sa, &sa)) { + return (__sighandler_t) SIG_ERR; + } else { + return (__sighandler_t) sa.sa_handler; + } +} |