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