Skip to main content

madvise

Function madvise 

Source
pub fn madvise(
    address: NonNull<u8>,
    length: usize,
    advice: MadviseAdvice,
) -> Result<(), Errno>
Expand description

Informe le kernel sur le pattern d’accès attendu à une plage mémoire.

Wrappeur de madvise(2). Ces conseils sont des hints : le kernel peut les ignorer. Aucun effet sur la sémantique du programme — uniquement sur les performances.

§Parameters

  • address : adresse de début (alignée sur la page size).
  • length : longueur en octets.
  • advice : conseil à donner au kernel.

§Errors

  • EINVAL : adresse non alignée, plage invalide, ou conseil inconnu.
  • EACCES : MADV_REMOVE sur un mapping non partagé.
  • ENOMEM : plage non mappée.

§Examples

use air_sys_syscall::mem::{madvise, mmap_anonymous};
use air_sys_types::mem::{MadviseAdvice, MapFlags, ProtectionFlags};
use core::ptr::NonNull;

let m = mmap_anonymous(65536, ProtectionFlags::READ | ProtectionFlags::WRITE, MapFlags::PRIVATE)
    .expect("mmap");
madvise(
    NonNull::new(m.as_ptr() as *mut u8).expect("non-null"),
    65536,
    MadviseAdvice::Sequential,
).expect("madvise");