pub fn mprotect(
address: NonNull<u8>,
length: usize,
prot: ProtectionFlags,
) -> Result<(), Errno>Expand description
Modifie les permissions d’une plage mémoire mappée.
Wrappeur de mprotect(2). Typiquement utilisé pour rétrograder les
permissions après initialisation d’une zone en lecture seule.
§Parameters
address: adresse de début (doit être alignée sur la page size).length: longueur de la plage en octets.prot: nouvelles permissions.
§Errors
EINVAL:addressnon aligné, ou plage invalide.EACCES: tentative d’ajouterEXECsur un FS monténoexec.ENOMEM: ressources kernel insuffisantes.
§Examples
use air_sys_syscall::mem::{mmap_anonymous, mprotect};
use air_sys_types::mem::{MapFlags, ProtectionFlags};
use core::ptr::NonNull;
let mut m = mmap_anonymous(4096, ProtectionFlags::READ | ProtectionFlags::WRITE, MapFlags::PRIVATE)
.expect("mmap");
// Initialisez les données, puis passez en lecture seule :
mprotect(
NonNull::new(m.as_mut_ptr()).expect("non-null"),
4096,
ProtectionFlags::READ,
).expect("mprotect");