Skip to main content

sys_mmap

Function sys_mmap 

Source
pub fn sys_mmap(
    addr: *mut u8,
    len: usize,
    prot: usize,
    flags: usize,
    fd: usize,
    offset: usize,
) -> SysResult
Available on Unix and crate feature sys-syscall and crate feature sys-unix and crate feature sys only.
Expand description

建立内存映射,返回映射起始地址。

32 位 x86 上经 MMAP2 实现(offset 须按页对齐),其余经 MMAP 实现。

§Feature Requirement

需要启用 "sys-unix" 特性。

§Examples

use lib_unknown::sys::unix::syscall::{flags, sys_mmap};

let _ = sys_mmap(
    core::ptr::null_mut(),
    4096,
    flags::PROT_READ | flags::PROT_WRITE,
    flags::MAP_PRIVATE | flags::MAP_ANONYMOUS,
    usize::MAX,
    0,
);

§Errors

  • 当参数非法(如 len 为 0、无权限)时返回 SysErr::Ret(内核 errno)。
  • 32 位 x86 上 offset 未按 4096 对齐时返回 SysErr::Arg。