.\" -*- coding: UTF-8 -*-
.\" Written by Ralf Baechle (ralf@waldorf-gmbh.de),
.\" Copyright (c) 1994, 1995 Waldorf GMBH
.\"
.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, see
.\" .
.\" %%%LICENSE_END
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH CACHEFLUSH 2 "21. Dezember 2020" Linux Linux\-Programmierhandbuch
.SH BEZEICHNUNG
cacheflush \- Befehls\- und/oder Datencache(s) zurückschreiben und freigeben
.SH ÜBERSICHT
.nf
\fB#include \fP
.PP
\fBint cacheflush(char *\fP\fIAdr\fP\fB, int \fP\fIaByte\fP\fB, int \fP\fIcache\fP\fB);\fP
.fi
.PP
\fIHinweis:\fP Auf einigen Architekturen gibt es keinen Glibc\-Wrapper für
diesen Systemaufruf; siehe ANMERKUNGEN.
.SH BESCHREIBUNG
\fBcacheflush\fP() schreibt den Inhalt der angegebenen Cache(s) für den
Benutzeradressbereich \fIAdr\fP bis \fI(Adr+aByte\-1)\fP in den Speicher
zurück. \fIcache\fP ist eine der folgenden Konstanten:
.TP
\fBICACHE\fP
den Befehlscache freigeben.
.TP
\fBDCACHE\fP
zurück in den Speicher schreiben und die betroffenen Bereiche des Caches für
ungültig erklären, also freigeben.
.TP
\fBBCACHE\fP
identisch mit \fB(ICACHE\fP|\fIDCACHE)\fP.
.SH RÜCKGABEWERT
\fBcacheflush\fP() gibt 0 bei Erfolg oder \-1 im Fehlerfall zurück. Sollten
Fehler erkannt werden, ist der Fehler in \fIerrno\fP kodiert.
.SH FEHLER
.TP
\fBEFAULT\fP
Auf den Adressbereich von \fIAdr\fP bis \fI(Adr+aByte\-1)\fP kann (ganz oder
teilweise) nicht zugegriffen werden.
.TP
\fBEINVAL\fP
Dem Parameter \fIcache\fP ist keiner der Werte \fBICACHE\fP, \fBDCACHE\fP oder
\fBBCACHE\fP zugewiesen (siehe aber auch FEHLER).
.SH "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.
.SS Vorsicht
\fBcacheflush\fP() 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 \fBcacheflush\fP()
aber auch auf einigen anderen Architekturen zur Verfügung, allerdings mit
anderen Argumenten.
.SH ANMERKUNGEN
.SS "Architektur\-spezifische Varianten"
Glibc stellt einen Wrapper für die Architekturen ARC, CSKY, MIPS und NIOS2
für diesen Systemaufruf bereit, dessen Prototyp in der ÜBERSICHT gezeigt
ist.
.PP
Auf einigen anderen Architekturen stellt Linux diesen Systemaufruf mit
anderen Argumenten bereit:
.TP
M68K:
.nf
\fBint cacheflush(unsigned long \fP\fIAdr\fP\fB, int \fP\fIscope\fP\fB, int \fP\fIcache\fP\fB,\fP
\fB unsigned long \fP\fIlaenge\fP\fB);\fP
.fi
.TP
SH:
.nf
\fBint cacheflush(unsigned long \fP\fIAdr\fP\fB, unsigned long \fP\fIlaenge\fP\fB, int \fP\fIop\fP\fB);\fP
.fi
.TP
NDS32:
.nf
\fBint cacheflush(unsigned int \fP\fIstart\fP\fB, unsigned int \fP\fIende\fP\fB, int \fP\fIcache\fP\fB);\fP
.fi
.PP
Auf den obigen Architekturen stellt Glibc keinen Wrapper für diesen
Systemaufruf bereit; rufen Sie ihn mittels \fBsyscall\fP(2) auf.
.SS GCC\-Alternative
Sie werden wahrscheinlich die in GCC eingebaute Funktion
\fB__builtin___clear_cache\fP() verwenden wollen, die eine portierbare
Schnittstelle über die von GCC und kompatiblen Compilern unterstützten
Plattformen bereitstellt, außer Sie benötigen die feinere Steuerung, die
dieser Systemaufruf bereitstellt.
.PP
.in +4n
.EX
\fBvoid __builtin___clear_cache(void *\fP\fIanfang\fP\fB, void *\fP\fIende\fP\fB);\fP
.EE
.in
.PP
Auf Plattformen, bei denen der Instruktionszwischenspeicher nicht
rausgeschrieben werden muss, hat \fB__builtin___clear_cache\fP() keine
Auswirkung.
.PP
\fIHinweis\fP: Auf einigen GCC\-kompatiblen Compilern verwendet der Prototyp für
diese eingebaute Funktion \fIchar *\fP anstatt \fIvoid *\fP für die Parameter.
.SH FEHLER
Linux\-Kernel älter als Version 2.6.11 ignorieren die Argumente \fIAdr\fP und
\fIaByte\fP. Dadurch wird die Funktion relativ aufwändig. Daher wird immer der
ganze Cache freigegeben.
.PP
Die Funktion verhält sich immer so, als ob \fBBCACHE\fP als Argument für
\fIcache\fP übergeben worden wäre und führt keine Fehlerprüfung auf dem
Argument \fIcache\fP durch.
.SH KOLOPHON
Diese Seite ist Teil der Veröffentlichung 5.10 des Projekts
Linux\-\fIman\-pages\fP. 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/.
.SH ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von
Ralf Baechle ,
Martin Eberhard Schauer
und
Helge Kreutzmann
erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License Version 3
.UE
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
.MT debian-l10n-german@\:lists.\:debian.\:org
Mailingliste der Übersetzer
.ME .