Loading...
Note: File does not exist in v6.8.
1// SPDX-License-Identifier: GPL-2.0
2
3#include <linux/bpf.h>
4#include <bpf/bpf_helpers.h>
5#include <bpf/bpf_tracing.h>
6
7char _license[] SEC("license") = "GPL";
8
9int test_1_result = 0;
10
11SEC("struct_ops/test_1")
12int BPF_PROG(test_1)
13{
14 test_1_result = 42;
15 return 0;
16}
17
18SEC("struct_ops/test_1")
19int BPF_PROG(test_2)
20{
21 return 0;
22}
23
24struct bpf_testmod_ops___v1 {
25 int (*test_1)(void);
26};
27
28struct bpf_testmod_ops___v2 {
29 int (*test_1)(void);
30 int (*does_not_exist)(void);
31};
32
33SEC(".struct_ops.link")
34struct bpf_testmod_ops___v1 testmod_1 = {
35 .test_1 = (void *)test_1
36};
37
38SEC(".struct_ops.link")
39struct bpf_testmod_ops___v2 testmod_2 = {
40 .test_1 = (void *)test_1,
41 .does_not_exist = (void *)test_2
42};
43
44SEC("?.struct_ops")
45struct bpf_testmod_ops___v1 optional_map = {
46 .test_1 = (void *)test_1,
47};
48
49SEC("?.struct_ops.link")
50struct bpf_testmod_ops___v1 optional_map2 = {
51 .test_1 = (void *)test_1,
52};