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

NUME

       remap_file_pages - creează o cartografiere neliniară a fișierelor

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #define _GNU_SOURCE         /* A se vedea feature_test_macros(7) */
       #include <sys/mman.h>

       [[depreciat]] int remap_file_pages(void addr[.size], size_t size,
                                           int prot, size_t pgoff, int flags);

DESCRIERE

       Notă:  acest  apel  de  sistem  a  fost  marcat  ca fiind depreciat începând cu Linux 3.16. În Linux 4.0,
       implementarea a fost înlocuită cu o emulație în nucleu mai lentă. Acele câteva aplicații care  utilizează
       acest apel de sistem ar trebui să ia în considerare migrarea către alternative. Această modificare a fost
       făcută  deoarece  codul  nucleului  pentru  acest  apel  de  sistem era complex și se crede că este puțin
       utilizat sau poate chiar complet nefolosit. Deși a avut unele cazuri de utilizare în aplicațiile de  baze
       de date pe sisteme pe 32 de biți, aceste cazuri de utilizare nu există pe sistemele pe 64 de biți.

       Apelul  de  sistem  remap_file_pages()  este  utilizat  pentru  a crea o cartografiere neliniară, adică o
       cartografiere în care paginile fișierului sunt cartografiate  într-o  ordine  nesecvențială  în  memorie.
       Avantajul  utilizării  remap_file_pages()  față  de  utilizarea  apelurilor repetate la mmap(2) constă în
       faptul că prima abordare nu necesită ca nucleul să creeze structuri de  date  suplimentare  VMA  (Virtual
       Memory Area).

       Pentru a crea o cartografiere neliniară, efectuăm următorii pași:

       1. Utilizați  mmap(2)  pentru  a  crea o cartografiere (care este inițial liniară). Această cartografiere
          trebuie să fie creată cu indicatorul MAP_SHARED.

       2. Utilizați unul sau mai multe apeluri la remap_file_pages()  pentru  a  rearanja  corespondența  dintre
          paginile  din cartografiere și paginile din fișier.  Este posibil să se cartografieze aceeași pagină a
          unui fișier în mai multe locații din regiunea cartografiată.

       Argumentele pgoff și size specifică regiunea din fișier care trebuie realocată în cadrul  cartografierii:
       pgoff  este  un  interval  al fișierului în unități de dimensiune a paginii de sistem; size este lungimea
       regiunii în octeți.

       Argumentul addr are două scopuri. În primul rând, identifică cartografierea ale cărei pagini dorim să  le
       rearanjăm.  Astfel,  addr  trebuie  să  fie  o  adresă  care să se încadreze într-o regiune cartografiată
       anterior printr-un apel la mmap(2). În al doilea rând, addr specifică  adresa  la  care  vor  fi  plasate
       paginile de fișier identificate de pgoff și size.

       Valorile  specificate  în  addr  și  size trebuie să fie multiplii dimensiunii paginii de sistem. Dacă nu
       sunt, atunci nucleul rotunjește valorile both down la cel mai apropiat multiplu al dimensiunii paginii.

       Argumentul prot trebuie să fie specificat ca fiind 0.

       Argumentul prot trebuie să fie specificat ca fiind 0. Argumentul flags are  aceeași  semnificație  ca  și
       pentru mmap(2), dar toate fanioanele, altele decât MAP_NONBLOCK, sunt ignorate.

VALOAREA RETURNATĂ

       În  caz  de  succes,  remap_file_pages() returnează 0. În caz de eroare, se returnează -1, iar errno este
       configurată pentru a indica eroarea.

ERORI-IEȘIRE

       EINVAL addr nu se referă la o cartografiere validă creată cu indicatorul MAP_SHARED.

       EINVAL addr, size, prot, sau pgoff nu este valid.

STANDARDE

       Linux.

ISTORIC

       Linux 2.5.46, glibc 2.3.3.

NOTE

       Începând cu Linux 2.6.23, remap_file_pages()  creează  cartografieri  neliniare  numai  pe  sistemele  de
       fișiere  în  memorie,  cum  ar  fi tmpfs(5), hugetlbfs sau ramfs. Pe sistemele de fișiere cu o memorie de
       rezervă, remap_file_pages() nu este mult mai eficient decât utilizarea mmap(2) pentru a ajusta  ce  părți
       ale fișierului sunt cartografiate la ce adrese.

CONSULTAȚI ȘI

       getpagesize(2), mmap(2), mmap2(2), mprotect(2), mremap(2), msync(2)

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                                remap_file_pages(2)