diff options
| author | Kacper <kacper@mail.openlinux.dev> | 2025-12-07 20:10:31 +0100 |
|---|---|---|
| committer | Kacper <kacper@mail.openlinux.dev> | 2025-12-07 20:10:31 +0100 |
| commit | fc00c656c96528112d05cf0edf8631bd5eaea446 (patch) | |
| tree | a6e0e6c588191a8bd1c64afc3b7a258e3e66c236 /include/signal.h | |
Add build system scaffolding and libc headers
Diffstat (limited to 'include/signal.h')
| -rw-r--r-- | include/signal.h | 132 |
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 |
