about summary refs log tree commit diff
path: root/fs-tracer-common/src/lib.rs
diff options
context:
space:
mode:
authorBaitinq <[email protected]>2024-03-31 12:14:56 +0200
committerBaitinq <[email protected]>2024-03-31 12:14:56 +0200
commit0b654a51fdd208f755a11938032f385075acb824 (patch)
treecb64acc13cd72d97b02a703167da91ff1de2d3fc /fs-tracer-common/src/lib.rs
parentUpdate aya (diff)
downloadfs-tracer-0b654a51fdd208f755a11938032f385075acb824.tar.gz
fs-tracer-0b654a51fdd208f755a11938032f385075acb824.tar.bz2
fs-tracer-0b654a51fdd208f755a11938032f385075acb824.zip
TODO
Diffstat (limited to '')
-rw-r--r--fs-tracer-common/src/lib.rs32
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()
+    }
+}