Linux

CentOS 5.3

arch_prctl(2)


ARCH_PRCTL

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.3.5. 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

EFAULT

adr pointe vers une adresse non affectée ou est en dehors de l’espace d’adressage.

EINVAL

code n’est pas une sous-commande valide.

EPERM

adr pointe en dehors de l’espace d’adressage du processus.

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 conçu pour être portable.

VOIR AUSSI

mmap(2), modify_ldt(2), prctl(2), set_thread_area(2)

Manuel du programmeur AMD X86-64

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 18 juillet 2003 et révisée le 14 août 2006.

L’équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 2 arch_prctl ». N’hésitez pas à signaler à l’auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


arch_prctl(2)