pub fn mmap_anonymous(
length: usize,
prot: ProtectionFlags,
flags: MapFlags,
) -> Result<Mapping, Errno>Expand description
Crée un mapping mémoire anonyme (sans fichier sous-jacent).
Wrappeur de mmap(2) avec MAP_ANONYMOUS | MAP_PRIVATE ajoutés
automatiquement par le wrapper. Le flag [MapFlags::ANONYMOUS] est
toujours positionné en interne — l’appelant n’a pas besoin de le
passer dans flags.
La durée de vie du mapping est gérée par le Mapping retourné :
munmap est appelé automatiquement à la destruction.
§Parameters
length: taille souhaitée en octets. Le kernel arrondit à la page supérieure ; la taille effective est accessible viaMapping::length().prot: protections d’accès initiales.flags: flags de comportement (sansANONYMOUSniPRIVATE, ajoutés automatiquement).
§Errors
EINVAL:lengthest zéro, ou flags incompatibles (SHARED | PRIVATE).ENOMEM: mémoire virtuelle ou physique insuffisante.EACCES: permissions refusées par le kernel.
§Examples
use air_sys_syscall::mem::mmap_anonymous;
use air_sys_types::mem::{MapFlags, ProtectionFlags};
let mut m = mmap_anonymous(
4096,
ProtectionFlags::READ | ProtectionFlags::WRITE,
MapFlags::PRIVATE,
).expect("mmap_anonymous");
// munmap appelé automatiquement à la fin du scope