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