Service de noyau vm_move
Objectif
Déplace les données entre un objet de mémoire virtuelle et une mémoire tampon spécifiée dans la structure Uio .
Syntaxe
Paramètres
| Article | Descriptif |
|---|---|
| vmid | Indique l'ID objet de la mémoire virtuelle. |
| position | Indique le décalage dans l'objet de mémoire virtuelle. |
| LIMITE | Indique la limite de la longueur de transfert. Si ce paramètre est négatif ou 0, aucun octet n'est transféré. |
| Rw | Indique un indicateur de lecture / écriture qui indique la direction du déplacement. Les valeurs possibles pour ce paramètre (UIO_READ, UIO_WRITE) sont définies dans le fichier /usr/include/sys/uio.h . |
| Uio | Pointe vers la structure Uio . |
Descriptif
Le service de noyau Vm_move déplace les données entre un objet de mémoire virtuelle et la mémoire tampon spécifiée dans une structure Uio .
Ce service détermine l'adressage virtuel requis pour le transfert de données en fonction du décalage dans l'objet.
Le service de noyau Vm_move est similaire au service de noyau Uiomove , mais l'adresse de la mémoire tampon sécurisée est spécifiée par les paramètres Vmid et Décalage au lieu d'une adresse Caddr_t . La taille de décalage est également limitée à la taille d'une adresse Caddr_t car les objets de mémoire virtuelle doivent être plus petits que cette taille.
Les erreurs d'E-S pour l'espace de pagination et le manque d'espace de pagination sont signalées comme des signaux.
Environnement d'exécution
Le service de noyau Vm_move peut être appelé à partir de Environnement de processus uniquement.
Valeurs renvoyées
| Article | Descriptif |
|---|---|
| 0 % | Indique une opération réussie. |
| EDÉFAUT | Indique une adresse incorrecte. |
| ENOMEM | Indique une mémoire insuffisante. |
| ENOSPC | Indique un espace disque insuffisant. |
| EIO | Indique une erreur d'E-S. |
Les autres variables globales Errno propres au système de fichiers sont renvoyées par le système de fichiers virtuel impliqué dans la fonction de déplacement.