Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
sigstack(3UCB)	   SunOS/BSD Compatibility Library Functions	sigstack(3UCB)

NAME
       sigstack	- set and/or get signal	stack context

SYNOPSIS
       /usr/ucb/cc [ flag ... ]	file ...
       #include	<signal.h>

       int sigstack( nss,  oss);
       struct sigstack *nss, *oss;

DESCRIPTION
       The  sigstack()	function  allows  users	 to define an alternate	stack,
       called the "signal stack", on which signals are to be processed.	  When
       a  signal's  action  indicates its handler should execute on the	signal
       stack (specified	with a sigvec(3UCB) call), the system checks to	see if
       the  process  is	 currently executing on	that stack.  If	the process is
       not currently executing on the signal  stack,  the  system  arranges  a
       switch to the signal stack for the duration of the signal handler's ex-
       ecution.

       A signal	stack is specified by a	sigstack() structure,  which  includes
       the following members:

       char  *ss_sp;	    /* signal stack pointer */
       int   ss_onstack;    /* current status */

       The  ss_sp  member  is  the  initial  value to be assigned to the stack
       pointer when the	system switches	the process to the signal stack.  Note
       that,  on  machines  where the stack grows downwards in memory, this is
       not the address of the beginning	of the signal stack area.  The	ss_on-
       stack  member  is  zero or non-zero depending on	whether	the process is
       currently executing on the signal stack or not.

       If nss is not a null pointer, sigstack()	sets the signal	stack state to
       the  value  in  the sigstack() structure	pointed	to by nss. If nss is a
       null pointer, the signal	stack state will be unchanged.	If oss is  not
       a  null	pointer,  the  current	signal	stack  state  is stored	in the
       sigstack() structure pointed to by oss.

RETURN VALUES
       Upon successful completion, 0 is	returned.  Otherwise, -1  is  returned
       and errno is set	to indicate the	error.

ERRORS
       The sigstack() function will fail and the signal	stack context will re-
       main unchanged if one of	the following occurs.

	       EFAULT
		    Either nss or oss points to	memory that  is	 not  a	 valid
		    part of the	process	address	space.

SEE ALSO
       sigaltstack(2), sigvec(3UCB), signal(3C)

WARNINGS
       Signal  stacks are not "grown" automatically, as	is done	for the	normal
       stack.  If the stack overflows unpredictable results may	occur.

NOTES
       Use of these interfaces should be restricted to only applications writ-
       ten  on	BSD platforms.	Use of these interfaces	with any of the	system
       libraries or in multi-threaded applications is unsupported.

SunOS 5.9			  22 Jan 1997			sigstack(3UCB)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO | WARNINGS | NOTES

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=sigstack&sektion=3ucb&manpath=SunOS+5.9>

home | help