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