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) 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 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}; 57typedef struct { 58 gregset_t gregs; 59 fpregset_t fpregs; 60 unsigned long long __reserved1[8]; 61} mcontext_t; 62#else 63typedef struct { unsigned long __space[32]; } mcontext_t; 64#endif 65 66struct sigaltstack { 67 void* ss_sp; 68 int ss_flags; 69 size_t ss_size; 70}; 71 72typedef 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