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_REMOVEsur 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");