signal.h raw

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