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 Fomichevint 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 Fomichevint 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 Fomichevint _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