PR_SET_TAGGED_ADDR_CTRL(2const)

NUME
PR_SET_TAGGED_ADDR_CTRL - controlează suportul pentru transmiterea adreselor etichetate din spațiul utilizatorului către nucleu

BIBLIOTECA
Biblioteca C standard (libc, -lc)

SINOPSIS
#include <linux/prctl.h>  /* Definirea constantelor PR_* */
#include <sys/prctl.h>

int prctl(PR_SET_TAGGED_ADDR_CTRL, long mode, 0L, 0L, 0L);

DESCRIERE
Controlează suportul pentru transmiterea către nucleu a adreselor etichetate din spațiul utilizatorului (de exemplu, adrese la care biții 56—63 nu sunt toți zero).

Nivelul suportului este selectat prin support, care poate fi unul dintre următoarele:

0L  Adresele care sunt pasate cu scopul de a fi dereferențiate de către nucleu trebuie să fie neetichetate.

PR_TAGGED_ADDR_ENABLE
    Adresele care sunt pasate cu scopul de a fi dereferențiate de către nucleu pot fi etichetate, cu excepțiile rezumate mai jos.

În caz de succes, modul specificat în mode este stabilit pentru firul apelant.

Dacă prctl(PR_SET_TAGGED_ADDR_CTRL, 0L, 0L, 0L, 0L) eșuează cu EINVAL, atunci toate adresele pasate către nucleu trebuie să fie neetichetate.

Indiferent de modul stabilit, adresele pasate către anumite interfețe trebuie să fie întotdeauna neetichetate:

•   brk(2), mmap(2), shmat(2), shmdt(2) și argumentul new_address din mremap(2).

    (Înainte de Linux 5.6, acestea acceptau adrese etichetate, dar comportamentul poate să nu fie cel la care vă așteptați. Nu vă bazați pe aceasta.)

•   interfețe „polimorfe” care acceptă indicatori la tipuri arbitrare exprimate într-un void * sau alt tip generic, în special prctl(), ioctl(2) și, în general, setsockopt(2) (numai anumite opțiuni specifice setsockopt(2) permit adrese etichetate).

Această listă de excluderi se poate micșora la trecerea de la o versiune de nucleu la o versiune de nucleu ulterioară. În timp ce nucleul poate oferi unele garanții din motive de compatibilitate cu versiunile anterioare, efectul transmiterii de adrese etichetate către aceste interfețe este nespecificat pentru noile programe.

Modul stabilit prin acest apel este moștenit prin fork(2) și clone(2). Modul este readus de execve(2) la 0 (adică adrese etichetate nepermise în ABI utilizator/nucleu).

VALOAREA RETURNATĂ
În caz de succes, se returnează 0. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.

ERORI-IEȘIRE

EINVAL
    mode nu este valid sau nu este acceptat.

EINVAL
    Această caracteristică este dezactivată prin /proc/sys/abi/tagged_addr_disabled.

FIȘIERE

/proc/sys/abi/tagged_addr_disabled

STANDARDE
Linux. Doar arm64.

ISTORIC
Linux 5.4 (arm64).

AVERTISMENTE
Acest apel este destinat în primul rând utilizării de către mediul de execuție. Un apel PR_SET_TAGGED_ADDR_CTRL reușit în altă parte poate bloca procesul apelant. Condițiile de utilizare în siguranță sunt complexe și depind de sistem. Nu îl utilizați decât dacă știți ce faceți.

CONSULTAȚI ȘI
prctl(2), PR_SET_TAGGED_ADDR_CTRL(2const)

Pentru mai multe informații, consultați fișierul sursă al nucleului Documentation/arm64/tagged-address-abi.rst.

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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.