man arch_prctl (Appels systèmes) - Fixe l'état spécifique à l'architecture.
NOM
arch_prctl - Fixe l'état spécifique à l'architecture.
SYNOPSIS
#include <asm/prctl.h> #include <sys/prctl.h> int arch_prctl(int code, unsigned long adr)
DESCRIPTION
La fonction arch_prctl fixe l'état spécifique à l'architecture pour le thread ou le processus. code sélectionne une sous-fonction et lui passe l'argument addr.
Les sous-fonctions pour les architectures x86-64 sont :
- ARCH_SET_FS
- Remplit la base 64-bits pour le registre FS avec adr.
- ARCH_GET_FS
- Renvoie la base 64-bits pour le registre FS du thread en cours dans la variable unsigned long pointée par le paramètre adr.
- ARCH_SET_GS
- Remplit la base 64-bits pour le registre GS avec addr.
- ARCH_GET_GS
- Renvoie la base 64-bits pour le registre GS du thread en cours dans la variable unsigned long pointée par le paramètre adr.
NOTES
arch_prctl n'est seulement supporté sur Linux/x86-64 pour les programmes 64-bits.
La base 64-bits change lorsqu'un nouveau selecteur de segment 32-bits est chargé.
ARCH_SET_GS est inactif dans certains noyaux.
Les changements de contextes pour les bases 64-bits sont assez coûteux. Il peut être plus rapide de fixer une base 32-bits avec un sélecteur de segment en fixant une LDT avec modify_ldt(2) ou en utilisant l'appel-système set_thread_area(2) des noyaux 2.5. arch_prctl n'est utile que si vous désirez fixer des bases plus grandes que 4Go. La mémoire dans les premiers 2 Go d'adressage peut être allouée en utilisant mmap(2) avec l'attribut. MAP_32BIT.
Il n'y a pas de prototype pour arch_prctl Dans la GlibC 2.2. Vous devez le déclarer vous-même. Ceci sera corrigé dans les futures versions de la GlibC.
FS peut être déjà utilisé par la bibliothèque de multi-threading.
ERREURS
- EINVAL
- code n'est pas une sous-commande valide.
- EPERM
- adr pointe en dehors de l'espace d'adressage du processus.
- EFAULT
- adr pointe vers une adresse non affectée ou est en dehors de l'espace d'adressage.
AUTEUR
Page de manuel écrite par Andi Kleen.
CONFORMITÉ
arch_prctl est une extension Linux/x86-64 et ne doit pas être employée dans un programme portable.
VOIR AUSSI
mmap(2), modify_ldt(2), prctl(2), set_thread_area(2) Manuel du programmeur AMD X86-64
TRADUCTION
Christophe Blaess, 1996-2003.