1 .\" Copyright 2014 Garrett D'Amore <garrett@damore.org>
   2 .\" Copyright (c) 2008, Sun Microsystems, Inc.  All Rights Reserved.
   3 .\" Copyright (c) 2001, the Institute of Electrical and Electronics Engineers, Inc. and The Open Group. All Rights Reserved.
   4 .\" Copyright 1991, 1992, 1994, The X/Open Company Ltd.
   5 .\" Sun Microsystems, Inc. gratefully acknowledges The Open Group for permission to reproduce portions of its copyrighted documentation. Original documentation from The Open Group can be obtained online at
   6 .\" http://www.opengroup.org/bookstore/.
   7 .\" The Institute of Electrical and Electronics Engineers and The Open Group, have given us permission to reprint portions of their documentation. In the following statement, the phrase "this text" refers to portions of the system documentation. Portions of this text are reprinted and reproduced in electronic form in the Sun OS Reference Manual, from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. In the event of any discrepancy between these versions 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.
   8 .\"  This notice shall appear on any product containing this material.
   9 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
  10 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
  11 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
  12 .Dd "Jul 22, 2014"
  13 .Dt PTHREAD_ATTR_GETSTACKADDR 3C
  14 .Os
  15 .Sh NAME
  16 .Nm pthread_attr_getstackaddr ,
  17 .Nm pthread_attr_setstackaddr
  18 .Nd get or set stackaddr attribute
  19 .Sh SYNOPSIS
  20 .In pthread.h
  21 .Ft int
  22 .Fo pthread_attr_getstackaddr
  23 .Fa "const pthread_attr_t *restrict attr"
  24 .Fa "void **restrict stackaddr"
  25 .Fc
  26 .Ft int
  27 .Fn pthread_attr_setstackaddr "pthread_attr_t *attr" "void **stackaddr"
  28 .Sh DESCRIPTION
  29 The functions
  30 .Fn pthread_attr_setstackaddr
  31 and
  32 .Fn pthread_attr_getstackaddr ,
  33 respectively, set and get the thread creation
  34 .Fa stackaddr
  35 attribute in the
  36 .Fa attr
  37 object. The
  38 .Fa stackaddr
  39 default is
  40 .Dv NULL .
  41 See
  42 .Xr pthread_create 3C .
  43 .Lp
  44 The
  45 .Fa stackaddr
  46 attribute specifies the location of storage to be used for
  47 the created thread's stack. The size of the storage is at least
  48 .Dv PTHREAD_STACK_MIN .
  49 .Sh RETURN VALUES
  50 Upon successful completion,
  51 .Fn pthread_attr_setstackaddr
  52 and
  53 pthread_attr_getstackaddr
  54 return 0. Otherwise, an
  55 error number is returned to indicate the error.
  56 .Lp
  57 If successful, the
  58 .Fn pthread_attr_getstackaddr
  59 function stores the
  60 .Sy stackaddr
  61 attribute value in
  62 .Fa stackaddr .
  63 .Sh ERRORS
  64 The
  65 .Fn pthread_attr_setstackaddr
  66 function may fail if:
  67 .Bl -tag -width Er
  68 .It Er EINVAL
  69 The
  70 .Fa attr
  71 argument is invalid.
  72 .El
  73 .Lp
  74 The
  75 .Fn pthread_attr_getstackaddr
  76 function may fail if:
  77 .Bl -tag -width Er
  78 .It Er EINVAL
  79 Either the
  80 .Fa attr
  81 or
  82 .Fa stackaddr
  83 arguments are invalid.
  84 .El
  85 .Sh USAGE
  86 Due to ambiguities in the standard for these functions, their use is
  87 discouraged.  Instead, the
  88 .Xr pthread_attr_setstack 3C
  89 and
  90 .Xr pthread_attr_getstack 3C
  91 functions, which were introduced in
  92 .St -p1003.1-2001 ,
  93 should be used instead.
  94 .Sh INTERFACE STABILITY
  95 .Sy Obsolete Standard .
  96 .Sh MT-LEVEL
  97 .Sy MT-Safe .
  98 .Sh SEE ALSO
  99 .Xr pthread_attr_getstack 3C ,
 100 .Xr pthread_attr_init 3C ,
 101 .Xr pthread_attr_setdetachstate 3C ,
 102 .Xr pthread_attr_setstack 3C ,
 103 .Xr pthread_attr_setstacksize 3C ,
 104 .Xr pthread_create 3C ,
 105 .Xr standards 5
 106 .Sh STANDARDS
 107 The
 108 .Fn pthread_attr_setstackaddr
 109 and
 110 .Fn pthread_attr_getstackaddr
 111 functions were introduced in
 112 .St -p1003.1c-95 .
 113 They were obsoleted in
 114 .St -p1003.1-2001
 115 and removed from
 116 .St -p1003.1-2008 .