1
0
Files
irix-657m-src/eoe/cmd/fcman/usrsignal.c
2022-09-29 17:59:04 +03:00

31 lines
650 B
C

#include <stdio.h>
#include "usrsignal.h"
#include "debug.h"
int install_signal_handlers(usr_sigaction_t *actions)
{
sigaction_t act;
usr_sigaction_t *sa;
sigset_t mask_set, set;
sigemptyset(&mask_set);
for (sa = actions; sa->usa_handler != NULL; ++sa) {
#if 1
sigemptyset(&set);
sigaddset(&set, sa->sig);
if (sigprocmask(SIG_UNBLOCK, &set, NULL))
return(-1);
#endif
if (sigaction(sa->sig, NULL, &act) == -1)
return(-1);
act.sa_handler = sa->usa_handler;
act.sa_flags = sa->usa_flags;
act.sa_mask = mask_set;
if (sigaction(sa->sig, &act, NULL) == -1)
return(-1);
}
return(0);
}