Skip to main content

mlock

Function mlock 

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

Verrouille une plage mémoire en RAM (empêche le swap).

Wrappeur de mlock(2). Nécessite soit des privilèges root, soit une limite RLIMIT_MEMLOCK suffisante.

§Errors

  • ENOMEM : la plage contient des pages non mappées, ou RLIMIT_MEMLOCK serait dépassé.
  • EPERM : RLIMIT_MEMLOCK est zéro et le processus n’est pas privilégié.
  • EINVAL : adresse ou longueur invalide.

§Examples

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

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