sunos man page for siginfo

Query: siginfo

OS: sunos

Section: 3head

Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar

siginfo.h(3HEAD)						      Headers							  siginfo.h(3HEAD)

NAME
siginfo.h, siginfo - signal generation information
SYNOPSIS
#include <siginfo.h>
DESCRIPTION
If a process is catching a signal, it might request information that tells why the system generated that signal. See sigaction(2). If a process is monitoring its children, it might 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 */ union sigval si_value /* signal value */ 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 the si_code member is SI_NOINFO, only the si_signo member of siginfo_t is meaningful, and the value of all other members is unspecified. User Signals 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), _lwp_kill(2), sigqueue(3RT), sigsend(2), abort(3C), and raise(3C)) and the siginfo structure contains the following additional information: pid_t si_pid /* sending process ID */ uid_t si_uid /* sending user ID */ ctid_t si_ctid /* sending contract ID */ zoneid_t si_zoneid /* sending zone ID */S If the signal was generated by a user process, the following values are defined for si_code: SI_USER The implementation sets si_code to SI_USER if the signal was sent by kill(2), sigsend(2), raise(3C) or abort(3C). SI_LWP The signal was sent by _lwp_kill(2). SI_QUEUE The signal was sent by sigqueue(3RT). SI_TIMER The signal was generated by the expiration of a timer created by timer_settime(3RT). SI_ASYNCIO The signal was generated by the completion of an asynchronous I/O request. SI_MESGQ The signal was generated by the arrival of a message on an empty message queue. See mq_notify(3RT). si_value contains the application specified value, which is passed to the application's signal-catching function at the time of the signal delivery if si_code is any of SI_QUEUE, SI_TIMER, SI_ASYNCHIO, or SI_MESGQ. System Signals Non-user generated signals can arise for a number of reasons. For all of these cases, si_code contains a positive value reflecting the rea- son why the system generated the signal: Signal Code Reason 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 co-processor 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 Signals can also be generated from the resource control subsystem. Where these signals do not already possess kernel-level siginfo codes, the siginfo si_code will be filled with SI_RCTL to indicate a kernel-generated signal from an established resource control value. Signal Code Reason SIGXRES SI_RCTL resource-control generated signal SIGHUP SIGTERM The uncatchable signals SIGSTOP and SIGKILL have undefined siginfo codes. Signals sent with a siginfo code of SI_RCTL contain code-dependent information for kernel-generated signals: Code Field Value SI_RCTL hr_time si_entity process-model entity of control 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 ref- erence SIGBUS SIGCHLD pid_t si_pid child process ID int si_status exit value or signal SIGPOLL long si_band band event for POLL_IN, POLL_OUT, or POLL_MSG
SEE ALSO
_lwp_kill(2), kill(2), setrctl(2), sigaction(2), sigsend(2), waitid(2), abort(3C), aio_read(3RT), mq_notify(3RT), raise(3C), sig- nal.h(3HEAD), sigqueue(3RT), timer_create(3RT), timer_settime(3RT)
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 might not be available; in that case, si_addr is guaranteed to be on the same page as the faulting instruction or memory reference. SunOS 5.10 19 Jul 2004 siginfo.h(3HEAD)
Similar Topics in the Unix Linux Community
segmantation Fault error SEGV_MAPERR - Address not mapped to object