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_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) 36typedef long long greg_t, gregset_t[23]; 37typedef 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; 49struct sigcontext { 50 unsigned long long r8, r9, r10, r11, r12, r13, r14, r15; 51 unsigned long long rdi, rsi, rbp, rbx, rdx, rax, rcx, rsp, rip, eflags; 52 unsigned short cs, gs, fs, __pad0; 53 unsigned long long err, trapno, oldmask, cr2; 54 struct _fpstate *fpstate; 55 unsigned long long __reserved1[8]; 56}; 57typedef struct { 58 gregset_t gregs; 59 fpregset_t fpregs; 60 unsigned long long __reserved1[8]; 61} mcontext_t; 62#else 63typedef struct { 64 unsigned long long __space[32]; 65} mcontext_t; 66#endif 67 68struct sigaltstack { 69 void *ss_sp; 70 int ss_flags; 71 size_t ss_size; 72}; 73 74typedef struct __ucontext { 75 unsigned long uc_flags; 76 struct __ucontext *uc_link; 77 stack_t uc_stack; 78 mcontext_t uc_mcontext; 79 sigset_t uc_sigmask; 80 unsigned long long __fpregs_mem[64]; 81} ucontext_t; 82 83#define SA_NOCLDSTOP 1 84#define SA_NOCLDWAIT 2 85#define SA_SIGINFO 4 86#define SA_ONSTACK 0x08000000 87#define SA_RESTART 0x10000000 88#define SA_NODEFER 0x40000000 89#define SA_RESETHAND 0x80000000 90#define SA_RESTORER 0x04000000 91 92#endif 93 94#define SIGHUP 1 95#define SIGINT 2 96#define SIGQUIT 3 97#define SIGILL 4 98#define SIGTRAP 5 99#define SIGABRT 6 100#define SIGIOT SIGABRT 101#define SIGBUS 7 102#define SIGFPE 8 103#define SIGKILL 9 104#define SIGUSR1 10 105#define SIGSEGV 11 106#define SIGUSR2 12 107#define SIGPIPE 13 108#define SIGALRM 14 109#define SIGTERM 15 110#define SIGSTKFLT 16 111#define SIGCHLD 17 112#define SIGCONT 18 113#define SIGSTOP 19 114#define SIGTSTP 20 115#define SIGTTIN 21 116#define SIGTTOU 22 117#define SIGURG 23 118#define SIGXCPU 24 119#define SIGXFSZ 25 120#define SIGVTALRM 26 121#define SIGPROF 27 122#define SIGWINCH 28 123#define SIGIO 29 124#define SIGPOLL 29 125#define SIGPWR 30 126#define SIGSYS 31 127#define SIGUNUSED SIGSYS 128 129#define _NSIG 65 130 131