vm_writep Kernel-Service

Zweck

Leitet die Auslagerungsoperation für einen Seitenbereich in einem virtuellen Speicherobjekt ein.

Syntax

#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;

Beschreibung

Der vm_writep (Endpunkt) -Kernel-Service leitet die Auslagerungsoperation für den angegebenen Seitenbereich im virtuellen Speicherobjekt ein. Die Ein-/Ausgabe wird nur für geänderte Seiten eingeleitet. Unveränderte Seiten bleiben im Speicher, aber ihre Referenzbits werden auf 0 gesetzt.

Der Aufrufende kann warten, bis die von diesem und früheren Aufrufen eingeleitete Ein-/Ausgabe abgeschlossen ist, indem er den vms_iowait -Kernel-Service aufruft.

Anmerkung: Die Subroutine vm_writep (Endpunkt) wird nicht für die Verwendung auf großen Seiten unterstützt.

Parameter

Element Beschreibung
vmid Gibt die ID für das virtuelle Speicherobjekt an.
Pfirst Gibt die erste Seitenzahl an, bei der die Einlagerung beginnen soll.
npages Gibt die Anzahl der Seiten an, für die die Auslagerungsoperation ausgeführt werden soll.

Ausführungsumgebung

Der Kernel-Service vm_writep (Endpunkt) kann nur über Prozessumgebung aufgerufen werden.

Rückgabewerte

Element Beschreibung
0 Erfolgreiche Ausführung.
EINVAL Gibt einen der folgenden Fehler an:
  • Pfirst = 0 und npages = 0
  • Die ID des virtuellen Speicherobjekts ist ungültig.
  • Die Startseite ist negativ.
  • Die Anzahl der Seiten ist negativ.
  • Der Seitenbereich überschreitet die Größe des virtuellen Speicherobjekts.
  • Mindestens eine große Seite liegt im Zielseitenbereich.