_stack_grow - express an intention to extend the stack


     #include <ucontext.h>

     void *_stack_grow(void *addr);


     The _stack_grow() function indicates to the system that  the
     stack  is   about to be extended to the address specified by
     addr. If extending the stack to this address  would  violate
     the  stack boundaries as retreived by stack_getbounds(3C), a
     SIGSEGV is raised.

     If the disposition of SIGSEGV is  SIG_DFL,  the  process  is
     terminated and a core dump is generated.  If the application
     has installed its own SIGSEGV handler to run on  the  alter-
     nate  signal  stack,  the  signal  information passed to the
     handler will be such that a call to stack_violation(3C) with
     these parameters returns 1.

     The addr argument is a biased stack pointer value.  See  the
     Solaris 64-bit Developer's Guide.

     This function has no effect if the specified address,  addr,
     is within the bounds of the current stack.


     If the _stack_grow() function  succeeds and does not  detect
     a stack violation, it returns addr.


     No errors are defined.


     The _stack_grow() function  does  not  actually  adjust  the
     stack  pointer register. The caller is responsible for mani-
     pulating  the  stack  pointer  register  once  _stack_grow()

     The _stack_grow() function  is  typically  invoked  by  code
     created  by  the  compilation environment prior to executing
     code that modifies the stack pointer. It can also be used by
     hand-written   assembly  routines  to  allocate  stack-based
     storage safely.


     See attributes(5) for descriptions of the  following  attri-

    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    | Interface Stability         | Evolving                    |
    | MT-Level                    | Async-Signal-Safe           |


     stack_getbounds(3C),                     stack_inbounds(3C),
     stack_violation(3C), attributes(5)

     Solaris 64-bit Developer's Guide

Man(1) output converted with man2html