xref: /illumos-gate/usr/src/man/man2/getustack.2 (revision 490fea6b98d609ce9ae1306209c80bb255b84c95)
te
Copyright (c) 2004, Sun Microsystems, Inc. All Rights Reserved.
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.
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.
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]
GETUSTACK 2 "Nov 2, 2004"
NAME
getustack, setustack - retrieve or change the address of per-LWP stack boundary information
SYNOPSIS

#include <ucontext.h>

int getustack(stack_t **spp);

int setustack(stack_t *sp);
DESCRIPTION

The getustack() function retrieves the address of per-LWP stack boundary information. The address is stored at the location pointed to by spp. If this address has not been defined using a previous call to setustack(), NULL is stored at the location pointed to by spp.

The setustack() function changes the address of the current thread's stack boundary information to the value of sp.

RETURN VALUES

Upon successful completion, these functions return 0. Otherwise, -1 is returned and errno is set to indicate the error.

ERRORS

These functions will fail if: EFAULT

The spp or sp argument does not refer to a valid address.

USAGE

Only implementors of custom threading libraries should use these functions to get and set the address of the stack bound to an internal per-thread data structure. Other users should use stack_getbounds(3C) and stack_setbounds(3C).

ATTRIBUTES

See attributes(5) for descriptions of the following attributes:

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

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