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

#include <sys/types.h>
#include <sys/errno.h>
#include <sys/vmuser.h>
#include <sys/uio.h>
int vm_move (vmid, offset, limit, rw, uio)
vmid_t  vmid;      
caddr_t  offset;    
int  limit;        
enum uio_rw  rw;  
struct uio * uio;      

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.

Remarque: Le service de noyau Vm_move ne prend pas en charge l'utilisation des descripteurs de mémoire croisée.

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.