Provided by: manpages-ro-dev_4.27.0-1_all bug

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:

       ICACHE Golește memoria cache de instrucțiuni.

       DCACHE Scrie înapoi în memorie și invalidează liniile de memorie cache valide afectate.

       BCACHE La fel ca (ICACHE|DCACHE).

VALOAREA RETURNATĂ

       În caz de succes, cacheflush() returnează 0; în caz contrar, returnează -1 și configurează errno pentru a
       indica eroarea.

ERORI-IEȘIRE

       EFAULT O parte sau întregul interval de adrese de la addr la (addr+nbytes-1) nu este accesibil.

       EINVAL cache nu este unul dintre ICACHE, DCACHE sau BCACHE (dar consultați secțiunea ERORI).

VERSIUNI

       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.

   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.

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.

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.

Pagini de manual de Linux 6.9.1                    2 mai 2024                                      cacheflush(2)