diff --git a/aya/src/maps/perf_map.rs b/aya/src/maps/perf_map.rs index a4e142f2..a1826629 100644 --- a/aya/src/maps/perf_map.rs +++ b/aya/src/maps/perf_map.rs @@ -3,6 +3,7 @@ use std::{ ffi::c_void, io, mem, ops::DerefMut, + os::unix::prelude::AsRawFd, ptr, slice, sync::{ atomic::{self, AtomicPtr, Ordering}, @@ -239,6 +240,12 @@ impl PerfBuffer { } } +impl AsRawFd for PerfBuffer { + fn as_raw_fd(&self) -> RawFd { + self.fd + } +} + impl Drop for PerfBuffer { fn drop(&mut self) { unsafe { @@ -290,6 +297,12 @@ impl> PerfMapBuffer { } } +impl> AsRawFd for PerfMapBuffer { + fn as_raw_fd(&self) -> RawFd { + self.buf.as_raw_fd() + } +} + pub struct PerfMap> { map: Arc, page_size: usize,