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_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.

     If si_code is positive, then it contains a signal specific reason why the
     signal was generated:

     SIGILL

              ILL_ILLOPC  Illegal opcode

              ILL_ILLOPN  Illegal operand

              ILL_ILLADR  Illegal addressing mode

              ILL_ILLTRP  Illegal trap

              ILL_PRVOPC  Privileged opcode

              ILL_PRVREG  Privileged register

              ILL_COPROC  Coprocessor error

              ILL_BADSTK  Internal stack error

     SIGFPE

              FPE_INTDIV  Integer divide by zero

              FPE_INTOVF  Integer overflow

              FPE_FLTDIV  Floating point divide by zero

              FPE_FLTOVF  Floating point overflow

              FPE_FLTUND  Floating point underflow

              FPE_FLTRES  Floating poing inexact result

              FPE_FLTINV  Invalid Floating poing operation

              FPE_FLTSUB  Subscript out of range

     SIGSEGV

              SEGV_MAPERR  Address not mapped to object

              SEGV_ACCERR  Invalid permissions for mapped object

     SIGBUS

              BUS_ADRALN  Invalid address alignment

              BUS_ADRERR  Non-existant physical address

              BUS_OBJERR  Object specific hardware error

     SIGTRAP

              TRAP_BRKPT  Process breakpoint

              TRAP_TRACE  Process trace trap

     SIGCHLD

              CLD_EXITED     Child has exited

              CLD_KILLED     Child has terminated abnormally but did not cre-
                             ate a core file

              CLD_DUMPED     Child has terminated abnormally and created a
                             core file

              CLD_TRAPPED    Traced child has trapped

              CLD_STOPPED    Child has stopped

              CLD_CONTINUED  Stopped child has continued

     SIGPOLL

              POLL_IN   Data input available

              POLL_OUT  Output buffers available

              POLL_MSG  Input message available

              POLL_ERR  I/O Error

              POLL_PRI  High priority input available

              POLL_HUP  Device disconnected

     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 SIGPOLL 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 a status code described in 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'').

HISTORY
     The siginfo functionality first appeared in AT&T System V.4 UNIX.

NetBSD 5.0_STABLE                May 21, 2007                NetBSD 5.0_STABLE
