4
0

raw_tracepoint.rs 743 B

123456789101112131415161718192021222324252627282930313233
  1. #![no_std]
  2. #![no_main]
  3. use aya_ebpf::{
  4. macros::{map, raw_tracepoint},
  5. maps::Array,
  6. programs::RawTracePointContext,
  7. };
  8. use integration_common::raw_tracepoint::SysEnterEvent;
  9. #[map]
  10. static RESULT: Array<SysEnterEvent> = Array::with_max_entries(1, 0);
  11. #[raw_tracepoint(tracepoint = "sys_enter")]
  12. pub fn sys_enter(ctx: RawTracePointContext) -> i32 {
  13. let common_type: u16 = unsafe { ctx.arg(0) };
  14. let common_flags: u8 = unsafe { ctx.arg(1) };
  15. if let Some(ptr) = RESULT.get_ptr_mut(0) {
  16. unsafe {
  17. (*ptr).common_type = common_type;
  18. (*ptr).common_flags = common_flags;
  19. }
  20. }
  21. 0
  22. }
  23. #[cfg(not(test))]
  24. #[panic_handler]
  25. fn panic(_info: &core::panic::PanicInfo) -> ! {
  26. loop {}
  27. }