MODIFY_LDT(2)

NOM
modify_ldt - Lire / ecrire la LDT.

SYNOPSIS
#include <linux/ldt.h>
#include <linux/unistd.h>

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

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

DESCRIPTION
modify_ldt lit ou ecrit la table des descripteurs locaux (Local Descriptor Table) du processus. La LDT est une table de gestion memoire par processus utilisee 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 memoire pointee 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 entree de la LDT. ptr pointe sur une structure modify_ldt_ldt_s et bytecount doit etre egal a la taille de cette structure.

VALEUR RENVOYEE
S'il reussit modify_ldt renvoie soit le nombre d'octets lus soit 0 (ecriture). En cas d'echec -1 est renvoye et errno contient le code d'erreur.

ERREURS

ENOSYS
    func n'est ni 0 ni 1.

EINVAL
    ptr est nul, ou bytecount n'est pas egal a la taille de la structure modify_ldt_ldt_s, ou la nouvelle entree de LDT a des valeurs illegales.

EFAULT
    ptr pointe en dehors de l'espace d'adressage accessible.

CONFORMITE
Cet appel-systeme est specifique a Linux et ne doit pas etre employe dans des programmes concus pour etre portables.

VOIR AUSSI
vm86(2)