Rechercher une page de manuel
arch_prctl
Langue: ru
Version: 2003-02-02 (fedora - 25/11/07)
Section: 2 (Appels système)
ИМЯ
arch_prctl - установить состояние треда, специфичное для архитектурыОБЗОР
#include <asm/prctl.h>#include <sys/prctl.h>
int arch_prctl(int code, unsigned long addr)
ОПИСАНИЕ
Функция arch_prctl устанавливает специфичное для данной архитектуры состояние процесса или треда. Параметр code выбирает подфункцию и передаёт ей аргумент addr .Подфункции для x86-64:
- ARCH_SET_FS
- Установливает 64биную базу для регистра FS в значение addr.
- ARCH_GET_FS
- Возращает значение 64биной базы для регистра FS текущего треда в unsigned long на который указывает параметр addr .
- ARCH_SET_GS
- Установливает 64биную базу для регистра GS в значение addr.
- ARCH_GET_GS
- Возращает значение 64биной базы для регистра GS текущего треда в unsigned long на который указывает параметр address .
ЗАМЕЧАНИЯ
arch_prctl поддерживается в настоящий момент только в Linux/x86-64 для 64битных программ.64биная база изменяется, когда загружается новый 32битный селектор сегмента.
ARCH_SET_GS запрещается в некоторых ядрах.
Переключение контекста для 64битных баз сегментов является более экономичным. Использование селектора сегмента, устанавливаемого через один из LDT с помощью modify_ldt(2) или с помощью системного вызова set_thread_area(2) в ядре 2.5, может быть более быстрой альтернативой для установки 32биной базы. Вызов arch_prctl нужен только, когда вы хотите установить базы, которые больше чем 4GB. Память в первых 2GB адресного пространтсва может быть выделена с помощью mmap(2) при использоавании флага MAP_32BIT .
Прототипов для arch_prctl в glibc 2.2 не существуюет. Вы должны объявлять эту функцию сами. Это будет исправлено в будущих версиях glibc.
Регистр FS может быть уже использован библиотекой тредов.
ОШИБКИ
- EINVAL
- code не является допустимым кодом подфункции.
- EPERM
- addr находится за пределами адресного пространтсва.
- EFAULT
- addr указывает на невыделенный адрес или за пределы адресного пространства процесса.
АВТОР
Страницу руководства написал Andi Kleen.СООТВЕТСТВИЕ СТАНДАРТАМ
Вызов arch_prctl является расширением для Linux/x86-64 и не должен использоваться в программах, которые задумываются как переносимые.СМОТРИ ТАКЖЕ
mmap(2), modify_ldt(2), prctl(2), set_thread_area(2)Руководство программиста AMD X86-64
ПЕРЕВОД
Перевёл с английского Виктор Вислобоков <corochoone@perm.ru> 2003Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre