xref: /linux/tools/testing/selftests/net/sample_map_ret0.bpf.c (revision 621cde16e49b3ecf7d59a8106a20aaebfb4a59a9)
1 /* SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) */
2 #include <linux/bpf.h>
3 #include <bpf/bpf_helpers.h>
4 
5 struct {
6 	__uint(type, BPF_MAP_TYPE_HASH);
7 	__type(key, __u32);
8 	__type(value, long);
9 	__uint(max_entries, 2);
10 } htab SEC(".maps");
11 
12 struct {
13 	__uint(type, BPF_MAP_TYPE_ARRAY);
14 	__type(key, __u32);
15 	__type(value, long);
16 	__uint(max_entries, 2);
17 } array SEC(".maps");
18 
19 /* Sample program which should always load for testing control paths. */
func()20 SEC("xdp") int func()
21 {
22 	__u64 key64 = 0;
23 	__u32 key = 0;
24 	long *value;
25 
26 	value = bpf_map_lookup_elem(&htab, &key);
27 	if (!value)
28 		return 1;
29 	value = bpf_map_lookup_elem(&array, &key64);
30 	if (!value)
31 		return 1;
32 
33 	return 0;
34 }
35