2 #include <lunaix/signal_defs.h>
3 #include <lunaix/types.h>
5 __LXSYSCALL1(int, sigpending, sigset_t, *set);
6 __LXSYSCALL1(int, sigsuspend, const sigset_t, *mask);
17 __LXSYSCALL2(int, sys_sigaction, int, signum, struct sigaction*, action);
19 __LXSYSCALL2(int, kill, pid_t, pid, int, signum);
25 signal(int signum, sighandler_t handler)
27 struct sigaction sa = { .sa_handler = (void*)handler,
28 .sa_mask = (sigset_t)-1,
29 .sa_sigaction = (void*)sigtrampoline };
31 sys_sigaction(signum, &sa);
39 return kill(0, signum);
43 sigaction(int signum, struct sigaction* action)
45 return sys_sigaction(signum, action);
51 void (*sa_handler)(int);
52 unsigned char saved_frame[0];
56 sig_dohandling(int signum, void* siginfo, void* sigctx)
58 struct siguctx* uctx = (struct siguctx*)sigctx;
59 uctx->sa_handler(signum);