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()
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.
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 generally
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.74 of the Linux
man-pages project. A
description of the project, information about reporting bugs, and the latest
version of this page, can be found at
http://www.kernel.org/doc/man-pages/.