summaryrefslogtreecommitdiff
path: root/src/signal
diff options
context:
space:
mode:
authorJakob Kaivo <jkk@ung.org>2024-05-28 15:50:03 -0400
committerJakob Kaivo <jkk@ung.org>2024-05-28 15:50:03 -0400
commitc9ec058657f9f8b3fd39a16f1a9e993b4a1e982e (patch)
tree6cf1abadd04a1a9049d82ffe0e78be7f8b4cece2 /src/signal
parentb4cd7036bea6c6440fbbcdaebe53c864c87a5646 (diff)
abstract out "forced" implementations of functions from future specifications
Diffstat (limited to 'src/signal')
-rw-r--r--src/signal/raise.c12
-rw-r--r--src/signal/signal.c5
2 files changed, 7 insertions, 10 deletions
diff --git a/src/signal/raise.c b/src/signal/raise.c
index 7d40b9c8..0547e4a1 100644
--- a/src/signal/raise.c
+++ b/src/signal/raise.c
@@ -1,16 +1,8 @@
-#ifndef _POSIX_SOURCE
-#define _POSIX_SOURCE
-#define POSIX_FORCED
-#endif
-
#include <signal.h>
#include "stdlib/_stdlib.h"
-#ifdef POSIX_FORCED
-#include "_syscall.h"
-#define kill(pid, sig) __scall2(kill, pid, sig)
-#define getpid() __scall0(getpid)
-#endif
+#include "_forced/kill.h"
+#include "_forced/getpid.h"
#include "_safety.h"
diff --git a/src/signal/signal.c b/src/signal/signal.c
index 4bd74744..f55e2e57 100644
--- a/src/signal/signal.c
+++ b/src/signal/signal.c
@@ -5,6 +5,10 @@
/** set a signal handler **/
+#if 0
+#include "_forced/sigaction.h"
+
+#else
/* TODO: remove this very Linux-specific crap */
typedef struct __siginfo siginfo_t;
struct linux_sigaction {
@@ -16,6 +20,7 @@
#define sigaction(_sig, _act, _oact, _size) __scall4(sigaction, _sig, _act, _oact, _size)
#define SA_RESTART 0x10000000
#define SA_RESTORER 0x04000000
+#endif
__attribute__((noinline, target("no-sse")))
void (*signal(int sig, void (*func)(int)))(int)