xref: /linux/tools/testing/selftests/bpf/progs/tracing_multi_attach.c (revision b2128290c29902315e632ea59e0504d6bc9e9b42)
1*2922dd58SJiri Olsa // SPDX-License-Identifier: GPL-2.0
2*2922dd58SJiri Olsa #include <vmlinux.h>
3*2922dd58SJiri Olsa #include <bpf/bpf_helpers.h>
4*2922dd58SJiri Olsa #include <bpf/bpf_tracing.h>
5*2922dd58SJiri Olsa 
6*2922dd58SJiri Olsa char _license[] SEC("license") = "GPL";
7*2922dd58SJiri Olsa 
8*2922dd58SJiri Olsa __hidden extern int tracing_multi_arg_check(__u64 *ctx, __u64 *test_result, bool is_return);
9*2922dd58SJiri Olsa 
10*2922dd58SJiri Olsa __u64 test_result_fentry = 0;
11*2922dd58SJiri Olsa __u64 test_result_fexit = 0;
12*2922dd58SJiri Olsa 
13*2922dd58SJiri Olsa SEC("fentry.multi/bpf_fentry_test*")
14*2922dd58SJiri Olsa int BPF_PROG(test_fentry)
15*2922dd58SJiri Olsa {
16*2922dd58SJiri Olsa 	tracing_multi_arg_check(ctx, &test_result_fentry, false);
17*2922dd58SJiri Olsa 	return 0;
18*2922dd58SJiri Olsa }
19*2922dd58SJiri Olsa 
20*2922dd58SJiri Olsa SEC("fexit.multi/bpf_fentry_test*")
21*2922dd58SJiri Olsa int BPF_PROG(test_fexit)
22*2922dd58SJiri Olsa {
23*2922dd58SJiri Olsa 	tracing_multi_arg_check(ctx, &test_result_fexit, true);
24*2922dd58SJiri Olsa 	return 0;
25*2922dd58SJiri Olsa }
26*2922dd58SJiri Olsa 
27*2922dd58SJiri Olsa SEC("fentry.multi.s/bpf_fentry_test1")
28*2922dd58SJiri Olsa int BPF_PROG(test_fentry_s)
29*2922dd58SJiri Olsa {
30*2922dd58SJiri Olsa 	tracing_multi_arg_check(ctx, &test_result_fentry, false);
31*2922dd58SJiri Olsa 	return 0;
32*2922dd58SJiri Olsa }
33*2922dd58SJiri Olsa 
34*2922dd58SJiri Olsa SEC("fexit.multi.s/bpf_fentry_test1")
35*2922dd58SJiri Olsa int BPF_PROG(test_fexit_s)
36*2922dd58SJiri Olsa {
37*2922dd58SJiri Olsa 	tracing_multi_arg_check(ctx, &test_result_fexit, true);
38*2922dd58SJiri Olsa 	return 0;
39*2922dd58SJiri Olsa }
40