Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /* Copyright (c) 2020 Facebook */
0003 /* "undefine" structs in vmlinux.h, because we "override" them below */
0004 #define bpf_iter_meta bpf_iter_meta___not_used
0005 #define bpf_iter__bpf_map bpf_iter__bpf_map___not_used
0006 #define bpf_iter__ipv6_route bpf_iter__ipv6_route___not_used
0007 #define bpf_iter__netlink bpf_iter__netlink___not_used
0008 #define bpf_iter__task bpf_iter__task___not_used
0009 #define bpf_iter__task_file bpf_iter__task_file___not_used
0010 #define bpf_iter__task_vma bpf_iter__task_vma___not_used
0011 #define bpf_iter__tcp bpf_iter__tcp___not_used
0012 #define tcp6_sock tcp6_sock___not_used
0013 #define bpf_iter__udp bpf_iter__udp___not_used
0014 #define udp6_sock udp6_sock___not_used
0015 #define bpf_iter__unix bpf_iter__unix___not_used
0016 #define bpf_iter__bpf_map_elem bpf_iter__bpf_map_elem___not_used
0017 #define bpf_iter__bpf_sk_storage_map bpf_iter__bpf_sk_storage_map___not_used
0018 #define bpf_iter__sockmap bpf_iter__sockmap___not_used
0019 #define bpf_iter__bpf_link bpf_iter__bpf_link___not_used
0020 #define btf_ptr btf_ptr___not_used
0021 #define BTF_F_COMPACT BTF_F_COMPACT___not_used
0022 #define BTF_F_NONAME BTF_F_NONAME___not_used
0023 #define BTF_F_PTR_RAW BTF_F_PTR_RAW___not_used
0024 #define BTF_F_ZERO BTF_F_ZERO___not_used
0025 #define bpf_iter__ksym bpf_iter__ksym___not_used
0026 #include "vmlinux.h"
0027 #undef bpf_iter_meta
0028 #undef bpf_iter__bpf_map
0029 #undef bpf_iter__ipv6_route
0030 #undef bpf_iter__netlink
0031 #undef bpf_iter__task
0032 #undef bpf_iter__task_file
0033 #undef bpf_iter__task_vma
0034 #undef bpf_iter__tcp
0035 #undef tcp6_sock
0036 #undef bpf_iter__udp
0037 #undef udp6_sock
0038 #undef bpf_iter__unix
0039 #undef bpf_iter__bpf_map_elem
0040 #undef bpf_iter__bpf_sk_storage_map
0041 #undef bpf_iter__sockmap
0042 #undef bpf_iter__bpf_link
0043 #undef btf_ptr
0044 #undef BTF_F_COMPACT
0045 #undef BTF_F_NONAME
0046 #undef BTF_F_PTR_RAW
0047 #undef BTF_F_ZERO
0048 #undef bpf_iter__ksym
0049 
0050 struct bpf_iter_meta {
0051     struct seq_file *seq;
0052     __u64 session_id;
0053     __u64 seq_num;
0054 } __attribute__((preserve_access_index));
0055 
0056 struct bpf_iter__ipv6_route {
0057     struct bpf_iter_meta *meta;
0058     struct fib6_info *rt;
0059 } __attribute__((preserve_access_index));
0060 
0061 struct bpf_iter__netlink {
0062     struct bpf_iter_meta *meta;
0063     struct netlink_sock *sk;
0064 } __attribute__((preserve_access_index));
0065 
0066 struct bpf_iter__task {
0067     struct bpf_iter_meta *meta;
0068     struct task_struct *task;
0069 } __attribute__((preserve_access_index));
0070 
0071 struct bpf_iter__task_file {
0072     struct bpf_iter_meta *meta;
0073     struct task_struct *task;
0074     __u32 fd;
0075     struct file *file;
0076 } __attribute__((preserve_access_index));
0077 
0078 struct bpf_iter__task_vma {
0079     struct bpf_iter_meta *meta;
0080     struct task_struct *task;
0081     struct vm_area_struct *vma;
0082 } __attribute__((preserve_access_index));
0083 
0084 struct bpf_iter__bpf_map {
0085     struct bpf_iter_meta *meta;
0086     struct bpf_map *map;
0087 } __attribute__((preserve_access_index));
0088 
0089 struct bpf_iter__tcp {
0090     struct bpf_iter_meta *meta;
0091     struct sock_common *sk_common;
0092     uid_t uid;
0093 } __attribute__((preserve_access_index));
0094 
0095 struct tcp6_sock {
0096     struct tcp_sock tcp;
0097     struct ipv6_pinfo inet6;
0098 } __attribute__((preserve_access_index));
0099 
0100 struct bpf_iter__udp {
0101     struct bpf_iter_meta *meta;
0102     struct udp_sock *udp_sk;
0103     uid_t uid __attribute__((aligned(8)));
0104     int bucket __attribute__((aligned(8)));
0105 } __attribute__((preserve_access_index));
0106 
0107 struct udp6_sock {
0108     struct udp_sock udp;
0109     struct ipv6_pinfo inet6;
0110 } __attribute__((preserve_access_index));
0111 
0112 struct bpf_iter__unix {
0113     struct bpf_iter_meta *meta;
0114     struct unix_sock *unix_sk;
0115     uid_t uid;
0116 } __attribute__((preserve_access_index));
0117 
0118 struct bpf_iter__bpf_map_elem {
0119     struct bpf_iter_meta *meta;
0120     struct bpf_map *map;
0121     void *key;
0122     void *value;
0123 };
0124 
0125 struct bpf_iter__bpf_sk_storage_map {
0126     struct bpf_iter_meta *meta;
0127     struct bpf_map *map;
0128     struct sock *sk;
0129     void *value;
0130 };
0131 
0132 struct bpf_iter__sockmap {
0133     struct bpf_iter_meta *meta;
0134     struct bpf_map *map;
0135     void *key;
0136     struct sock *sk;
0137 };
0138 
0139 struct bpf_iter__bpf_link {
0140     struct bpf_iter_meta *meta;
0141     struct bpf_link *link;
0142 };
0143 
0144 struct btf_ptr {
0145     void *ptr;
0146     __u32 type_id;
0147     __u32 flags;
0148 };
0149 
0150 enum {
0151     BTF_F_COMPACT   =   (1ULL << 0),
0152     BTF_F_NONAME    =   (1ULL << 1),
0153     BTF_F_PTR_RAW   =   (1ULL << 2),
0154     BTF_F_ZERO  =   (1ULL << 3),
0155 };
0156 
0157 struct bpf_iter__ksym {
0158     struct bpf_iter_meta *meta;
0159     struct kallsym_iter *ksym;
0160 };