Scroll to navigation

SET_THREAD_AREA(2) Руководство программиста Linux SET_THREAD_AREA(2)

ИМЯ

set_thread_area - назначение области локального хранилища нити TLS

ОБЗОР

#include <linux/unistd.h>
#include <asm/ldt.h>

int set_thread_area(struct user_desc *u_info);

ОПИСАНИЕ

set_thread_area() устанавливает элемент в массиве области локального хранилища текущей нити (TLS, Thread Local Storage). Индекс элемента массива TLS, устанавливаемого set_thread_area(), соответствует значению u_info->entry_number, переданного пользователем. Если это значение находится в допустимых пределах, то set_thread_area() копирует соответствующий описатель, на который указывает u_info, в массив TLS нити.

Когда set_thread_area() передаётся entry_number со значением -1, то используется свободный элемент TLS. Если set_thread_area() находит свободный элемент TLS, то значение u_info->entry_number устанавливается после возврата для показа того, какой же элемент был изменён.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

При нормальном завершении работы set_thread_area() возвращает 0 и -1 в случае проблем, а также присваивает errno соответствующее значение.

ОШИБКИ

u_info->entry_number вне допустимых границ.
u_info является некорректным указателем.
Невозможно найти свободный элемент TLS.

ВЕРСИИ

Вызов set_thread_area() впервые появился в Linux 2.5.29.

СООТВЕТСТВИЕ СТАНДАРТАМ

set_thread_area() есть только в Linux, и он не должен использоваться в переносимых программах.

ЗАМЕЧАНИЯ

В glibc нет обёртки для данного системного вызова; запускайте его с помощью syscall(2).

СМОТРИТЕ ТАКЖЕ

get_thread_area(2)

2008-11-27 Linux