1 // SPDX-License-Identifier: GPL-2.0 2 /* Copyright (c) 2023 Hengqi Chen */ 3 4 #include "vmlinux.h" 5 #include <bpf/bpf_helpers.h> 6 #include <bpf/bpf_tracing.h> 7 8 pid_t my_pid = 0; 9 10 int test1_result = 0; 11 int test2_result = 0; 12 int test3_result = 0; 13 int test4_result = 0; 14 15 SEC("uprobe/./liburandom_read.so:urandlib_api_sameoffset") 16 int BPF_UPROBE(test1) 17 { 18 pid_t pid = bpf_get_current_pid_tgid() >> 32; 19 20 if (pid != my_pid) 21 return 0; 22 23 test1_result = 1; 24 return 0; 25 } 26 27 SEC("uprobe/./liburandom_read.so:urandlib_api_sameoffset@LIBURANDOM_READ_1.0.0") 28 int BPF_UPROBE(test2) 29 { 30 pid_t pid = bpf_get_current_pid_tgid() >> 32; 31 32 if (pid != my_pid) 33 return 0; 34 35 test2_result = 1; 36 return 0; 37 } 38 39 SEC("uretprobe/./liburandom_read.so:urandlib_api_sameoffset@@LIBURANDOM_READ_2.0.0") 40 int BPF_URETPROBE(test3, int ret) 41 { 42 pid_t pid = bpf_get_current_pid_tgid() >> 32; 43 44 if (pid != my_pid) 45 return 0; 46 47 test3_result = ret; 48 return 0; 49 } 50 51 SEC("uprobe") 52 int BPF_UPROBE(test4) 53 { 54 pid_t pid = bpf_get_current_pid_tgid() >> 32; 55 56 if (pid != my_pid) 57 return 0; 58 59 test4_result = 1; 60 return 0; 61 } 62