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 typedef unsigned long __riscv_mc_gp_state[32]; 10*c9945492SAndroid Build Coastguard Worker 11*c9945492SAndroid Build Coastguard Worker struct __riscv_mc_f_ext_state { 12*c9945492SAndroid Build Coastguard Worker unsigned int __f[32]; 13*c9945492SAndroid Build Coastguard Worker unsigned int __fcsr; 14*c9945492SAndroid Build Coastguard Worker }; 15*c9945492SAndroid Build Coastguard Worker 16*c9945492SAndroid Build Coastguard Worker struct __riscv_mc_d_ext_state { 17*c9945492SAndroid Build Coastguard Worker unsigned long long __f[32]; 18*c9945492SAndroid Build Coastguard Worker unsigned int __fcsr; 19*c9945492SAndroid Build Coastguard Worker }; 20*c9945492SAndroid Build Coastguard Worker 21*c9945492SAndroid Build Coastguard Worker struct __riscv_mc_q_ext_state { 22*c9945492SAndroid Build Coastguard Worker unsigned long long __f[64] __attribute__((__aligned__(16))); 23*c9945492SAndroid Build Coastguard Worker unsigned int __fcsr; 24*c9945492SAndroid Build Coastguard Worker unsigned int __reserved[3]; 25*c9945492SAndroid Build Coastguard Worker }; 26*c9945492SAndroid Build Coastguard Worker 27*c9945492SAndroid Build Coastguard Worker union __riscv_mc_fp_state { 28*c9945492SAndroid Build Coastguard Worker struct __riscv_mc_f_ext_state __f; 29*c9945492SAndroid Build Coastguard Worker struct __riscv_mc_d_ext_state __d; 30*c9945492SAndroid Build Coastguard Worker struct __riscv_mc_q_ext_state __q; 31*c9945492SAndroid Build Coastguard Worker }; 32*c9945492SAndroid Build Coastguard Worker 33*c9945492SAndroid Build Coastguard Worker typedef struct mcontext_t { 34*c9945492SAndroid Build Coastguard Worker __riscv_mc_gp_state __gregs; 35*c9945492SAndroid Build Coastguard Worker union __riscv_mc_fp_state __fpregs; 36*c9945492SAndroid Build Coastguard Worker } mcontext_t; 37*c9945492SAndroid Build Coastguard Worker 38*c9945492SAndroid Build Coastguard Worker #if defined(_GNU_SOURCE) 39*c9945492SAndroid Build Coastguard Worker #define REG_PC 0 40*c9945492SAndroid Build Coastguard Worker #define REG_RA 1 41*c9945492SAndroid Build Coastguard Worker #define REG_SP 2 42*c9945492SAndroid Build Coastguard Worker #define REG_TP 4 43*c9945492SAndroid Build Coastguard Worker #define REG_S0 8 44*c9945492SAndroid Build Coastguard Worker #define REG_S1 9 45*c9945492SAndroid Build Coastguard Worker #define REG_A0 10 46*c9945492SAndroid Build Coastguard Worker #define REG_S2 18 47*c9945492SAndroid Build Coastguard Worker #endif 48*c9945492SAndroid Build Coastguard Worker 49*c9945492SAndroid Build Coastguard Worker #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 50*c9945492SAndroid Build Coastguard Worker typedef unsigned long greg_t; 51*c9945492SAndroid Build Coastguard Worker typedef unsigned long gregset_t[32]; 52*c9945492SAndroid Build Coastguard Worker typedef union __riscv_mc_fp_state fpregset_t; 53*c9945492SAndroid Build Coastguard Worker struct sigcontext { 54*c9945492SAndroid Build Coastguard Worker gregset_t gregs; 55*c9945492SAndroid Build Coastguard Worker fpregset_t fpregs; 56*c9945492SAndroid Build Coastguard Worker }; 57*c9945492SAndroid Build Coastguard Worker #endif 58*c9945492SAndroid Build Coastguard Worker 59*c9945492SAndroid Build Coastguard Worker struct sigaltstack { 60*c9945492SAndroid Build Coastguard Worker void *ss_sp; 61*c9945492SAndroid Build Coastguard Worker int ss_flags; 62*c9945492SAndroid Build Coastguard Worker size_t ss_size; 63*c9945492SAndroid Build Coastguard Worker }; 64*c9945492SAndroid Build Coastguard Worker 65*c9945492SAndroid Build Coastguard Worker typedef struct __ucontext 66*c9945492SAndroid Build Coastguard Worker { 67*c9945492SAndroid Build Coastguard Worker unsigned long uc_flags; 68*c9945492SAndroid Build Coastguard Worker struct __ucontext *uc_link; 69*c9945492SAndroid Build Coastguard Worker stack_t uc_stack; 70*c9945492SAndroid Build Coastguard Worker sigset_t uc_sigmask; 71*c9945492SAndroid Build Coastguard Worker mcontext_t uc_mcontext; 72*c9945492SAndroid Build Coastguard Worker } ucontext_t; 73*c9945492SAndroid Build Coastguard Worker 74*c9945492SAndroid Build Coastguard Worker #define SA_NOCLDSTOP 1 75*c9945492SAndroid Build Coastguard Worker #define SA_NOCLDWAIT 2 76*c9945492SAndroid Build Coastguard Worker #define SA_SIGINFO 4 77*c9945492SAndroid Build Coastguard Worker #define SA_ONSTACK 0x08000000 78*c9945492SAndroid Build Coastguard Worker #define SA_RESTART 0x10000000 79*c9945492SAndroid Build Coastguard Worker #define SA_NODEFER 0x40000000 80*c9945492SAndroid Build Coastguard Worker #define SA_RESETHAND 0x80000000 81*c9945492SAndroid Build Coastguard Worker #define SA_RESTORER 0x04000000 82*c9945492SAndroid Build Coastguard Worker 83*c9945492SAndroid Build Coastguard Worker #endif 84*c9945492SAndroid Build Coastguard Worker 85*c9945492SAndroid Build Coastguard Worker #define SIGHUP 1 86*c9945492SAndroid Build Coastguard Worker #define SIGINT 2 87*c9945492SAndroid Build Coastguard Worker #define SIGQUIT 3 88*c9945492SAndroid Build Coastguard Worker #define SIGILL 4 89*c9945492SAndroid Build Coastguard Worker #define SIGTRAP 5 90*c9945492SAndroid Build Coastguard Worker #define SIGABRT 6 91*c9945492SAndroid Build Coastguard Worker #define SIGIOT SIGABRT 92*c9945492SAndroid Build Coastguard Worker #define SIGBUS 7 93*c9945492SAndroid Build Coastguard Worker #define SIGFPE 8 94*c9945492SAndroid Build Coastguard Worker #define SIGKILL 9 95*c9945492SAndroid Build Coastguard Worker #define SIGUSR1 10 96*c9945492SAndroid Build Coastguard Worker #define SIGSEGV 11 97*c9945492SAndroid Build Coastguard Worker #define SIGUSR2 12 98*c9945492SAndroid Build Coastguard Worker #define SIGPIPE 13 99*c9945492SAndroid Build Coastguard Worker #define SIGALRM 14 100*c9945492SAndroid Build Coastguard Worker #define SIGTERM 15 101*c9945492SAndroid Build Coastguard Worker #define SIGSTKFLT 16 102*c9945492SAndroid Build Coastguard Worker #define SIGCHLD 17 103*c9945492SAndroid Build Coastguard Worker #define SIGCONT 18 104*c9945492SAndroid Build Coastguard Worker #define SIGSTOP 19 105*c9945492SAndroid Build Coastguard Worker #define SIGTSTP 20 106*c9945492SAndroid Build Coastguard Worker #define SIGTTIN 21 107*c9945492SAndroid Build Coastguard Worker #define SIGTTOU 22 108*c9945492SAndroid Build Coastguard Worker #define SIGURG 23 109*c9945492SAndroid Build Coastguard Worker #define SIGXCPU 24 110*c9945492SAndroid Build Coastguard Worker #define SIGXFSZ 25 111*c9945492SAndroid Build Coastguard Worker #define SIGVTALRM 26 112*c9945492SAndroid Build Coastguard Worker #define SIGPROF 27 113*c9945492SAndroid Build Coastguard Worker #define SIGWINCH 28 114*c9945492SAndroid Build Coastguard Worker #define SIGIO 29 115*c9945492SAndroid Build Coastguard Worker #define SIGPOLL SIGIO 116*c9945492SAndroid Build Coastguard Worker #define SIGPWR 30 117*c9945492SAndroid Build Coastguard Worker #define SIGSYS 31 118*c9945492SAndroid Build Coastguard Worker #define SIGUNUSED SIGSYS 119*c9945492SAndroid Build Coastguard Worker 120*c9945492SAndroid Build Coastguard Worker #define _NSIG 65 121