1*0a210af6SMartin KaFai Lau // SPDX-License-Identifier: GPL-2.0 2*0a210af6SMartin KaFai Lau #include <linux/bpf.h> 3*0a210af6SMartin KaFai Lau #include <bpf/bpf_helpers.h> 4*0a210af6SMartin KaFai Lau #include <bpf/bpf_tracing.h> 5*0a210af6SMartin KaFai Lau 6*0a210af6SMartin KaFai Lau int val = 0; 7*0a210af6SMartin KaFai Lau 8*0a210af6SMartin KaFai Lau SEC("fentry/test_1") BPF_PROG(fentry_test_1,__u64 * st_ops_ctx)9*0a210af6SMartin KaFai Lauint BPF_PROG(fentry_test_1, __u64 *st_ops_ctx) 10*0a210af6SMartin KaFai Lau { 11*0a210af6SMartin KaFai Lau __u64 state; 12*0a210af6SMartin KaFai Lau 13*0a210af6SMartin KaFai Lau /* Read the traced st_ops arg1 which is a pointer */ 14*0a210af6SMartin KaFai Lau bpf_probe_read_kernel(&state, sizeof(__u64), (void *)st_ops_ctx); 15*0a210af6SMartin KaFai Lau /* Read state->val */ 16*0a210af6SMartin KaFai Lau bpf_probe_read_kernel(&val, sizeof(__u32), (void *)state); 17*0a210af6SMartin KaFai Lau 18*0a210af6SMartin KaFai Lau return 0; 19*0a210af6SMartin KaFai Lau } 20*0a210af6SMartin KaFai Lau 21*0a210af6SMartin KaFai Lau char _license[] SEC("license") = "GPL"; 22