this repo has no description
at main 953 B view raw
1open Libbpf 2 3let obj_path = "minimal.bpf.o" 4let program_names = [ "handle_tp" ] 5let map = "globals" 6 7(* Load PID into BPF map*) 8let before_link obj = 9 let pid = Unix.getpid () |> Signed.Long.of_int in 10 let global_map = bpf_object_find_map_by_name obj map in 11 bpf_map_update_elem ~key_ty:Ctypes.int ~val_ty:Ctypes.long global_map 0 pid 12 13let () = 14 with_bpf_object_open_load_link ~obj_path ~program_names ~before_link 15 (fun _obj _link -> 16 let exitting = ref true in 17 let sig_handler = Sys.Signal_handle (fun _ -> exitting := false) in 18 Sys.(set_signal sigint sig_handler); 19 Sys.(set_signal sigterm sig_handler); 20 21 Printf.printf 22 "Successfully started! Please run `sudo cat \ 23 /sys/kernel/debug/tracing/trace_pipe` to see output of the BPF \ 24 programs.\n\ 25 %!"; 26 27 (* Loop until Ctrl-C is called *) 28 while !exitting do 29 Printf.eprintf ".%!"; 30 Unix.sleepf 1.0 31 done)