table of contents
- bookworm-backports 4.24.0-2~bpo12+1
- testing 4.24.0-2
- unstable 4.24.0-2
cacheflush(2) | System Calls Manual | cacheflush(2) |
NUME¶
cacheflush - șterge conținutul cache-ului de instrucțiuni și/sau de date
BIBLIOTECA¶
Biblioteca C standard (libc, -lc)
SINOPSIS¶
#include <sys/cachectl.h>
int cacheflush(void addr[.nbytes], int nbytes, int cache);
Notă: Pe unele arhitecturi, nu există o funcție de învăluire glibc pentru acest apel de sistem; a se vedea secțiunea NOTE.
DESCRIERE¶
cacheflush() golește conținutul cache-urilor indicate pentru adresele utilizatorului din intervalul addr până la (addr+nbytes-1). cache poate fi unul dintre următoarele:
VALOAREA RETURNATö
În caz de succes, cacheflush() returnează 0; în caz contrar, returnează -1 și configurează errno pentru a indica eroarea.
ERORI-IEȘIRE¶
STANDARDE¶
Din punct de vedere istoric, acest apel de sistem a fost disponibil pe toate variantele MIPS UNIX, inclusiv RISC/os, IRIX, Ultrix, NetBSD, OpenBSD și FreeBSD (și, de asemenea, pe unele sisteme de operare MIPS non-UNIX), astfel încât existența acestui apel în sistemele de operare MIPS este un standard de-facto.
Avertisment¶
cacheflush() nu ar trebui să fie utilizat în programe destinate să fie portabile. Pe Linux, acest apel a apărut pentru prima dată pe arhitectura MIPS, dar în prezent, Linux oferă un apel de sistem cacheflush() pe alte câteva arhitecturi, dar cu argumente diferite.
NOTE¶
Variante specifice arhitecturii¶
glibc oferă o funcție de învăluire pentru acest apel de sistem, cu prototipul prezentat în secțiunea REZUMAT, pentru următoarele arhitecturi: ARC, CSKY, MIPS și NIOS2.
Pe alte arhitecturi, Linux oferă acest apel de sistem, cu argumente diferite:
- M68K:
-
int cacheflush(unsigned long addr, int scope, int cache, unsigned long len);
- SH:
-
int cacheflush(unsigned long addr, unsigned long len, int op);
- NDS32:
-
int cacheflush(unsigned int start, unsigned int end, int cache);
Pe arhitecturile de mai sus, glibc nu oferă o funcție de învăluire pentru acest apel de sistem; apelați-l folosind syscall(2).
Alternativa GCC¶
Cu excepția cazului în care aveți nevoie de controlul mai fin pe care îl oferă acest apel de sistem, probabil că doriți să utilizați funcția încorporată în GCC __builtin___clear_cache(), care oferă o interfață portabilă pe toate platformele acceptate de GCC și de compilatoarele compatibile:
void __builtin___clear_cache(void *begin, void *end);
Pe platformele care nu necesită curățarea cache-ului de instrucțiuni, __builtin___clear_cache() nu are niciun efect.
Notă: La unele compilatoare compatibile cu GCC, prototipul acestei funcții integrate utilizează char * în loc de void * pentru parametri.
ERORI¶
Nucleele Linux mai vechi decât Linux 2.6.11 ignoră argumentele addr și nbytes, ceea ce face ca această funcție să fie destul de costisitoare. Prin urmare, întreaga memorie cache este întotdeauna golită.
Această funcție se comportă întotdeauna ca și cum BCACHE ar fi fost trecut pentru argumentul cache și nu efectuează nicio verificare a erorilor la argumentul cache.
TRADUCERE¶
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.
5 februarie 2023 | Pagini de manual de Linux 6.03 |