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 .