xref: /linux/tools/testing/selftests/bpf/progs/fentry_many_args.c (revision a1c613ae4c322ddd58d5a8539dbfba2a0380a8c0)
1 // SPDX-License-Identifier: GPL-2.0
2 /* Copyright (c) 2023 Tencent */
3 #include <linux/bpf.h>
4 #include <bpf/bpf_helpers.h>
5 #include <bpf/bpf_tracing.h>
6 
7 char _license[] SEC("license") = "GPL";
8 
9 __u64 test1_result = 0;
10 SEC("fentry/bpf_testmod_fentry_test7")
BPF_PROG(test1,__u64 a,void * b,short c,int d,void * e,char f,int g)11 int BPF_PROG(test1, __u64 a, void *b, short c, int d, void *e, char f,
12 	     int g)
13 {
14 	test1_result = a == 16 && b == (void *)17 && c == 18 && d == 19 &&
15 		e == (void *)20 && f == 21 && g == 22;
16 	return 0;
17 }
18 
19 __u64 test2_result = 0;
20 SEC("fentry/bpf_testmod_fentry_test11")
BPF_PROG(test2,__u64 a,void * b,short c,int d,void * e,char f,int g,unsigned int h,long i,__u64 j,unsigned long k)21 int BPF_PROG(test2, __u64 a, void *b, short c, int d, void *e, char f,
22 	     int g, unsigned int h, long i, __u64 j, unsigned long k)
23 {
24 	test2_result = a == 16 && b == (void *)17 && c == 18 && d == 19 &&
25 		e == (void *)20 && f == 21 && g == 22 && h == 23 &&
26 		i == 24 && j == 25 && k == 26;
27 	return 0;
28 }
29 
30 __u64 test3_result = 0;
31 SEC("fentry/bpf_testmod_fentry_test11")
BPF_PROG(test3,__u64 a,__u64 b,__u64 c,__u64 d,__u64 e,__u64 f,__u64 g,__u64 h,__u64 i,__u64 j,__u64 k)32 int BPF_PROG(test3, __u64 a, __u64 b, __u64 c, __u64 d, __u64 e, __u64 f,
33 	     __u64 g, __u64 h, __u64 i, __u64 j, __u64 k)
34 {
35 	test3_result = a == 16 && b == 17 && c == 18 && d == 19 &&
36 		e == 20 && f == 21 && g == 22 && h == 23 &&
37 		i == 24 && j == 25 && k == 26;
38 	return 0;
39 }
40