vm_write-Kernel-Service
Zweck
Leitet die Auslagerungsoperation für einen Seitenbereich im Adressraum ein.
Syntax
Beschreibung
Der VM-Schreibvorgang -Kernel-Service leitet die Auslagerungsoperation für Seiten ein, die den Adressbereich überschneiden (vaddr), vaddr + nbyte).
Wenn der Parameter Erzwingen ungleich null ist, werden geänderte Seiten auf Platte geschrieben, unabhängig davon, wie kürzlich sie geschrieben wurden.
Auslagerungsvorgang wird für jede geänderte Seite eingeleitet. Eine unveränderte Seite verbleibt im Speicher, deren Referenzbit auf 0 gesetzt ist. Dadurch wird die unveränderte Seite zu einem Kandidaten für den Seitenersetzungsalgorithmus.
Der Aufrufende muss Schreibzugriff auf die angegebenen Seiten haben.
Die eingeleitete Ein-/Ausgabe ist asynchron. Der Kernel-Service vms_iowait kann aufgerufen werden, um auf den Abschluss der Ein-/Ausgabe zu warten.
Parameter
| Element | Beschreibung |
|---|---|
| Vaddr | Gibt die Adresse des ersten Byte des Seitenbereichs an, für den eine Einlagerung gewünscht wird. |
| NByte | Gibt die Anzahl der Byte ab dem Byte an, das durch den Parameter Vaddr angegeben wird. Dieser Parameter darf nicht negativ sein. Alle Bytes müssen sich in demselben virtuellen Speicherobjekt befinden. |
| force | Gibt ein Flag an, das angibt, dass eine geänderte Seite geschrieben werden soll, unabhängig davon, wann sie zuletzt geschrieben wurde. |
Ausführungsumgebung
Der Kernel-Service VM-Schreibvorgang kann nur über Prozessumgebung aufgerufen werden.
Rückgabewerte
| Element | Beschreibung |
|---|---|
| 0 | Erfolgreiche Ausführung. |
| EINVAL | Gibt einen der folgenden vier Fehler an:
|
| EACCES | Gibt an, dass der Zugriff das Schreiben nicht zulässt. |
| EIO | Zeigt einen permanenten E/A-Fehler an. |