SET_THREAD_AREA
Section: Linux Programmer's Manual (2)
Updated: 2008-11-27
Index
Return to Main Contents
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);
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()
corresponds 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 function;
call it using
syscall(2).
SEE ALSO
get_thread_area(2)
COLOPHON
This page is part of release 3.22 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/.