s390_guarded_storage(2)

NUME
s390_guarded_storage - operații cu facilitatea de stocare protejată a Arhitecturii/z

BIBLIOTECA
Biblioteca C standard (libc, -lc)

SINOPSIS
#include <asm/guarded_storage.h> /* Definiția constantelor GS_* */
#include <sys/syscall.h>         /* Definiția constantelor SYS_* */
#include <unistd.h>

int syscall(SYS_s390_guarded_storage, int command,
            struct gs_cb *gs_cb);

Notă: glibc nu oferă nicio funcție învăluitoare pentru s390_guarded_storage(), ceea ce impune utilizarea lui syscall(2).

DESCRIERE
Apelul de sistem s390_guarded_storage() permite utilizarea facilității de stocare protejată „Guarded Storage Facility” (o caracteristică specifică arhitecturii z/Architecture) pentru procesele din spațiul utilizatorului.

Facilitatea de stocare protejată este o caracteristică hardware care permite marcarea a până la 64 de regiuni de memorie (începând cu z14) ca fiind protejate; citirea unui indicator cu o instrucțiune nou introdusă „Load Guarded” (LGG) sau „Load Logical and Shift Guarded” (LLGFSG) va determina o verificare a intervalului de valori pentru valoarea încărcată și va invoca un gestionar în spațiul utilizatorului (configurat anterior) dacă una dintre regiunile protejate este afectată.

Argumentul command indică funcția care trebuie executată. Sunt acceptate următoarele comenzi:

GS_ENABLE
    Activează facilitatea de stocare protejată pentru sarcina apelantă. Conținutul inițial al blocului de control al memoriei protejate va fi tot zero. După activare, codul din spațiul utilizatorului poate utiliza instrucțiunea „Load Guarded Storage Controls” (LGSC) (sau funcția load_gs_cb() furnizată în antetul asm/guarded_storage.h) pentru a încărca un bloc de control arbitrar. În timp ce o sarcină este activată, nucleul va salva și va restabili conținutul de apelare al registrelor de stocare protejată la comutarea contextului.

GS_DISABLE
    Dezactivează utilizarea facilității de stocare protejată pentru sarcina apelantă. Nucleul va înceta să salveze și să restaureze conținutul registrelor de stocare protejată, conținutul specific sarcinii din aceste registre se pierde.

GS_SET_BC_CB
    Stabilește un bloc de control de stocare cu protecție de difuzare la cel furnizat în argumentul gs_cb. Această operație este apelată pentru fiecare fir de execuție și asociază un anumit bloc de control al stocării protejate cu sarcina apelantă. Acest bloc de control va fi utilizat în comanda de difuzare GS_BROADCAST.

GS_CLEAR_BC_CB
    Șterge blocul de control al stocării protejate la difuzare. Blocul de control al stocării protejate nu va mai avea asocierea stabilită prin comanda GS_SET_BC_CB.

GS_BROADCAST
    Trimite o transmisiune către toți frații firului de execuție ai sarcinii apelante. Fiecare frate care a stabilit un bloc de control de stocare protejată prin difuzare va încărca acest bloc de control și va fi activat pentru stocare protejată. Blocul de control al stocării protejate prin difuzare este consumat; o a doua difuzare fără o reîmprospătare a blocului de control stocat cu GS_SET_BC_CB nu va avea niciun efect.

Argumentul gs_cb specifică adresa unei structuri de bloc de control al stocării protejate și este utilizat în prezent numai de comanda GS_SET_BC_CB; toate celelalte comenzi menționate mai sus ignoră acest argument.

VALOAREA RETURNATĂ
În caz de succes, valoarea de returnare a s390_guarded_storage() este 0.

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

ERORI-IEȘIRE

EFAULT
    command a fost GS_SET_BC_CB și copierea structurii blocului de control al stocării protejate indicat de argumentul gs_cb a eșuat.

EINVAL
    Valoarea furnizată în argumentul command nu a fost validă.

ENOMEM
    command a fost unul dintre GS_ENABLE sau GS_SET_BC_CB, iar alocarea unui nou bloc de control de stocare protejată a eșuat.

EOPNOTSUPP
    Facilitatea de stocare protejată nu este asigurată de hardware.

STANDARDE
Linux pe s390.

ISTORIC
Linux 4.12, System z14.

NOTE
Descrierea facilității de stocare protejată, împreună cu instrucțiunile aferente și cu schemele structurilor „Guarded Storage Control Block” și „Guarded Storage Event Parameter List” sunt disponibile în „z/Architecture Principles of Operations” începând cu ediția a douăsprezecea.

Structura gs_cb are un câmp gsepla (Guarded Storage Event Parameter List Address), care este un indicator din spațiul utilizatorului către o structură „Guarded Storage Event Parameter List” (care conține adresa gestionarului de evenimente menționat anterior în câmpul gseha), iar structura sa este disponibilă ca o definiție a tipului de structură gs_epl în antetul asm/guarded_storage.h

CONSULTAȚI ȘI
syscall(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 (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.