Amiga Unix — 68040 · 68060

Manual pages › Character sets, environment, package files (5)

siginfo(5)

signal generation information

From the original Amiga UNIX 2.1 manual. Some things it mentions may not be in this release.

NAME

siginfo - signal generation information

SYNOPSIS

#include <siginfo.h>

DESCRIPTION

If a process is catching a signal, it may  request  informa-
tion  that  tells  why the system generated that signal [see
sigaction(2)].  If a process is monitoring its children,  it
may receive information that tells why a child changed state
[see waitid(2)].  In either case,  the  system  returns  the
information in a structure of type siginfo_t, which includes
the following information:
     int si_signo   /* signal number */
     int si_errno   /* error number */
     int si_code    /* signal code */

si_signo contains the system-generated signal number. (For the waitid(2) function, si_signo is always SIGCHLD.)

If si_errno is non-zero, it contains an error number associated with this signal, as defined in errno.h.

si_code contains a code identifying the cause of the signal.
If the value of si_code is less than or equal to 0, then the
signal was generated by a user process [see kill(2) and sig-
send(2)]  and  the  siginfo structure contains the following
additional information:
     pid_t si_pid   /* sending process ID */
     uid_t si_uid   /* sending user ID */

Otherwise, si_code contains a signal-specific reason why the signal was generated, as follows:

   Signal    Code            Reason
   _______________________________________________________________

                          Last change:                          1

()                MISC. REFERENCE MANUAL PAGES                 ()

     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 point inexact result
               FPE_FLTINV      invalid floating point 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-existent 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 was killed
               CLD_DUMPED      child terminated abnormally
               CLD_TRAPPED     traced child has trapped
               CLD_STOPPED     child has stopped
               CLD_CONTINUED   stopped child had 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

In addition, the following signal-dependent information is available for kernel-generated signals:

   Signal_________Field_______________________Value________________
   SIGILL    caddr_t si_addr   address of faulting instruction
   SIGFPE
   ________________________________________________________________
   SIGSEGV   caddr_t si_addr   address of faulting memory reference
   ________________________________________________________________
   SIGCHLD   pid_t si_pid      child process ID

                          Last change:                          1

()                MISC. REFERENCE MANUAL PAGES                 ()
             int si_status     exit value or signal
   ________________________________________________________________
   SIGPOLL   long si_band      band event for POLL_IN, POLL_OUT, or
                               POLL_MSG

SEE ALSO

sigaction(2), waitid(2), signal(5).

NOTES

For SIGCHLD signals, if si_code is equal to CLD_EXITED, then si_status is equal to the exit value of the process; otherwise, it is equal to the signal that caused the process to change state. For some implementations, the exact value of si_addr may not be available; in that case, si_addr is guaranteed to be on the same page as the faulting instruction or memory reference.

Last change:                          2