unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OSF1-V5.1-alpha)
Page:
Section:
Apropos / Subsearch:
optional field



siginfo(5)							   siginfo(5)



NAME

  siginfo - Details of signal generation

SYNOPSIS

  #include <&lt;siginfo.h>&gt;

DESCRIPTION

  The siginfo structure	provides processes with	information on why a signal
  was generated, or a process that is monitoring child processes may receive
  information that specifies why a child process changed state.	 See the
  sigaction(2) and waitid(2) reference pages for more information.

  The type siginfo_t contains the following members:

  si_signo
      Contains the system generated signal number.  Note that for the waitid
      function,	this field is always SIGCHLD.

  si_errno
      Contains,	if non-zero, the errno that is associated with the signal.

  si_code
      Specifies	a code that determines whether the signal was generated	by a
      user process, a specific signal, or by the kernel.  When the value of
      si_code is less than or equal to zero (0), the signal was	generated by
      a	user process and the siginfo structure contains	the following addi-
      tional members:


	   pid_t si_pid	   /*sending process ID*/
	   uid_t si_uid	   /*sending user ID*/

      See the kill(2) and sigsend(2) reference pages for more information on
      these fields.

      The following table describes the	meaning	of the code generated by a
      signal.  The table lists signals in alphabetical order.


      ________________________________________________________
      Signal	Code		 Definition
      ________________________________________________________
      SIGBUS	BUS_ADRALN	 invalid address alignment
		BUS_ADRERR	 non-existent physical address
		BUS_OBJERR

				 object	specific hardware
				 error
      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 has continued
		CLD_SIGEXITING

				 child is about	to exit
				 because it received a fatal
				 signal
      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	opera-
				 tion
		FPE_FLTSUB	 subscript out of range
      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
      SIGSEGV	SEGV_MAPERR	 address not mapped to object
		SEGV_ACCERR

				 invalid permissions for
				 mapped	object
      SIGTRAP	TRAP_BRKPT	 process breakpoint
		TRAP_TRACE	 process trace trap
      ________________________________________________________

      When a signal is generated by the	system,	the meaning of the code	is as
      follows:


      ___________________________________________________________
      Signal	Field		  Description
      ___________________________________________________________
      SIGILL	caddr_t	si_addr	  address of faulting instruction
      SIGFPE
      SIGSEGV	caddr_t	si_addr	  address of faulting memory
      SIGBUS			  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 POLL_MSG
      ___________________________________________________________

      Note, if the signal is SIGCHLD, and the si_code is equivalent to
      CLD_EXITED, si_status is equivalent to the exit value of the process.
      If si_code is not	equivalent to CLD_EXITED, the si_status	field is
      equivalent to the	signal that caused the process to change state.	 In
      some instances, si_addr may not be defined, but si_addr will appear on
      the same page as the faulting instruction	or memory reference.









SEE ALSO

  Functions: kill(2), sigaction(2), sigsend(2),	waitid(2)


  Files: signal(4)