Skip to main content

mremap

Function mremap 

Source
pub fn mremap(
    mapping: Mapping,
    new_len: usize,
    flags: MremapFlags,
) -> Result<Mapping, Errno>
Expand description

Redimensionne (et éventuellement déplace) un mapping existant.

Wrappeur de mremap(2). Consomme le Mapping existant et retourne un nouveau Mapping à la nouvelle adresse.

§Parameters

  • mapping : mapping source (ownership transféré).
  • new_len : nouvelle longueur souhaitée.
  • flags : [MremapFlags]. Inclure MAYMOVE pour autoriser le déplacement si le redimensionnement sur place est impossible.

§Errors

  • EINVAL : longueur nulle ou flags invalides.
  • ENOMEM : mémoire insuffisante (avec MAYMOVE absent, si sur place impossible).
  • EAGAIN : mapping verrouillé en mémoire et RLIMIT atteint.

§Examples

use air_sys_syscall::mem::{mmap_anonymous, mremap};
use air_sys_types::mem::{MapFlags, MremapFlags, ProtectionFlags};

let m = mmap_anonymous(4096, ProtectionFlags::READ | ProtectionFlags::WRITE, MapFlags::PRIVATE)
    .expect("mmap");
let m2 = mremap(m, 8192, MremapFlags::MAYMOVE).expect("mremap");