summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/lib/signal.c
diff options
context:
space:
mode:
Diffstat (limited to 'mdk-stage1/dietlibc/lib/signal.c')
-rw-r--r--mdk-stage1/dietlibc/lib/signal.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/lib/signal.c b/mdk-stage1/dietlibc/lib/signal.c
new file mode 100644
index 000000000..51441558e
--- /dev/null
+++ b/mdk-stage1/dietlibc/lib/signal.c
@@ -0,0 +1,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;
+}