mctl(3) (BSD Compatibility Package) mctl(3)
NAME
mctl - Steuerung der Speicherverwaltung
SYNTAX
/usr/ucb/cc [flag ...] file ... -lucb
#include <sys/types.h>
#include <sys/mman.h>
mctl(caddrt addr, sizet len, int function, void *arg);
BESCHREIBUNG
mctl wendet verschiedene Steuerfunktionen auf Speicherseiten an, die
auf den für den Adreßbereich [addr, addr + len) eingerichteten Abbil-
dungen gekennzeichnet sind. Die durchzuführende Funktion wird durch
das Argument function angegeben. Die gültigen Funktionen sind in
mman.h wie folgt definiert:
MCLOCK
Die Seiten im Bereich im Speicher sperren. Diese Funktion unter-
stützt die Funktion mlock. Nähere Angaben zur Semantik und Ver-
wendung siehe mlock(3C). Das Argument arg wird ignoriert.
MCLOCKAS
Die Seiten im Adreßbereich im Speicher sperren. Diese Funktion
unterstützt die Funktion mlockall. Nähere Angaben zur Semantik
und Verwendung siehe mlockall(3C). Die Argumente addr und len
werden ignoriert. Das Argument arg ist eine Ganzzahl, die aus
folgenden Flags erstellt wird:
MCLCURRENT Aktuelle Abbildungen sperren
MCLFUTURE Weitere Abbildungen sperren
MCSYNC
Die Seiten im Bereich einschließlich des zugehörigen Sicherungs-
speichers synchronisieren. Optional können Cache-Kopien ungültig
gemacht werden. Diese Funktion unterstützt die Funktion msync.
Nähere Angaben zur Semantik und Verwendung siehe msync(3C). Mit
dem Argument arg wird das Argument flags für msync dargestellt.
Es wird aus einem Operator OR aus folgenden Werten aufgebaut:
MSSYNC Synchronisiertes Schreiben
MSASYNC Sofortige Rückkehr
MSINVALIDATE Abbildungen ungültig machen
MSASYNC kehrt zurück, nachdem alle E/A-Operationen geplant sind.
MSSYNC kehrt erst wieder zurück, wenn alle E/A-Operationen been-
det sind. Geben Sie entweder MSASYNC oder MSSYNC an.
MSINVALIDATE macht alle Cache-Kopien von Speicherdaten ungültig,
so daß sie beim nächsten Verweis erneut aus dem permanenten Spei-
cherplatz des Objekts abgerufen werden müssen.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
mctl(3) (BSD Compatibility Package) mctl(3)
MCUNLOCK
Die Sperre der Seiten im Bereich aufheben. Diese Funktion unter-
stützt die Funktion munlock. Nähere Angaben zur Semantik und Ver-
wendung siehe munlock [mlock(3C)]. Das Argument arg wird igno-
riert.
MCUNLOCKAS
Die Sperre des Adreßbereichs im Speicher und die Sperren aller
aktuellen Abbildungen aufheben. Diese Funktion unterstützt die
Funktion munlockall. Die Argumente addr und len müssen den Wert 0
haben. Das Argument arg wird ignoriert.
RÜCKGABEWERT
mctl gibt bei erfolgreicher Ausführung 0 und bei einem Fehler -1
zurück.
DIAGNOSE
mctl schlägt bei folgenden Bedingungen fehl:
EAGAIN Ein Teil oder der gesamte Speicher, der durch die Operation
ausgewiesen wurde, konnte aufgrund unzureichender Systemres-
sourcen nicht gesperrt werden.
EBUSY MSINVALIDATE wurde angegeben, und eine oder mehrere Seiten
sind im Speicher gesperrt.
EINVAL addr ist kein Vielfaches der von getpagesize zurückgegebenen
Seitengröße.
EINVAL addr und/oder len haben bei der Angabe von MCLOCKAS oder
MCUNLOCKAS nicht den Wert 0.
EINVAL arg ist kein gültiges Argument für die angegebene Funktion.
EIO Beim Lesen aus oder dem Schreiben in das Dateisystem trat
ein E/A-Fehler auf.
ENOMEM Adressen im Bereich [addr, addr + len) sind für den Adreßbe-
reich eines Prozesses ungültig oder geben eine oder mehrere
Seiten an, die nicht im Speicher abgebildet sind.
EPERM Die effektive BenutzerID für den Prozeß ist nicht der Super-
user, und es wurde eine der Funktionen MCLOCK, MCLOCKAS,
MCUNLOCK oder MCUNLOCKAS angegeben.
SIEHE AUCH
mmap(2), getpagesize(3), mlock(3C), mlockall(3C), msync(3C).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98