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