Skip to main content

mmap_file

Function mmap_file 

Source
pub fn mmap_file(
    fd: BorrowedFd<'_>,
    length: usize,
    offset: u64,
    prot: ProtectionFlags,
    flags: MapFlags,
) -> Result<Mapping, Errno>
Expand description

Crée un mapping de fichier.

Wrappeur de mmap(2) avec un FD fichier. offset doit être aligné sur la page size (vérification effectuée par le kernel).

§Parameters

  • fd : FD du fichier à mapper.
  • length : longueur du mapping en octets.
  • offset : offset dans le fichier (doit être aligné sur la page size).
  • prot : protections d’accès.
  • flags : flags de mapping (SHARED ou PRIVATE obligatoire).

§Errors

  • EINVAL : offset non aligné, length zéro, ou flags invalides.
  • EACCES : prot incompatible avec les permissions du FD.
  • ENOMEM : mémoire virtuelle insuffisante.
  • ENODEV : le FD référence un type de fichier non mappable.

§Examples

use air_sys_syscall::mem::mmap_file;
use air_sys_types::mem::{MapFlags, ProtectionFlags};
use air_sys_types::fd::BorrowedFd;

// fd = FD d'un fichier de 4096 octets déjà ouvert
let m = mmap_file(fd, 4096, 0, ProtectionFlags::READ, MapFlags::PRIVATE)
    .expect("mmap_file");
let _data: &[u8] = m.as_slice();