Skip to main content

set_fs

Function set_fs 

Source
pub unsafe fn set_fs(base: usize) -> Result<(), Errno>
Expand description

Fixe la base du registre de segment %fs (registre TLS) du thread appelant.

Sert à air-rt pour ancrer le TCB du thread principal au registre TLS (ADR-049 D1/D2). N’existe que sur x86_64.

§Safety

Hautement unsafe. Après cet appel, tout accès thread_local du thread (y compris ceux insérés par le compilateur / la bibliothèque standard si elle est liée) résout via base. L’appelant doit garantir que base pointe une image TLS valide et correctement initialisée pour ce thread (sinon corruption mémoire silencieuse de tout l’état par-thread). Passer une base erronée est un comportement indéfini du programme, pas seulement de cette fonction.

§Errors

  • [Errno::EINVAL] / [Errno::EPERM] : base rejetée par le kernel (p. ex. adresse non canonique). Dans ce cas le kernel ne modifie pas %fs.