-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;