modify_ldt   Début   Suivant   Sommaire   Préc.page.lue   Accueil
Section: Manuel du programmeur Linux (2)
Updated: 1er juin 2007
Sommaire  



NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
modify_ldt - Lire/écrire la LDT  



SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
#include <sys/types.h>

int modify_ldt(int func, void *ptr, unsigned long bytecount);
 



DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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éfinie ainsi dans <asm/ldt.h> :


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;
};

Dans Linux 2.4 et précédent, la structure s'appelait modify_ldt_ldt_s.  




VALEUR RENVOYÉE   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
EFAULT
ptr pointe en dehors de l'espace d'adressage accessible.
EINVAL
ptr est nul, ou bytecount n'est pas égal à la taille de la structure modify_ldt_ldt_s, ou la nouvelle entrée de LDT a des valeurs illégales.
ENOSYS
func n'est ni 0 ni 1.
 



CONFORMITÉ   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Cet appel système est spécifique à Linux et ne doit pas être employé dans des programmes conçus pour être portables.  



NOTES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
La glibc ne fournit pas d'enveloppe pour cet appel système ; appelez-le avec syscall(2).  



VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
vm86(2)  



TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 14 octobre 1996 et révisée le 29 décembre 2007.

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 modify_ldt ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


 



Sommaire   Début   Suivant   Sommaire   Préc.page.lue   Accueil
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
NOTES
VOIR AUSSI
TRADUCTION

Table des mots clés   Début   Suivant   Sommaire   Préc.page.lue   Accueil
EFAULTERREURS
EINVALERREURS
ENOSYSERREURS



Ce document a été créé par man2html suivi de man2html.pl, le 17/10/2008 17:50:49, en utilisant les pages de 'man'.
 

Valid HTML 4.01 Transitional