diff options
Diffstat (limited to '')
| -rw-r--r-- | fs-tracer-common/src/lib.rs | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/fs-tracer-common/src/lib.rs b/fs-tracer-common/src/lib.rs index 68d563e..bee74f4 100644 --- a/fs-tracer-common/src/lib.rs +++ b/fs-tracer-common/src/lib.rs @@ -1,14 +1,18 @@ #![no_std] #![feature(c_size_t)] +use aya_ebpf::cty::c_long; +use core::ffi::c_int; +use core::ffi::c_size_t; use core::ffi::c_uint; use core::fmt::{self, Formatter}; use core::str; -use aya_ebpf::cty::c_long; -use core::ffi::c_size_t; + +use crate::vmlinux::umode_t; pub enum SyscallInfo { Write(WriteSyscallBPF), + Open(OpenSyscallBPF), } #[derive(Clone, Copy)] @@ -34,3 +38,27 @@ impl fmt::Debug for WriteSyscallBPF { .finish() } } + +#[derive(Clone, Copy)] +pub struct OpenSyscallBPF { + pub pid: u32, + pub dfd: c_int, + pub filename: [u8; 96], + pub flags: c_int, + pub mode: umode_t, + pub ret: c_long, +} + +unsafe impl Sync for OpenSyscallBPF {} + +impl fmt::Debug for OpenSyscallBPF { + fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.debug_struct("OpenSyscallBPF") + .field("pid", &self.pid) + .field("dfd", &self.dfd) + // .field("filename", &str::from_utf8(&self.filename).unwrap_or("")) + .field("flags", &self.flags) + .field("ret", &self.ret) + .finish() + } +} |