siginfo(2)
- NetBSD Manual Pages
SIGINFO(2) NetBSD System Calls Manual SIGINFO(2)
NAME
siginfo -- signal information
SYNOPSIS
#include <signal.h>
DESCRIPTION
siginfo is a structure type which contains information about a signal
delivered to a process.
siginfo includes the following members:
int si_signo;
int si_errno;
int si_code;
si_signo contains the signal number generated by the system.
If si_errno is non-zero, then it contains a system specific error number
associated with this signal. This number is defined in errno(2).
If si_code is less than or equal to zero, the signal was generated by a
user process or a user requested service:
SI_USER The signal was generated via kill(2). The siginfo structure
contains the following additional members:
pid_t si_pid;
uid_t si_uid;
The si_pid field contains the pid of the sending process and
the si_uid field contains the user id of the sending process.
SI_QUEUE The signal was generated via sigqueue(2). The siginfo struc-
ture contains the following additional members:
pid_t si_pid;
uid_t si_uid;
sigval_t si_value;
The si_pid field contains the pid of the sending process and
the si_uid field contains the user id of the sending process.
Finally, the si_value field contains the value sent via
sigqueue(2).
SI_TIMER The signal was generated because a timer set by
timer_settime(2) has expired. The siginfo structure contains
the following additional members:
sigval_t si_value;
The si_value field contains the value set via
timer_create(2).
SI_ASYNCIO The signal was generated by completion of an asynchronous I/O
operation. The siginfo structure contains the following
additional members:
int si_fd;
long si_band;
The si_fd argument contains the file descriptor number on
which the operation was completed and the si_band field con-
tains the side and priority of the operation. If the opera-
tion was a normal read, si_band will contain POLLIN |
POLLRDNORM; on an out-of-band read it will contain POLLPRI |
POLLRDBAND; on a normal write it will contain POLLOUT |
POLLWRNORM; on an out-of-band write it will contain POLLPRI |
POLLWRBAND.
SI_MESGQ The signal was generated because of the arrival of a message
on an empty message queue. See mq_notify(3).
SI_LWP The signal was generated via _lwp_kill(2). The siginfo
structure contains the following additional members:
pid_t si_pid;
uid_t si_uid;
The si_pid field contains the pid of the sending process and
the si_uid field contains the user id of the sending process.
SI_NOINFO The signal was generated without specific info available.
If si_code is positive, then it contains a signal specific reason why the
signal was generated:
SIGILL
ILL_BADSTK Internal stack error
ILL_COPROC Coprocessor error
ILL_ILLADR Illegal addressing mode
ILL_ILLOPC Illegal opcode
ILL_ILLOPN Illegal operand
ILL_ILLTRP Illegal trap
ILL_PRVOPC Privileged opcode
ILL_PRVREG Privileged register
SIGFPE
FPE_FLTDIV Floating-point divide by zero
FPE_FLTINV Invalid floating-point operation
FPE_FLTOVF Floating-point overflow
FPE_FLTRES Floating-point inexact result
FPE_FLTUND Floating-point underflow
FPE_FLTSUB Subscript out of range
FPE_INTDIV Integer divide by zero
FPE_INTOVF Integer overflow
SIGSEGV
SEGV_ACCERR Invalid permissions for mapped object
SEGV_MAPERR Address not mapped to object
SIGBUS
BUS_ADRALN Invalid address alignment
BUS_ADRERR Nonexistent physical address
BUS_OBJERR Object-specific hardware error
SIGTRAP
TRAP_BRKPT Process breakpoint
TRAP_CHLD Process child trap
TRAP_DBREG Process hardware debug register trap
TRAP_EXEC Process exec trap
TRAP_LWP Process LWP trap
TRAP_TRACE Process trace trap
SIGCHLD
CLD_CONTINUED Stopped child has continued
CLD_DUMPED Child has terminated abnormally and created a
core file
CLD_EXITED Child has exited
CLD_KILLED Child has terminated abnormally but did not cre-
ate a core file
CLD_STOPPED Child has stopped
CLD_TRAPPED Traced child has trapped
SIGIO
POLL_ERR I/O error
POLL_HUP Device disconnected
POLL_IN Data input available
POLL_MSG Input message available
POLL_OUT Output buffers available
POLL_PRI High priority input available
For SIGILL, SIGFPE, and SIGTRAP the siginfo structure contains the fol-
lowing additional members:
void *si_addr;
int si_trap;
si_addr contains the address of the faulting instruction and si_trap con-
tains a hardware specific reason.
For SIGBUS and SIGSEGV the siginfo structure contains the following addi-
tional members:
void *si_addr;
int si_trap;
si_addr contains the address of the faulting data and si_trap contains a
hardware specific reason.
For some architectures the value of si_addr may be inaccurate.
For SIGIO the siginfo structure contains the following additional mem-
bers:
int si_fd;
long si_band;
The si_fd argument contains the file descriptor number on which the oper-
ation was completed and the si_band field contains the side and priority
of the operation as described above.
Finally, for SIGCHLD the siginfo structure contains the following addi-
tional members:
pid_t si_pid;
uid_t si_uid;
int si_status;
clock_t si_utime;
clock_t si_stime;
The si_pid field contains the pid of the process who's status changed,
the si_uid field contains the user id of the that process, the si_status
field contains either the exit code of the process (for CLD_EXITED), or
the signal number received by the process. waitid(2), waitpid(2), and
the si_utime and si_stime fields contain the user and system process
accounting time.
STANDARDS
The siginfo type conforms to X/Open System Interfaces and Headers Issue 5
(``XSH5'').
Signals specifying SI_LWP or SI_NOINFO are NetBSD extensions.
The TRAP_CHLD, TRAP_DBREG, TRAP_EXEC and TRAP_LWP signal specific reasons
of SIGTRAP are NetBSD extensions.
HISTORY
The siginfo functionality first appeared in AT&T System V.4 UNIX.
TRAP_CHLD, TRAP_DBREG, TRAP_EXEC and TRAP_LWP first appeared in NetBSD 8.
NetBSD 8.0 January 14, 2017 NetBSD 8.0
Powered by man-cgi (2021-06-01).
Maintained for NetBSD
by Kimmo Suominen.
Based on man-cgi by Panagiotis Christias.