1 #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 2 || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 3 4 #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 5 #define MINSIGSTKSZ 2048 6 #define SIGSTKSZ 8192 7 #endif 8 9 #ifdef _GNU_SOURCE 10 #define REG_GS 0 11 #define REG_FS 1 12 #define REG_ES 2 13 #define REG_DS 3 14 #define REG_EDI 4 15 #define REG_ESI 5 16 #define REG_EBP 6 17 #define REG_ESP 7 18 #define REG_EBX 8 19 #define REG_EDX 9 20 #define REG_ECX 10 21 #define REG_EAX 11 22 #define REG_TRAPNO 12 23 #define REG_ERR 13 24 #define REG_EIP 14 25 #define REG_CS 15 26 #define REG_EFL 16 27 #define REG_UESP 17 28 #define REG_SS 18 29 #endif 30 31 struct sigaltstack { 32 void *ss_sp; 33 int ss_flags; 34 size_t ss_size; 35 }; 36 37 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 38 typedef int greg_t, gregset_t[19]; 39 typedef struct _fpstate { 40 unsigned long cw, sw, tag, ipoff, cssel, dataoff, datasel; 41 struct { 42 unsigned short significand[4], exponent; 43 } _st[8]; 44 unsigned long status; 45 } *fpregset_t; 46 struct sigcontext { 47 unsigned short gs, __gsh, fs, __fsh, es, __esh, ds, __dsh; 48 unsigned long edi, esi, ebp, esp, ebx, edx, ecx, eax; 49 unsigned long trapno, err, eip; 50 unsigned short cs, __csh; 51 unsigned long eflags, esp_at_signal; 52 unsigned short ss, __ssh; 53 struct _fpstate *fpstate; 54 unsigned long oldmask, cr2; 55 }; 56 typedef struct { 57 gregset_t gregs; 58 fpregset_t fpregs; 59 unsigned long oldmask, cr2; 60 } mcontext_t; 61 #else 62 typedef struct { 63 unsigned __space[22]; 64 } mcontext_t; 65 #endif 66 67 typedef struct __ucontext { 68 unsigned long uc_flags; 69 struct __ucontext *uc_link; 70 stack_t uc_stack; 71 mcontext_t uc_mcontext; 72 sigset_t uc_sigmask; 73 unsigned long __fpregs_mem[28]; 74 } ucontext_t; 75 76 #define SA_NOCLDSTOP 1 77 #define SA_NOCLDWAIT 2 78 #define SA_SIGINFO 4 79 #define SA_ONSTACK 0x08000000 80 #define SA_RESTART 0x10000000 81 #define SA_NODEFER 0x40000000 82 #define SA_RESETHAND 0x80000000 83 #define SA_RESTORER 0x04000000 84 85 #endif 86 87 #define SIGHUP 1 88 #define SIGINT 2 89 #define SIGQUIT 3 90 #define SIGILL 4 91 #define SIGTRAP 5 92 #define SIGABRT 6 93 #define SIGIOT SIGABRT 94 #define SIGBUS 7 95 #define SIGFPE 8 96 #define SIGKILL 9 97 #define SIGUSR1 10 98 #define SIGSEGV 11 99 #define SIGUSR2 12 100 #define SIGPIPE 13 101 #define SIGALRM 14 102 #define SIGTERM 15 103 #define SIGSTKFLT 16 104 #define SIGCHLD 17 105 #define SIGCONT 18 106 #define SIGSTOP 19 107 #define SIGTSTP 20 108 #define SIGTTIN 21 109 #define SIGTTOU 22 110 #define SIGURG 23 111 #define SIGXCPU 24 112 #define SIGXFSZ 25 113 #define SIGVTALRM 26 114 #define SIGPROF 27 115 #define SIGWINCH 28 116 #define SIGIO 29 117 #define SIGPOLL 29 118 #define SIGPWR 30 119 #define SIGSYS 31 120 #define SIGUNUSED SIGSYS 121 122 #define _NSIG 65 123 124