unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

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



sigaltstack(2)						       sigaltstack(2)



NAME

  sigaltstack -	set or get signal alternate stack context

SYNOPSIS

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


  int sigaltstack(
	  const	stack_t	*ss,
	  stack_t *oss );

  The following	function declaration does not conform to current standards
  and is supported only	for backward compatibility:

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


  int sigaltstack(
	  stack_t *ss,
	  stack_t *oss );

STANDARDS

  Interfaces documented	on this	reference page conform to industry standards
  as follows:

  sigaltstack():  XPG4-UNIX

  Refer	to the standards(5) reference page for more information	about indus-
  try standards	and associated tags.

PARAMETERS

  ss  If valid,	specifies a pointer to a structure that	indicates what will
      be in effect upon	return from the	call to	the sigaltstack	function.

  oss If not NULL, specifies the pointer to a structure	that contains the
      alternate	signal stack that was in effect	prior to the call to the
      sigaltstack function.

DESCRIPTION

  This function	enables	another	stack area to be defined where signals can be
  examined for their execution status and processed. If	a signal's action,
  specified by the sigaction(2)	function, indicates that a signal should exe-
  cute on an alternate stack, that signal is examined for its processing
  status.  A process that is not currently executing on	the signal stack is
  switched to an alternate stack for the duration of the handler's execution.

  The sigaltstack structure is set up as follows:

       void	  *ss_sp     /*	SVID3 uses caddr_t ss_sp
       int	  ss_flags
       size_t	  ss_size

  The values for the fields are:

  ss_sp
      Signal stack pointer.

  ss_flags
      Specifies	the new	stack state and	may be set to either SS_DISABLE	or
      SS_ONSTACK as follows:

	+  If ss is not	NULL, the new state may	be set to SS_DISABLE, which
	   specifies that the stack is to be disabled and ss_sp	and ss_size
	   are ignored.	If SS_DISABLE is not set, the stack will be enabled.

	+  If oss is not NULL, the stack state may be either SS_ONSTACK	or
	   SS_DISABLE.	The value SS_ONSTACK indicates that the	process	is
	   currently executing on the alternate	stack and that any attempt to
	   modify it during execution will fail.  The value SS_DISABLE indi-
	   cates that the current signal stack is disabled.

  ss_size
      Specifies	the size of the	stack.

  The value SIGSTKSZ defines the average number	of bytes used when allocating
  an alternate stack area.  The	value MINSIGSTKSZ defines the minimum stack
  size for a signal handler.  When processing an alternate stack size, your
  program should include these values in the stack requirement to plan for
  the overhead of the operating	system.

RETURN VALUES

  Upon successful completion, zero (0) is returned.  On	error, the value -1
  is returned and errno	is set to indicate the error.

ERRORS

  The sigaltstack() function sets errno	to the specified values	for the	fol-
  lowing conditions:

  [EINVAL]
      The ss parameter is not a	null pointer, and the ss_flags member pointed
      to by ss contains	flags other than SS_DISABLE.

  [ENOMEM]
      The size of the alternate	stack area is less than	MINSIGSTKSZ.

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

SEE ALSO

  Functions:  getcontext(2), sigaction(2)

  Routines:  sigsetjmp(3)

  Files:  ucontext(5)

  Standards:  standards(5)