Index: src/untrusted/nacl/signal.c |
diff --git a/src/untrusted/nacl/signal.c b/src/untrusted/nacl/signal.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..425af3daaec9d1a055c03416a4b8e5005e122620 |
--- /dev/null |
+++ b/src/untrusted/nacl/signal.c |
@@ -0,0 +1,27 @@ |
+/* |
+ * Copyright (c) 2013 The Native Client Authors. All rights reserved. |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+ |
+#include <errno.h> |
+#include <signal.h> |
+#include <sys/types.h> |
+ |
+#include "native_client/src/untrusted/nacl/nacl_irt.h" |
+ |
+sighandler_t signal(int sig, sighandler_t handler) { |
+ if (!__libnacl_irt_init_fn(&__libnacl_irt_dev_process.signal, |
+ __libnacl_irt_dev_process_init)) { |
+ return -1; |
+ } |
+ |
+ sighandler_t oldhandler; |
+ int error = __libnacl_irt_dev_process.signal(sig, handler, &oldhandler); |
+ if (error) { |
+ errno = error; |
+ return SIG_ERR; |
+ } |
+ |
+ return oldhandler; |
+} |