vm_setdevid Kernel-Service
Zweck
Ändert den Tabelleneintrag der Paging-Einheit für ein virtuelles Speicherobjekt.
Syntax
Parameter
| Element | Beschreibung |
|---|---|
| vmid | Gibt die ID des virtuellen Speicherobjekts an, für das der Tabelleneintrag der Paging-Einheit festgelegt werden soll. |
| Typ | Gibt den Einheitentyp an. Der Parameter Typ muss den Wert D_REMOTE haben. |
| PTR | Verweist auf die Strategieroutine des Dateisystems. |
| Flags | Reserviert. Sie müssen den Parameter Flags auf null setzen. |
Beschreibung
Der vm_setdevid -Kernel-Service bindet den Tabelleneintrag der Paging-Einheit, der der Dateisystemstrategioutine Ptrzugeordnet ist, an das virtuelle Speicherobjekt VMID. Der Tabelleneintrag der Paging-Einheit muss bereits als Typ D_REMOTE über einen vorherigen VM-Mount -Kernel-Serviceaufruf angehängt worden sein.
Nachdem das Dateisystem den vm_setdevid -Kernel-Service für ein bestimmtes virtuelles Speicherobjekt aufgerufen hat, wird die nachfolgende Ein-/Ausgabe für das Paging in die bzw. aus der neu angegebenen Paging-Einheitentabelle ausgeführt. Alle ausstehenden Ein-/Ausgabeoperationen für die Paging-Einheitentabelle, die zuvor dem virtuellen Speicherobjekt zugeordnet waren, verbleiben in der Warteschlange und werden asynchron abgeschlossen. Nachdem sie abgeschlossen sind, werden nachfolgende Paging-Ein-/Ausgabe für diese Dateiseiten in die bzw. aus der neu angegebenen Paging-Einheitentabelle ausgeführt.
Der Tabelleneintrag für die Paging-Einheit, der dem Objekt VMID bei der Eingabe für diesen Aufruf zugeordnet ist, muss gültig und vom Typ D_REMOTE sein. Alle Flags, die beim Aufruf des VM-Mount -Kernel-Service angegeben werden, müssen genau mit allen Flags übereinstimmen, die beim Aufruf des VM-Mount -Kernel-Service für den neuen Tabelleneintrag der Paging-Einheit angegeben werden.
Ausführungsumgebung
Der Kernel-Service vm_setdevid kann nur über Prozessumgebung aufgerufen werden.
Rückgabewerte
| Element | Beschreibung |
|---|---|
| 0 | Zeigt eine erfolgreiche Operation an. |
| EINVAL_VM_SETDEVID1 | Gibt an, dass der Wert VMID kein Clientsegment ist oder der Eingabetyp nicht den Wert D_REMOTE hat. |
| ENODEV_VM_SETDEVID2 | Gibt an, dass sich ein Dateisystem mit der durch den Parameter Ptr angegebenen Strategiroutine nicht in der Tabelle der Paging-Einheiten befindet. |
| EINVAL_VM_SETDEVID3 | Gibt an, dass der neue Tabelleneintrag der Paging-Einheit nicht D_REMOTE ist oder nicht gültig ist. |
| EINVAL_VM_SETDEVID4 | Gibt an, dass der Tabelleneintrag der Paging-Einheit, der dem Objekt VMID momentan zugeordnet ist, nicht D_REMOTE ist oder ungültig ist. |
| EINVAL_VM_SETDEVID5 | Gibt an, dass die VM-Mount -Flags für die aktuellen und neuen Tabelleneinträge der Paging-Einheit unterschiedlich sind. |
| EINVAL_VM_SETDEVID6 | Gibt an, dass dies auf Interruptebene aufgerufen wurde. |
| EINVAL_VM_SETDEVID7 | Gibt an, dass die Eingabemarkierungen ungleich null waren |
| EINVAL_VM_SETDEVID8 | Gibt an, dass der eingegebene VMID -Wert ungültig ist. |
Zugehörige Informationen
Der VM-Mount -Kernelservice, vm_umount -Kernelservice.
Speicher-Kernel-Services und Informationen zu Virtual Memory Manager-Schnittstellen in Programmierkonzepte für Kernelerweiterungen und Einheitenunterstützung.