1*97d58a65Sjsg.\" $OpenBSD: pthread_attr_setstackaddr.3,v 1.13 2022/07/17 09:53:40 jsg Exp $ 27682efa6Sd.\" Manual page derived from TOG's UNIX98 documentation. 3084a1742Sjmc.\" 4084a1742Sjmc.\" David Leonard, 2000. Public Domain. 5084a1742Sjmc.\" 6*97d58a65Sjsg.Dd $Mdocdate: July 17 2022 $ 77682efa6Sd.Dt PTHREAD_ATTR_SETSTACKADDR 3 87682efa6Sd.Os 97682efa6Sd.Sh NAME 107682efa6Sd.Nm pthread_attr_setstackaddr , 117682efa6Sd.Nm pthread_attr_getstackaddr 127682efa6Sd.Nd set and get stackaddr attribute 137682efa6Sd.Sh SYNOPSIS 1486f9d4cdStedu.In pthread.h 157682efa6Sd.Ft int 167682efa6Sd.Fn pthread_attr_setstackaddr "pthread_attr_t *attr" "void *stackaddr" 177682efa6Sd.Ft int 186ae9c702Sbrad.Fn pthread_attr_getstackaddr "const pthread_attr_t *attr" "void **stackaddr" 197682efa6Sd.Sh DESCRIPTION 207682efa6SdThe functions 217682efa6Sd.Fn pthread_attr_setstackaddr 227682efa6Sdand 237682efa6Sd.Fn pthread_attr_getstackaddr , 247682efa6Sdrespectively, set and get the thread 257682efa6Sdcreation 267682efa6Sd.Va stackaddr 277682efa6Sdattribute in the 287682efa6Sd.Fa attr 297682efa6Sdobject. 307682efa6Sd.Pp 317682efa6SdThe 327682efa6Sd.Va stackaddr 337682efa6Sdattribute specifies the location of storage to be 34ee997aeaSmpechused for the created thread's stack. 35ee997aeaSmpechThe size of the storage is at least 367682efa6Sd.Dv PTHREAD_STACK_MIN . 37003f5e42Sderaadt.Pp 38003f5e42SderaadtOn 39003f5e42Sderaadt.Ox 40003f5e42Sderaadtthe stack must have been allocated using 41*97d58a65Sjsg.Xr mmap 2 42003f5e42Sderaadtwith the 43003f5e42Sderaadt.Va MAP_STACK 44003f5e42Sderaadtattribute. 45003f5e42SderaadtOtherwise, use of the stack will cause SIGABRT faults. 46003f5e42Sderaadt.Xr pthread_attr_setstack 3 47003f5e42Sderaadtcan avoid this problem because it knows the size of the stack to remap. 48ba0a4b2fSjmc.Sh RETURN VALUES 497682efa6SdUpon successful completion, 507682efa6Sd.Fn pthread_attr_setstackaddr 517682efa6Sdand 527682efa6Sd.Fn pthread_attr_getstackaddr 53ba0a4b2fSjmcreturn a value of 0. 54ba0a4b2fSjmcOtherwise, an error number is returned to indicate the error. 557682efa6Sd.Pp 567682efa6SdThe 577682efa6Sd.Fn pthread_attr_getstackaddr 587682efa6Sdfunction stores the 597682efa6Sd.Va stackaddr 607682efa6Sdattribute value in 617682efa6Sd.Fa stackaddr 627682efa6Sdif successful. 637682efa6Sd.Sh ERRORS 647682efa6SdNo errors are defined. 657682efa6Sd.Pp 667682efa6SdThese functions will not return an error code of 677682efa6Sd.Bq Er EINTR . 687682efa6Sd.Sh SEE ALSO 697682efa6Sd.Xr pthread_attr_init 3 , 707682efa6Sd.Xr pthread_attr_setdetachstate 3 , 7191063d07Sguenther.Xr pthread_attr_setguardsize 3 , 7211ddadc0Sguenther.Xr pthread_attr_setstack 3 , 737682efa6Sd.Xr pthread_attr_setstacksize 3 , 747682efa6Sd.Xr pthread_create 3 , 757682efa6Sd.Xr pthreads 3 767682efa6Sd.Sh STANDARDS 7711ddadc0Sguenther.Fn pthread_attr_setstackaddr 7811ddadc0Sguentherand 7911ddadc0Sguenther.Fn pthread_attr_getstackaddr 8011ddadc0Sguentherconform to ISO/IEC 9945-1 ANSI/IEEE 817682efa6Sd.Pq Dq Tn POSIX 827682efa6SdStd 1003.1 Second Edition 1996-07-12. 83