// SPDX-License-Identifier: GPL-2.0 #include <linux/bpf.h> #include <bpf/bpf_helpers.h> #include <bpf/bpf_tracing.h> char _license[] SEC("license") = "GPL"; int test_1_result = 0; SEC("struct_ops/test_1") int BPF_PROG(test_1) { test_1_result = 42; return 0; } SEC("struct_ops/test_1") int BPF_PROG(test_2) { return 0; } struct bpf_testmod_ops___v1 { int (*test_1)(void); }; struct bpf_testmod_ops___v2 { int (*test_1)(void); int (*does_not_exist)(void); }; SEC(".struct_ops.link") struct bpf_testmod_ops___v1 testmod_1 = { .test_1 = (void *)test_1 }; SEC(".struct_ops.link") struct bpf_testmod_ops___v2 testmod_2 = { .test_1 = (void *)test_1, .does_not_exist = (void *)test_2 }; SEC("?.struct_ops") struct bpf_testmod_ops___v1 optional_map = { .test_1 = (void *)test_1, }; SEC("?.struct_ops.link") struct bpf_testmod_ops___v1 optional_map2 = { .test_1 = (void *)test_1, };