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

FreeBSD Manual Pages

  
 
  

home | help
sigstack(2)		      System Calls Manual		   sigstack(2)

NAME
       sigstack	- set and/or get signal	stack context

SYNOPSIS
DESCRIPTION
       The  function  allows  the calling process to indicate to the system an
       area of its address space to be used for	processing signals received by
       the process.

       If the ss argument is not a null	 pointer, it  must point to a sigstack
       structure. The length of	the  application-supplied  stack  must	be  at
       least bytes. If the alternate signal stack overflows, the resulting be-
       havior is undefined.  (See below.)

	      o	 The value of the  ss_onstack  member  indicates  whether  the
		 process  wants	 the  system  to use an	alternate signal stack
		 when delivering signals.

	      o	 The value of the ss_sp	member indicates the desired  location
		 of  the  alternate  signal stack area in the process' address
		 space.

	      o	 If the	ss argument is a null pointer, the  current  alternate
		 signal	stack context is not changed.

       If  the	oss  argument  is  not a null pointer, it points to a sigstack
       structure in in which the current alternate  signal  stack  context  is
       placed.	 The value stored in the ss_onstack member of oss will be non-
       zero if the process is currently	 executing  on	the  alternate	signal
       stack.  If  the	oss  argument is a null	pointer, the current alternate
       signal stack context is not returned.

       When a signal's action indicates	its handler  should  execute   on  the
       alternate  signal stack (specified by calling the implementation	checks
       to see if the process is	currently executing  on	 that  stack.  If  the
       process	is  not	currently executing on the alternate signal stack, the
       system arranges a switch	to the alternate signal	stack for the duration
       of the signal handler's execution.

       After a successful call to one of the functions,	there are no alternate
       signal stacks in	the new	process	image.

RETURN VALUE
       Upon successful completion, returns  0.	Otherwise, it returns  -1  and
       sets to indicate	the error.

ERRORS
       The function will fail if:

	      [EPERM]	     An	 attempt was made to modify an active stack or
			     an	active alternate stack.

WARNINGS
       In HP-UX	release	11.11, use of in threads  created  with	 process  con-
       tention	scope  could result in undefined behavior.  This function will
       continue	to be reliable	in  threads  created  with  system  contention
       scope.

   Obsolescent Interfaces
       is to be	obsoleted at a future date.

APPLICATION USAGE
       A portable application, when being written or rewritten,	should use in-
       stead of

       On some implementations,	 stack	space  is  automatically  extended  as
       needed.	On those implementations, automatic extension is typically not
       available for an	alternate stack. If a signal stack overflows, the  re-
       sulting behavior	of the process is undefined.

       The  direction of stack growth is not indicated in the historical defi-
       nition of struct	sigstack.  The only way	to portably establish a	 stack
       pointer	is for the application to determine stack growth direction, or
       to allocate a block of storage and set the stack	pointer	to the middle.
       The  implementation  may	assume that the	size of	the signal stack is as
       found in	An implementation that would like to specify  a	 signal	 stack
       size other than should use

       Programs	 should	not use	to leave a signal handler that is running on a
       stack established with Doing so may disable future use  of  the	signal
       stack.	For abnormal exit from a signal	handler, or may	be used. These
       functions fully support switching from one stack	to another.

       The function requires the application to	have knowledge of the underly-
       ing  system's  stack architecture. For this reason, is recommended over
       this function.

   Threads Considerations
       Each thread may define an alternate signal handling stack.

   LWP (Lightweight Processes) Considerations
       Each LWP	may define an alternate	signal handling	stack.

SEE ALSO
       exec(2),	fork(2), setjmp(3C), sigaltstack(2), <signal.h>.

CHANGE HISTORY
       First released in Issue 4, Version 2.

sigstack(2)		      System Calls Manual		   sigstack(2)

			 HP-UX EXTENSIONS - TO BE OBSOLETED

SYNOPSIS
DESCRIPTION
       The correct use of is hardware dependent, and therefore is not portable
       between different HP-UX implementations.	 is portable between different
       HP-UX implementations and should	be used	when the application does  not
       need  to	 know where the	signal stack is	located	(see sigspace(2)).  is
       provided	for compatibility with other systems that provide  this	 func-
       tionality.  Users should	note that there	is no guarantee	that function-
       ality similar to	this is	even possible on some architectures.

       The value stored	in the ss_onstack member tells whether the process  is
       currently  using	 a  signal  stack,  and	if so, the value stored	in the
       ss_sp member is the current stack pointer for the stack in use.

ERRORS
	      [EFAULT]		  Either of ss or oss is not  a	 null  pointer
				  and  points  outside	the  allocated address
				  space	of the process.	 The  reliable	detec-
				  tion	of this	error is implementation	depen-
				  dent.

WARNINGS
       Do not use in conjunction with

       Methods for calculating the required stack size are not well developed.

       Leaving the context of a	service	routine	abnormally, such  as  by  (see
       setjmp(3C)),  might remove the guarantee	that the ordinary execution of
       the program does	not extend into	the guaranteed space.  It  might  also
       cause the program to lose forever its ability to	automatically increase
       the stack size, causing the program to be  limited  to  the  guaranteed
       space.

       Stack  addresses	 grow  from low	addresses to high addresses; therefore
       the signal stack	address	provided to sigstack(2)	should	point  to  the
       beginning  of  the space	to be used for the signal stack.  This address
       should be aligned to an eight-byte boundary.

   Obsolescent Interfaces
       is to be	obsoleted at a future date.

AUTHOR
       was developed by	HP and the University of California, Berkeley.

SEE ALSO
       sigspace(2), setjmp(3C).

								   sigstack(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | WARNINGS | APPLICATION USAGE | SEE ALSO | CHANGE HISTORY | SYNOPSIS | DESCRIPTION | ERRORS | WARNINGS | AUTHOR | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=sigstack&sektion=2&manpath=HP-UX+11.22>

home | help