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.

Anmerkung: Der Kernel-Service vm_uiomove unterstützt die Verwendung von speicherübergreifenden Deskriptoren nicht.

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.