Scroll to navigation

CACHEFLUSH(2) Linux-Programmierhandbuch CACHEFLUSH(2)

BEZEICHNUNG

cacheflush - Befehls- und/oder Datencache(s) zurückschreiben und freigeben

ÜBERSICHT

#include <asm/cachectl.h>
int cacheflush(char *Adr, int aByte, int cache);

BESCHREIBUNG

cacheflush() schreibt den Inhalt der angegebenen Cache(s) für den Benutzeradressbereich Adr bis (Adr+aByte-1) in den Speicher zurück. cache ist eine der folgenden Konstanten:
ICACHE
den Befehlscache freigeben.
DCACHE
zurück in den Speicher schreiben und die betroffenen Bereiche des Caches für ungültig erklären, also freigeben.
BCACHE
identisch mit (ICACHE|DCACHE).

RÜCKGABEWERT

cacheflush() gibt 0 bei Erfolg oder -1 im Fehlerfall zurück. Sollten Fehler erkannt werden, ist der Fehler in errno kodiert.

FEHLER

EFAULT
Auf den Adressbereich von Adr bis (Adr+aByte-1) kann (ganz oder teilweise) nicht zugegriffen werden.
EINVAL
Dem Parameter cache ist keiner der Werte ICACHE, DCACHE oder BCACHE zugewiesen (siehe aber auch FEHLER).

KONFORM ZU

Historisch war dieser Systemaufruf auf allen MIPS-UNIX-Varianten, inklusive RISC/os, IRIX, Ultrix, NetBSD, OpenBSD und FreeBSD (und auf einigen nicht-UNIX-MIPS-Betriebssystemen) verfügbar, so dass die Existenz dieses Aufrufs in MIPS-Betriebssystemen der de-facto-Standard ist.

Vorsicht

cacheflush() sollte nicht in Programmen verwandt werden, die portabel sein sollen. Unter Linux erschien dieser Aufruf zuerst auf der MIPS-Architektur, heutzutage stellt Linux einen Systemaufruf cacheflush() aber auch auf einigen anderen Architekturen zur Verfügung, allerdings mit anderen Argumenten.

FEHLER

Linux-Kernel älter als Version 2.6.11 ignorieren die Argumente Adr und aByte. Dadurch wird die Funktion relativ aufwändig. Daher wird immer der ganze Cache freigegeben.

Die Funktion verhält sich immer so, als ob BCACHE als Argument für cache übergeben worden wäre und führt keine Fehlerprüfung auf dem Argument cache durch.

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 5.04 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Ralf Baechle <ralf@waldorf-gmbh.de>, Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> und Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.

15. September 2017 Linux