PR_SET_TAGGED_ADDR_CTRL(2const)

BEZEICHNUNG
PR_SET_TAGGED_ADDR_CTRL - Steuert die Übergabe von markierten Adressen im Anwendungsraum an den Kernel

BIBLIOTHEK
Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT
#include <linux/prctl.h>  /* Definition der PR_*-Konstanten */
#include <sys/prctl.h>

int prctl(PR_SET_TAGGED_ADDR_CTRL, long Modus, 0L, 0L, 0L);

BESCHREIBUNG
Steuert die Unterstützung für die Übergabe markierter Adressen im Anwendungsraum an den Kernel (d.h. Adressen, bei denen die Bits 56–63 nicht alle Null sind).

Die Stärke der Unterstützung wird durch Unterstützung ausgewählt, die einer der folgenden Werte annehmen kann:

0L  Bei Adressen, die zum Zwecke der Derefenzierung durch den Kernel übergeben werden, muss die Markierung entfernt werden.

PR_TAGGED_ADDR_ENABLE
    Adressen, die zum Zwecke der Derefenzierung durch den Kernel übergeben werden, dürfen, bis auf die nachfolgend zusammengefassten Ausnahmen, markiert werden.

Im Erfolgsfall wird der in Modus angegebene Modus für den aufrufenden Thread gesetzt.

Falls prctl(PR_SET_TAGGED_ADDR_CTRL, 0L, 0L, 0L, 0L) mit EINVAL fehlschlägt, dann muss von allen an den Kernel übergebenen Adressen die Markierung entfernt werden.

Unabhängig vom gesetzten Modus muss bei Adressen, die an bestimmte Schnittstellen übergeben werden, die Markierung immer entfernt werden:

•   brk(2), mmap(2), shmat(2), shmdt(2) und das Argument neue_Adresse von mremap(2).

    (Vor Linux 5.6 akzeptierten diese markierte Adressen, aber das Verhalten könnte anders als erwartet sein. Verlassen Sie sich nicht darauf.)

•   »Polymorphe« Schnittstellen, die Zeiger auf beliebige, auf void * oder andere generische Typen umgewandelte Typen akzeptieren, insbesondere prctl(), ioctl(2) und im allgemeinen setsockopt(2) (nur bestimmte setsockopt(2)-Optionen erlauben markierte Adressen).

Die Liste der Ausschlüsse kann kleiner werden, wenn von einer Kernelversion zu einer neueren Kernelversion gewechselt wird. Zur Rückwärtskompatibilität kann der Kernel einige Garantien übernehmen, aber zum Zweck von neuer Software ist die Auswirkung der Übergabe von markierten Adressen an diese Schnittstellen nicht spezifiziert.

Der durch diesen Aufruf gesetzte Modus wird über fork(2) und clone(2) vererbt. Der Modus wird durch execve(2) auf 0 zurückgesetzt (d.h. markierte Adressen sind in der Benutzer-/Kernel-ABI nicht erlaubt).

RÜCKGABEWERT
Bei Erfolg wird 0 zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno gesetzt, um den Fehler anzuzeigen.

FEHLER

EINVAL
    Modus ist ungültig oder wird nicht unterstützt.

EINVAL
    Diese Funktionalität ist über /proc/sys/abi/tagged_addr_disabled deaktiviert.

DATEIEN

/proc/sys/abi/tagged_addr_disabled

STANDARDS
Linux. Nur Arm64.

GESCHICHTE
Linux 5.4 (Arm64).

WARNUNGEN
Dieser Aufruf ist primär zur Verwendung durch die Laufzeitumgebung gedacht. Wird andernorts PR_SET_TAGGED_ADDR_CTRL erfolgreich aufgerufen, kann dies den aufrufenden Prozess zum Absturz bringen. Die Bedingungen, um ihn sicher zu verwenden, sind komplex und systemabhängig. Verwenden Sie ihn nur, wenn Sie genau wissen, was Sie machen.

SIEHE AUCH
prctl(2), PR_SET_TAGGED_ADDR_CTRL(2const)

Weitere Informationen finden Sie in der Kernelquelldatei Documentation/arm64/tagged-address-abi.rst.

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer (debian-l10n-german@lists.debian.org).