s390_guarded_storage(2) System Calls Manual s390_guarded_storage(2)

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

Biblioteca C standard (libc, -lc)

#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).

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:

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.
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.
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.
Ș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.
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.

Î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.

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.
Valoarea furnizată în argumentul command nu a fost validă.
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.
Facilitatea de stocare protejată nu este asigurată de hardware.

Linux pe s390.

Linux 4.12. Sistem z14.

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

syscall(2)

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.

31 octombrie 2023 Pagini de manual de Linux 6.06