diff options
Diffstat (limited to 'include/signal.h')
-rw-r--r-- | include/signal.h | 112 |
1 files changed, 108 insertions, 4 deletions
diff --git a/include/signal.h b/include/signal.h index 9cebddd9..6e22bdff 100644 --- a/include/signal.h +++ b/include/signal.h @@ -8,10 +8,6 @@ extern "C" { #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) -#ifdef _GNU_SOURCE -#define __siginfo siginfo -#endif - #define __NEED_size_t #define __NEED_pid_t #define __NEED_uid_t @@ -25,6 +21,57 @@ extern "C" { #include <bits/alltypes.h> +#define SIG_BLOCK 0 +#define SIG_UNBLOCK 1 +#define SIG_SETMASK 2 + +#define SIG_ERR ((void (*)(int))-1) +#define SIG_DFL ((void (*)(int)) 0) +#define SIG_IGN ((void (*)(int)) 1) +#define SIG_HOLD ((void (*)(int)) 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 FPE_INTDIV 1 +#define FPE_INTOVF 2 +#define FPE_FLTDIV 3 +#define FPE_FLTOVF 4 +#define FPE_FLTUNT 5 +#define FPE_FLTRES 6 +#define FPE_FLTINV 7 +#define FPE_FLTSUB 8 + +#define ILL_ILLOPC 1 +#define ILL_ILLOPN 2 +#define ILL_ILLADR 3 +#define ILL_ILLTRP 4 +#define ILL_PRVOPC 5 +#define ILL_PRVREG 6 +#define ILL_COPROC 7 +#define ILL_BADSTK 8 + +#define SEGV_MAPERR 1 +#define SEGV_ACCERR 2 + +#define BUS_ADRALN 1 +#define BUS_ADRERR 2 +#define BUS_OBJERR 3 + +#define CLD_EXITED 1 +#define CLD_KILLED 2 +#define CLD_DUMPED 3 +#define CLD_TRAPPED 4 +#define CLD_STOPPED 5 +#define CLD_CONTINUED 6 + struct sigaction { union { void (*sa_handler)(int); @@ -48,6 +95,50 @@ union sigval { void *sival_ptr; }; +#ifdef _GNU_SOURCE +struct siginfo +#else +struct __siginfo +#endif +{ + int si_signo, si_errno, si_code; + union { + char __pad[128 - 3*sizeof(int)]; + struct { + pid_t si_pid; + uid_t si_uid; + union sigval si_sigval; + } __rt; + struct { + unsigned int si_timer1, si_timer2; + } __timer; + struct { + pid_t si_pid; + uid_t si_uid; + int si_status; + clock_t si_utime, si_stime; + } __sigchld; + struct { + void *si_addr; + } __sigfault; + struct { + long si_band; + int si_fd; + } __sigpoll; + } __si_fields; +}; +#define si_pid __si_fields.__sigchld.si_pid +#define si_uid __si_fields.__sigchld.si_uid +#define si_status __si_fields.__sigchld.si_status +#define si_utime __si_fields.__sigchld.si_utime +#define si_stime __si_fields.__sigchld.si_stime +#define si_value __si_fields.__rt.si_sigval +#define si_addr __si_fields.__sigfault.si_addr +#define si_band __si_fields.__sigpoll.si_band +#define si_fd __si_fields.__sigpoll.si_fd +#define si_timer1 __si_fields.__timer.si_timer1 +#define si_timer2 __si_fields.__timer.si_timer2 + struct sigevent { union sigval sigev_value; int sigev_signo; @@ -101,6 +192,18 @@ int siginterrupt(int, int); int sigpause(int); int sigrelse(int); void (*sigset(int, void (*)(int)))(int); +#define TRAP_BRKPT 1 +#define TRAP_TRACE 2 +#define POLL_IN 1 +#define POLL_OUT 2 +#define POLL_MSG 3 +#define POLL_ERR 4 +#define POLL_PRI 5 +#define POLL_HUP 6 +#define SS_ONSTACK 1 +#define SS_DISABLE 2 +#define MINSIGSTKSZ 2048 +#define SIGSTKSZ 8192 #endif #ifdef _GNU_SOURCE @@ -108,6 +211,7 @@ typedef void (*sighandler_t)(int); void (*bsd_signal(int, void (*)(int)))(int); int sigisemptyset(const sigset_t *); #define SA_NOMASK SA_NODEFER +#define SA_ONESHOT SA_RESETHAND #endif #include <bits/signal.h> |