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