xref: /linux/tools/testing/selftests/bpf/progs/bpf_iter_test_kern6.c (revision a4eb44a6435d6d8f9e642407a4a06f65eb90ca04)
1 // SPDX-License-Identifier: GPL-2.0
2 /* Copyright (c) 2020 Facebook */
3 #include "bpf_iter.h"
4 #include <bpf/bpf_helpers.h>
5 
6 char _license[] SEC("license") = "GPL";
7 
8 __u32 value_sum = 0;
9 
10 SEC("iter/bpf_map_elem")
11 int dump_bpf_hash_map(struct bpf_iter__bpf_map_elem *ctx)
12 {
13 	void *value = ctx->value;
14 
15 	if (value == (void *)0)
16 		return 0;
17 
18 	/* negative offset, verifier failure. */
19 	value_sum += *(__u32 *)(value - 4);
20 	return 0;
21 }
22