pub struct StackSpecification {
pub addr: *mut u8,
pub size: usize,
}Expand description
Spécification d’une pile pour la création d’un thread (CLONE_VM).
Le pointeur addr désigne l’adresse de base (octet le plus bas) d’une
région mémoire valide d’au moins size octets, propriété de l’appelant
(typiquement issue d’un mmap anonyme). Le kernel positionne le pointeur
de pile de l’enfant au sommet de la région (addr + size) ; sur les
deux architectures Air (x86_64, aarch64) la pile croît vers le bas.
Répartition des rôles. La création de thread se fait via
clone_thread, qui
exige Some(StackSpecification) et valide en amont l’alignement
(addr et size multiples de 16) et la taille minimale. Le wrapper de fork
clone3 — dont le modèle de
retour CloneResult::Child est unsound sur une pile neuve — rejette
au contraire Some(StackSpecification) avec
Errno::EINVAL (cf. la doc de clone_thread
pour la justification kernel : un retour Rust normal sur une pile neuve lit
des ordures).
Fields§
§addr: *mut u8Adresse de base de la pile.
size: usizeTaille de la pile, en octets.
Trait Implementations§
Source§impl Clone for StackSpecification
impl Clone for StackSpecification
Source§fn clone(&self) -> StackSpecification
fn clone(&self) -> StackSpecification
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more