PR_SET_SYSCALL_USER_DISPATCH(2const) PR_SET_SYSCALL_USER_DISPATCH(2const) NUME PR_SET_SYSCALL_USER_DISPATCH - stabilete mecanismul de dispecerizare a utilizatorului apelului de sistem pentru firul apelant BIBLIOTECA Biblioteca C standard (libc, -lc) SINOPSIS #include /* Definirea constantelor PR_* */ #include int prctl(PR_SET_SYSCALL_USER_DISPATCH, long op, ...); int prctl(PR_SET_SYSCALL_USER_DISPATCH, PR_SYS_DISPATCH_ON, unsigned long off, unsigned long size, int8_t *switch); int prctl(PR_SET_SYSCALL_USER_DISPATCH, PR_SYS_DISPATCH_OFF, 0L, 0L, 0L); DESCRIERE Configureaza mecanismul Syscall User Dispatch pentru firul apelant. Acest mecanism permite unei aplicaii sa intercepteze selectiv apelurile sistemului astfel incat acestea sa poata fi gestionate in cadrul aplicaiei. Interceptarea ia forma unui semnal SIGSYS direcionat catre fir care este transmis firului atunci cand acesta efectueaza un apel de sistem. Daca este interceptat, apelul de sistem nu este executat de catre nucleu. PR_SYS_DISPATCH_ON Activeaza acest mecanism. Odata activate, alte apeluri sistem vor fi interceptate selectiv, in funcie de o variabila de control furnizata de spaiul utilizatorului. In acest caz, off i, respectiv, size identifica poziia i dimensiunea unei singure regiuni de memorie contigue din spaiul de adrese al procesului, din care se permite intotdeauna executarea apelurilor sistem, indiferent de variabila de control. (De obicei, aceasta zona ar include zona de memorie care conine biblioteca C). switch indica o variabila care este un comutator rapid pentru a permite/bloca executarea apelurilor de sistem fara a mai fi nevoie de un alt apel de sistem pentru a reconfigura Syscall User Dispatch. Aceasta variabila de control poate fi definita fie la SYSCALL_DISPATCH_FILTER_BLOCK pentru a bloca executarea apelurilor sistemului, fie la SYSCALL_DISPATCH_FILTER_ALLOW pentru a permite temporar executarea acestora. Aceasta valoare este verificata de nucleu la fiecare intrare a apelului de sistem, iar orice valoare neateptata va genera un SIGSYS de neatins in acel moment, omorand aplicaia. Atunci cand un apel sistem este interceptat, nucleul trimite un semnal SIGSYS direcionat catre firul declanator. Diverse campuri vor fi definite in structura siginfo_t (a se vedea sigaction(2)) asociata cu semnalul: o si_signo va conine SIGSYS. o si_call_addr va afia adresa instruciunii apelului de sistem. o si_syscall i si_arch vor indica ce apel de sistem a fost incercat. o si_code va conine SYS_USER_DISPATCH. o si_errno va fi stabilita la 0. Contorul de program va fi ca i cum apelul de sistem ar fi avut loc (adica, contorul de program nu va indica instruciunea de apel de sistem). Atunci cand gestionarul de semnal returneaza la nucleu, apelul de sistem se finalizeaza imediat i returneaza la firul apelant, fara a fi executat efectiv. Daca este necesar (de exemplu, la emularea apelului de sistem in spaiul utilizator), gestionarul de semnal ar trebui sa defineasca valoarea de returnare a apelului de sistem la o valoare corecta, prin modificarea contextului registrului stocat in argumentul ucontext al gestionarului de semnal. Consultai sigaction(2), sigreturn(2) i getcontext(3) pentru mai multe informaii. PR_SYS_DISPATCH_OFF Syscall User Dispatch este dezactivat pentru acest fir. Parametrul nu este pastrat in fork(2), clone(2) sau execve(2). VALOAREA RETURNATA In caz de succes, se returneaza 0. In caz de eroare, se returneaza -1, iar errno este configurata pentru a indica eroarea. ERORI-IEIRE EFAULT switch nu este o adresa valida. EINVAL op este PR_SYS_DISPATCH_ON i intervalul de memorie specificat este in afara spaiului de adrese al procesului. EINVAL op nu este valid. STANDARDE Linux. Doar x86. ISTORIC Linux 5.11 (x86). CONSULTAI I prctl(2) Pentru mai multe informaii, consultai fiierul sursa al nucleului Documentation/admin-guide/syscall-user-dispatch.rst TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.15 17 mai 2025 PR_SET_SYSCALL_USER_DISPATCH(2const)