Skip to main content

mmap_anonymous

Function mmap_anonymous 

Source
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 via Mapping::length().
  • prot : protections d’accès initiales.
  • flags : flags de comportement (sans ANONYMOUS ni PRIVATE, ajoutés automatiquement).

§Errors

  • EINVAL : length est 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