X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibc.so_src%2Finclude_exp%2Fsignal.h;h=ca5275a127a6e491f69b998ff37bd91bc409971e;hb=d9d6e131a50f422316f22892aa314405e203261b;hp=bf03c7f14e82a003e685332107a58c8ccf7ad14f;hpb=04a050f42807686dc119838c82372409246d55bb;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libc.so_src/include_exp/signal.h b/Usermode/Libraries/libc.so_src/include_exp/signal.h index bf03c7f1..ca5275a1 100644 --- a/Usermode/Libraries/libc.so_src/include_exp/signal.h +++ b/Usermode/Libraries/libc.so_src/include_exp/signal.h @@ -10,15 +10,71 @@ typedef void (*sighandler_t)(int); +//! Atomic integer type +typedef volatile int sig_atomic_t; + +#define SIG_IGN ((void*)1) #define SIG_DFL ((void*)0) #define SIG_ERR ((void*)-1) -#define SIGABRT 6 +#define SIGINT 2 // C99 +#define SIGILL 4 // C99 +#define SIGABRT 6 // C99 +#define SIGFPE 8 // C99 +#define SIGSEGV 11 // C99 +#define SIGTERM 15 // C99 -#define SIGPIPE 1001 -#define SIGCHLD 1002 +extern sighandler_t signal(int signum, sighandler_t handler); extern int raise(int sig); +// POSIX Signals +#define SIGHUP 1 +#define SIGQUIT 3 +#define SIGKILL 9 +#define SIGALRM 14 +#define SIGUSR1 16 +#define SIGUSR2 17 + +#define SIGSTOP 30 // Stop process +#define SIGTSTP 31 // ? ^Z +#define SIGTTIN 32 // Background process read TTY +#define SIGTTOU 33 // Background process write TTY +#define SIGPIPE 34 +#define SIGCHLD 35 +#define SIGWINCH 36 + +#include // libposix + +typedef long long unsigned int sigset_t; +extern int sigemptyset(sigset_t *set); +extern int sigfillset(sigset_t *set); + +typedef struct siginfo_s siginfo_t; + +struct siginfo_s +{ + int si_signo; + int si_errno; + int si_code; + int si_trapno; + pid_t si_pid; + uid_t si_uid; + int si_status; + // TODO: There's others +}; + +struct sigaction +{ + sighandler_t sa_handler; + //void (*sa_sigaction)(int, siginfo_t *, void *); + sigset_t sa_mask; + int sa_flags; +}; + +#define SA_NOCLDSTOP 0x001 + +extern int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); + #endif