table of contents
ARCH_PRCTL(2) | Manuel du programmeur Linux | ARCH_PRCTL(2) |
NOM¶
arch_prctl - Fixer l'état spécifique à l'architecture
SYNOPSIS¶
#include <asm/prctl.h>
#include <sys/prctl.h> int arch_prctl(int code, unsigned long addr); int arch_prctl(int code, unsigned long *addr);
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 ; addr est interprété comme un unsigned long pour les opérations « set », ou comme un unsigned long *, pour les opérations « get ».
Les sous‐fonctions pour l'architecture x86-64 sont :
- ARCH_SET_FS
- Remplit la base 64 bits pour le registre FS avec addr.
- ARCH_GET_FS
- Renvoie la base 64 bits pour le registre FS du thread en cours dans la variable unsigned long pointée par addr.
- 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 addr.
VALEUR RENVOYÉE¶
S'il réussit, arch_prctl() renvoie zéro. En cas d'erreur, il renvoie -1 et remplit errno avec la valeur d'erreur.
ERREURS¶
CONFORMITɶ
arch_prctl() est une extension Linux/x86-64 et ne doit pas être employée dans un programme portable.
NOTES¶
arch_prctl() n'est supporté sur Linux/x86-64 que pour les programmes 64 bits.
La base 64 bits change lorsqu'un nouveau sélecteur de segment 32 bits est chargé.
ARCH_SET_GS est inactif dans certains noyaux.
Les changements de contexte 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 et suivants. arch_prctl() n'est utile que si vous désirez fixer des bases plus grandes que 4 Go. 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.7. Vous devez le déclarer vous‐même. Ceci sera peut‐être corrigé dans les futures versions de la glibc.
FS peut être déjà utilisé par la bibliothèque de multi‐threading.
VOIR AUSSI¶
mmap(2), modify_ldt(2), prctl(2), set_thread_area(2)
Manuel du programmeur AMD X86-64
COLOPHON¶
Cette page fait partie de la publication 3.23 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse <URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <URL:http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <URL:http://alioth.debian.org/projects/perkamon/>.
Christophe Blaess <URL:http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <URL:http://manpagesfr.free.fr/> (2003-2006). Julien Cristau et l'équipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en écrivant à <perkamon-l10n-fr@lists.alioth.debian.org>.
Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».
26 décembre 2007 | Linux |