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, siginfo - signal generation information

       #include <siginfo.h>

       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:

		      The implementation sets si_code to SI_USER if the signal
		      was sent by kill(2), sigsend(2), raise(3C) or abort(3C).

		      The signal was sent by _lwp_kill(2).

		      The signal was sent by sigqueue(3C).

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

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

		      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

   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

       The uncatchable signals SIGSTOP	and  SIGKILL  have  undefined  siginfo

       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
       SIGSEGV	 caddr_t si_addr   address of faulting memory reference
       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

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

       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)

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]
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