1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* Copyright (c) 2020 Facebook */ 3 /* "undefine" structs in vmlinux.h, because we "override" them below */ 4 #define bpf_iter_meta bpf_iter_meta___not_used 5 #define bpf_iter__bpf_map bpf_iter__bpf_map___not_used 6 #define bpf_iter__ipv6_route bpf_iter__ipv6_route___not_used 7 #define bpf_iter__netlink bpf_iter__netlink___not_used 8 #define bpf_iter__task bpf_iter__task___not_used 9 #define bpf_iter__task_file bpf_iter__task_file___not_used 10 #define bpf_iter__tcp bpf_iter__tcp___not_used 11 #define tcp6_sock tcp6_sock___not_used 12 #define bpf_iter__udp bpf_iter__udp___not_used 13 #define udp6_sock udp6_sock___not_used 14 #include "vmlinux.h" 15 #undef bpf_iter_meta 16 #undef bpf_iter__bpf_map 17 #undef bpf_iter__ipv6_route 18 #undef bpf_iter__netlink 19 #undef bpf_iter__task 20 #undef bpf_iter__task_file 21 #undef bpf_iter__tcp 22 #undef tcp6_sock 23 #undef bpf_iter__udp 24 #undef udp6_sock 25 26 struct bpf_iter_meta { 27 struct seq_file *seq; 28 __u64 session_id; 29 __u64 seq_num; 30 } __attribute__((preserve_access_index)); 31 32 struct bpf_iter__ipv6_route { 33 struct bpf_iter_meta *meta; 34 struct fib6_info *rt; 35 } __attribute__((preserve_access_index)); 36 37 struct bpf_iter__netlink { 38 struct bpf_iter_meta *meta; 39 struct netlink_sock *sk; 40 } __attribute__((preserve_access_index)); 41 42 struct bpf_iter__task { 43 struct bpf_iter_meta *meta; 44 struct task_struct *task; 45 } __attribute__((preserve_access_index)); 46 47 struct bpf_iter__task_file { 48 struct bpf_iter_meta *meta; 49 struct task_struct *task; 50 __u32 fd; 51 struct file *file; 52 } __attribute__((preserve_access_index)); 53 54 struct bpf_iter__bpf_map { 55 struct bpf_iter_meta *meta; 56 struct bpf_map *map; 57 } __attribute__((preserve_access_index)); 58 59 struct bpf_iter__tcp { 60 struct bpf_iter_meta *meta; 61 struct sock_common *sk_common; 62 uid_t uid; 63 } __attribute__((preserve_access_index)); 64 65 struct tcp6_sock { 66 struct tcp_sock tcp; 67 struct ipv6_pinfo inet6; 68 } __attribute__((preserve_access_index)); 69 70 struct bpf_iter__udp { 71 struct bpf_iter_meta *meta; 72 struct udp_sock *udp_sk; 73 uid_t uid __attribute__((aligned(8))); 74 int bucket __attribute__((aligned(8))); 75 } __attribute__((preserve_access_index)); 76 77 struct udp6_sock { 78 struct udp_sock udp; 79 struct ipv6_pinfo inet6; 80 } __attribute__((preserve_access_index)); 81