.\" -*- coding: UTF-8 -*- .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH PR_SET_SYSCALL_USER_DISPATCH 2const "17 mai 2025" "Pagini de manual de Linux 6.15" .SH NUME PR_SET_SYSCALL_USER_DISPATCH \- stabilește mecanismul de dispecerizare a utilizatorului apelului de sistem pentru firul apelant .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH SINOPSIS .nf \fB#include \fP /* Definirea constantelor \fBPR_*\fP */ \fB#include \fP .P \fBint prctl(PR_SET_SYSCALL_USER_DISPATCH, long \fP\fIop\fP\fB, ...);\fP .P \fBint prctl(PR_SET_SYSCALL_USER_DISPATCH, PR_SYS_DISPATCH_ON,\fP \fB unsigned long \fP\fIoff\fP\fB, unsigned long \fP\fIsize\fP\fB, int8_t *\fP\fIswitch\fP\fB);\fP \fBint prctl(PR_SET_SYSCALL_USER_DISPATCH, PR_SYS_DISPATCH_OFF, 0L, 0L, 0L);\fP .fi .SH DESCRIERE Configurează mecanismul Syscall User Dispatch pentru firul apelant. Acest mecanism permite unei aplicații să intercepteze selectiv apelurile sistemului astfel încât acestea să poată fi gestionate în cadrul aplicației. Interceptarea ia forma unui semnal \fBSIGSYS\fP direcționat către fir care este transmis firului atunci când acesta efectuează un apel de sistem. Dacă este interceptat, apelul de sistem nu este executat de către nucleu. .TP \fBPR_SYS_DISPATCH_ON\fP Activează acest mecanism. .IP Odată activate, alte apeluri sistem vor fi interceptate selectiv, în funcție de o variabilă de control furnizată de spațiul utilizatorului. În acest caz, \fIoff\fP și, respectiv, \fIsize\fP identifică poziția și dimensiunea unei singure regiuni de memorie contigue din spațiul de adrese al procesului, din care se permite întotdeauna executarea apelurilor sistem, indiferent de variabila de control. (De obicei, această zonă ar include zona de memorie care conține biblioteca C). .IP \fIswitch\fP indică o variabilă care este un comutator rapid pentru a permite/bloca executarea apelurilor de sistem fără a mai fi nevoie de un alt apel de sistem pentru a reconfigura Syscall User Dispatch. Această variabilă de control poate fi definită fie la \fBSYSCALL_DISPATCH_FILTER_BLOCK\fP pentru a bloca executarea apelurilor sistemului, fie la \fBSYSCALL_DISPATCH_FILTER_ALLOW\fP pentru a permite temporar executarea acestora. Această valoare este verificată de nucleu la fiecare intrare a apelului de sistem, iar orice valoare neașteptată va genera un \fBSIGSYS\fP de neatins în acel moment, omorând aplicația. .IP Atunci când un apel sistem este interceptat, nucleul trimite un semnal \fBSIGSYS\fP direcționat către firul declanșator. Diverse câmpuri vor fi definite în structura \fIsiginfo_t\fP (a se vedea \fBsigaction\fP(2)) asociată cu semnalul: .RS .IP \[bu] 3 \fIsi_signo\fP va conține \fBSIGSYS\fP. .IP \[bu] \fIsi_call_addr\fP va afișa adresa instrucțiunii apelului de sistem. .IP \[bu] \fIsi_syscall\fP și \fIsi_arch\fP vor indica ce apel de sistem a fost încercat. .IP \[bu] \fIsi_code\fP va conține \fBSYS_USER_DISPATCH\fP. .IP \[bu] \fIsi_errno\fP va fi stabilită la 0. .RE .IP Contorul de program va fi ca și cum apelul de sistem ar fi avut loc (adică, contorul de program nu va indica instrucțiunea de apel de sistem). .IP Atunci când gestionarul de semnal returnează la nucleu, apelul de sistem se finalizează imediat și returnează la firul apelant, fără a fi executat efectiv. Dacă este necesar (de exemplu, la emularea apelului de sistem în spațiul utilizator), gestionarul de semnal ar trebui să definească valoarea de returnare a apelului de sistem la o valoare corectă, prin modificarea contextului registrului stocat în argumentul \fIucontext\fP al gestionarului de semnal. Consultați \fBsigaction\fP(2), \fBsigreturn\fP(2) și \fBgetcontext\fP(3) pentru mai multe informații. .TP \fBPR_SYS_DISPATCH_OFF\fP Syscall User Dispatch este dezactivat pentru acest fir. .P Parametrul nu este păstrat în \fBfork\fP(2), \fBclone\fP(2) sau \fBexecve\fP(2). .SH "VALOAREA RETURNATĂ" În caz de succes, se returnează 0. În caz de eroare, se returnează \-1, iar \fIerrno\fP este configurată pentru a indica eroarea. .SH ERORI\-IEȘIRE .TP \fBEFAULT\fP \fIswitch\fP nu este o adresă validă. .TP \fBEINVAL\fP \fIop\fP este \fBPR_SYS_DISPATCH_ON\fP și intervalul de memorie specificat este în afara spațiului de adrese al procesului. .TP \fBEINVAL\fP \fIop\fP nu este valid. .SH STANDARDE Linux. Doar x86. .SH ISTORIC .\" commit 1446e1df9eb183fdf81c3f0715402f1d7595d4 Linux 5.11 (x86). .SH "CONSULTAȚI ȘI" \fBprctl\fP(2) .P Pentru mai multe informații, consultați fișierul sursă al nucleului \fIDocumentation/\:admin\-guide/\:syscall\-user\-dispatch.rst\fP .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .