xref: /linux/tools/testing/selftests/bpf/progs/tracing_multi_verifier.c (revision b2128290c29902315e632ea59e0504d6bc9e9b42)
1*443c91d0SJiri Olsa // SPDX-License-Identifier: GPL-2.0
2*443c91d0SJiri Olsa #include "vmlinux.h"
3*443c91d0SJiri Olsa #include <bpf/bpf_helpers.h>
4*443c91d0SJiri Olsa #include <bpf/bpf_tracing.h>
5*443c91d0SJiri Olsa #include "bpf_misc.h"
6*443c91d0SJiri Olsa 
7*443c91d0SJiri Olsa char _license[] SEC("license") = "GPL";
8*443c91d0SJiri Olsa 
9*443c91d0SJiri Olsa SEC("fentry.multi/bpf_fentry_test1")
10*443c91d0SJiri Olsa __failure
11*443c91d0SJiri Olsa __msg("func 'bpf_multi_func' doesn't have 1-th argument")
12*443c91d0SJiri Olsa int BPF_PROG(fentry_direct_access, int a)
13*443c91d0SJiri Olsa {
14*443c91d0SJiri Olsa 	return a;
15*443c91d0SJiri Olsa }
16*443c91d0SJiri Olsa 
17*443c91d0SJiri Olsa SEC("fexit.multi/bpf_fentry_test3")
18*443c91d0SJiri Olsa __failure
19*443c91d0SJiri Olsa __msg("invalid bpf_context access off=24 size=8")
20*443c91d0SJiri Olsa int BPF_PROG(fexit_direct_access, char a, int b, __u64 c, int ret)
21*443c91d0SJiri Olsa {
22*443c91d0SJiri Olsa 	return ret;
23*443c91d0SJiri Olsa }
24*443c91d0SJiri Olsa 
25*443c91d0SJiri Olsa SEC("fsession.multi/bpf_fentry_test4")
26*443c91d0SJiri Olsa __failure
27*443c91d0SJiri Olsa __msg("invalid bpf_context access off=16 size=8")
28*443c91d0SJiri Olsa int BPF_PROG(fsession_direct_access, void *a, char b, int c, __u64 d, int ret)
29*443c91d0SJiri Olsa {
30*443c91d0SJiri Olsa 	return c;
31*443c91d0SJiri Olsa }
32