Service de noyau vm_writep

Objectif

Lance la page-out pour une plage de pages dans un objet de mémoire virtuelle.

Syntaxe

#include <sys/types.h>
#include <sys/errno.h>
#include <sys/vmuser.h>
int vm_writep ( vmid,  pfirst,  npages)
vmid_t  vmid;
int pfirst;
int npages;

Descriptif

Le service de noyau Vm_writep lance la page-out pour la plage de pages spécifiée dans l'objet de mémoire virtuelle. L'entrée-sortie est lancée uniquement pour les pages modifiées. Les pages non modifiées sont laissées en mémoire, mais leurs bits de référence sont définis sur 0.

L'appelant peut attendre la fin des entrées-sorties lancées par cet appel et les appels précédents en appelant le service de noyau Vms_iowait .

Remarque: La sous-routine Vm_writep n'est pas prise en charge pour une utilisation sur de grandes pages.

Paramètres

Article Descriptif
vmid Indique l'identificateur de l'objet de mémoire virtuelle.
Ppremière Indique le premier numéro de page à partir duquel la page doit commencer.
Pages Indique le nombre de pages pour lesquelles l'opération de mise en page doit être effectuée.

Environnement d'exécution

Le service de noyau Vm_writep peut être appelé à partir de Environnement de processus uniquement.

Valeurs renvoyées

Article Descriptif
0 % Indique que l'exécution a réussi.
EINVAL Indique l'une des erreurs suivantes:
  • Ppremière = 0 et Pages = 0.
  • L'ID objet de mémoire virtuelle n'est pas valide.
  • La page de démarrage est négative.
  • Le nombre de pages est négatif.
  • La plage de pages dépasse la taille de l'objet de mémoire virtuelle.
  • Une ou plusieurs grandes pages se trouvent dans la plage de pages cible.