summaryrefslogtreecommitdiff
path: root/include/signal.h
diff options
context:
space:
mode:
authorKacper <kacper@mail.openlinux.dev>2025-12-07 20:10:31 +0100
committerKacper <kacper@mail.openlinux.dev>2025-12-07 20:10:31 +0100
commitfc00c656c96528112d05cf0edf8631bd5eaea446 (patch)
treea6e0e6c588191a8bd1c64afc3b7a258e3e66c236 /include/signal.h
Add build system scaffolding and libc headers
Diffstat (limited to 'include/signal.h')
-rw-r--r--include/signal.h132
1 files changed, 132 insertions, 0 deletions
diff --git a/include/signal.h b/include/signal.h
new file mode 100644
index 00000000..a4f41c96
--- /dev/null
+++ b/include/signal.h
@@ -0,0 +1,132 @@
+#ifndef __SIGNAL_H
+#define __SIGNAL_H
+
+#define __BITS_SIGEVENT_H_
+#include <bits/sigevent.h>
+#undef __BITS_SIGEVENT_H_
+
+#define SIG_DFL ((void (*)(int))0)
+#define SIG_ERR ((void (*)(int)) - 1)
+#define SIG_IGN ((void (*)(int))1)
+#define SIG_HOLD ((void (*)(int))2)
+
+#define SIG_BLOCK 0
+#define SIG_UNBLOCK 1
+#define SIG_SETMASK 2
+
+#define SI_ASYNCNL (-60)
+#define SI_TKILL (-6)
+#define SI_SIGIO (-5)
+#define SI_ASYNCIO (-4)
+#define SI_MESGQ (-3)
+#define SI_TIMER (-2)
+#define SI_QUEUE (-1)
+#define SI_USER 0
+#define SI_KERNEL 128
+
+#define SIGHUP 1
+#define SIGINT 2
+#define SIGQUIT 3
+#define SIGILL 4
+#define SIGTRAP 5
+#define SIGABRT 6
+#define SIGIOT SIGABRT
+#define SIGBUS 7
+#define SIGFPE 8
+#define SIGKILL 9
+#define SIGUSR1 10
+#define SIGSEGV 11
+#define SIGUSR2 12
+#define SIGPIPE 13
+#define SIGALRM 14
+#define SIGTERM 15
+#define SIGSTKFLT 16
+#define SIGCHLD 17
+#define SIGCONT 18
+#define SIGSTOP 19
+#define SIGTSTP 20
+#define SIGTTIN 21
+#define SIGTTOU 22
+#define SIGURG 23
+#define SIGXCPU 24
+#define SIGXFSZ 25
+#define SIGVTALRM 26
+#define SIGPROF 27
+#define SIGWINCH 28
+#define SIGIO 29
+#define SIGPOLL 29
+#define SIGPWR 30
+#define SIGSYS 31
+#define SIGUNUSED SIGSYS
+
+#define SA_NOCLDSTOP 0x00000001
+#define SA_NOCLDWAIT 0x00000002
+#define SA_SIGINFO 0x00000004
+#define SA_ONSTACK 0x08000000
+#define SA_RESTART 0x10000000
+#define SA_NODEFER 0x40000000
+#define SA_RESETHAND 0x80000000
+
+#define SS_ONSTACK 1
+#define SS_DISABLE 2
+
+typedef __INT64_TYPE__ pid_t;
+typedef __UINT32_TYPE__ uid_t;
+typedef __UINT64_TYPE__ sigset_t;
+typedef __SIZE_TYPE__ size_t;
+typedef struct __thread_self pthread_t;
+
+struct timespec;
+
+typedef struct {
+ int si_signo;
+ int si_code;
+ int si_errno;
+ pid_t si_pid;
+ uid_t si_uid;
+ void *si_addr;
+ int si_status;
+ union sigval si_value;
+} siginfo_t;
+
+typedef struct {
+ void *ss_sp;
+ int ss_flags;
+ size_t ss_size;
+} stack_t;
+
+struct sigaction {
+ void (*sa_handler)(int);
+ sigset_t sa_mask;
+ int sa_flags;
+ void (*sa_sigaction)(int, siginfo_t *, void *);
+};
+
+int kill(pid_t, int);
+int killpg(pid_t, int);
+void psiginfo(const siginfo_t *, const char *);
+void psignal(int, const char *);
+int pthread_kill(pthread_t, int);
+int pthread_sigmask(int, const sigset_t *restrict, sigset_t *restrict);
+int raise(int);
+int sig2str(int, char *);
+int sigaction(int, const struct sigaction *restrict,
+ struct sigaction *restrict);
+int sigaddset(sigset_t *, int);
+int sigaltstack(const stack_t *restrict, stack_t *restrict);
+int sigdelset(sigset_t *, int);
+int sigemptyset(sigset_t *);
+int sigfillset(sigset_t *);
+int sigismember(const sigset_t *, int);
+void (*signal(int, void (*)(int)))(int);
+int sigpending(sigset_t *);
+int sigprocmask(int, const sigset_t *restrict, sigset_t *restrict);
+int sigqueue(pid_t, int, union sigval);
+int sigsuspend(const sigset_t *);
+int sigtimedwait(const sigset_t *restrict, siginfo_t *restrict,
+ const struct timespec *restrict);
+int sigwait(const sigset_t *restrict, int *restrict);
+int sigwaitinfo(const sigset_t *restrict, siginfo_t *restrict);
+int str2sig(const char *restrict, int *restrict);
+
+#endif