Index: fusl/src/signal/sigaltstack.c |
diff --git a/fusl/src/signal/sigaltstack.c b/fusl/src/signal/sigaltstack.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..62cb81adfe16ea1a112448f1654d55a859718374 |
--- /dev/null |
+++ b/fusl/src/signal/sigaltstack.c |
@@ -0,0 +1,18 @@ |
+#include <signal.h> |
+#include <errno.h> |
+#include "syscall.h" |
+ |
+int sigaltstack(const stack_t *restrict ss, stack_t *restrict old) |
+{ |
+ if (ss) { |
+ if (ss->ss_size < MINSIGSTKSZ) { |
+ errno = ENOMEM; |
+ return -1; |
+ } |
+ if (ss->ss_flags & ~SS_DISABLE) { |
+ errno = EINVAL; |
+ return -1; |
+ } |
+ } |
+ return syscall(SYS_sigaltstack, ss, old); |
+} |