signal.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
  2. || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
  3. #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
  4. #define MINSIGSTKSZ 2048
  5. #define SIGSTKSZ 8192
  6. #endif
  7. #ifdef _GNU_SOURCE
  8. #define REG_R8 0
  9. #define REG_R9 1
  10. #define REG_R10 2
  11. #define REG_R11 3
  12. #define REG_R12 4
  13. #define REG_R13 5
  14. #define REG_R14 6
  15. #define REG_R15 7
  16. #define REG_RDI 8
  17. #define REG_RSI 9
  18. #define REG_RBP 10
  19. #define REG_RBX 11
  20. #define REG_RDX 12
  21. #define REG_RAX 13
  22. #define REG_RCX 14
  23. #define REG_RSP 15
  24. #define REG_RIP 16
  25. #define REG_EFL 17
  26. #define REG_CSGSFS 18
  27. #define REG_ERR 19
  28. #define REG_TRAPNO 20
  29. #define REG_OLDMASK 21
  30. #define REG_CR2 22
  31. #endif
  32. #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
  33. typedef long long greg_t, gregset_t[23];
  34. typedef struct _fpstate {
  35. unsigned short cwd, swd, ftw, fop;
  36. unsigned long long rip, rdp;
  37. unsigned mxcsr, mxcr_mask;
  38. struct {
  39. unsigned short significand[4], exponent, padding[3];
  40. } _st[8];
  41. struct {
  42. unsigned element[4];
  43. } _xmm[16];
  44. unsigned padding[24];
  45. } *fpregset_t;
  46. struct sigcontext {
  47. unsigned long r8, r9, r10, r11, r12, r13, r14, r15;
  48. unsigned long rdi, rsi, rbp, rbx, rdx, rax, rcx, rsp, rip, eflags;
  49. unsigned short cs, gs, fs, __pad0;
  50. unsigned long err, trapno, oldmask, cr2;
  51. struct _fpstate *fpstate;
  52. unsigned long __reserved1[8];
  53. };
  54. typedef struct {
  55. gregset_t gregs;
  56. fpregset_t fpregs;
  57. unsigned long long __reserved1[8];
  58. } mcontext_t;
  59. #else
  60. typedef struct {
  61. unsigned long __space[32];
  62. } mcontext_t;
  63. #endif
  64. struct sigaltstack {
  65. void *ss_sp;
  66. int ss_flags;
  67. size_t ss_size;
  68. };
  69. typedef struct __ucontext {
  70. unsigned long uc_flags;
  71. struct __ucontext *uc_link;
  72. stack_t uc_stack;
  73. mcontext_t uc_mcontext;
  74. sigset_t uc_sigmask;
  75. unsigned long __fpregs_mem[64];
  76. } ucontext_t;
  77. #define SA_NOCLDSTOP 1
  78. #define SA_NOCLDWAIT 2
  79. #define SA_SIGINFO 4
  80. #define SA_ONSTACK 0x08000000
  81. #define SA_RESTART 0x10000000
  82. #define SA_NODEFER 0x40000000
  83. #define SA_RESETHAND 0x80000000
  84. #define SA_RESTORER 0x04000000
  85. #endif
  86. #define SIGHUP 1
  87. #define SIGINT 2
  88. #define SIGQUIT 3
  89. #define SIGILL 4
  90. #define SIGTRAP 5
  91. #define SIGABRT 6
  92. #define SIGIOT SIGABRT
  93. #define SIGBUS 7
  94. #define SIGFPE 8
  95. #define SIGKILL 9
  96. #define SIGUSR1 10
  97. #define SIGSEGV 11
  98. #define SIGUSR2 12
  99. #define SIGPIPE 13
  100. #define SIGALRM 14
  101. #define SIGTERM 15
  102. #define SIGSTKFLT 16
  103. #define SIGCHLD 17
  104. #define SIGCONT 18
  105. #define SIGSTOP 19
  106. #define SIGTSTP 20
  107. #define SIGTTIN 21
  108. #define SIGTTOU 22
  109. #define SIGURG 23
  110. #define SIGXCPU 24
  111. #define SIGXFSZ 25
  112. #define SIGVTALRM 26
  113. #define SIGPROF 27
  114. #define SIGWINCH 28
  115. #define SIGIO 29
  116. #define SIGPOLL 29
  117. #define SIGPWR 30
  118. #define SIGSYS 31
  119. #define SIGUNUSED SIGSYS
  120. #define _NSIG 65