vm_uiomove-Kernel-Service
Zweck
Verschiebt Daten zwischen einem virtuellen Speicherobjekt und einem in der uio-Struktur angegebenen Puffer.
Syntax
#include <sys/types.h>
#include <sys/errno.h>
#include <sys/vmuser.h>
#include <sys/uio.h>
int vm_uiomove (vmid, limit, rw, uio)
vmid_t vmid;
int limit;
enum uio_rw rw;
struct uio *uio;Parameter
| Element | Beschreibung |
|---|---|
| vmid | Gibt die Objekt-ID des virtuellen Speichers an. |
| limit | Gibt den Grenzwert für die Übertragungslänge an Ist dieser Parameter negativ oder 0, werden keine Byte übertragen. |
| rw | Gibt ein Lese-/Schreibflag an, das die Richtung der Bewegung angibt. Die gültigen Werte für diesen Parameter (UIO_READ, UIO_WRITE) sind in der Datei /usr/include/sys/uio.h definiert. |
| UIO | Verweist auf die Struktur UIO . |
Beschreibung
Der vm_uiomove -Kernel-Service verschiebt Daten zwischen einem virtuellen Speicherobjekt und dem Puffer, der in einer uio-Struktur angegeben ist.
Dieser Service bestimmt die für das Versetzen von Daten erforderliche virtuelle Adressierung entsprechend dem Offset im Objekt.
Der vm_uiomove -Kernel-Service ähnelt dem Uiomove -Kernel-Service, aber die Adresse für den vertrauenswürdigen Puffer wird durch den Parameter VMID und das Feld "uio_offset" der Parameter Offset anstelle einer caddr_t -Adresse angegeben. Die Offsetgröße ist ein 64-Bit-offset_t, der Dateioffsets in Clientsegmenten zulässt, die größer als 2 Gigabyte sind. vm_uiomove muss anstelle von vm_verschieben verwendet werden, wenn das Clientdateisystem Dateien unterstützt, die größer als 2 Gigabyte sind.
E/A-Fehler für Paging-Bereich und fehlender Paging-Bereich werden als Signale gemeldet.
Ausführungsumgebung
Der vm_uiomove -Kernel-Service kann nur aus der Prozessumgebung aufgerufen werden.
Rückgabewerte
| Element | Beschreibung |
|---|---|
| 0 | Zeigt eine erfolgreiche Operation an. |
| EFAULT | Zeigt eine fehlerhafte Adresse an. |
| ENOMEM | Gibt an, dass der Speicher nicht ausreicht. |
| ENOSPC | Gibt an, dass nicht genügend Plattenspeicherplatz verfügbar ist. |
| EIO | Zeigt einen E/A-Fehler an. |
Andere dateisystemspezifische globale Fehlernummer -Variablen werden vom virtuellen Dateisystem zurückgegeben, das an der Verschiebefunktion beteiligt ist.