.\" -*- coding: UTF-8 -*-
.\" Written by Ralf Baechle (ralf@waldorf-gmbh.de),
.\" Copyright (c) 1994, 1995 Waldorf GMBH
.\"
.\" SPDX-License-Identifier: GPL-2.0-or-later
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH cacheflush 2 "30 marca 2023 r." "Linux man\-pages 6.05.01" 
.SH NAZWA
cacheflush \- wypróżnia zawartość bufora podręcznego z instrukcjami i/lub z
danymi
.SH BIBLIOTEKA
Standardowa biblioteka C (\fIlibc\fP, \fI\-lc\fP)
.SH SKŁADNIA
.nf
\fB#include <sys/cachectl.h>\fP
.PP
\fBint cacheflush(void \fP\fIaddr\fP\fB[.\fP\fInbytes\fP\fB], int \fP\fInbytes\fP\fB, int \fP\fIcache\fP\fB);\fP
.fi
.PP
\fIUwaga\fP: Na niektórych architekturach nie istnieje opakowanie glibc dla
tego wywołania systemowego, zob. UWAGI.
.SH OPIS
\fBcacheflush\fP() wypróżnia zawartość wskazanego(\-ych) bufora(\-ów)
podręcznego(\-ych) dla adresów przestrzeni użytkownika w zakresie od \fIaddr\fP
to \fI(addr+nbytes\-1)\fP. Parametr \fIcache\fP może być jednym z:
.TP 
\fBICACHE\fP
Wypróżnia bufor z instrukcjami.
.TP 
\fBDCACHE\fP
Zapisuje z powrotem do pamięci i unieważnia dotknięte tym prawidłowe linie
buforowe.
.TP 
\fBBCACHE\fP
Identyczne z \fB(ICACHE|DCACHE)\fP.
.SH "WARTOŚĆ ZWRACANA"
\fBcacheflush\fP() zwraca 0 po pomyślnym zakończeniu. W przypadku błędu zwraca
\-1 i ustawia \fIerrno\fP wskazując jego rodzaj.
.SH BŁĘDY
.TP 
\fBEFAULT\fP
Część lub cała przestrzeń od \fIaddr\fP do \fI(addr+nbytes\-1)\fP jest niedostępna.
.TP 
\fBEINVAL\fP
\fI cache\fP nie jest jednym z \fBICACHE\fP, \fBDCACHE\fP lub \fBBCACHE\fP (lecz
zob. USTERKI).
.SH WERSJE
\fBcacheflush\fP() nie powinien być używany przez przenośne programy. W
Linuksie, wywołanie to pojawiło się początkowo na architekturze MIPS, lecz
obecnie Linux udostępnia wywołanie systemowe \fBcacheflush\fP() na niektórych z
innych architektur, lecz z odmiennymi argumentami.
.SS "Warianty na różnych architekturach"
glibc udostępnia opakowanie dla tego wywołania systemowego, z prototypem
pokazanym w SKŁADNI, dla następujących architektur: ARC, CSKY, MIPS i NIOS2.
.PP
Na niektórych z innych architektur, Linux udostępnia to wywołanie systemowe,
ale z innymi argumentami:
.TP 
M68K:
.nf
\fBint cacheflush(unsigned long \fP\fIaddr\fP\fB, int \fP\fIscope\fP\fB, int \fP\fIcache\fP\fB,\fP
\fB               unsigned long \fP\fIlen\fP\fB);\fP
.fi
.TP 
SH:
.nf
\fBint cacheflush(unsigned long \fP\fIaddr\fP\fB, unsigned long \fP\fIlen\fP\fB, int \fP\fIop\fP\fB);\fP
.fi
.TP 
NDS32:
.nf
\fBint cacheflush(unsigned int \fP\fIstart\fP\fB, unsigned int \fP\fIend\fP\fB, int \fP\fIcache\fP\fB);\fP
.fi
.PP
Na powyższych architekturach glibc nie udostępnia opakowania dla tego
wywołania systemowego; należy je wywołać za pomocą \fBsyscall\fP(2).
.SS "Alternatywa GCC"
O ile nie jest konieczne dokładniejsza kontrola udostępniania przez to
wywołanie systemowe, prawdopodobnie powinno się korzystać z wbudowanej
funkcji GCC \fB__builtin___clear_cache\fP(), która zapewnia przenośny interfejs
działający na wszystkich platformach obsługiwanych przez GCC i na
kompatybilnych kompilatorach.
.PP
.in +4n
.EX
\fBvoid __builtin___clear_cache(void *\fP\fIbegin\fP\fB, void *\fP\fIend\fP\fB);\fP
.EE
.in
.PP
Na platformach, które nie wymagają opóźniania buforów,
\fB__builtin___clear_cache\fP() nie daje efektów.
.PP
\fIUwaga\fP: Na niektórych kompilatorach kompatybilnych z GCC, prototyp tej
wbudowanej funkcji używa dla parametrów \fIchar *\fP zamiast \fIvoid *\fP.
.SH STANDARDY
Historycznie, niniejsze wywołanie systemowe było dostępne we wszystkich
wariantach uniksowych na platformie MIPS, w tym na RISC/os, IRIX, Ultrix,
NetBSD, OpenBSD i FreeBSD (oraz na niektórych nieuniksowych systemach
operacyjnych działających na MIPS), zatem istnienie tego wywołania w
MIPS\-owych systemach operacyjnych jest faktycznym standardem.
.SH USTERKI
Jądro Linux w wersji starszej niż Linux 2.6.11 ignoruje parametry \fIaddr\fP i
\fInbytes\fP, co czyni tę funkcję dość kosztowną. Dlatego zawsze wypróżniane są
wszystkie bufory.
.PP
Funkcja zachowuje się zawsze w sposób, jak gdyby argumentem \fIcache\fP był
\fBBCACHE\fP i nie dokonuje żadnego sprawdzenia pod kątem błędów parametru
\fIcache\fP.
.PP
.SH TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są:
Przemek Borys <pborys@dione.ids.pl>,
Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>
i
Michał Kułach <michal.kulach@gmail.com>
.
.PP
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach
licencji można uzyskać zapoznając się z
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License w wersji 3
.UE
lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
.PP
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy
dyskusyjnej
.MT manpages-pl-list@lists.sourceforge.net
.ME .
