diff --git a/man2/sigaction.2 b/man2/sigaction.2 index a48a209ed..09f8defb4 100644 --- a/man2/sigaction.2 +++ b/man2/sigaction.2 @@ -270,32 +270,39 @@ is a struct with the following fields: .in +4n .nf siginfo_t { - 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) */ + 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) */ .\" FIXME .\" The siginfo_t 'si_trapno' field seems to be used only on SPARC and Alpha; .\" this page could use a little more detail on its purpose there. - 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 */ + 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 */ .\" In the kernel: si_tid - void *si_addr; /* Memory location which caused fault */ - long si_band; /* Band event (was \fIint\fP in - glibc 2.3.2 and earlier) */ - int si_fd; /* File descriptor */ - short si_addr_lsb; /* Least significant bit of address - (since Linux 2.6.32) */ + void *si_addr; /* Memory location which caused fault */ + long si_band; /* Band event (was \fIint\fP in + glibc 2.3.2 and earlier) */ + int si_fd; /* File descriptor */ + short si_addr_lsb; /* Least significant bit of address + (since Linux 2.6.32) */ + void *si_call_addr; /* Address of system call instruction + (since Linux 3.5) */ + int si_syscall; /* Number of attempted system call + (since Linux 3.5) */ + unsigned int si_arch; /* Architecture of attempted system call + (since Linux 3.5) */ } .fi .in @@ -449,6 +456,19 @@ field by The .I si_fd field indicates the file descriptor for which the I/O event occurred. +.IP * +The +.B SIGSYS +signal that is (since Linux 3.5) +.\" commit a0727e8ce513fe6890416da960181ceb10fbfae6 +generated when a seccomp filter returns +.B SECCOMP_RET_TRAP +fills in +.IR si_call_addr , +.IR si_syscall , +.IR si_arch , +and various other fields as described in +.BR seccomp (2). .PP .I si_code is a value (not a bit mask)