#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-struct __fpstate {
- unsigned long __x[7];
- unsigned char __y[80];
- unsigned long __z;
+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+struct _fpstate {
+ unsigned long cw, sw, tag, ipoff, cssel, dataoff, datasel;
+ struct {
+ unsigned short significand[4], exponent;
+ } _st[8];
+ unsigned long status;
};
-
-typedef struct {
- unsigned long __gregs[19];
- void *__fpregs;
- unsigned long __oldmask, __cr2;
-} mcontext_t;
-
-typedef struct __ucontext {
- unsigned long uc_flags;
- struct __ucontext *uc_link;
- stack_t uc_stack;
- mcontext_t uc_mcontext;
- sigset_t uc_sigmask;
- struct __fpstate __fpregs_mem;
-} ucontext_t;
-
-#ifdef _GNU_SOURCE
struct sigcontext {
unsigned short gs, __gsh, fs, __fsh, es, __esh, ds, __dsh;
unsigned long edi, esi, ebp, esp, ebx, edx, ecx, eax;
unsigned short cs, __csh;
unsigned long eflags, esp_at_signal;
unsigned short ss, __ssh;
- struct __fpstate *fpstate;
+ struct _fpstate *fpstate;
unsigned long oldmask, cr2;
};
+typedef struct {
+ unsigned gregs[19];
+ struct _fpstate *fpregs;
+ unsigned long oldmask, cr2;
+} mcontext_t;
+#else
+typedef struct {
+ unsigned __space[22];
+} mcontext_t;
#endif
-struct __siginfo
-{
- int si_signo;
- int si_errno;
- int si_code;
- union
- {
- char __pad[128 - 3*sizeof(int)];
- struct {
- pid_t si_pid;
- uid_t si_uid;
- union sigval si_sigval;
- } __rt;
- struct {
- unsigned int si_timer1;
- unsigned int si_timer2;
- } __timer;
- struct {
- pid_t si_pid;
- uid_t si_uid;
- int si_status;
- clock_t si_utime;
- clock_t si_stime;
- } __sigchld;
- struct {
- void *si_addr;
- } __sigfault;
- struct {
- long int si_band;
- int si_fd;
- } __sigpoll;
- } __si_fields;
-};
-
-#define si_pid __si_fields.__sigchld.si_pid
-#define si_uid __si_fields.__sigchld.si_uid
-#define si_status __si_fields.__sigchld.si_status
-#define si_utime __si_fields.__sigchld.si_utime
-#define si_stime __si_fields.__sigchld.si_stime
-#define si_value __si_fields.__rt.si_sigval
-#define si_addr __si_fields.__sigfault.si_addr
-#define si_band __si_fields.__sigpoll.si_band
+typedef struct __ucontext {
+ unsigned long uc_flags;
+ struct __ucontext *uc_link;
+ stack_t uc_stack;
+ mcontext_t uc_mcontext;
+ sigset_t uc_sigmask;
+ unsigned long __fpregs_mem[28];
+} ucontext_t;
#define SA_NOCLDSTOP 1
#define SA_NOCLDWAIT 2
#define SA_RESETHAND 0x80000000
#define SA_RESTORER 0x04000000
-#define SS_ONSTACK 1
-#define SS_DISABLE 2
-
-#define SIG_BLOCK 0
-#define SIG_UNBLOCK 1
-#define SIG_SETMASK 2
-
-#define SIG_HOLD ((void (*)(int)) 2)
-
#endif
-#ifdef _GNU_SOURCE
-#define NSIG 64
-#endif
-
-#define SIG_ERR ((void (*)(int))-1)
-#define SIG_DFL ((void (*)(int)) 0)
-#define SIG_IGN ((void (*)(int)) 1)
-
#define SIGHUP 1
#define SIGINT 2
#define SIGQUIT 3
#define SIGPWR 30
#define SIGSYS 31
#define SIGUNUSED SIGSYS
+
+#define _NSIG 65