ccc3f56918
Converted few remaining legacy BPF map definition to BTF-defined ones. For the remaining two bpf_map_def-based legacy definitions that we want to keep for testing purposes until libbpf 1.0 release, guard them in pragma to suppres deprecation warnings which will be added in libbpf in the next commit. Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Link: https://lore.kernel.org/r/20220120060529.1890907-3-andrii@kernel.org Signed-off-by: Alexei Starovoitov <ast@kernel.org>
46 lines
782 B
C
46 lines
782 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/* Copyright (c) 2018 Facebook */
|
|
#include <linux/bpf.h>
|
|
#include <bpf/bpf_helpers.h>
|
|
|
|
struct ipv_counts {
|
|
unsigned int v4;
|
|
unsigned int v6;
|
|
};
|
|
|
|
struct {
|
|
__uint(type, BPF_MAP_TYPE_ARRAY);
|
|
__uint(key_size, sizeof(int));
|
|
__uint(value_size, sizeof(struct ipv_counts));
|
|
__uint(max_entries, 4);
|
|
} btf_map SEC(".maps");
|
|
|
|
__attribute__((noinline))
|
|
int test_long_fname_2(void)
|
|
{
|
|
struct ipv_counts *counts;
|
|
int key = 0;
|
|
|
|
counts = bpf_map_lookup_elem(&btf_map, &key);
|
|
if (!counts)
|
|
return 0;
|
|
|
|
counts->v6++;
|
|
|
|
return 0;
|
|
}
|
|
|
|
__attribute__((noinline))
|
|
int test_long_fname_1(void)
|
|
{
|
|
return test_long_fname_2();
|
|
}
|
|
|
|
SEC("dummy_tracepoint")
|
|
int _dummy_tracepoint(void *arg)
|
|
{
|
|
return test_long_fname_1();
|
|
}
|
|
|
|
char _license[] SEC("license") = "GPL";
|