From 9649ccc8b9afb1a8f319a13cd01b76b71d46d64b Mon Sep 17 00:00:00 2001 From: Omri Steiner Date: Sat, 3 May 2025 21:08:03 +0200 Subject: [PATCH] aya: move mmap, munmap to mmap utility module --- aya/src/sys/mmap.rs | 39 +++++++++++++++++++++++++++++++++++++-- aya/src/sys/mod.rs | 36 ------------------------------------ 2 files changed, 37 insertions(+), 38 deletions(-) diff --git a/aya/src/sys/mmap.rs b/aya/src/sys/mmap.rs index a576ab88..6cfb97bf 100644 --- a/aya/src/sys/mmap.rs +++ b/aya/src/sys/mmap.rs @@ -1,4 +1,4 @@ -//! Safe wrapper around memory-mapped files. +//! mmap/munmap syscall wrappers and a RAII wrapper around memory-mapped files. use std::{ fs, io, @@ -9,7 +9,42 @@ use std::{ use libc::{MAP_FAILED, MAP_PRIVATE, PROT_READ, c_int, c_void, off_t}; -use super::{SyscallError, mmap, munmap}; +use super::SyscallError; + +#[cfg_attr(test, expect(unused_variables))] +pub(crate) unsafe fn mmap( + addr: *mut c_void, + len: usize, + prot: c_int, + flags: c_int, + fd: BorrowedFd<'_>, + offset: libc::off_t, +) -> *mut c_void { + #[cfg(test)] + { + super::TEST_MMAP_RET.with(|ret| *ret.borrow()) + } + + #[cfg(not(test))] + { + use std::os::fd::AsRawFd as _; + + unsafe { libc::mmap(addr, len, prot, flags, fd.as_raw_fd(), offset) } + } +} + +#[cfg_attr(test, expect(unused_variables))] +pub(crate) unsafe fn munmap(addr: *mut c_void, len: usize) -> c_int { + #[cfg(test)] + { + 0 + } + + #[cfg(not(test))] + { + unsafe { libc::munmap(addr, len) } + } +} // MMap corresponds to a memory-mapped region. // diff --git a/aya/src/sys/mod.rs b/aya/src/sys/mod.rs index f1857ae1..3caaf3dc 100644 --- a/aya/src/sys/mod.rs +++ b/aya/src/sys/mod.rs @@ -9,7 +9,6 @@ mod perf_event; mod fake; use std::{ - ffi::{c_int, c_void}, io, os::fd::{BorrowedFd, OwnedFd}, }; @@ -152,41 +151,6 @@ fn syscall(call: Syscall<'_>) -> SysResult { } } -#[cfg_attr(test, expect(unused_variables))] -pub(crate) unsafe fn mmap( - addr: *mut c_void, - len: usize, - prot: c_int, - flags: c_int, - fd: BorrowedFd<'_>, - offset: libc::off_t, -) -> *mut c_void { - #[cfg(test)] - { - TEST_MMAP_RET.with(|ret| *ret.borrow()) - } - - #[cfg(not(test))] - { - use std::os::fd::AsRawFd as _; - - unsafe { libc::mmap(addr, len, prot, flags, fd.as_raw_fd(), offset) } - } -} - -#[cfg_attr(test, expect(unused_variables))] -pub(crate) unsafe fn munmap(addr: *mut c_void, len: usize) -> c_int { - #[cfg(test)] - { - 0 - } - - #[cfg(not(test))] - { - unsafe { libc::munmap(addr, len) } - } -} - /// The type of eBPF statistic to enable. #[non_exhaustive] #[doc(alias = "bpf_stats_type")]