|
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) ; |
Note | |
---|---|
There is no glibc wrapper for this system call; see NOTES. |
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.
u_info−>entry_number
is out of bounds.
u_info
is an
invalid pointer.
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.
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).