GNU/Linux |
CentOS 5.1 |
|
![]() |
set_thread_area(2) |
![]() |
set_thread_area − Set a Thread Local Storage (TLS) area
#include
<linux/unistd.h>
#include <asm/ldt.h>
int set_thread_area (struct user_desc *u_info);
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.
set_thread_area() returns 0 on success, and −1 on failure, with errno set appropriately.
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. |
set_thread_area() is Linux specific and should not be used in programs that are intended to be portable.
A version of set_thread_area() first appeared in Linux 2.5.29.
get_thread_area(2).
![]() |
set_thread_area(2) | ![]() |