siginfo.h man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]

SIGINFO.H(3HEAD)					      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(3C), 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(3C).

       SI_TIMER
		      The  signal  was	generated by the expiration of a timer
		      created by timer_settime(3C).

       SI_ASYNCIO
		      The signal was generated by the completion of  an	 asyn‐
		      chronous	I/O request.

       SI_MESGQ
		      The  signal was generated by the arrival of a message on
		      an empty message queue.  See mq_notify(3C).

       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 reason
       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 reference
       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(3C),  mq_notify(3C),  raise(3C),  signal.h(3HEAD),
       sigqueue(3C), timer_create(3C), timer_settime(3C)

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.

				  Feb 5, 2008		      SIGINFO.H(3HEAD)
[top]

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net