xref: /linux/tools/testing/selftests/bpf/progs/test_btf_nokv.c (revision 26fbb4c8c7c3ee9a4c3b4de555a8587b5a19154e)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* Copyright (c) 2018 Facebook */
3 #include <linux/bpf.h>
4 #include <bpf/bpf_helpers.h>
5 
6 int _version SEC("version") = 1;
7 
8 struct ipv_counts {
9 	unsigned int v4;
10 	unsigned int v6;
11 };
12 
13 struct bpf_map_def SEC("maps") btf_map = {
14 	.type = BPF_MAP_TYPE_ARRAY,
15 	.key_size = sizeof(int),
16 	.value_size = sizeof(struct ipv_counts),
17 	.max_entries = 4,
18 };
19 
20 __attribute__((noinline))
21 int test_long_fname_2(void)
22 {
23 	struct ipv_counts *counts;
24 	int key = 0;
25 
26 	counts = bpf_map_lookup_elem(&btf_map, &key);
27 	if (!counts)
28 		return 0;
29 
30 	counts->v6++;
31 
32 	return 0;
33 }
34 
35 __attribute__((noinline))
36 int test_long_fname_1(void)
37 {
38 	return test_long_fname_2();
39 }
40 
41 SEC("dummy_tracepoint")
42 int _dummy_tracepoint(void *arg)
43 {
44 	return test_long_fname_1();
45 }
46 
47 char _license[] SEC("license") = "GPL";
48