// SPDX-License-Identifier: GPL-2.0-only/* Copyright (c) 2019 Facebook */#include<linux/bpf.h>#include<linux/bpf_verifier.h>#include<linux/btf.h>#include<linux/filter.h>#include<linux/slab.h>#include<linux/numa.h>#include<linux/seq_file.h>#include<linux/refcount.h>#include<linux/mutex.h>#include<linux/btf_ids.h>#include<linux/rcupdate_wait.h>#include<linux/poll.h>structbpf_struct_ops_value{structbpf_struct_ops_common_valuecommon;chardata[]____cacheline_aligned_in_smp;};#define MAX_TRAMP_IMAGE_PAGES 8structbpf_struct_ops_map{structbpf_mapmap;conststructbpf_struct_ops_desc*st_ops_desc;/* protect map_update */structmutexlock;/* link has all the bpf_links that is populated * to the func ptr of the kernel's struct * (in kvalue.data). */structbpf_link**links;/* ksyms for bpf trampolines */structbpf_ksym