- int si_signo; /* Signal number */
- int si_errno; /* An errno value */
- int si_code; /* Signal code */
- pid_t si_pid; /* Sending process ID */
- uid_t si_uid; /* Real user ID of sending process */
- int si_status; /* Exit value or signal */
- clock_t si_utime; /* User time consumed */
- clock_t si_stime; /* System time consumed */
- sigval_t si_value; /* Signal value */
- int si_int; /* POSIX.1b signal */
- void * si_ptr; /* POSIX.1b signal */
- void * si_addr; /* Memory location which caused fault */
- int si_band; /* Band event */
- int si_fd; /* File descriptor */
+ int si_signo; /* Signal number */
+ int si_errno; /* An errno value */
+ int si_code; /* Signal code */
+ int si_trapno; /* Trap number that caused hardware-generated
+ signal (unused on most architectures) */
+ pid_t si_pid; /* Sending process ID */
+ uid_t si_uid; /* Real user ID of sending process */
+ int si_status; /* Exit value or signal */
+ clock_t si_utime; /* User time consumed */
+ clock_t si_stime; /* System time consumed */
+ sigval_t si_value; /* Signal value */
+ int si_int; /* POSIX.1b signal */
+ void * si_ptr; /* POSIX.1b signal */
+ int si_overrun; /* Timer overrun count; POSIX.1b timers */
+ int si_timerid; /* Timer ID; POSIX.1b timers */
+ void * si_addr; /* Memory location which caused fault */
+ long si_band; /* Band event (was int before glibc 2.3.2) */
+ int si_fd; /* File descriptor */
+ short si_addr_lsb;/* Least significant bit of address (since 2.6.32) */
+ void *si_lower; /* Lower bound when addr violation occurred (3.19) */
+ void *si_upper; /* Upper bound when addr violation occurred (3.19) */
+ int si_pkey; /* Protection key on PTE that caused fault (4.6) */
+ void *si_call_addr; /* Address of system call instruction (3.5) */
+ int si_syscall; /* Number of attempted system call (since 3.5) */
+ unsigned int si_arch;/* Architecture of attempted system call (3.5) */