SET_THREAD_AREA(2) Linux Programmer's Manual SET_THREAD_AREA(2)
NAME
set_thread_area - set a thread local storage (TLS) area
SYNOPSIS
#include <linux/unistd.h>
#include <asm/ldt.h>
int set_thread_area(struct user_desc *u_info);
Note: There is no glibc wrapper for this system call; see NOTES.
DESCRIPTION
set_thread_area() sets an entry in the current thread's thread-local
storage (TLS) array. The TLS array entry set by set_thread_area() cor-
responds to the value of u_info->entry_number passed in by the user.
If this value is in bounds, set_thread_area() copies the TLS descriptor
pointed to by u_info into the thread's TLS array.
When set_thread_area() is passed an entry_number of -1, it uses a free
TLS entry. If set_thread_area() finds a free TLS entry, the value of
u_info->entry_number is set upon return to show which entry was
changed.
RETURN VALUE
set_thread_area() returns 0 on success, and -1 on failure, with errno
set appropriately.
ERRORS
EINVAL u_info->entry_number is out of bounds.
EFAULT u_info is an invalid pointer.
ESRCH A free TLS entry could not be located.
VERSIONS
A version of set_thread_area() first appeared in Linux 2.5.29.
CONFORMING TO
set_thread_area() is Linux-specific and should not be used in programs
that are intended to be portable.
NOTES
Glibc does not provide a wrapper for this system call, since it is gen-
erally intended only for use by threading libraries. In the unlikely
event that you want to call it directly, use syscall(2).
SEE ALSO
get_thread_area(2)
COLOPHON
This page is part of release 3.53 of the Linux man-pages project. A
description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
Linux 2012-07-13 SET_THREAD_AREA(2)