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.2 January 14, 2017 NetBSD 8.2

Powered by man-cgi (2024-08-26). Maintained for NetBSD by Kimmo Suominen. Based on man-cgi by Panagiotis Christias.