summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/lib/signal.c
blob: eb3672c68f7e13c82ec6277af1538b0d06392676 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
#include <signal.h>

sighandler_t signal(int signum, sighandler_t action) {
  struct sigaction sa,oa;
  sa.sa_handler=action;
  sigemptyset(&sa.sa_mask);
  sigaddset(&sa.sa_mask,signum);
  sa.sa_flags=SA_RESTART|SA_NODEFER;
  if (sigaction(signum,&sa,&oa))
    return SIG_ERR;
  return oa.sa_handler;
}