diff --git a/aya/src/maps/perf/perf_buffer.rs b/aya/src/maps/perf/perf_buffer.rs index 19813557..677f874d 100644 --- a/aya/src/maps/perf/perf_buffer.rs +++ b/aya/src/maps/perf/perf_buffer.rs @@ -7,7 +7,7 @@ use std::{ }; use bytes::BytesMut; -use libc::{c_int, close, munmap, MAP_FAILED, MAP_SHARED, PROT_READ, PROT_WRITE}; +use libc::{close, munmap, MAP_FAILED, MAP_SHARED, PROT_READ, PROT_WRITE}; use thiserror::Error; use crate::{ @@ -15,7 +15,7 @@ use crate::{ perf_event_header, perf_event_mmap_page, perf_event_type::{PERF_RECORD_LOST, PERF_RECORD_SAMPLE}, }, - sys::{perf_event_ioctl, perf_event_open_bpf}, + sys::{mmap, perf_event_ioctl, perf_event_open_bpf}, PERF_EVENT_IOC_DISABLE, PERF_EVENT_IOC_ENABLE, }; @@ -278,25 +278,6 @@ impl Drop for PerfBuffer { } } -#[cfg_attr(test, allow(unused_variables))] -unsafe fn mmap( - addr: *mut c_void, - len: usize, - prot: c_int, - flags: c_int, - fd: i32, - offset: libc::off_t, -) -> *mut c_void { - #[cfg(not(test))] - return libc::mmap(addr, len, prot, flags, fd, offset); - - #[cfg(test)] - use crate::sys::TEST_MMAP_RET; - - #[cfg(test)] - TEST_MMAP_RET.with(|ret| *ret.borrow()) -} - #[derive(Debug)] #[repr(C)] struct Sample { diff --git a/aya/src/sys/mod.rs b/aya/src/sys/mod.rs index 448e7fee..54cb021b 100644 --- a/aya/src/sys/mod.rs +++ b/aya/src/sys/mod.rs @@ -7,7 +7,7 @@ mod fake; use std::{io, mem}; -use libc::{c_int, c_long, pid_t, SYS_bpf, SYS_perf_event_open}; +use libc::{c_int, c_long, c_void, pid_t, SYS_bpf, SYS_perf_event_open}; pub(crate) use bpf::*; #[cfg(test)] @@ -64,3 +64,19 @@ fn syscall(call: Syscall) -> SysResult { ret => Err((ret, io::Error::last_os_error())), } } + +#[cfg_attr(test, allow(unused_variables))] +pub(crate) unsafe fn mmap( + addr: *mut c_void, + len: usize, + prot: c_int, + flags: c_int, + fd: i32, + offset: libc::off_t, +) -> *mut c_void { + #[cfg(not(test))] + return libc::mmap(addr, len, prot, flags, fd, offset); + + #[cfg(test)] + TEST_MMAP_RET.with(|ret| *ret.borrow()) +}