NOM
modify_ldt - Lire/écrire la LDT
SYNOPSIS
#include <sys/types.h>
int modify_ldt(int func, void *ptr, unsigned long bytecount);
modify_ldt() lit ou écrit la table des descripteurs locaux (Local
Descriptor Table) du processus. La LDT est une table de gestion mémoire
par processus utilisée par les processeurs i386. Pour plus
d’information sur cette table, se reporter au manuel Intel 386.
Quand func vaut 0, modify_ldt() lit la LDT et la place dans la mémoire
pointée par ptr. Le nombre d’octets lus est le minimum entre bytecount
et la vraie taille de la LDT.
Quand func vaut 1, modify_ldt() modifie une entrée de la LDT. ptr
pointe sur une structure user_desc et bytecount doit être égal à la
taille de cette structure.
La structure user_desc est déclarée dans <asm/ldt.h> comme suit :
struct user_desc {
unsigned int entry_number;
unsigned long base_addr;
unsigned int limit;
unsigned int seg_32bit:1;
unsigned int contents:2;
unsigned int read_exec_only:1;
unsigned int limit_in_pages:1;
unsigned int seg_not_present:1;
unsigned int useable:1;
};
Sous Linux 2.4 et les versions précédentes, cette structure s’appelait
modify_ldt_ldt_s.
VALEUR RENVOYÉE
S’il réussit modify_ldt() renvoie soit le nombre d’octets lus soit 0
(écriture). En cas d’échec -1 est renvoyé et errno contient le code
d’erreur.
ERREURS
EFAULT ptr pointe en dehors de l’espace d’adressage accessible.
EINVAL ptr est nul, ou func vaut 1 et bytecount n’est pas égal à la
taille de la structure modify_ldt_ldt_s, ou func vaut 1 et la
nouvelle entrée de LDT a des valeurs illégales.
ENOSYS func n’est ni 0 ni 1.
CONFORMITÉ
Cet appel système est spécifique à Linux et ne doit pas être employé
dans des programmes destinés à être portables.
NOTES
La glibc ne fournit pas de fonction autour de cet appel système ;
utilisez syscall(2) pour l’appeler.
VOIR AUSSI
vm86(2)
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
http://www.kernel.org/doc/man-pages/.
TRADUCTION
Cette page de manuel a été traduite et mise à jour par Christophe
Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
disposition sur http://manpagesfr.free.fr/.
Les mises à jour et corrections de la version présente dans Debian sont
directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
francophone de traduction de Debian.
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande « man -L C <section> <page_de_man> ».