cacheflush(2) System Calls Manual cacheflush(2) NUME cacheflush - terge coninutul cache-ului de instruciuni i/sau de date BIBLIOTECA Biblioteca C standard (libc, -lc) SINOPSIS #include int cacheflush(int nbytes; void addr[nbytes], int nbytes, int cache); Nota: Pe unele arhitecturi, nu exista o funcie de invaluire glibc pentru acest apel de sistem; a se vedea seciunea VERSIUNI. DESCRIERE cacheflush() golete coninutul cache-urilor indicate pentru adresele utilizatorului din intervalul addr pana la (addr+nbytes-1). cache poate fi unul dintre urmatoarele: ICACHE Golete memoria cache de instruciuni. DCACHE Scrie inapoi in memorie i invalideaza liniile de memorie cache valide afectate. BCACHE La fel ca (ICACHE|DCACHE). VALOAREA RETURNATA In caz de succes, cacheflush() returneaza 0; in caz contrar, returneaza -1 i configureaza errno pentru a indica eroarea. ERORI-IEIRE EFAULT O parte sau intregul interval de adrese de la addr la (addr+nbytes-1) nu este accesibil. EINVAL cache nu este unul dintre ICACHE, DCACHE sau BCACHE (dar consultai seciunea ERORI). VERSIUNI cacheflush() nu ar trebui sa fie utilizat in programe destinate sa fie portabile. Pe Linux, acest apel a aparut pentru prima data pe arhitectura MIPS, dar in prezent, Linux ofera un apel de sistem cacheflush() pe alte cateva arhitecturi, dar cu argumente diferite. Variante specifice arhitecturii glibc ofera o funcie de invaluire pentru acest apel de sistem, cu prototipul prezentat in seciunea REZUMAT, pentru urmatoarele arhitecturi: ARC, CSKY, MIPS i NIOS2. Pe alte arhitecturi, Linux ofera acest apel de sistem, cu argumente diferite: M68K: int cacheflush(unsigned long addr, int scope, int cache, unsigned long size); SH: int cacheflush(unsigned long addr, unsigned long size, int op); NDS32: int cacheflush(unsigned int start, unsigned int end, int cache); Pe arhitecturile de mai sus, glibc nu ofera o funcie de invaluire pentru acest apel de sistem; apelai-l folosind syscall(2). Alternativa GCC Cu excepia cazului in care avei nevoie de controlul mai fin pe care il ofera acest apel de sistem, probabil ca dorii sa utilizai funcia incorporata in GCC __builtin___clear_cache(), care ofera o interfaa portabila pe toate platformele acceptate de GCC i de compilatoarele compatibile: void __builtin___clear_cache(void *begin, void *end); Pe platformele care nu necesita curaarea cache-ului de instruciuni, __builtin___clear_cache() nu are niciun efect. Nota: La unele compilatoare compatibile cu GCC, prototipul acestei funcii integrate utilizeaza char * in loc de void * pentru parametri. 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 incat existena acestui apel in sistemele de operare MIPS este un standard de-facto. ERORI Nucleele Linux mai vechi decat Linux 2.6.11 ignora argumentele addr i nbytes, ceea ce face ca aceasta funcie sa fie destul de costisitoare. Prin urmare, intreaga memorie cache este intotdeauna golita. Aceasta funcie se comporta intotdeauna ca i cum BCACHE ar fi fost trecut pentru argumentul cache i nu efectueaza nicio verificare a erorilor la argumentul cache. TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.15 28 iunie 2025 cacheflush(2)