ack/plat/linuxppc/libsys/signal.c

20 lines
449 B
C
Raw Normal View History

#include <signal.h>
/*
* Uses our bridge in sigaction.s when calling the signal handler.
* Mimics Linux __NR_signal by using SA_NODEFER | SA_RESETHAND.
*/
sighandler_t signal(int signum, sighandler_t handler) {
struct sigaction new, old;
int i;
new.sa_handler = handler;
new.sa_mask = 0; /* empty set */
new.sa_flags = SA_NODEFER | SA_RESETHAND;
i = sigaction(signum, &new, &old);
if (i < 0)
return SIG_ERR;
return old.sa_handler;
}