1 #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \ 2 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_R8 0 11 #define REG_R9 1 12 #define REG_R10 2 13 #define REG_R11 3 14 #define REG_R12 4 15 #define REG_R13 5 16 #define REG_R14 6 17 #define REG_R15 7 18 #define REG_RDI 8 19 #define REG_RSI 9 20 #define REG_RBP 10 21 #define REG_RBX 11 22 #define REG_RDX 12 23 #define REG_RAX 13 24 #define REG_RCX 14 25 #define REG_RSP 15 26 #define REG_RIP 16 27 #define REG_EFL 17 28 #define REG_CSGSFS 18 29 #define REG_ERR 19 30 #define REG_TRAPNO 20 31 #define REG_OLDMASK 21 32 #define REG_CR2 22 33 #endif 34 35 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 36 typedef long long greg_t, gregset_t[23]; 37 typedef struct _fpstate { 38 unsigned short cwd, swd, ftw, fop; 39 unsigned long long rip, rdp; 40 unsigned mxcsr, mxcr_mask; 41 struct { 42 unsigned short significand[4], exponent, padding[3]; 43 } _st[8]; 44 struct { 45 unsigned element[4]; 46 } _xmm[16]; 47 unsigned padding[24]; 48 } * fpregset_t; 49 struct sigcontext { 50 unsigned long r8, r9, r10, r11, r12, r13, r14, r15; 51 unsigned long rdi, rsi, rbp, rbx, rdx, rax, rcx, rsp, rip, eflags; 52 unsigned short cs, gs, fs, __pad0; 53 unsigned long err, trapno, oldmask, cr2; 54 struct _fpstate* fpstate; 55 unsigned long __reserved1[8]; 56 }; 57 typedef struct { 58 gregset_t gregs; 59 fpregset_t fpregs; 60 unsigned long long __reserved1[8]; 61 } mcontext_t; 62 #else 63 typedef struct { unsigned long __space[32]; } mcontext_t; 64 #endif 65 66 struct sigaltstack { 67 void* ss_sp; 68 int ss_flags; 69 size_t ss_size; 70 }; 71 72 typedef struct __ucontext { 73 unsigned long uc_flags; 74 struct __ucontext* uc_link; 75 stack_t uc_stack; 76 mcontext_t uc_mcontext; 77 sigset_t uc_sigmask; 78 unsigned long __fpregs_mem[64]; 79 } ucontext_t; 80 81 #define SA_NOCLDSTOP 1 82 #define SA_NOCLDWAIT 2 83 #define SA_SIGINFO 4 84 #define SA_ONSTACK 0x08000000 85 #define SA_RESTART 0x10000000 86 #define SA_NODEFER 0x40000000 87 #define SA_RESETHAND 0x80000000 88 #define SA_RESTORER 0x04000000 89 90 #endif 91 92 #define SIGHUP 1 93 #define SIGINT 2 94 #define SIGQUIT 3 95 #define SIGILL 4 96 #define SIGTRAP 5 97 #define SIGABRT 6 98 #define SIGIOT SIGABRT 99 #define SIGBUS 7 100 #define SIGFPE 8 101 #define SIGKILL 9 102 #define SIGUSR1 10 103 #define SIGSEGV 11 104 #define SIGUSR2 12 105 #define SIGPIPE 13 106 #define SIGALRM 14 107 #define SIGTERM 15 108 #define SIGSTKFLT 16 109 #define SIGCHLD 17 110 #define SIGCONT 18 111 #define SIGSTOP 19 112 #define SIGTSTP 20 113 #define SIGTTIN 21 114 #define SIGTTOU 22 115 #define SIGURG 23 116 #define SIGXCPU 24 117 #define SIGXFSZ 25 118 #define SIGVTALRM 26 119 #define SIGPROF 27 120 #define SIGWINCH 28 121 #define SIGIO 29 122 #define SIGPOLL 29 123 #define SIGPWR 30 124 #define SIGSYS 31 125 #define SIGUNUSED SIGSYS 126 127 #define _NSIG 65 128