Updated: 2022/Sep/29
Please read Privacy Policy. It's for your privacy.
SIGINFO(2)                    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
                 structure 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
                 contains the side and priority of the operation.  If the
                 operation 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_SCE    Process syscall entry trap
              TRAP_SCX    Process syscall exit 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
                             create 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, SIGBUS and SIGSEGV the siginfo structure contains the
     following additional members:
           void *si_addr;
           int si_trap;
     si_addr contains the address of the faulting instruction or data and
     si_trap contains a hardware specific reason.
     For SIGTRAP and TRAP_BRKPT, TRAP_TRACE or TRAP_DBREG the siginfo
     structure contains the following additional 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 SIGTRAP and TRAP_SCE or TRAP_SCX the siginfo structure contains the
     following additional members:
           int si_sysnum;
           int si_retval[2];
           int si_error;
           uint64_t si_args[8];
     si_sysnum contains the syscall number, si_retval contains the syscall
     return value (meaningful for TRAP_SCX only), si_error contains the
     syscall error value (meaningful for TRAP_SCX only) and si_args[8]
     contains the syscall arguments,
     For SIGIO 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 contains the side and
     priority of the operation as described above.
     Finally, for SIGCHLD the siginfo structure contains the following
     additional 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, TRAP_LWP, TRAP_SCE and TRAP_SCX
     signal specific reasons of SIGTRAP are NetBSD extensions.
HISTORY
     The siginfo functionality first appeared in AT&T System V Release 4 UNIX.
     TRAP_CHLD, TRAP_DBREG, TRAP_EXEC, TRAP_LWP, TRAP_SCE and TRAP_SCX first
     appeared in NetBSD 8.
     The additional parameters with syscall information in TRAP_SCE and
     TRAP_SCX first appeared in NetBSD 9.
NetBSD 10.99                     May 25, 2019                     NetBSD 10.99