Linux |
CentOS 5.3 |
|
modify_ldt(2) |
modify_ldt − Lire/écrire la LDT. |
#include <sys/types.h> #include <linux/unistd.h> #include <errno.h> _syscall3(int, modify_ldt, int, func, void *, ptr, unsigned long, bytecount) /* L’utilisation de syscall(2) est préférable ; voir intro(2) */ 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 modify_ldt_ldt_s et bytecount doit être égal à la taille de cette structure. |
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. |
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. |
Cet appel système est spécifique à Linux et ne doit pas être employé dans des programmes conçus pour être portables. |
vm86(2) |
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 25 juillet 2006. 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=en man 2 modify_ldt ». N’hésitez pas à signaler à l’auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel. |
modify_ldt(2) |