.\" -*- coding: UTF-8 -*- .\" Copyright 2021, Gabriel Krisman Bertazi .\" Copyright 2021, Michael Kerrisk .\" 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 "8. Februar 2026" "Linux man\-pages 6.17" .SH BEZEICHNUNG PR_SET_SYSCALL_USER_DISPATCH \- Setzt den Systemaufruf\-Benutzer\-Verteilungsmechanismus für den aufrufenden Thread .SH BIBLIOTHEK Standard\-C\-Bibliothek (\fIlibc\fP,\ \fI\-lc\fP) .SH ÜBERSICHT .nf \fB#include \fP /* Definition der \fBPR_*\fP\-Konstanten */ \fB#include \fP .P \fBint prctl(PR_SET_SYSCALL_USER_DISPATCH, long \fP\fIAktion\fP\fB, …);\fP .P \fBint prctl(PR_SET_SYSCALL_USER_DISPATCH, PR_SYS_DISPATCH_ON,\fP \fB unsigned long \fP\fIVersatz\fP\fB, unsigned long \fP\fIGröße\fP\fB, int8_t *\fP\fISchalter\fP\fB);\fP \fBint prctl(PR_SET_SYSCALL_USER_DISPATCH, PR_SYS_DISPATCH_OFF, 0L, 0L, 0L);\fP .fi .SH BESCHREIBUNG Konfiguriert den Systemaufruf\-Benutzer\-Verteilungsmechanismus für den aufrufenden Thread. Dieser Mechanismus ermöglicht es einer Anwendung, ausgewählt Systemaufrufe abzufangen, so dass diese in der Anwendung selbst bearbeitet werden können. Die Abfangung hat die Form eines auf den Thread gerichteten Signals \fBSIGSYS\fP, der an den Thread ausgeliefert wird, wenn er einen Systemaufruf ausführt. Falls der Systemaufruf abgefangen wird, wird er nicht vom Kernel ausgeführt. .TP \fBPR_SYS_DISPATCH_ON\fP Aktiviert diesen Mechanismus. .IP Sobald er aktiviert ist, werden weitere Systemaufrufe ausgewählt abgefangen, abhängig von der vom Anwendungsraum bereitgestellten Steuervariable. In diesem Fall identifizieren \fIVersatz\fP bzw. \fIGröße\fP den Versatz und die Größe einer einzelnen, fortlaufenden Speicherregion im Prozess\-Adressraum, aus dem die Ausführung von Systemaufrufen immer erlaubt ist, unabhängig von der Steuervariablen. (Normalerweise würde dieser Bereich den Speicherbereich enthalten, in dem sich die C\-Bibliothek befindet.) .IP \fISchalter\fP zeigt auf eine Variable, die ein schneller Schalter zum Erlauben/Blockieren von Systemaufrufausführungen ist, ohne den Extraaufwand, der von Ausführung eines weiteren Systemaufrufs benötigt wird, um die Systemaufruf\-Benutzerverteilung neu zu konfigurieren. Diese Steuervariable kann entweder auf \fBSYSCALL_DISPATCH_FILTER_BLOCK\fP gesetzt werden, um die Ausführung von Systemaufrufen zu blockieren oder auf \fBSYSCALL_DISPATCH_FILTER_ALLOW\fP, um temporär deren Ausführung zu erlauben. Diese Variable wird vom Kernel bei jedem Eintritt in Systemaufrufe überprüft und jeder unerwartete Wert wird zu diesem Zeitpunkt einen nicht abfangbaren \fBSIGSYS\fP auslösen, der die Anwendung beendet. .IP Wenn ein Systemaufruf abgefangen wurde, sendet der Kernel ein an den auslösenden Thread gerichtetes Signal \fBSIGSYS\fP. In der Struktur \fIsiginfo_t\fP werden verschiedene, dem Signal zugeordnete Felder gesetzt (Informationen hierzu in \fBsigaction\fP(2)): .RS .IP \[bu] 3 \fIsi_signo\fP wird \fBSIGSYS\fP enthalten. .IP \[bu] \fIsi_call_addr\fP wird die Adresse der Systemaufrufanweisung enthalten. .IP \[bu] \fIsi_syscall\fP und \fIsi_arch\fP werden anzeigen, welcher Systemaufruf versucht wurde. .IP \[bu] \fIsi_code\fP wird \fBSYS_USER_DISPATCH\fP enthalten. .IP \[bu] \fIsi_errno\fP wird auf 0 gesetzt. .RE .IP Der Programmzähler verhält sich so, als ob der Aufruf stattfand (d.h. der Programmzähler wird nicht auf die Systemaufrufanweisung zeigen). .IP Wenn der Signal\-Handler in den Kernel zurückkehrt, wird der Systemaufruf sofort abgeschlossen und zu dem aufrufenden Thread zurückgekehrt, ohne dass er tatsächlich ausgeführt wird. Falls notwendig (d.h. bei der Emulierung eines Systemaufrufs im Benutzerraum) sollte der Signal\-Handler den Rückgabewert des Systemaufrufs auf einen vernünftigen Wert setzen, indem er den im Argument \fIucontext\fP des Signal\-Handlers gespeicherten Registerkontext verändert. Weitere Informationen hierzu finden Sie in \fBsigaction\fP(2), \fBsigreturn\fP(2) und \fBgetcontext\fP(3). .TP \fBPR_SYS_DISPATCH_OFF\fP Der Systemaufruf\-Benutzer\-Verteilungsmechanismus ist für diesen Thread deaktiviert. .P Diese Einstellung wird nicht über \fBfork\fP(2), \fBclone\fP(2) oder \fBexecve\fP(2) hinweg erhalten. .SH RÜCKGABEWERT Bei Erfolg wird 0 zurückgegeben. Bei einem Fehler wird \-1 zurückgegeben und \fIerrno\fP gesetzt, um den Fehler anzuzeigen. .SH FEHLER .TP \fBEFAULT\fP \fISchalter\fP ist eine ungültige Adresse. .TP \fBEINVAL\fP \fIAktion\fP ist \fBPR_SYS_DISPATCH_ON\fP und der angegebene Speicherbereich ist außerhalb des Adressraums des Prozesses. .TP \fBEINVAL\fP \fIAktion\fP ist ungültig. .SH STANDARDS Linux. Nur X86. .SH GESCHICHTE .\" commit 1446e1df9eb183fdf81c3f0715402f1d7595d4 Linux 5.11 (X86). .SH "SIEHE AUCH" \fBprctl\fP(2) .P Weitere Informationen finden Sie in der Kernelquelldatei \fIDocumentation/\:admin\-guide/\:syscall\-user\-dispatch.rst\fP. .PP .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann erstellt. .PP Diese Übersetzung ist Freie Dokumentation; lesen Sie die .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. .PP Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer: .MT debian-l10n-german@lists.debian.org .ME .