Provided by: manpages-posix-dev_2.16-1_all bug

NAME

       pthread_attr_getstackaddr, pthread_attr_setstackaddr - get and set the stackaddr attribute

SYNOPSIS

       #include <pthread.h>

       int pthread_attr_getstackaddr(const pthread_attr_t *restrict attr,
              void **restrict stackaddr);
       int pthread_attr_setstackaddr(pthread_attr_t *attr, void *stackaddr);

DESCRIPTION

       The  pthread_attr_getstackaddr()  and pthread_attr_setstackaddr() functions, respectively,
       shall get and set the thread creation stackaddr attribute in the attr object.

       The stackaddr attribute specifies the location of storage  to  be  used  for  the  created
       thread's stack. The size of the storage shall be at least {PTHREAD_STACK_MIN}.

RETURN VALUE

       Upon  successful  completion,  pthread_attr_getstackaddr() and pthread_attr_setstackaddr()
       shall return a value of 0; otherwise, an error number shall be returned  to  indicate  the
       error.

       The pthread_attr_getstackaddr() function stores the stackaddr attribute value in stackaddr
       if successful.

ERRORS

       No errors are defined.

       These functions shall not return an error code of [EINTR].

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       The specification of the  stackaddr  attribute  presents  several  ambiguities  that  make
       portable  use  of  these  interfaces  impossible.  The  description  of the single address
       parameter as a "stack" does not specify a particular relationship between the address  and
       the  "stack"  implied  by  that  address. For example, the address may be taken as the low
       memory address of a buffer intended for use as a stack, or it may be taken as the  address
       to  be  used as the initial stack pointer register value for the new thread. These two are
       not the same except for a machine on which the stack grows "up" from low memory  to  high,
       and  on  which a "push" operation first stores the value in memory and then increments the
       stack pointer register. Further, on a machine where  the  stack  grows  "down"  from  high
       memory  to  low,  interpretation  of  the  address  as the "low memory" address requires a
       determination of the intended size of the stack. IEEE Std 1003.1-2001 has  introduced  the
       new  interfaces  pthread_attr_setstack()  and  pthread_attr_getstack()  to  resolve  these
       ambiguities.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       pthread_attr_destroy()  ,  pthread_attr_getdetachstate()   ,   pthread_attr_getstack()   ,
       pthread_attr_getstacksize()  ,  pthread_attr_setstack()  ,  pthread_create()  ,  the  Base
       Definitions volume of IEEE Std 1003.1-2001, <limits.h>, <pthread.h>

COPYRIGHT

       Portions of this text are reprinted and  reproduced  in  electronic  form  from  IEEE  Std
       1003.1,  2003  Edition,  Standard  for Information Technology -- Portable Operating System
       Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2003  by
       the  Institute  of  Electrical  and  Electronics Engineers, Inc and The Open Group. In the
       event of any discrepancy between this version and the original IEEE  and  The  Open  Group
       Standard,  the  original  IEEE  and  The  Open Group Standard is the referee document. The
       original Standard can be obtained online at http://www.opengroup.org/unix/online.html .