Loading

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