Provided by: manpages-dev_3.54-1ubuntu1_all bug

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.

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 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.54 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/.