summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/lib/signal.c
blob: 51441558eb87016fa98e67c3dc4cbefd0962f6ea (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_NODEFER;
  if (sigaction(signum,&sa,&oa))
    return SIG_ERR;
  return oa.sa_handler;
}