rebpf_sys/
bpf_sys.rs

1/* automatically generated by rust-bindgen */
2
3#[repr(C)]
4#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
5pub struct __BindgenBitfieldUnit<Storage, Align> {
6    storage: Storage,
7    align: [Align; 0],
8}
9impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align> {
10    #[inline]
11    pub const fn new(storage: Storage) -> Self {
12        Self { storage, align: [] }
13    }
14}
15impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align>
16where
17    Storage: AsRef<[u8]> + AsMut<[u8]>,
18{
19    #[inline]
20    pub fn get_bit(&self, index: usize) -> bool {
21        debug_assert!(index / 8 < self.storage.as_ref().len());
22        let byte_index = index / 8;
23        let byte = self.storage.as_ref()[byte_index];
24        let bit_index = if cfg!(target_endian = "big") {
25            7 - (index % 8)
26        } else {
27            index % 8
28        };
29        let mask = 1 << bit_index;
30        byte & mask == mask
31    }
32    #[inline]
33    pub fn set_bit(&mut self, index: usize, val: bool) {
34        debug_assert!(index / 8 < self.storage.as_ref().len());
35        let byte_index = index / 8;
36        let byte = &mut self.storage.as_mut()[byte_index];
37        let bit_index = if cfg!(target_endian = "big") {
38            7 - (index % 8)
39        } else {
40            index % 8
41        };
42        let mask = 1 << bit_index;
43        if val {
44            *byte |= mask;
45        } else {
46            *byte &= !mask;
47        }
48    }
49    #[inline]
50    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
51        debug_assert!(bit_width <= 64);
52        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
53        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
54        let mut val = 0;
55        for i in 0..(bit_width as usize) {
56            if self.get_bit(i + bit_offset) {
57                let index = if cfg!(target_endian = "big") {
58                    bit_width as usize - 1 - i
59                } else {
60                    i
61                };
62                val |= 1 << index;
63            }
64        }
65        val
66    }
67    #[inline]
68    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
69        debug_assert!(bit_width <= 64);
70        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
71        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
72        for i in 0..(bit_width as usize) {
73            let mask = 1 << i;
74            let val_bit_is_set = val & mask == mask;
75            let index = if cfg!(target_endian = "big") {
76                bit_width as usize - 1 - i
77            } else {
78                i
79            };
80            self.set_bit(index + bit_offset, val_bit_is_set);
81        }
82    }
83}
84#[repr(C)]
85#[derive(Default)]
86pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
87impl<T> __IncompleteArrayField<T> {
88    #[inline]
89    pub const fn new() -> Self {
90        __IncompleteArrayField(::std::marker::PhantomData, [])
91    }
92    #[inline]
93    pub fn as_ptr(&self) -> *const T {
94        self as *const _ as *const T
95    }
96    #[inline]
97    pub fn as_mut_ptr(&mut self) -> *mut T {
98        self as *mut _ as *mut T
99    }
100    #[inline]
101    pub unsafe fn as_slice(&self, len: usize) -> &[T] {
102        ::std::slice::from_raw_parts(self.as_ptr(), len)
103    }
104    #[inline]
105    pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
106        ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
107    }
108}
109impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
110    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
111        fmt.write_str("__IncompleteArrayField")
112    }
113}
114pub const __BITS_PER_LONG: u32 = 64;
115pub const __FD_SETSIZE: u32 = 1024;
116pub const BPF_LD: u32 = 0;
117pub const BPF_LDX: u32 = 1;
118pub const BPF_ST: u32 = 2;
119pub const BPF_STX: u32 = 3;
120pub const BPF_ALU: u32 = 4;
121pub const BPF_JMP: u32 = 5;
122pub const BPF_RET: u32 = 6;
123pub const BPF_MISC: u32 = 7;
124pub const BPF_W: u32 = 0;
125pub const BPF_H: u32 = 8;
126pub const BPF_B: u32 = 16;
127pub const BPF_IMM: u32 = 0;
128pub const BPF_ABS: u32 = 32;
129pub const BPF_IND: u32 = 64;
130pub const BPF_MEM: u32 = 96;
131pub const BPF_LEN: u32 = 128;
132pub const BPF_MSH: u32 = 160;
133pub const BPF_ADD: u32 = 0;
134pub const BPF_SUB: u32 = 16;
135pub const BPF_MUL: u32 = 32;
136pub const BPF_DIV: u32 = 48;
137pub const BPF_OR: u32 = 64;
138pub const BPF_AND: u32 = 80;
139pub const BPF_LSH: u32 = 96;
140pub const BPF_RSH: u32 = 112;
141pub const BPF_NEG: u32 = 128;
142pub const BPF_MOD: u32 = 144;
143pub const BPF_XOR: u32 = 160;
144pub const BPF_JA: u32 = 0;
145pub const BPF_JEQ: u32 = 16;
146pub const BPF_JGT: u32 = 32;
147pub const BPF_JGE: u32 = 48;
148pub const BPF_JSET: u32 = 64;
149pub const BPF_K: u32 = 0;
150pub const BPF_X: u32 = 8;
151pub const BPF_MAXINSNS: u32 = 4096;
152pub const BPF_JMP32: u32 = 6;
153pub const BPF_ALU64: u32 = 7;
154pub const BPF_DW: u32 = 24;
155pub const BPF_XADD: u32 = 192;
156pub const BPF_MOV: u32 = 176;
157pub const BPF_ARSH: u32 = 192;
158pub const BPF_END: u32 = 208;
159pub const BPF_TO_LE: u32 = 0;
160pub const BPF_TO_BE: u32 = 8;
161pub const BPF_FROM_LE: u32 = 0;
162pub const BPF_FROM_BE: u32 = 8;
163pub const BPF_JNE: u32 = 80;
164pub const BPF_JLT: u32 = 160;
165pub const BPF_JLE: u32 = 176;
166pub const BPF_JSGT: u32 = 96;
167pub const BPF_JSGE: u32 = 112;
168pub const BPF_JSLT: u32 = 192;
169pub const BPF_JSLE: u32 = 208;
170pub const BPF_CALL: u32 = 128;
171pub const BPF_EXIT: u32 = 144;
172pub const BPF_F_ALLOW_OVERRIDE: u32 = 1;
173pub const BPF_F_ALLOW_MULTI: u32 = 2;
174pub const BPF_F_REPLACE: u32 = 4;
175pub const BPF_F_STRICT_ALIGNMENT: u32 = 1;
176pub const BPF_F_ANY_ALIGNMENT: u32 = 2;
177pub const BPF_F_TEST_RND_HI32: u32 = 4;
178pub const BPF_F_TEST_STATE_FREQ: u32 = 8;
179pub const BPF_PSEUDO_MAP_FD: u32 = 1;
180pub const BPF_PSEUDO_MAP_VALUE: u32 = 2;
181pub const BPF_PSEUDO_CALL: u32 = 1;
182pub const BPF_ANY: u32 = 0;
183pub const BPF_NOEXIST: u32 = 1;
184pub const BPF_EXIST: u32 = 2;
185pub const BPF_F_LOCK: u32 = 4;
186pub const BPF_F_NO_PREALLOC: u32 = 1;
187pub const BPF_F_NO_COMMON_LRU: u32 = 2;
188pub const BPF_F_NUMA_NODE: u32 = 4;
189pub const BPF_OBJ_NAME_LEN: u32 = 16;
190pub const BPF_F_RDONLY: u32 = 8;
191pub const BPF_F_WRONLY: u32 = 16;
192pub const BPF_F_STACK_BUILD_ID: u32 = 32;
193pub const BPF_F_ZERO_SEED: u32 = 64;
194pub const BPF_F_RDONLY_PROG: u32 = 128;
195pub const BPF_F_WRONLY_PROG: u32 = 256;
196pub const BPF_F_CLONE: u32 = 512;
197pub const BPF_F_MMAPABLE: u32 = 1024;
198pub const BPF_F_QUERY_EFFECTIVE: u32 = 1;
199pub const BPF_BUILD_ID_SIZE: u32 = 20;
200pub const BPF_F_RECOMPUTE_CSUM: u32 = 1;
201pub const BPF_F_INVALIDATE_HASH: u32 = 2;
202pub const BPF_F_HDR_FIELD_MASK: u32 = 15;
203pub const BPF_F_PSEUDO_HDR: u32 = 16;
204pub const BPF_F_MARK_MANGLED_0: u32 = 32;
205pub const BPF_F_MARK_ENFORCE: u32 = 64;
206pub const BPF_F_INGRESS: u32 = 1;
207pub const BPF_F_TUNINFO_IPV6: u32 = 1;
208pub const BPF_F_SKIP_FIELD_MASK: u32 = 255;
209pub const BPF_F_USER_STACK: u32 = 256;
210pub const BPF_F_FAST_STACK_CMP: u32 = 512;
211pub const BPF_F_REUSE_STACKID: u32 = 1024;
212pub const BPF_F_USER_BUILD_ID: u32 = 2048;
213pub const BPF_F_ZERO_CSUM_TX: u32 = 2;
214pub const BPF_F_DONT_FRAGMENT: u32 = 4;
215pub const BPF_F_SEQ_NUMBER: u32 = 8;
216pub const BPF_F_INDEX_MASK: u32 = 4294967295;
217pub const BPF_F_CURRENT_CPU: u32 = 4294967295;
218pub const BPF_F_CTXLEN_MASK: u64 = 4503595332403200;
219pub const BPF_F_CURRENT_NETNS: i32 = -1;
220pub const BPF_F_ADJ_ROOM_FIXED_GSO: u32 = 1;
221pub const BPF_ADJ_ROOM_ENCAP_L2_MASK: u32 = 255;
222pub const BPF_ADJ_ROOM_ENCAP_L2_SHIFT: u32 = 56;
223pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: u32 = 2;
224pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: u32 = 4;
225pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: u32 = 8;
226pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: u32 = 16;
227pub const BPF_F_SYSCTL_BASE_NAME: u32 = 1;
228pub const BPF_SK_STORAGE_GET_F_CREATE: u32 = 1;
229pub const BPF_F_GET_BRANCH_RECORDS_SIZE: u32 = 1;
230pub const XDP_PACKET_HEADROOM: u32 = 256;
231pub const BPF_TAG_SIZE: u32 = 8;
232pub const BPF_SOCK_OPS_RTO_CB_FLAG: u32 = 1;
233pub const BPF_SOCK_OPS_RETRANS_CB_FLAG: u32 = 2;
234pub const BPF_SOCK_OPS_STATE_CB_FLAG: u32 = 4;
235pub const BPF_SOCK_OPS_RTT_CB_FLAG: u32 = 8;
236pub const BPF_SOCK_OPS_ALL_CB_FLAGS: u32 = 15;
237pub const TCP_BPF_IW: u32 = 1001;
238pub const TCP_BPF_SNDCWND_CLAMP: u32 = 1002;
239pub const BPF_DEVCG_ACC_MKNOD: u32 = 1;
240pub const BPF_DEVCG_ACC_READ: u32 = 2;
241pub const BPF_DEVCG_ACC_WRITE: u32 = 4;
242pub const BPF_DEVCG_DEV_BLOCK: u32 = 1;
243pub const BPF_DEVCG_DEV_CHAR: u32 = 2;
244pub const BPF_FIB_LOOKUP_DIRECT: u32 = 1;
245pub const BPF_FIB_LOOKUP_OUTPUT: u32 = 2;
246pub const BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG: u32 = 1;
247pub const BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL: u32 = 2;
248pub const BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP: u32 = 4;
249pub type __s8 = ::std::os::raw::c_schar;
250pub type __u8 = ::std::os::raw::c_uchar;
251pub type __s16 = ::std::os::raw::c_short;
252pub type __u16 = ::std::os::raw::c_ushort;
253pub type __s32 = ::std::os::raw::c_int;
254pub type __u32 = ::std::os::raw::c_uint;
255pub type __s64 = ::std::os::raw::c_longlong;
256pub type __u64 = ::std::os::raw::c_ulonglong;
257#[repr(C)]
258#[derive(Debug, Copy, Clone)]
259pub struct __kernel_fd_set {
260    pub fds_bits: [::std::os::raw::c_ulong; 16usize],
261}
262pub type __kernel_sighandler_t =
263    ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>;
264pub type __kernel_key_t = ::std::os::raw::c_int;
265pub type __kernel_mqd_t = ::std::os::raw::c_int;
266pub type __kernel_old_uid_t = ::std::os::raw::c_ushort;
267pub type __kernel_old_gid_t = ::std::os::raw::c_ushort;
268pub type __kernel_old_dev_t = ::std::os::raw::c_ulong;
269pub type __kernel_long_t = ::std::os::raw::c_long;
270pub type __kernel_ulong_t = ::std::os::raw::c_ulong;
271pub type __kernel_ino_t = __kernel_ulong_t;
272pub type __kernel_mode_t = ::std::os::raw::c_uint;
273pub type __kernel_pid_t = ::std::os::raw::c_int;
274pub type __kernel_ipc_pid_t = ::std::os::raw::c_int;
275pub type __kernel_uid_t = ::std::os::raw::c_uint;
276pub type __kernel_gid_t = ::std::os::raw::c_uint;
277pub type __kernel_suseconds_t = __kernel_long_t;
278pub type __kernel_daddr_t = ::std::os::raw::c_int;
279pub type __kernel_uid32_t = ::std::os::raw::c_uint;
280pub type __kernel_gid32_t = ::std::os::raw::c_uint;
281pub type __kernel_size_t = __kernel_ulong_t;
282pub type __kernel_ssize_t = __kernel_long_t;
283pub type __kernel_ptrdiff_t = __kernel_long_t;
284#[repr(C)]
285#[derive(Debug, Copy, Clone)]
286pub struct __kernel_fsid_t {
287    pub val: [::std::os::raw::c_int; 2usize],
288}
289pub type __kernel_off_t = __kernel_long_t;
290pub type __kernel_loff_t = ::std::os::raw::c_longlong;
291pub type __kernel_time_t = __kernel_long_t;
292pub type __kernel_time64_t = ::std::os::raw::c_longlong;
293pub type __kernel_clock_t = __kernel_long_t;
294pub type __kernel_timer_t = ::std::os::raw::c_int;
295pub type __kernel_clockid_t = ::std::os::raw::c_int;
296pub type __kernel_caddr_t = *mut ::std::os::raw::c_char;
297pub type __kernel_uid16_t = ::std::os::raw::c_ushort;
298pub type __kernel_gid16_t = ::std::os::raw::c_ushort;
299pub type __le16 = __u16;
300pub type __be16 = __u16;
301pub type __le32 = __u32;
302pub type __be32 = __u32;
303pub type __le64 = __u64;
304pub type __be64 = __u64;
305pub type __sum16 = __u16;
306pub type __wsum = __u32;
307pub type __poll_t = ::std::os::raw::c_uint;
308pub const BPF_REG_0: _bindgen_ty_1 = 0;
309pub const BPF_REG_1: _bindgen_ty_1 = 1;
310pub const BPF_REG_2: _bindgen_ty_1 = 2;
311pub const BPF_REG_3: _bindgen_ty_1 = 3;
312pub const BPF_REG_4: _bindgen_ty_1 = 4;
313pub const BPF_REG_5: _bindgen_ty_1 = 5;
314pub const BPF_REG_6: _bindgen_ty_1 = 6;
315pub const BPF_REG_7: _bindgen_ty_1 = 7;
316pub const BPF_REG_8: _bindgen_ty_1 = 8;
317pub const BPF_REG_9: _bindgen_ty_1 = 9;
318pub const BPF_REG_10: _bindgen_ty_1 = 10;
319pub const __MAX_BPF_REG: _bindgen_ty_1 = 11;
320pub type _bindgen_ty_1 = u32;
321#[repr(C)]
322#[derive(Debug, Copy, Clone)]
323pub struct bpf_insn {
324    pub code: __u8,
325    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
326    pub off: __s16,
327    pub imm: __s32,
328}
329impl bpf_insn {
330    #[inline]
331    pub fn dst_reg(&self) -> __u8 {
332        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
333    }
334    #[inline]
335    pub fn set_dst_reg(&mut self, val: __u8) {
336        unsafe {
337            let val: u8 = ::std::mem::transmute(val);
338            self._bitfield_1.set(0usize, 4u8, val as u64)
339        }
340    }
341    #[inline]
342    pub fn src_reg(&self) -> __u8 {
343        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
344    }
345    #[inline]
346    pub fn set_src_reg(&mut self, val: __u8) {
347        unsafe {
348            let val: u8 = ::std::mem::transmute(val);
349            self._bitfield_1.set(4usize, 4u8, val as u64)
350        }
351    }
352    #[inline]
353    pub fn new_bitfield_1(dst_reg: __u8, src_reg: __u8) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
354        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
355            Default::default();
356        __bindgen_bitfield_unit.set(0usize, 4u8, {
357            let dst_reg: u8 = unsafe { ::std::mem::transmute(dst_reg) };
358            dst_reg as u64
359        });
360        __bindgen_bitfield_unit.set(4usize, 4u8, {
361            let src_reg: u8 = unsafe { ::std::mem::transmute(src_reg) };
362            src_reg as u64
363        });
364        __bindgen_bitfield_unit
365    }
366}
367#[repr(C)]
368#[derive(Debug)]
369pub struct bpf_lpm_trie_key {
370    pub prefixlen: __u32,
371    pub data: __IncompleteArrayField<__u8>,
372}
373#[repr(C)]
374#[derive(Debug, Copy, Clone)]
375pub struct bpf_cgroup_storage_key {
376    pub cgroup_inode_id: __u64,
377    pub attach_type: __u32,
378}
379pub const bpf_cmd_BPF_MAP_CREATE: bpf_cmd = 0;
380pub const bpf_cmd_BPF_MAP_LOOKUP_ELEM: bpf_cmd = 1;
381pub const bpf_cmd_BPF_MAP_UPDATE_ELEM: bpf_cmd = 2;
382pub const bpf_cmd_BPF_MAP_DELETE_ELEM: bpf_cmd = 3;
383pub const bpf_cmd_BPF_MAP_GET_NEXT_KEY: bpf_cmd = 4;
384pub const bpf_cmd_BPF_PROG_LOAD: bpf_cmd = 5;
385pub const bpf_cmd_BPF_OBJ_PIN: bpf_cmd = 6;
386pub const bpf_cmd_BPF_OBJ_GET: bpf_cmd = 7;
387pub const bpf_cmd_BPF_PROG_ATTACH: bpf_cmd = 8;
388pub const bpf_cmd_BPF_PROG_DETACH: bpf_cmd = 9;
389pub const bpf_cmd_BPF_PROG_TEST_RUN: bpf_cmd = 10;
390pub const bpf_cmd_BPF_PROG_GET_NEXT_ID: bpf_cmd = 11;
391pub const bpf_cmd_BPF_MAP_GET_NEXT_ID: bpf_cmd = 12;
392pub const bpf_cmd_BPF_PROG_GET_FD_BY_ID: bpf_cmd = 13;
393pub const bpf_cmd_BPF_MAP_GET_FD_BY_ID: bpf_cmd = 14;
394pub const bpf_cmd_BPF_OBJ_GET_INFO_BY_FD: bpf_cmd = 15;
395pub const bpf_cmd_BPF_PROG_QUERY: bpf_cmd = 16;
396pub const bpf_cmd_BPF_RAW_TRACEPOINT_OPEN: bpf_cmd = 17;
397pub const bpf_cmd_BPF_BTF_LOAD: bpf_cmd = 18;
398pub const bpf_cmd_BPF_BTF_GET_FD_BY_ID: bpf_cmd = 19;
399pub const bpf_cmd_BPF_TASK_FD_QUERY: bpf_cmd = 20;
400pub const bpf_cmd_BPF_MAP_LOOKUP_AND_DELETE_ELEM: bpf_cmd = 21;
401pub const bpf_cmd_BPF_MAP_FREEZE: bpf_cmd = 22;
402pub const bpf_cmd_BPF_BTF_GET_NEXT_ID: bpf_cmd = 23;
403pub const bpf_cmd_BPF_MAP_LOOKUP_BATCH: bpf_cmd = 24;
404pub const bpf_cmd_BPF_MAP_LOOKUP_AND_DELETE_BATCH: bpf_cmd = 25;
405pub const bpf_cmd_BPF_MAP_UPDATE_BATCH: bpf_cmd = 26;
406pub const bpf_cmd_BPF_MAP_DELETE_BATCH: bpf_cmd = 27;
407pub type bpf_cmd = u32;
408pub const bpf_map_type_BPF_MAP_TYPE_UNSPEC: bpf_map_type = 0;
409pub const bpf_map_type_BPF_MAP_TYPE_HASH: bpf_map_type = 1;
410pub const bpf_map_type_BPF_MAP_TYPE_ARRAY: bpf_map_type = 2;
411pub const bpf_map_type_BPF_MAP_TYPE_PROG_ARRAY: bpf_map_type = 3;
412pub const bpf_map_type_BPF_MAP_TYPE_PERF_EVENT_ARRAY: bpf_map_type = 4;
413pub const bpf_map_type_BPF_MAP_TYPE_PERCPU_HASH: bpf_map_type = 5;
414pub const bpf_map_type_BPF_MAP_TYPE_PERCPU_ARRAY: bpf_map_type = 6;
415pub const bpf_map_type_BPF_MAP_TYPE_STACK_TRACE: bpf_map_type = 7;
416pub const bpf_map_type_BPF_MAP_TYPE_CGROUP_ARRAY: bpf_map_type = 8;
417pub const bpf_map_type_BPF_MAP_TYPE_LRU_HASH: bpf_map_type = 9;
418pub const bpf_map_type_BPF_MAP_TYPE_LRU_PERCPU_HASH: bpf_map_type = 10;
419pub const bpf_map_type_BPF_MAP_TYPE_LPM_TRIE: bpf_map_type = 11;
420pub const bpf_map_type_BPF_MAP_TYPE_ARRAY_OF_MAPS: bpf_map_type = 12;
421pub const bpf_map_type_BPF_MAP_TYPE_HASH_OF_MAPS: bpf_map_type = 13;
422pub const bpf_map_type_BPF_MAP_TYPE_DEVMAP: bpf_map_type = 14;
423pub const bpf_map_type_BPF_MAP_TYPE_SOCKMAP: bpf_map_type = 15;
424pub const bpf_map_type_BPF_MAP_TYPE_CPUMAP: bpf_map_type = 16;
425pub const bpf_map_type_BPF_MAP_TYPE_XSKMAP: bpf_map_type = 17;
426pub const bpf_map_type_BPF_MAP_TYPE_SOCKHASH: bpf_map_type = 18;
427pub const bpf_map_type_BPF_MAP_TYPE_CGROUP_STORAGE: bpf_map_type = 19;
428pub const bpf_map_type_BPF_MAP_TYPE_REUSEPORT_SOCKARRAY: bpf_map_type = 20;
429pub const bpf_map_type_BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE: bpf_map_type = 21;
430pub const bpf_map_type_BPF_MAP_TYPE_QUEUE: bpf_map_type = 22;
431pub const bpf_map_type_BPF_MAP_TYPE_STACK: bpf_map_type = 23;
432pub const bpf_map_type_BPF_MAP_TYPE_SK_STORAGE: bpf_map_type = 24;
433pub const bpf_map_type_BPF_MAP_TYPE_DEVMAP_HASH: bpf_map_type = 25;
434pub const bpf_map_type_BPF_MAP_TYPE_STRUCT_OPS: bpf_map_type = 26;
435pub type bpf_map_type = u32;
436pub const bpf_prog_type_BPF_PROG_TYPE_UNSPEC: bpf_prog_type = 0;
437pub const bpf_prog_type_BPF_PROG_TYPE_SOCKET_FILTER: bpf_prog_type = 1;
438pub const bpf_prog_type_BPF_PROG_TYPE_KPROBE: bpf_prog_type = 2;
439pub const bpf_prog_type_BPF_PROG_TYPE_SCHED_CLS: bpf_prog_type = 3;
440pub const bpf_prog_type_BPF_PROG_TYPE_SCHED_ACT: bpf_prog_type = 4;
441pub const bpf_prog_type_BPF_PROG_TYPE_TRACEPOINT: bpf_prog_type = 5;
442pub const bpf_prog_type_BPF_PROG_TYPE_XDP: bpf_prog_type = 6;
443pub const bpf_prog_type_BPF_PROG_TYPE_PERF_EVENT: bpf_prog_type = 7;
444pub const bpf_prog_type_BPF_PROG_TYPE_CGROUP_SKB: bpf_prog_type = 8;
445pub const bpf_prog_type_BPF_PROG_TYPE_CGROUP_SOCK: bpf_prog_type = 9;
446pub const bpf_prog_type_BPF_PROG_TYPE_LWT_IN: bpf_prog_type = 10;
447pub const bpf_prog_type_BPF_PROG_TYPE_LWT_OUT: bpf_prog_type = 11;
448pub const bpf_prog_type_BPF_PROG_TYPE_LWT_XMIT: bpf_prog_type = 12;
449pub const bpf_prog_type_BPF_PROG_TYPE_SOCK_OPS: bpf_prog_type = 13;
450pub const bpf_prog_type_BPF_PROG_TYPE_SK_SKB: bpf_prog_type = 14;
451pub const bpf_prog_type_BPF_PROG_TYPE_CGROUP_DEVICE: bpf_prog_type = 15;
452pub const bpf_prog_type_BPF_PROG_TYPE_SK_MSG: bpf_prog_type = 16;
453pub const bpf_prog_type_BPF_PROG_TYPE_RAW_TRACEPOINT: bpf_prog_type = 17;
454pub const bpf_prog_type_BPF_PROG_TYPE_CGROUP_SOCK_ADDR: bpf_prog_type = 18;
455pub const bpf_prog_type_BPF_PROG_TYPE_LWT_SEG6LOCAL: bpf_prog_type = 19;
456pub const bpf_prog_type_BPF_PROG_TYPE_LIRC_MODE2: bpf_prog_type = 20;
457pub const bpf_prog_type_BPF_PROG_TYPE_SK_REUSEPORT: bpf_prog_type = 21;
458pub const bpf_prog_type_BPF_PROG_TYPE_FLOW_DISSECTOR: bpf_prog_type = 22;
459pub const bpf_prog_type_BPF_PROG_TYPE_CGROUP_SYSCTL: bpf_prog_type = 23;
460pub const bpf_prog_type_BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE: bpf_prog_type = 24;
461pub const bpf_prog_type_BPF_PROG_TYPE_CGROUP_SOCKOPT: bpf_prog_type = 25;
462pub const bpf_prog_type_BPF_PROG_TYPE_TRACING: bpf_prog_type = 26;
463pub const bpf_prog_type_BPF_PROG_TYPE_STRUCT_OPS: bpf_prog_type = 27;
464pub const bpf_prog_type_BPF_PROG_TYPE_EXT: bpf_prog_type = 28;
465pub type bpf_prog_type = u32;
466pub const bpf_attach_type_BPF_CGROUP_INET_INGRESS: bpf_attach_type = 0;
467pub const bpf_attach_type_BPF_CGROUP_INET_EGRESS: bpf_attach_type = 1;
468pub const bpf_attach_type_BPF_CGROUP_INET_SOCK_CREATE: bpf_attach_type = 2;
469pub const bpf_attach_type_BPF_CGROUP_SOCK_OPS: bpf_attach_type = 3;
470pub const bpf_attach_type_BPF_SK_SKB_STREAM_PARSER: bpf_attach_type = 4;
471pub const bpf_attach_type_BPF_SK_SKB_STREAM_VERDICT: bpf_attach_type = 5;
472pub const bpf_attach_type_BPF_CGROUP_DEVICE: bpf_attach_type = 6;
473pub const bpf_attach_type_BPF_SK_MSG_VERDICT: bpf_attach_type = 7;
474pub const bpf_attach_type_BPF_CGROUP_INET4_BIND: bpf_attach_type = 8;
475pub const bpf_attach_type_BPF_CGROUP_INET6_BIND: bpf_attach_type = 9;
476pub const bpf_attach_type_BPF_CGROUP_INET4_CONNECT: bpf_attach_type = 10;
477pub const bpf_attach_type_BPF_CGROUP_INET6_CONNECT: bpf_attach_type = 11;
478pub const bpf_attach_type_BPF_CGROUP_INET4_POST_BIND: bpf_attach_type = 12;
479pub const bpf_attach_type_BPF_CGROUP_INET6_POST_BIND: bpf_attach_type = 13;
480pub const bpf_attach_type_BPF_CGROUP_UDP4_SENDMSG: bpf_attach_type = 14;
481pub const bpf_attach_type_BPF_CGROUP_UDP6_SENDMSG: bpf_attach_type = 15;
482pub const bpf_attach_type_BPF_LIRC_MODE2: bpf_attach_type = 16;
483pub const bpf_attach_type_BPF_FLOW_DISSECTOR: bpf_attach_type = 17;
484pub const bpf_attach_type_BPF_CGROUP_SYSCTL: bpf_attach_type = 18;
485pub const bpf_attach_type_BPF_CGROUP_UDP4_RECVMSG: bpf_attach_type = 19;
486pub const bpf_attach_type_BPF_CGROUP_UDP6_RECVMSG: bpf_attach_type = 20;
487pub const bpf_attach_type_BPF_CGROUP_GETSOCKOPT: bpf_attach_type = 21;
488pub const bpf_attach_type_BPF_CGROUP_SETSOCKOPT: bpf_attach_type = 22;
489pub const bpf_attach_type_BPF_TRACE_RAW_TP: bpf_attach_type = 23;
490pub const bpf_attach_type_BPF_TRACE_FENTRY: bpf_attach_type = 24;
491pub const bpf_attach_type_BPF_TRACE_FEXIT: bpf_attach_type = 25;
492pub const bpf_attach_type___MAX_BPF_ATTACH_TYPE: bpf_attach_type = 26;
493pub type bpf_attach_type = u32;
494pub const bpf_stack_build_id_status_BPF_STACK_BUILD_ID_EMPTY: bpf_stack_build_id_status = 0;
495pub const bpf_stack_build_id_status_BPF_STACK_BUILD_ID_VALID: bpf_stack_build_id_status = 1;
496pub const bpf_stack_build_id_status_BPF_STACK_BUILD_ID_IP: bpf_stack_build_id_status = 2;
497pub type bpf_stack_build_id_status = u32;
498#[repr(C)]
499#[derive(Copy, Clone)]
500pub struct bpf_stack_build_id {
501    pub status: __s32,
502    pub build_id: [::std::os::raw::c_uchar; 20usize],
503    pub __bindgen_anon_1: bpf_stack_build_id__bindgen_ty_1,
504}
505#[repr(C)]
506#[derive(Copy, Clone)]
507pub union bpf_stack_build_id__bindgen_ty_1 {
508    pub offset: __u64,
509    pub ip: __u64,
510    _bindgen_union_align: u64,
511}
512#[repr(C)]
513#[derive(Copy, Clone)]
514pub union bpf_attr {
515    pub __bindgen_anon_1: bpf_attr__bindgen_ty_1,
516    pub __bindgen_anon_2: bpf_attr__bindgen_ty_2,
517    pub batch: bpf_attr__bindgen_ty_3,
518    pub __bindgen_anon_3: bpf_attr__bindgen_ty_4,
519    pub __bindgen_anon_4: bpf_attr__bindgen_ty_5,
520    pub __bindgen_anon_5: bpf_attr__bindgen_ty_6,
521    pub test: bpf_attr__bindgen_ty_7,
522    pub __bindgen_anon_6: bpf_attr__bindgen_ty_8,
523    pub info: bpf_attr__bindgen_ty_9,
524    pub query: bpf_attr__bindgen_ty_10,
525    pub raw_tracepoint: bpf_attr__bindgen_ty_11,
526    pub __bindgen_anon_7: bpf_attr__bindgen_ty_12,
527    pub task_fd_query: bpf_attr__bindgen_ty_13,
528    _bindgen_union_align: [u64; 15usize],
529}
530#[repr(C)]
531#[derive(Debug, Copy, Clone)]
532pub struct bpf_attr__bindgen_ty_1 {
533    pub map_type: __u32,
534    pub key_size: __u32,
535    pub value_size: __u32,
536    pub max_entries: __u32,
537    pub map_flags: __u32,
538    pub inner_map_fd: __u32,
539    pub numa_node: __u32,
540    pub map_name: [::std::os::raw::c_char; 16usize],
541    pub map_ifindex: __u32,
542    pub btf_fd: __u32,
543    pub btf_key_type_id: __u32,
544    pub btf_value_type_id: __u32,
545    pub btf_vmlinux_value_type_id: __u32,
546}
547#[repr(C)]
548#[derive(Copy, Clone)]
549pub struct bpf_attr__bindgen_ty_2 {
550    pub map_fd: __u32,
551    pub key: __u64,
552    pub __bindgen_anon_1: bpf_attr__bindgen_ty_2__bindgen_ty_1,
553    pub flags: __u64,
554}
555#[repr(C)]
556#[derive(Copy, Clone)]
557pub union bpf_attr__bindgen_ty_2__bindgen_ty_1 {
558    pub value: __u64,
559    pub next_key: __u64,
560    _bindgen_union_align: u64,
561}
562#[repr(C)]
563#[derive(Debug, Copy, Clone)]
564pub struct bpf_attr__bindgen_ty_3 {
565    pub in_batch: __u64,
566    pub out_batch: __u64,
567    pub keys: __u64,
568    pub values: __u64,
569    pub count: __u32,
570    pub map_fd: __u32,
571    pub elem_flags: __u64,
572    pub flags: __u64,
573}
574#[repr(C)]
575#[derive(Debug, Copy, Clone)]
576pub struct bpf_attr__bindgen_ty_4 {
577    pub prog_type: __u32,
578    pub insn_cnt: __u32,
579    pub insns: __u64,
580    pub license: __u64,
581    pub log_level: __u32,
582    pub log_size: __u32,
583    pub log_buf: __u64,
584    pub kern_version: __u32,
585    pub prog_flags: __u32,
586    pub prog_name: [::std::os::raw::c_char; 16usize],
587    pub prog_ifindex: __u32,
588    pub expected_attach_type: __u32,
589    pub prog_btf_fd: __u32,
590    pub func_info_rec_size: __u32,
591    pub func_info: __u64,
592    pub func_info_cnt: __u32,
593    pub line_info_rec_size: __u32,
594    pub line_info: __u64,
595    pub line_info_cnt: __u32,
596    pub attach_btf_id: __u32,
597    pub attach_prog_fd: __u32,
598}
599#[repr(C)]
600#[derive(Debug, Copy, Clone)]
601pub struct bpf_attr__bindgen_ty_5 {
602    pub pathname: __u64,
603    pub bpf_fd: __u32,
604    pub file_flags: __u32,
605}
606#[repr(C)]
607#[derive(Debug, Copy, Clone)]
608pub struct bpf_attr__bindgen_ty_6 {
609    pub target_fd: __u32,
610    pub attach_bpf_fd: __u32,
611    pub attach_type: __u32,
612    pub attach_flags: __u32,
613    pub replace_bpf_fd: __u32,
614}
615#[repr(C)]
616#[derive(Debug, Copy, Clone)]
617pub struct bpf_attr__bindgen_ty_7 {
618    pub prog_fd: __u32,
619    pub retval: __u32,
620    pub data_size_in: __u32,
621    pub data_size_out: __u32,
622    pub data_in: __u64,
623    pub data_out: __u64,
624    pub repeat: __u32,
625    pub duration: __u32,
626    pub ctx_size_in: __u32,
627    pub ctx_size_out: __u32,
628    pub ctx_in: __u64,
629    pub ctx_out: __u64,
630}
631#[repr(C)]
632#[derive(Copy, Clone)]
633pub struct bpf_attr__bindgen_ty_8 {
634    pub __bindgen_anon_1: bpf_attr__bindgen_ty_8__bindgen_ty_1,
635    pub next_id: __u32,
636    pub open_flags: __u32,
637}
638#[repr(C)]
639#[derive(Copy, Clone)]
640pub union bpf_attr__bindgen_ty_8__bindgen_ty_1 {
641    pub start_id: __u32,
642    pub prog_id: __u32,
643    pub map_id: __u32,
644    pub btf_id: __u32,
645    _bindgen_union_align: u32,
646}
647#[repr(C)]
648#[derive(Debug, Copy, Clone)]
649pub struct bpf_attr__bindgen_ty_9 {
650    pub bpf_fd: __u32,
651    pub info_len: __u32,
652    pub info: __u64,
653}
654#[repr(C)]
655#[derive(Debug, Copy, Clone)]
656pub struct bpf_attr__bindgen_ty_10 {
657    pub target_fd: __u32,
658    pub attach_type: __u32,
659    pub query_flags: __u32,
660    pub attach_flags: __u32,
661    pub prog_ids: __u64,
662    pub prog_cnt: __u32,
663}
664#[repr(C)]
665#[derive(Debug, Copy, Clone)]
666pub struct bpf_attr__bindgen_ty_11 {
667    pub name: __u64,
668    pub prog_fd: __u32,
669}
670#[repr(C)]
671#[derive(Debug, Copy, Clone)]
672pub struct bpf_attr__bindgen_ty_12 {
673    pub btf: __u64,
674    pub btf_log_buf: __u64,
675    pub btf_size: __u32,
676    pub btf_log_size: __u32,
677    pub btf_log_level: __u32,
678}
679#[repr(C)]
680#[derive(Debug, Copy, Clone)]
681pub struct bpf_attr__bindgen_ty_13 {
682    pub pid: __u32,
683    pub fd: __u32,
684    pub flags: __u32,
685    pub buf_len: __u32,
686    pub buf: __u64,
687    pub prog_id: __u32,
688    pub fd_type: __u32,
689    pub probe_offset: __u64,
690    pub probe_addr: __u64,
691}
692pub const bpf_func_id_BPF_FUNC_unspec: bpf_func_id = 0;
693pub const bpf_func_id_BPF_FUNC_map_lookup_elem: bpf_func_id = 1;
694pub const bpf_func_id_BPF_FUNC_map_update_elem: bpf_func_id = 2;
695pub const bpf_func_id_BPF_FUNC_map_delete_elem: bpf_func_id = 3;
696pub const bpf_func_id_BPF_FUNC_probe_read: bpf_func_id = 4;
697pub const bpf_func_id_BPF_FUNC_ktime_get_ns: bpf_func_id = 5;
698pub const bpf_func_id_BPF_FUNC_trace_printk: bpf_func_id = 6;
699pub const bpf_func_id_BPF_FUNC_get_prandom_u32: bpf_func_id = 7;
700pub const bpf_func_id_BPF_FUNC_get_smp_processor_id: bpf_func_id = 8;
701pub const bpf_func_id_BPF_FUNC_skb_store_bytes: bpf_func_id = 9;
702pub const bpf_func_id_BPF_FUNC_l3_csum_replace: bpf_func_id = 10;
703pub const bpf_func_id_BPF_FUNC_l4_csum_replace: bpf_func_id = 11;
704pub const bpf_func_id_BPF_FUNC_tail_call: bpf_func_id = 12;
705pub const bpf_func_id_BPF_FUNC_clone_redirect: bpf_func_id = 13;
706pub const bpf_func_id_BPF_FUNC_get_current_pid_tgid: bpf_func_id = 14;
707pub const bpf_func_id_BPF_FUNC_get_current_uid_gid: bpf_func_id = 15;
708pub const bpf_func_id_BPF_FUNC_get_current_comm: bpf_func_id = 16;
709pub const bpf_func_id_BPF_FUNC_get_cgroup_classid: bpf_func_id = 17;
710pub const bpf_func_id_BPF_FUNC_skb_vlan_push: bpf_func_id = 18;
711pub const bpf_func_id_BPF_FUNC_skb_vlan_pop: bpf_func_id = 19;
712pub const bpf_func_id_BPF_FUNC_skb_get_tunnel_key: bpf_func_id = 20;
713pub const bpf_func_id_BPF_FUNC_skb_set_tunnel_key: bpf_func_id = 21;
714pub const bpf_func_id_BPF_FUNC_perf_event_read: bpf_func_id = 22;
715pub const bpf_func_id_BPF_FUNC_redirect: bpf_func_id = 23;
716pub const bpf_func_id_BPF_FUNC_get_route_realm: bpf_func_id = 24;
717pub const bpf_func_id_BPF_FUNC_perf_event_output: bpf_func_id = 25;
718pub const bpf_func_id_BPF_FUNC_skb_load_bytes: bpf_func_id = 26;
719pub const bpf_func_id_BPF_FUNC_get_stackid: bpf_func_id = 27;
720pub const bpf_func_id_BPF_FUNC_csum_diff: bpf_func_id = 28;
721pub const bpf_func_id_BPF_FUNC_skb_get_tunnel_opt: bpf_func_id = 29;
722pub const bpf_func_id_BPF_FUNC_skb_set_tunnel_opt: bpf_func_id = 30;
723pub const bpf_func_id_BPF_FUNC_skb_change_proto: bpf_func_id = 31;
724pub const bpf_func_id_BPF_FUNC_skb_change_type: bpf_func_id = 32;
725pub const bpf_func_id_BPF_FUNC_skb_under_cgroup: bpf_func_id = 33;
726pub const bpf_func_id_BPF_FUNC_get_hash_recalc: bpf_func_id = 34;
727pub const bpf_func_id_BPF_FUNC_get_current_task: bpf_func_id = 35;
728pub const bpf_func_id_BPF_FUNC_probe_write_user: bpf_func_id = 36;
729pub const bpf_func_id_BPF_FUNC_current_task_under_cgroup: bpf_func_id = 37;
730pub const bpf_func_id_BPF_FUNC_skb_change_tail: bpf_func_id = 38;
731pub const bpf_func_id_BPF_FUNC_skb_pull_data: bpf_func_id = 39;
732pub const bpf_func_id_BPF_FUNC_csum_update: bpf_func_id = 40;
733pub const bpf_func_id_BPF_FUNC_set_hash_invalid: bpf_func_id = 41;
734pub const bpf_func_id_BPF_FUNC_get_numa_node_id: bpf_func_id = 42;
735pub const bpf_func_id_BPF_FUNC_skb_change_head: bpf_func_id = 43;
736pub const bpf_func_id_BPF_FUNC_xdp_adjust_head: bpf_func_id = 44;
737pub const bpf_func_id_BPF_FUNC_probe_read_str: bpf_func_id = 45;
738pub const bpf_func_id_BPF_FUNC_get_socket_cookie: bpf_func_id = 46;
739pub const bpf_func_id_BPF_FUNC_get_socket_uid: bpf_func_id = 47;
740pub const bpf_func_id_BPF_FUNC_set_hash: bpf_func_id = 48;
741pub const bpf_func_id_BPF_FUNC_setsockopt: bpf_func_id = 49;
742pub const bpf_func_id_BPF_FUNC_skb_adjust_room: bpf_func_id = 50;
743pub const bpf_func_id_BPF_FUNC_redirect_map: bpf_func_id = 51;
744pub const bpf_func_id_BPF_FUNC_sk_redirect_map: bpf_func_id = 52;
745pub const bpf_func_id_BPF_FUNC_sock_map_update: bpf_func_id = 53;
746pub const bpf_func_id_BPF_FUNC_xdp_adjust_meta: bpf_func_id = 54;
747pub const bpf_func_id_BPF_FUNC_perf_event_read_value: bpf_func_id = 55;
748pub const bpf_func_id_BPF_FUNC_perf_prog_read_value: bpf_func_id = 56;
749pub const bpf_func_id_BPF_FUNC_getsockopt: bpf_func_id = 57;
750pub const bpf_func_id_BPF_FUNC_override_return: bpf_func_id = 58;
751pub const bpf_func_id_BPF_FUNC_sock_ops_cb_flags_set: bpf_func_id = 59;
752pub const bpf_func_id_BPF_FUNC_msg_redirect_map: bpf_func_id = 60;
753pub const bpf_func_id_BPF_FUNC_msg_apply_bytes: bpf_func_id = 61;
754pub const bpf_func_id_BPF_FUNC_msg_cork_bytes: bpf_func_id = 62;
755pub const bpf_func_id_BPF_FUNC_msg_pull_data: bpf_func_id = 63;
756pub const bpf_func_id_BPF_FUNC_bind: bpf_func_id = 64;
757pub const bpf_func_id_BPF_FUNC_xdp_adjust_tail: bpf_func_id = 65;
758pub const bpf_func_id_BPF_FUNC_skb_get_xfrm_state: bpf_func_id = 66;
759pub const bpf_func_id_BPF_FUNC_get_stack: bpf_func_id = 67;
760pub const bpf_func_id_BPF_FUNC_skb_load_bytes_relative: bpf_func_id = 68;
761pub const bpf_func_id_BPF_FUNC_fib_lookup: bpf_func_id = 69;
762pub const bpf_func_id_BPF_FUNC_sock_hash_update: bpf_func_id = 70;
763pub const bpf_func_id_BPF_FUNC_msg_redirect_hash: bpf_func_id = 71;
764pub const bpf_func_id_BPF_FUNC_sk_redirect_hash: bpf_func_id = 72;
765pub const bpf_func_id_BPF_FUNC_lwt_push_encap: bpf_func_id = 73;
766pub const bpf_func_id_BPF_FUNC_lwt_seg6_store_bytes: bpf_func_id = 74;
767pub const bpf_func_id_BPF_FUNC_lwt_seg6_adjust_srh: bpf_func_id = 75;
768pub const bpf_func_id_BPF_FUNC_lwt_seg6_action: bpf_func_id = 76;
769pub const bpf_func_id_BPF_FUNC_rc_repeat: bpf_func_id = 77;
770pub const bpf_func_id_BPF_FUNC_rc_keydown: bpf_func_id = 78;
771pub const bpf_func_id_BPF_FUNC_skb_cgroup_id: bpf_func_id = 79;
772pub const bpf_func_id_BPF_FUNC_get_current_cgroup_id: bpf_func_id = 80;
773pub const bpf_func_id_BPF_FUNC_get_local_storage: bpf_func_id = 81;
774pub const bpf_func_id_BPF_FUNC_sk_select_reuseport: bpf_func_id = 82;
775pub const bpf_func_id_BPF_FUNC_skb_ancestor_cgroup_id: bpf_func_id = 83;
776pub const bpf_func_id_BPF_FUNC_sk_lookup_tcp: bpf_func_id = 84;
777pub const bpf_func_id_BPF_FUNC_sk_lookup_udp: bpf_func_id = 85;
778pub const bpf_func_id_BPF_FUNC_sk_release: bpf_func_id = 86;
779pub const bpf_func_id_BPF_FUNC_map_push_elem: bpf_func_id = 87;
780pub const bpf_func_id_BPF_FUNC_map_pop_elem: bpf_func_id = 88;
781pub const bpf_func_id_BPF_FUNC_map_peek_elem: bpf_func_id = 89;
782pub const bpf_func_id_BPF_FUNC_msg_push_data: bpf_func_id = 90;
783pub const bpf_func_id_BPF_FUNC_msg_pop_data: bpf_func_id = 91;
784pub const bpf_func_id_BPF_FUNC_rc_pointer_rel: bpf_func_id = 92;
785pub const bpf_func_id_BPF_FUNC_spin_lock: bpf_func_id = 93;
786pub const bpf_func_id_BPF_FUNC_spin_unlock: bpf_func_id = 94;
787pub const bpf_func_id_BPF_FUNC_sk_fullsock: bpf_func_id = 95;
788pub const bpf_func_id_BPF_FUNC_tcp_sock: bpf_func_id = 96;
789pub const bpf_func_id_BPF_FUNC_skb_ecn_set_ce: bpf_func_id = 97;
790pub const bpf_func_id_BPF_FUNC_get_listener_sock: bpf_func_id = 98;
791pub const bpf_func_id_BPF_FUNC_skc_lookup_tcp: bpf_func_id = 99;
792pub const bpf_func_id_BPF_FUNC_tcp_check_syncookie: bpf_func_id = 100;
793pub const bpf_func_id_BPF_FUNC_sysctl_get_name: bpf_func_id = 101;
794pub const bpf_func_id_BPF_FUNC_sysctl_get_current_value: bpf_func_id = 102;
795pub const bpf_func_id_BPF_FUNC_sysctl_get_new_value: bpf_func_id = 103;
796pub const bpf_func_id_BPF_FUNC_sysctl_set_new_value: bpf_func_id = 104;
797pub const bpf_func_id_BPF_FUNC_strtol: bpf_func_id = 105;
798pub const bpf_func_id_BPF_FUNC_strtoul: bpf_func_id = 106;
799pub const bpf_func_id_BPF_FUNC_sk_storage_get: bpf_func_id = 107;
800pub const bpf_func_id_BPF_FUNC_sk_storage_delete: bpf_func_id = 108;
801pub const bpf_func_id_BPF_FUNC_send_signal: bpf_func_id = 109;
802pub const bpf_func_id_BPF_FUNC_tcp_gen_syncookie: bpf_func_id = 110;
803pub const bpf_func_id_BPF_FUNC_skb_output: bpf_func_id = 111;
804pub const bpf_func_id_BPF_FUNC_probe_read_user: bpf_func_id = 112;
805pub const bpf_func_id_BPF_FUNC_probe_read_kernel: bpf_func_id = 113;
806pub const bpf_func_id_BPF_FUNC_probe_read_user_str: bpf_func_id = 114;
807pub const bpf_func_id_BPF_FUNC_probe_read_kernel_str: bpf_func_id = 115;
808pub const bpf_func_id_BPF_FUNC_tcp_send_ack: bpf_func_id = 116;
809pub const bpf_func_id_BPF_FUNC_send_signal_thread: bpf_func_id = 117;
810pub const bpf_func_id_BPF_FUNC_jiffies64: bpf_func_id = 118;
811pub const bpf_func_id_BPF_FUNC_read_branch_records: bpf_func_id = 119;
812pub const bpf_func_id___BPF_FUNC_MAX_ID: bpf_func_id = 120;
813pub type bpf_func_id = u32;
814pub const bpf_adj_room_mode_BPF_ADJ_ROOM_NET: bpf_adj_room_mode = 0;
815pub const bpf_adj_room_mode_BPF_ADJ_ROOM_MAC: bpf_adj_room_mode = 1;
816pub type bpf_adj_room_mode = u32;
817pub const bpf_hdr_start_off_BPF_HDR_START_MAC: bpf_hdr_start_off = 0;
818pub const bpf_hdr_start_off_BPF_HDR_START_NET: bpf_hdr_start_off = 1;
819pub type bpf_hdr_start_off = u32;
820pub const bpf_lwt_encap_mode_BPF_LWT_ENCAP_SEG6: bpf_lwt_encap_mode = 0;
821pub const bpf_lwt_encap_mode_BPF_LWT_ENCAP_SEG6_INLINE: bpf_lwt_encap_mode = 1;
822pub const bpf_lwt_encap_mode_BPF_LWT_ENCAP_IP: bpf_lwt_encap_mode = 2;
823pub type bpf_lwt_encap_mode = u32;
824#[repr(C)]
825#[derive(Copy, Clone)]
826pub struct __sk_buff {
827    pub len: __u32,
828    pub pkt_type: __u32,
829    pub mark: __u32,
830    pub queue_mapping: __u32,
831    pub protocol: __u32,
832    pub vlan_present: __u32,
833    pub vlan_tci: __u32,
834    pub vlan_proto: __u32,
835    pub priority: __u32,
836    pub ingress_ifindex: __u32,
837    pub ifindex: __u32,
838    pub tc_index: __u32,
839    pub cb: [__u32; 5usize],
840    pub hash: __u32,
841    pub tc_classid: __u32,
842    pub data: __u32,
843    pub data_end: __u32,
844    pub napi_id: __u32,
845    pub family: __u32,
846    pub remote_ip4: __u32,
847    pub local_ip4: __u32,
848    pub remote_ip6: [__u32; 4usize],
849    pub local_ip6: [__u32; 4usize],
850    pub remote_port: __u32,
851    pub local_port: __u32,
852    pub data_meta: __u32,
853    pub __bindgen_anon_1: __sk_buff__bindgen_ty_1,
854    pub tstamp: __u64,
855    pub wire_len: __u32,
856    pub gso_segs: __u32,
857    pub __bindgen_anon_2: __sk_buff__bindgen_ty_2,
858}
859#[repr(C)]
860#[derive(Copy, Clone)]
861pub union __sk_buff__bindgen_ty_1 {
862    pub flow_keys: *mut bpf_flow_keys,
863    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u8>,
864    _bindgen_union_align: u64,
865}
866impl __sk_buff__bindgen_ty_1 {
867    #[inline]
868    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize], u8> {
869        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u8> =
870            Default::default();
871        __bindgen_bitfield_unit
872    }
873}
874#[repr(C)]
875#[derive(Copy, Clone)]
876pub union __sk_buff__bindgen_ty_2 {
877    pub sk: *mut bpf_sock,
878    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u8>,
879    _bindgen_union_align: u64,
880}
881impl __sk_buff__bindgen_ty_2 {
882    #[inline]
883    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize], u8> {
884        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u8> =
885            Default::default();
886        __bindgen_bitfield_unit
887    }
888}
889#[repr(C)]
890#[derive(Copy, Clone)]
891pub struct bpf_tunnel_key {
892    pub tunnel_id: __u32,
893    pub __bindgen_anon_1: bpf_tunnel_key__bindgen_ty_1,
894    pub tunnel_tos: __u8,
895    pub tunnel_ttl: __u8,
896    pub tunnel_ext: __u16,
897    pub tunnel_label: __u32,
898}
899#[repr(C)]
900#[derive(Copy, Clone)]
901pub union bpf_tunnel_key__bindgen_ty_1 {
902    pub remote_ipv4: __u32,
903    pub remote_ipv6: [__u32; 4usize],
904    _bindgen_union_align: [u32; 4usize],
905}
906#[repr(C)]
907#[derive(Copy, Clone)]
908pub struct bpf_xfrm_state {
909    pub reqid: __u32,
910    pub spi: __u32,
911    pub family: __u16,
912    pub ext: __u16,
913    pub __bindgen_anon_1: bpf_xfrm_state__bindgen_ty_1,
914}
915#[repr(C)]
916#[derive(Copy, Clone)]
917pub union bpf_xfrm_state__bindgen_ty_1 {
918    pub remote_ipv4: __u32,
919    pub remote_ipv6: [__u32; 4usize],
920    _bindgen_union_align: [u32; 4usize],
921}
922pub const bpf_ret_code_BPF_OK: bpf_ret_code = 0;
923pub const bpf_ret_code_BPF_DROP: bpf_ret_code = 2;
924pub const bpf_ret_code_BPF_REDIRECT: bpf_ret_code = 7;
925pub const bpf_ret_code_BPF_LWT_REROUTE: bpf_ret_code = 128;
926pub type bpf_ret_code = u32;
927#[repr(C)]
928#[derive(Debug, Copy, Clone)]
929pub struct bpf_sock {
930    pub bound_dev_if: __u32,
931    pub family: __u32,
932    pub type_: __u32,
933    pub protocol: __u32,
934    pub mark: __u32,
935    pub priority: __u32,
936    pub src_ip4: __u32,
937    pub src_ip6: [__u32; 4usize],
938    pub src_port: __u32,
939    pub dst_port: __u32,
940    pub dst_ip4: __u32,
941    pub dst_ip6: [__u32; 4usize],
942    pub state: __u32,
943}
944#[repr(C)]
945#[derive(Debug, Copy, Clone)]
946pub struct bpf_tcp_sock {
947    pub snd_cwnd: __u32,
948    pub srtt_us: __u32,
949    pub rtt_min: __u32,
950    pub snd_ssthresh: __u32,
951    pub rcv_nxt: __u32,
952    pub snd_nxt: __u32,
953    pub snd_una: __u32,
954    pub mss_cache: __u32,
955    pub ecn_flags: __u32,
956    pub rate_delivered: __u32,
957    pub rate_interval_us: __u32,
958    pub packets_out: __u32,
959    pub retrans_out: __u32,
960    pub total_retrans: __u32,
961    pub segs_in: __u32,
962    pub data_segs_in: __u32,
963    pub segs_out: __u32,
964    pub data_segs_out: __u32,
965    pub lost_out: __u32,
966    pub sacked_out: __u32,
967    pub bytes_received: __u64,
968    pub bytes_acked: __u64,
969    pub dsack_dups: __u32,
970    pub delivered: __u32,
971    pub delivered_ce: __u32,
972    pub icsk_retransmits: __u32,
973}
974#[repr(C)]
975#[derive(Copy, Clone)]
976pub struct bpf_sock_tuple {
977    pub __bindgen_anon_1: bpf_sock_tuple__bindgen_ty_1,
978}
979#[repr(C)]
980#[derive(Copy, Clone)]
981pub union bpf_sock_tuple__bindgen_ty_1 {
982    pub ipv4: bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1,
983    pub ipv6: bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2,
984    _bindgen_union_align: [u32; 9usize],
985}
986#[repr(C)]
987#[derive(Debug, Copy, Clone)]
988pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1 {
989    pub saddr: __be32,
990    pub daddr: __be32,
991    pub sport: __be16,
992    pub dport: __be16,
993}
994#[repr(C)]
995#[derive(Debug, Copy, Clone)]
996pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2 {
997    pub saddr: [__be32; 4usize],
998    pub daddr: [__be32; 4usize],
999    pub sport: __be16,
1000    pub dport: __be16,
1001}
1002#[repr(C)]
1003#[derive(Debug, Copy, Clone)]
1004pub struct bpf_xdp_sock {
1005    pub queue_id: __u32,
1006}
1007pub const xdp_action_XDP_ABORTED: xdp_action = 0;
1008pub const xdp_action_XDP_DROP: xdp_action = 1;
1009pub const xdp_action_XDP_PASS: xdp_action = 2;
1010pub const xdp_action_XDP_TX: xdp_action = 3;
1011pub const xdp_action_XDP_REDIRECT: xdp_action = 4;
1012pub type xdp_action = u32;
1013#[repr(C)]
1014#[derive(Debug, Copy, Clone)]
1015pub struct xdp_md {
1016    pub data: __u32,
1017    pub data_end: __u32,
1018    pub data_meta: __u32,
1019    pub ingress_ifindex: __u32,
1020    pub rx_queue_index: __u32,
1021}
1022pub const sk_action_SK_DROP: sk_action = 0;
1023pub const sk_action_SK_PASS: sk_action = 1;
1024pub type sk_action = u32;
1025#[repr(C)]
1026#[derive(Copy, Clone)]
1027pub struct sk_msg_md {
1028    pub __bindgen_anon_1: sk_msg_md__bindgen_ty_1,
1029    pub __bindgen_anon_2: sk_msg_md__bindgen_ty_2,
1030    pub family: __u32,
1031    pub remote_ip4: __u32,
1032    pub local_ip4: __u32,
1033    pub remote_ip6: [__u32; 4usize],
1034    pub local_ip6: [__u32; 4usize],
1035    pub remote_port: __u32,
1036    pub local_port: __u32,
1037    pub size: __u32,
1038}
1039#[repr(C)]
1040#[derive(Copy, Clone)]
1041pub union sk_msg_md__bindgen_ty_1 {
1042    pub data: *mut ::std::os::raw::c_void,
1043    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u8>,
1044    _bindgen_union_align: u64,
1045}
1046impl sk_msg_md__bindgen_ty_1 {
1047    #[inline]
1048    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize], u8> {
1049        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u8> =
1050            Default::default();
1051        __bindgen_bitfield_unit
1052    }
1053}
1054#[repr(C)]
1055#[derive(Copy, Clone)]
1056pub union sk_msg_md__bindgen_ty_2 {
1057    pub data_end: *mut ::std::os::raw::c_void,
1058    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u8>,
1059    _bindgen_union_align: u64,
1060}
1061impl sk_msg_md__bindgen_ty_2 {
1062    #[inline]
1063    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize], u8> {
1064        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u8> =
1065            Default::default();
1066        __bindgen_bitfield_unit
1067    }
1068}
1069#[repr(C)]
1070#[derive(Copy, Clone)]
1071pub struct sk_reuseport_md {
1072    pub __bindgen_anon_1: sk_reuseport_md__bindgen_ty_1,
1073    pub __bindgen_anon_2: sk_reuseport_md__bindgen_ty_2,
1074    pub len: __u32,
1075    pub eth_protocol: __u32,
1076    pub ip_protocol: __u32,
1077    pub bind_inany: __u32,
1078    pub hash: __u32,
1079}
1080#[repr(C)]
1081#[derive(Copy, Clone)]
1082pub union sk_reuseport_md__bindgen_ty_1 {
1083    pub data: *mut ::std::os::raw::c_void,
1084    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u8>,
1085    _bindgen_union_align: u64,
1086}
1087impl sk_reuseport_md__bindgen_ty_1 {
1088    #[inline]
1089    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize], u8> {
1090        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u8> =
1091            Default::default();
1092        __bindgen_bitfield_unit
1093    }
1094}
1095#[repr(C)]
1096#[derive(Copy, Clone)]
1097pub union sk_reuseport_md__bindgen_ty_2 {
1098    pub data_end: *mut ::std::os::raw::c_void,
1099    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u8>,
1100    _bindgen_union_align: u64,
1101}
1102impl sk_reuseport_md__bindgen_ty_2 {
1103    #[inline]
1104    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize], u8> {
1105        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u8> =
1106            Default::default();
1107        __bindgen_bitfield_unit
1108    }
1109}
1110#[repr(C)]
1111#[derive(Debug, Copy, Clone)]
1112pub struct bpf_prog_info {
1113    pub type_: __u32,
1114    pub id: __u32,
1115    pub tag: [__u8; 8usize],
1116    pub jited_prog_len: __u32,
1117    pub xlated_prog_len: __u32,
1118    pub jited_prog_insns: __u64,
1119    pub xlated_prog_insns: __u64,
1120    pub load_time: __u64,
1121    pub created_by_uid: __u32,
1122    pub nr_map_ids: __u32,
1123    pub map_ids: __u64,
1124    pub name: [::std::os::raw::c_char; 16usize],
1125    pub ifindex: __u32,
1126    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u8>,
1127    pub netns_dev: __u64,
1128    pub netns_ino: __u64,
1129    pub nr_jited_ksyms: __u32,
1130    pub nr_jited_func_lens: __u32,
1131    pub jited_ksyms: __u64,
1132    pub jited_func_lens: __u64,
1133    pub btf_id: __u32,
1134    pub func_info_rec_size: __u32,
1135    pub func_info: __u64,
1136    pub nr_func_info: __u32,
1137    pub nr_line_info: __u32,
1138    pub line_info: __u64,
1139    pub jited_line_info: __u64,
1140    pub nr_jited_line_info: __u32,
1141    pub line_info_rec_size: __u32,
1142    pub jited_line_info_rec_size: __u32,
1143    pub nr_prog_tags: __u32,
1144    pub prog_tags: __u64,
1145    pub run_time_ns: __u64,
1146    pub run_cnt: __u64,
1147}
1148impl bpf_prog_info {
1149    #[inline]
1150    pub fn gpl_compatible(&self) -> __u32 {
1151        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
1152    }
1153    #[inline]
1154    pub fn set_gpl_compatible(&mut self, val: __u32) {
1155        unsafe {
1156            let val: u32 = ::std::mem::transmute(val);
1157            self._bitfield_1.set(0usize, 1u8, val as u64)
1158        }
1159    }
1160    #[inline]
1161    pub fn new_bitfield_1(gpl_compatible: __u32) -> __BindgenBitfieldUnit<[u8; 4usize], u8> {
1162        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u8> =
1163            Default::default();
1164        __bindgen_bitfield_unit.set(0usize, 1u8, {
1165            let gpl_compatible: u32 = unsafe { ::std::mem::transmute(gpl_compatible) };
1166            gpl_compatible as u64
1167        });
1168        __bindgen_bitfield_unit
1169    }
1170}
1171#[repr(C)]
1172#[derive(Debug, Copy, Clone)]
1173pub struct bpf_map_info {
1174    pub type_: __u32,
1175    pub id: __u32,
1176    pub key_size: __u32,
1177    pub value_size: __u32,
1178    pub max_entries: __u32,
1179    pub map_flags: __u32,
1180    pub name: [::std::os::raw::c_char; 16usize],
1181    pub ifindex: __u32,
1182    pub btf_vmlinux_value_type_id: __u32,
1183    pub netns_dev: __u64,
1184    pub netns_ino: __u64,
1185    pub btf_id: __u32,
1186    pub btf_key_type_id: __u32,
1187    pub btf_value_type_id: __u32,
1188}
1189#[repr(C)]
1190#[derive(Debug, Copy, Clone)]
1191pub struct bpf_btf_info {
1192    pub btf: __u64,
1193    pub btf_size: __u32,
1194    pub id: __u32,
1195}
1196#[repr(C)]
1197#[derive(Copy, Clone)]
1198pub struct bpf_sock_addr {
1199    pub user_family: __u32,
1200    pub user_ip4: __u32,
1201    pub user_ip6: [__u32; 4usize],
1202    pub user_port: __u32,
1203    pub family: __u32,
1204    pub type_: __u32,
1205    pub protocol: __u32,
1206    pub msg_src_ip4: __u32,
1207    pub msg_src_ip6: [__u32; 4usize],
1208    pub __bindgen_anon_1: bpf_sock_addr__bindgen_ty_1,
1209}
1210#[repr(C)]
1211#[derive(Copy, Clone)]
1212pub union bpf_sock_addr__bindgen_ty_1 {
1213    pub sk: *mut bpf_sock,
1214    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u8>,
1215    _bindgen_union_align: u64,
1216}
1217impl bpf_sock_addr__bindgen_ty_1 {
1218    #[inline]
1219    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize], u8> {
1220        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u8> =
1221            Default::default();
1222        __bindgen_bitfield_unit
1223    }
1224}
1225#[repr(C)]
1226#[derive(Copy, Clone)]
1227pub struct bpf_sock_ops {
1228    pub op: __u32,
1229    pub __bindgen_anon_1: bpf_sock_ops__bindgen_ty_1,
1230    pub family: __u32,
1231    pub remote_ip4: __u32,
1232    pub local_ip4: __u32,
1233    pub remote_ip6: [__u32; 4usize],
1234    pub local_ip6: [__u32; 4usize],
1235    pub remote_port: __u32,
1236    pub local_port: __u32,
1237    pub is_fullsock: __u32,
1238    pub snd_cwnd: __u32,
1239    pub srtt_us: __u32,
1240    pub bpf_sock_ops_cb_flags: __u32,
1241    pub state: __u32,
1242    pub rtt_min: __u32,
1243    pub snd_ssthresh: __u32,
1244    pub rcv_nxt: __u32,
1245    pub snd_nxt: __u32,
1246    pub snd_una: __u32,
1247    pub mss_cache: __u32,
1248    pub ecn_flags: __u32,
1249    pub rate_delivered: __u32,
1250    pub rate_interval_us: __u32,
1251    pub packets_out: __u32,
1252    pub retrans_out: __u32,
1253    pub total_retrans: __u32,
1254    pub segs_in: __u32,
1255    pub data_segs_in: __u32,
1256    pub segs_out: __u32,
1257    pub data_segs_out: __u32,
1258    pub lost_out: __u32,
1259    pub sacked_out: __u32,
1260    pub sk_txhash: __u32,
1261    pub bytes_received: __u64,
1262    pub bytes_acked: __u64,
1263    pub __bindgen_anon_2: bpf_sock_ops__bindgen_ty_2,
1264}
1265#[repr(C)]
1266#[derive(Copy, Clone)]
1267pub union bpf_sock_ops__bindgen_ty_1 {
1268    pub args: [__u32; 4usize],
1269    pub reply: __u32,
1270    pub replylong: [__u32; 4usize],
1271    _bindgen_union_align: [u32; 4usize],
1272}
1273#[repr(C)]
1274#[derive(Copy, Clone)]
1275pub union bpf_sock_ops__bindgen_ty_2 {
1276    pub sk: *mut bpf_sock,
1277    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u8>,
1278    _bindgen_union_align: u64,
1279}
1280impl bpf_sock_ops__bindgen_ty_2 {
1281    #[inline]
1282    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize], u8> {
1283        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u8> =
1284            Default::default();
1285        __bindgen_bitfield_unit
1286    }
1287}
1288pub const BPF_SOCK_OPS_VOID: _bindgen_ty_2 = 0;
1289pub const BPF_SOCK_OPS_TIMEOUT_INIT: _bindgen_ty_2 = 1;
1290pub const BPF_SOCK_OPS_RWND_INIT: _bindgen_ty_2 = 2;
1291pub const BPF_SOCK_OPS_TCP_CONNECT_CB: _bindgen_ty_2 = 3;
1292pub const BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB: _bindgen_ty_2 = 4;
1293pub const BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB: _bindgen_ty_2 = 5;
1294pub const BPF_SOCK_OPS_NEEDS_ECN: _bindgen_ty_2 = 6;
1295pub const BPF_SOCK_OPS_BASE_RTT: _bindgen_ty_2 = 7;
1296pub const BPF_SOCK_OPS_RTO_CB: _bindgen_ty_2 = 8;
1297pub const BPF_SOCK_OPS_RETRANS_CB: _bindgen_ty_2 = 9;
1298pub const BPF_SOCK_OPS_STATE_CB: _bindgen_ty_2 = 10;
1299pub const BPF_SOCK_OPS_TCP_LISTEN_CB: _bindgen_ty_2 = 11;
1300pub const BPF_SOCK_OPS_RTT_CB: _bindgen_ty_2 = 12;
1301pub type _bindgen_ty_2 = u32;
1302pub const BPF_TCP_ESTABLISHED: _bindgen_ty_3 = 1;
1303pub const BPF_TCP_SYN_SENT: _bindgen_ty_3 = 2;
1304pub const BPF_TCP_SYN_RECV: _bindgen_ty_3 = 3;
1305pub const BPF_TCP_FIN_WAIT1: _bindgen_ty_3 = 4;
1306pub const BPF_TCP_FIN_WAIT2: _bindgen_ty_3 = 5;
1307pub const BPF_TCP_TIME_WAIT: _bindgen_ty_3 = 6;
1308pub const BPF_TCP_CLOSE: _bindgen_ty_3 = 7;
1309pub const BPF_TCP_CLOSE_WAIT: _bindgen_ty_3 = 8;
1310pub const BPF_TCP_LAST_ACK: _bindgen_ty_3 = 9;
1311pub const BPF_TCP_LISTEN: _bindgen_ty_3 = 10;
1312pub const BPF_TCP_CLOSING: _bindgen_ty_3 = 11;
1313pub const BPF_TCP_NEW_SYN_RECV: _bindgen_ty_3 = 12;
1314pub const BPF_TCP_MAX_STATES: _bindgen_ty_3 = 13;
1315pub type _bindgen_ty_3 = u32;
1316#[repr(C)]
1317#[derive(Debug, Copy, Clone)]
1318pub struct bpf_perf_event_value {
1319    pub counter: __u64,
1320    pub enabled: __u64,
1321    pub running: __u64,
1322}
1323#[repr(C)]
1324#[derive(Debug, Copy, Clone)]
1325pub struct bpf_cgroup_dev_ctx {
1326    pub access_type: __u32,
1327    pub major: __u32,
1328    pub minor: __u32,
1329}
1330#[repr(C)]
1331#[derive(Debug)]
1332pub struct bpf_raw_tracepoint_args {
1333    pub args: __IncompleteArrayField<__u64>,
1334}
1335pub const BPF_FIB_LKUP_RET_SUCCESS: _bindgen_ty_4 = 0;
1336pub const BPF_FIB_LKUP_RET_BLACKHOLE: _bindgen_ty_4 = 1;
1337pub const BPF_FIB_LKUP_RET_UNREACHABLE: _bindgen_ty_4 = 2;
1338pub const BPF_FIB_LKUP_RET_PROHIBIT: _bindgen_ty_4 = 3;
1339pub const BPF_FIB_LKUP_RET_NOT_FWDED: _bindgen_ty_4 = 4;
1340pub const BPF_FIB_LKUP_RET_FWD_DISABLED: _bindgen_ty_4 = 5;
1341pub const BPF_FIB_LKUP_RET_UNSUPP_LWT: _bindgen_ty_4 = 6;
1342pub const BPF_FIB_LKUP_RET_NO_NEIGH: _bindgen_ty_4 = 7;
1343pub const BPF_FIB_LKUP_RET_FRAG_NEEDED: _bindgen_ty_4 = 8;
1344pub type _bindgen_ty_4 = u32;
1345#[repr(C)]
1346#[derive(Copy, Clone)]
1347pub struct bpf_fib_lookup {
1348    pub family: __u8,
1349    pub l4_protocol: __u8,
1350    pub sport: __be16,
1351    pub dport: __be16,
1352    pub tot_len: __u16,
1353    pub ifindex: __u32,
1354    pub __bindgen_anon_1: bpf_fib_lookup__bindgen_ty_1,
1355    pub __bindgen_anon_2: bpf_fib_lookup__bindgen_ty_2,
1356    pub __bindgen_anon_3: bpf_fib_lookup__bindgen_ty_3,
1357    pub h_vlan_proto: __be16,
1358    pub h_vlan_TCI: __be16,
1359    pub smac: [__u8; 6usize],
1360    pub dmac: [__u8; 6usize],
1361}
1362#[repr(C)]
1363#[derive(Copy, Clone)]
1364pub union bpf_fib_lookup__bindgen_ty_1 {
1365    pub tos: __u8,
1366    pub flowinfo: __be32,
1367    pub rt_metric: __u32,
1368    _bindgen_union_align: u32,
1369}
1370#[repr(C)]
1371#[derive(Copy, Clone)]
1372pub union bpf_fib_lookup__bindgen_ty_2 {
1373    pub ipv4_src: __be32,
1374    pub ipv6_src: [__u32; 4usize],
1375    _bindgen_union_align: [u32; 4usize],
1376}
1377#[repr(C)]
1378#[derive(Copy, Clone)]
1379pub union bpf_fib_lookup__bindgen_ty_3 {
1380    pub ipv4_dst: __be32,
1381    pub ipv6_dst: [__u32; 4usize],
1382    _bindgen_union_align: [u32; 4usize],
1383}
1384pub const bpf_task_fd_type_BPF_FD_TYPE_RAW_TRACEPOINT: bpf_task_fd_type = 0;
1385pub const bpf_task_fd_type_BPF_FD_TYPE_TRACEPOINT: bpf_task_fd_type = 1;
1386pub const bpf_task_fd_type_BPF_FD_TYPE_KPROBE: bpf_task_fd_type = 2;
1387pub const bpf_task_fd_type_BPF_FD_TYPE_KRETPROBE: bpf_task_fd_type = 3;
1388pub const bpf_task_fd_type_BPF_FD_TYPE_UPROBE: bpf_task_fd_type = 4;
1389pub const bpf_task_fd_type_BPF_FD_TYPE_URETPROBE: bpf_task_fd_type = 5;
1390pub type bpf_task_fd_type = u32;
1391#[repr(C)]
1392#[derive(Copy, Clone)]
1393pub struct bpf_flow_keys {
1394    pub nhoff: __u16,
1395    pub thoff: __u16,
1396    pub addr_proto: __u16,
1397    pub is_frag: __u8,
1398    pub is_first_frag: __u8,
1399    pub is_encap: __u8,
1400    pub ip_proto: __u8,
1401    pub n_proto: __be16,
1402    pub sport: __be16,
1403    pub dport: __be16,
1404    pub __bindgen_anon_1: bpf_flow_keys__bindgen_ty_1,
1405    pub flags: __u32,
1406    pub flow_label: __be32,
1407}
1408#[repr(C)]
1409#[derive(Copy, Clone)]
1410pub union bpf_flow_keys__bindgen_ty_1 {
1411    pub __bindgen_anon_1: bpf_flow_keys__bindgen_ty_1__bindgen_ty_1,
1412    pub __bindgen_anon_2: bpf_flow_keys__bindgen_ty_1__bindgen_ty_2,
1413    _bindgen_union_align: [u32; 8usize],
1414}
1415#[repr(C)]
1416#[derive(Debug, Copy, Clone)]
1417pub struct bpf_flow_keys__bindgen_ty_1__bindgen_ty_1 {
1418    pub ipv4_src: __be32,
1419    pub ipv4_dst: __be32,
1420}
1421#[repr(C)]
1422#[derive(Debug, Copy, Clone)]
1423pub struct bpf_flow_keys__bindgen_ty_1__bindgen_ty_2 {
1424    pub ipv6_src: [__u32; 4usize],
1425    pub ipv6_dst: [__u32; 4usize],
1426}
1427#[repr(C)]
1428#[derive(Debug, Copy, Clone)]
1429pub struct bpf_func_info {
1430    pub insn_off: __u32,
1431    pub type_id: __u32,
1432}
1433#[repr(C)]
1434#[derive(Debug, Copy, Clone)]
1435pub struct bpf_line_info {
1436    pub insn_off: __u32,
1437    pub file_name_off: __u32,
1438    pub line_off: __u32,
1439    pub line_col: __u32,
1440}
1441#[repr(C)]
1442#[derive(Debug, Copy, Clone)]
1443pub struct bpf_spin_lock {
1444    pub val: __u32,
1445}
1446#[repr(C)]
1447#[derive(Debug, Copy, Clone)]
1448pub struct bpf_sysctl {
1449    pub write: __u32,
1450    pub file_pos: __u32,
1451}
1452#[repr(C)]
1453#[derive(Copy, Clone)]
1454pub struct bpf_sockopt {
1455    pub __bindgen_anon_1: bpf_sockopt__bindgen_ty_1,
1456    pub __bindgen_anon_2: bpf_sockopt__bindgen_ty_2,
1457    pub __bindgen_anon_3: bpf_sockopt__bindgen_ty_3,
1458    pub level: __s32,
1459    pub optname: __s32,
1460    pub optlen: __s32,
1461    pub retval: __s32,
1462}
1463#[repr(C)]
1464#[derive(Copy, Clone)]
1465pub union bpf_sockopt__bindgen_ty_1 {
1466    pub sk: *mut bpf_sock,
1467    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u8>,
1468    _bindgen_union_align: u64,
1469}
1470impl bpf_sockopt__bindgen_ty_1 {
1471    #[inline]
1472    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize], u8> {
1473        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u8> =
1474            Default::default();
1475        __bindgen_bitfield_unit
1476    }
1477}
1478#[repr(C)]
1479#[derive(Copy, Clone)]
1480pub union bpf_sockopt__bindgen_ty_2 {
1481    pub optval: *mut ::std::os::raw::c_void,
1482    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u8>,
1483    _bindgen_union_align: u64,
1484}
1485impl bpf_sockopt__bindgen_ty_2 {
1486    #[inline]
1487    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize], u8> {
1488        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u8> =
1489            Default::default();
1490        __bindgen_bitfield_unit
1491    }
1492}
1493#[repr(C)]
1494#[derive(Copy, Clone)]
1495pub union bpf_sockopt__bindgen_ty_3 {
1496    pub optval_end: *mut ::std::os::raw::c_void,
1497    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u8>,
1498    _bindgen_union_align: u64,
1499}
1500impl bpf_sockopt__bindgen_ty_3 {
1501    #[inline]
1502    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize], u8> {
1503        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u8> =
1504            Default::default();
1505        __bindgen_bitfield_unit
1506    }
1507}
1508#[repr(C)]
1509#[derive(Debug, Copy, Clone)]
1510pub struct bpf_perf_event_data {
1511    _unused: [u8; 0],
1512}
1513#[repr(C)]
1514#[derive(Debug, Copy, Clone)]
1515pub struct pt_regs {
1516    _unused: [u8; 0],
1517}
1518#[repr(C)]
1519#[derive(Debug, Copy, Clone)]
1520pub struct sockaddr {
1521    _unused: [u8; 0],
1522}
1523#[repr(C)]
1524#[derive(Debug, Copy, Clone)]
1525pub struct tcphdr {
1526    _unused: [u8; 0],
1527}
1528extern "C" {
1529    pub static mut bpf_map_lookup_elem: ::std::option::Option<
1530        unsafe extern "C" fn(
1531            map: *mut ::std::os::raw::c_void,
1532            key: *const ::std::os::raw::c_void,
1533        ) -> *mut ::std::os::raw::c_void,
1534    >;
1535}
1536extern "C" {
1537    pub static mut bpf_map_update_elem: ::std::option::Option<
1538        unsafe extern "C" fn(
1539            map: *mut ::std::os::raw::c_void,
1540            key: *const ::std::os::raw::c_void,
1541            value: *const ::std::os::raw::c_void,
1542            flags: __u64,
1543        ) -> ::std::os::raw::c_int,
1544    >;
1545}
1546extern "C" {
1547    pub static mut bpf_map_delete_elem: ::std::option::Option<
1548        unsafe extern "C" fn(
1549            map: *mut ::std::os::raw::c_void,
1550            key: *const ::std::os::raw::c_void,
1551        ) -> ::std::os::raw::c_int,
1552    >;
1553}
1554extern "C" {
1555    pub static mut bpf_probe_read: ::std::option::Option<
1556        unsafe extern "C" fn(
1557            dst: *mut ::std::os::raw::c_void,
1558            size: __u32,
1559            unsafe_ptr: *const ::std::os::raw::c_void,
1560        ) -> ::std::os::raw::c_int,
1561    >;
1562}
1563extern "C" {
1564    pub static mut bpf_ktime_get_ns: ::std::option::Option<unsafe extern "C" fn() -> __u64>;
1565}
1566extern "C" {
1567    pub static mut bpf_trace_printk: ::std::option::Option<
1568        unsafe extern "C" fn(
1569            fmt: *const ::std::os::raw::c_char,
1570            fmt_size: __u32,
1571            ...
1572        ) -> ::std::os::raw::c_int,
1573    >;
1574}
1575extern "C" {
1576    pub static mut bpf_get_prandom_u32: ::std::option::Option<unsafe extern "C" fn() -> __u32>;
1577}
1578extern "C" {
1579    pub static mut bpf_get_smp_processor_id: ::std::option::Option<unsafe extern "C" fn() -> __u32>;
1580}
1581extern "C" {
1582    pub static mut bpf_skb_store_bytes: ::std::option::Option<
1583        unsafe extern "C" fn(
1584            skb: *mut __sk_buff,
1585            offset: __u32,
1586            from: *const ::std::os::raw::c_void,
1587            len: __u32,
1588            flags: __u64,
1589        ) -> ::std::os::raw::c_int,
1590    >;
1591}
1592extern "C" {
1593    pub static mut bpf_l3_csum_replace: ::std::option::Option<
1594        unsafe extern "C" fn(
1595            skb: *mut __sk_buff,
1596            offset: __u32,
1597            from: __u64,
1598            to: __u64,
1599            size: __u64,
1600        ) -> ::std::os::raw::c_int,
1601    >;
1602}
1603extern "C" {
1604    pub static mut bpf_l4_csum_replace: ::std::option::Option<
1605        unsafe extern "C" fn(
1606            skb: *mut __sk_buff,
1607            offset: __u32,
1608            from: __u64,
1609            to: __u64,
1610            flags: __u64,
1611        ) -> ::std::os::raw::c_int,
1612    >;
1613}
1614extern "C" {
1615    pub static mut bpf_tail_call: ::std::option::Option<
1616        unsafe extern "C" fn(
1617            ctx: *mut ::std::os::raw::c_void,
1618            prog_array_map: *mut ::std::os::raw::c_void,
1619            index: __u32,
1620        ) -> ::std::os::raw::c_int,
1621    >;
1622}
1623extern "C" {
1624    pub static mut bpf_clone_redirect: ::std::option::Option<
1625        unsafe extern "C" fn(
1626            skb: *mut __sk_buff,
1627            ifindex: __u32,
1628            flags: __u64,
1629        ) -> ::std::os::raw::c_int,
1630    >;
1631}
1632extern "C" {
1633    pub static mut bpf_get_current_pid_tgid: ::std::option::Option<unsafe extern "C" fn() -> __u64>;
1634}
1635extern "C" {
1636    pub static mut bpf_get_current_uid_gid: ::std::option::Option<unsafe extern "C" fn() -> __u64>;
1637}
1638extern "C" {
1639    pub static mut bpf_get_current_comm: ::std::option::Option<
1640        unsafe extern "C" fn(
1641            buf: *mut ::std::os::raw::c_void,
1642            size_of_buf: __u32,
1643        ) -> ::std::os::raw::c_int,
1644    >;
1645}
1646extern "C" {
1647    pub static mut bpf_get_cgroup_classid:
1648        ::std::option::Option<unsafe extern "C" fn(skb: *mut __sk_buff) -> __u32>;
1649}
1650extern "C" {
1651    pub static mut bpf_skb_vlan_push: ::std::option::Option<
1652        unsafe extern "C" fn(
1653            skb: *mut __sk_buff,
1654            vlan_proto: __be16,
1655            vlan_tci: __u16,
1656        ) -> ::std::os::raw::c_int,
1657    >;
1658}
1659extern "C" {
1660    pub static mut bpf_skb_vlan_pop:
1661        ::std::option::Option<unsafe extern "C" fn(skb: *mut __sk_buff) -> ::std::os::raw::c_int>;
1662}
1663extern "C" {
1664    pub static mut bpf_skb_get_tunnel_key: ::std::option::Option<
1665        unsafe extern "C" fn(
1666            skb: *mut __sk_buff,
1667            key: *mut bpf_tunnel_key,
1668            size: __u32,
1669            flags: __u64,
1670        ) -> ::std::os::raw::c_int,
1671    >;
1672}
1673extern "C" {
1674    pub static mut bpf_skb_set_tunnel_key: ::std::option::Option<
1675        unsafe extern "C" fn(
1676            skb: *mut __sk_buff,
1677            key: *mut bpf_tunnel_key,
1678            size: __u32,
1679            flags: __u64,
1680        ) -> ::std::os::raw::c_int,
1681    >;
1682}
1683extern "C" {
1684    pub static mut bpf_perf_event_read: ::std::option::Option<
1685        unsafe extern "C" fn(map: *mut ::std::os::raw::c_void, flags: __u64) -> __u64,
1686    >;
1687}
1688extern "C" {
1689    pub static mut bpf_redirect: ::std::option::Option<
1690        unsafe extern "C" fn(ifindex: __u32, flags: __u64) -> ::std::os::raw::c_int,
1691    >;
1692}
1693extern "C" {
1694    pub static mut bpf_get_route_realm:
1695        ::std::option::Option<unsafe extern "C" fn(skb: *mut __sk_buff) -> __u32>;
1696}
1697extern "C" {
1698    pub static mut bpf_perf_event_output: ::std::option::Option<
1699        unsafe extern "C" fn(
1700            ctx: *mut ::std::os::raw::c_void,
1701            map: *mut ::std::os::raw::c_void,
1702            flags: __u64,
1703            data: *mut ::std::os::raw::c_void,
1704            size: __u64,
1705        ) -> ::std::os::raw::c_int,
1706    >;
1707}
1708extern "C" {
1709    pub static mut bpf_skb_load_bytes: ::std::option::Option<
1710        unsafe extern "C" fn(
1711            skb: *const ::std::os::raw::c_void,
1712            offset: __u32,
1713            to: *mut ::std::os::raw::c_void,
1714            len: __u32,
1715        ) -> ::std::os::raw::c_int,
1716    >;
1717}
1718extern "C" {
1719    pub static mut bpf_get_stackid: ::std::option::Option<
1720        unsafe extern "C" fn(
1721            ctx: *mut ::std::os::raw::c_void,
1722            map: *mut ::std::os::raw::c_void,
1723            flags: __u64,
1724        ) -> ::std::os::raw::c_int,
1725    >;
1726}
1727extern "C" {
1728    pub static mut bpf_csum_diff: ::std::option::Option<
1729        unsafe extern "C" fn(
1730            from: *mut __be32,
1731            from_size: __u32,
1732            to: *mut __be32,
1733            to_size: __u32,
1734            seed: __wsum,
1735        ) -> __s64,
1736    >;
1737}
1738extern "C" {
1739    pub static mut bpf_skb_get_tunnel_opt: ::std::option::Option<
1740        unsafe extern "C" fn(
1741            skb: *mut __sk_buff,
1742            opt: *mut ::std::os::raw::c_void,
1743            size: __u32,
1744        ) -> ::std::os::raw::c_int,
1745    >;
1746}
1747extern "C" {
1748    pub static mut bpf_skb_set_tunnel_opt: ::std::option::Option<
1749        unsafe extern "C" fn(
1750            skb: *mut __sk_buff,
1751            opt: *mut ::std::os::raw::c_void,
1752            size: __u32,
1753        ) -> ::std::os::raw::c_int,
1754    >;
1755}
1756extern "C" {
1757    pub static mut bpf_skb_change_proto: ::std::option::Option<
1758        unsafe extern "C" fn(
1759            skb: *mut __sk_buff,
1760            proto: __be16,
1761            flags: __u64,
1762        ) -> ::std::os::raw::c_int,
1763    >;
1764}
1765extern "C" {
1766    pub static mut bpf_skb_change_type: ::std::option::Option<
1767        unsafe extern "C" fn(skb: *mut __sk_buff, type_: __u32) -> ::std::os::raw::c_int,
1768    >;
1769}
1770extern "C" {
1771    pub static mut bpf_skb_under_cgroup: ::std::option::Option<
1772        unsafe extern "C" fn(
1773            skb: *mut __sk_buff,
1774            map: *mut ::std::os::raw::c_void,
1775            index: __u32,
1776        ) -> ::std::os::raw::c_int,
1777    >;
1778}
1779extern "C" {
1780    pub static mut bpf_get_hash_recalc:
1781        ::std::option::Option<unsafe extern "C" fn(skb: *mut __sk_buff) -> __u32>;
1782}
1783extern "C" {
1784    pub static mut bpf_get_current_task: ::std::option::Option<unsafe extern "C" fn() -> __u64>;
1785}
1786extern "C" {
1787    pub static mut bpf_probe_write_user: ::std::option::Option<
1788        unsafe extern "C" fn(
1789            dst: *mut ::std::os::raw::c_void,
1790            src: *const ::std::os::raw::c_void,
1791            len: __u32,
1792        ) -> ::std::os::raw::c_int,
1793    >;
1794}
1795extern "C" {
1796    pub static mut bpf_current_task_under_cgroup: ::std::option::Option<
1797        unsafe extern "C" fn(
1798            map: *mut ::std::os::raw::c_void,
1799            index: __u32,
1800        ) -> ::std::os::raw::c_int,
1801    >;
1802}
1803extern "C" {
1804    pub static mut bpf_skb_change_tail: ::std::option::Option<
1805        unsafe extern "C" fn(
1806            skb: *mut __sk_buff,
1807            len: __u32,
1808            flags: __u64,
1809        ) -> ::std::os::raw::c_int,
1810    >;
1811}
1812extern "C" {
1813    pub static mut bpf_skb_pull_data: ::std::option::Option<
1814        unsafe extern "C" fn(skb: *mut __sk_buff, len: __u32) -> ::std::os::raw::c_int,
1815    >;
1816}
1817extern "C" {
1818    pub static mut bpf_csum_update:
1819        ::std::option::Option<unsafe extern "C" fn(skb: *mut __sk_buff, csum: __wsum) -> __s64>;
1820}
1821extern "C" {
1822    pub static mut bpf_set_hash_invalid:
1823        ::std::option::Option<unsafe extern "C" fn(skb: *mut __sk_buff)>;
1824}
1825extern "C" {
1826    pub static mut bpf_get_numa_node_id:
1827        ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_int>;
1828}
1829extern "C" {
1830    pub static mut bpf_skb_change_head: ::std::option::Option<
1831        unsafe extern "C" fn(
1832            skb: *mut __sk_buff,
1833            len: __u32,
1834            flags: __u64,
1835        ) -> ::std::os::raw::c_int,
1836    >;
1837}
1838extern "C" {
1839    pub static mut bpf_xdp_adjust_head: ::std::option::Option<
1840        unsafe extern "C" fn(
1841            xdp_md: *mut xdp_md,
1842            delta: ::std::os::raw::c_int,
1843        ) -> ::std::os::raw::c_int,
1844    >;
1845}
1846extern "C" {
1847    pub static mut bpf_probe_read_str: ::std::option::Option<
1848        unsafe extern "C" fn(
1849            dst: *mut ::std::os::raw::c_void,
1850            size: __u32,
1851            unsafe_ptr: *const ::std::os::raw::c_void,
1852        ) -> ::std::os::raw::c_int,
1853    >;
1854}
1855extern "C" {
1856    pub static mut bpf_get_socket_cookie:
1857        ::std::option::Option<unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void) -> __u64>;
1858}
1859extern "C" {
1860    pub static mut bpf_get_socket_uid:
1861        ::std::option::Option<unsafe extern "C" fn(skb: *mut __sk_buff) -> __u32>;
1862}
1863extern "C" {
1864    pub static mut bpf_set_hash:
1865        ::std::option::Option<unsafe extern "C" fn(skb: *mut __sk_buff, hash: __u32) -> __u32>;
1866}
1867extern "C" {
1868    pub static mut bpf_setsockopt: ::std::option::Option<
1869        unsafe extern "C" fn(
1870            bpf_socket: *mut bpf_sock_ops,
1871            level: ::std::os::raw::c_int,
1872            optname: ::std::os::raw::c_int,
1873            optval: *mut ::std::os::raw::c_void,
1874            optlen: ::std::os::raw::c_int,
1875        ) -> ::std::os::raw::c_int,
1876    >;
1877}
1878extern "C" {
1879    pub static mut bpf_skb_adjust_room: ::std::option::Option<
1880        unsafe extern "C" fn(
1881            skb: *mut __sk_buff,
1882            len_diff: __s32,
1883            mode: __u32,
1884            flags: __u64,
1885        ) -> ::std::os::raw::c_int,
1886    >;
1887}
1888extern "C" {
1889    pub static mut bpf_redirect_map: ::std::option::Option<
1890        unsafe extern "C" fn(
1891            map: *mut ::std::os::raw::c_void,
1892            key: __u32,
1893            flags: __u64,
1894        ) -> ::std::os::raw::c_int,
1895    >;
1896}
1897extern "C" {
1898    pub static mut bpf_sk_redirect_map: ::std::option::Option<
1899        unsafe extern "C" fn(
1900            skb: *mut __sk_buff,
1901            map: *mut ::std::os::raw::c_void,
1902            key: __u32,
1903            flags: __u64,
1904        ) -> ::std::os::raw::c_int,
1905    >;
1906}
1907extern "C" {
1908    pub static mut bpf_sock_map_update: ::std::option::Option<
1909        unsafe extern "C" fn(
1910            skops: *mut bpf_sock_ops,
1911            map: *mut ::std::os::raw::c_void,
1912            key: *mut ::std::os::raw::c_void,
1913            flags: __u64,
1914        ) -> ::std::os::raw::c_int,
1915    >;
1916}
1917extern "C" {
1918    pub static mut bpf_xdp_adjust_meta: ::std::option::Option<
1919        unsafe extern "C" fn(
1920            xdp_md: *mut xdp_md,
1921            delta: ::std::os::raw::c_int,
1922        ) -> ::std::os::raw::c_int,
1923    >;
1924}
1925extern "C" {
1926    pub static mut bpf_perf_event_read_value: ::std::option::Option<
1927        unsafe extern "C" fn(
1928            map: *mut ::std::os::raw::c_void,
1929            flags: __u64,
1930            buf: *mut bpf_perf_event_value,
1931            buf_size: __u32,
1932        ) -> ::std::os::raw::c_int,
1933    >;
1934}
1935extern "C" {
1936    pub static mut bpf_perf_prog_read_value: ::std::option::Option<
1937        unsafe extern "C" fn(
1938            ctx: *mut bpf_perf_event_data,
1939            buf: *mut bpf_perf_event_value,
1940            buf_size: __u32,
1941        ) -> ::std::os::raw::c_int,
1942    >;
1943}
1944extern "C" {
1945    pub static mut bpf_getsockopt: ::std::option::Option<
1946        unsafe extern "C" fn(
1947            bpf_socket: *mut bpf_sock_ops,
1948            level: ::std::os::raw::c_int,
1949            optname: ::std::os::raw::c_int,
1950            optval: *mut ::std::os::raw::c_void,
1951            optlen: ::std::os::raw::c_int,
1952        ) -> ::std::os::raw::c_int,
1953    >;
1954}
1955extern "C" {
1956    pub static mut bpf_override_return: ::std::option::Option<
1957        unsafe extern "C" fn(regs: *mut pt_regs, rc: __u64) -> ::std::os::raw::c_int,
1958    >;
1959}
1960extern "C" {
1961    pub static mut bpf_sock_ops_cb_flags_set: ::std::option::Option<
1962        unsafe extern "C" fn(
1963            bpf_sock: *mut bpf_sock_ops,
1964            argval: ::std::os::raw::c_int,
1965        ) -> ::std::os::raw::c_int,
1966    >;
1967}
1968extern "C" {
1969    pub static mut bpf_msg_redirect_map: ::std::option::Option<
1970        unsafe extern "C" fn(
1971            msg: *mut sk_msg_md,
1972            map: *mut ::std::os::raw::c_void,
1973            key: __u32,
1974            flags: __u64,
1975        ) -> ::std::os::raw::c_int,
1976    >;
1977}
1978extern "C" {
1979    pub static mut bpf_msg_apply_bytes: ::std::option::Option<
1980        unsafe extern "C" fn(msg: *mut sk_msg_md, bytes: __u32) -> ::std::os::raw::c_int,
1981    >;
1982}
1983extern "C" {
1984    pub static mut bpf_msg_cork_bytes: ::std::option::Option<
1985        unsafe extern "C" fn(msg: *mut sk_msg_md, bytes: __u32) -> ::std::os::raw::c_int,
1986    >;
1987}
1988extern "C" {
1989    pub static mut bpf_msg_pull_data: ::std::option::Option<
1990        unsafe extern "C" fn(
1991            msg: *mut sk_msg_md,
1992            start: __u32,
1993            end: __u32,
1994            flags: __u64,
1995        ) -> ::std::os::raw::c_int,
1996    >;
1997}
1998extern "C" {
1999    pub static mut bpf_bind: ::std::option::Option<
2000        unsafe extern "C" fn(
2001            ctx: *mut bpf_sock_addr,
2002            addr: *mut sockaddr,
2003            addr_len: ::std::os::raw::c_int,
2004        ) -> ::std::os::raw::c_int,
2005    >;
2006}
2007extern "C" {
2008    pub static mut bpf_xdp_adjust_tail: ::std::option::Option<
2009        unsafe extern "C" fn(
2010            xdp_md: *mut xdp_md,
2011            delta: ::std::os::raw::c_int,
2012        ) -> ::std::os::raw::c_int,
2013    >;
2014}
2015extern "C" {
2016    pub static mut bpf_skb_get_xfrm_state: ::std::option::Option<
2017        unsafe extern "C" fn(
2018            skb: *mut __sk_buff,
2019            index: __u32,
2020            xfrm_state: *mut bpf_xfrm_state,
2021            size: __u32,
2022            flags: __u64,
2023        ) -> ::std::os::raw::c_int,
2024    >;
2025}
2026extern "C" {
2027    pub static mut bpf_get_stack: ::std::option::Option<
2028        unsafe extern "C" fn(
2029            ctx: *mut ::std::os::raw::c_void,
2030            buf: *mut ::std::os::raw::c_void,
2031            size: __u32,
2032            flags: __u64,
2033        ) -> ::std::os::raw::c_int,
2034    >;
2035}
2036extern "C" {
2037    pub static mut bpf_skb_load_bytes_relative: ::std::option::Option<
2038        unsafe extern "C" fn(
2039            skb: *const ::std::os::raw::c_void,
2040            offset: __u32,
2041            to: *mut ::std::os::raw::c_void,
2042            len: __u32,
2043            start_header: __u32,
2044        ) -> ::std::os::raw::c_int,
2045    >;
2046}
2047extern "C" {
2048    pub static mut bpf_fib_lookup: ::std::option::Option<
2049        unsafe extern "C" fn(
2050            ctx: *mut ::std::os::raw::c_void,
2051            params: *mut bpf_fib_lookup,
2052            plen: ::std::os::raw::c_int,
2053            flags: __u32,
2054        ) -> ::std::os::raw::c_int,
2055    >;
2056}
2057extern "C" {
2058    pub static mut bpf_sock_hash_update: ::std::option::Option<
2059        unsafe extern "C" fn(
2060            skops: *mut bpf_sock_ops,
2061            map: *mut ::std::os::raw::c_void,
2062            key: *mut ::std::os::raw::c_void,
2063            flags: __u64,
2064        ) -> ::std::os::raw::c_int,
2065    >;
2066}
2067extern "C" {
2068    pub static mut bpf_msg_redirect_hash: ::std::option::Option<
2069        unsafe extern "C" fn(
2070            msg: *mut sk_msg_md,
2071            map: *mut ::std::os::raw::c_void,
2072            key: *mut ::std::os::raw::c_void,
2073            flags: __u64,
2074        ) -> ::std::os::raw::c_int,
2075    >;
2076}
2077extern "C" {
2078    pub static mut bpf_sk_redirect_hash: ::std::option::Option<
2079        unsafe extern "C" fn(
2080            skb: *mut __sk_buff,
2081            map: *mut ::std::os::raw::c_void,
2082            key: *mut ::std::os::raw::c_void,
2083            flags: __u64,
2084        ) -> ::std::os::raw::c_int,
2085    >;
2086}
2087extern "C" {
2088    pub static mut bpf_lwt_push_encap: ::std::option::Option<
2089        unsafe extern "C" fn(
2090            skb: *mut __sk_buff,
2091            type_: __u32,
2092            hdr: *mut ::std::os::raw::c_void,
2093            len: __u32,
2094        ) -> ::std::os::raw::c_int,
2095    >;
2096}
2097extern "C" {
2098    pub static mut bpf_lwt_seg6_store_bytes: ::std::option::Option<
2099        unsafe extern "C" fn(
2100            skb: *mut __sk_buff,
2101            offset: __u32,
2102            from: *const ::std::os::raw::c_void,
2103            len: __u32,
2104        ) -> ::std::os::raw::c_int,
2105    >;
2106}
2107extern "C" {
2108    pub static mut bpf_lwt_seg6_adjust_srh: ::std::option::Option<
2109        unsafe extern "C" fn(
2110            skb: *mut __sk_buff,
2111            offset: __u32,
2112            delta: __s32,
2113        ) -> ::std::os::raw::c_int,
2114    >;
2115}
2116extern "C" {
2117    pub static mut bpf_lwt_seg6_action: ::std::option::Option<
2118        unsafe extern "C" fn(
2119            skb: *mut __sk_buff,
2120            action: __u32,
2121            param: *mut ::std::os::raw::c_void,
2122            param_len: __u32,
2123        ) -> ::std::os::raw::c_int,
2124    >;
2125}
2126extern "C" {
2127    pub static mut bpf_rc_repeat: ::std::option::Option<
2128        unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
2129    >;
2130}
2131extern "C" {
2132    pub static mut bpf_rc_keydown: ::std::option::Option<
2133        unsafe extern "C" fn(
2134            ctx: *mut ::std::os::raw::c_void,
2135            protocol: __u32,
2136            scancode: __u64,
2137            toggle: __u32,
2138        ) -> ::std::os::raw::c_int,
2139    >;
2140}
2141extern "C" {
2142    pub static mut bpf_skb_cgroup_id:
2143        ::std::option::Option<unsafe extern "C" fn(skb: *mut __sk_buff) -> __u64>;
2144}
2145extern "C" {
2146    pub static mut bpf_get_current_cgroup_id:
2147        ::std::option::Option<unsafe extern "C" fn() -> __u64>;
2148}
2149extern "C" {
2150    pub static mut bpf_get_local_storage: ::std::option::Option<
2151        unsafe extern "C" fn(
2152            map: *mut ::std::os::raw::c_void,
2153            flags: __u64,
2154        ) -> *mut ::std::os::raw::c_void,
2155    >;
2156}
2157extern "C" {
2158    pub static mut bpf_sk_select_reuseport: ::std::option::Option<
2159        unsafe extern "C" fn(
2160            reuse: *mut sk_reuseport_md,
2161            map: *mut ::std::os::raw::c_void,
2162            key: *mut ::std::os::raw::c_void,
2163            flags: __u64,
2164        ) -> ::std::os::raw::c_int,
2165    >;
2166}
2167extern "C" {
2168    pub static mut bpf_skb_ancestor_cgroup_id: ::std::option::Option<
2169        unsafe extern "C" fn(skb: *mut __sk_buff, ancestor_level: ::std::os::raw::c_int) -> __u64,
2170    >;
2171}
2172extern "C" {
2173    pub static mut bpf_sk_lookup_tcp: ::std::option::Option<
2174        unsafe extern "C" fn(
2175            ctx: *mut ::std::os::raw::c_void,
2176            tuple: *mut bpf_sock_tuple,
2177            tuple_size: __u32,
2178            netns: __u64,
2179            flags: __u64,
2180        ) -> *mut bpf_sock,
2181    >;
2182}
2183extern "C" {
2184    pub static mut bpf_sk_lookup_udp: ::std::option::Option<
2185        unsafe extern "C" fn(
2186            ctx: *mut ::std::os::raw::c_void,
2187            tuple: *mut bpf_sock_tuple,
2188            tuple_size: __u32,
2189            netns: __u64,
2190            flags: __u64,
2191        ) -> *mut bpf_sock,
2192    >;
2193}
2194extern "C" {
2195    pub static mut bpf_sk_release:
2196        ::std::option::Option<unsafe extern "C" fn(sock: *mut bpf_sock) -> ::std::os::raw::c_int>;
2197}
2198extern "C" {
2199    pub static mut bpf_map_push_elem: ::std::option::Option<
2200        unsafe extern "C" fn(
2201            map: *mut ::std::os::raw::c_void,
2202            value: *const ::std::os::raw::c_void,
2203            flags: __u64,
2204        ) -> ::std::os::raw::c_int,
2205    >;
2206}
2207extern "C" {
2208    pub static mut bpf_map_pop_elem: ::std::option::Option<
2209        unsafe extern "C" fn(
2210            map: *mut ::std::os::raw::c_void,
2211            value: *mut ::std::os::raw::c_void,
2212        ) -> ::std::os::raw::c_int,
2213    >;
2214}
2215extern "C" {
2216    pub static mut bpf_map_peek_elem: ::std::option::Option<
2217        unsafe extern "C" fn(
2218            map: *mut ::std::os::raw::c_void,
2219            value: *mut ::std::os::raw::c_void,
2220        ) -> ::std::os::raw::c_int,
2221    >;
2222}
2223extern "C" {
2224    pub static mut bpf_msg_push_data: ::std::option::Option<
2225        unsafe extern "C" fn(
2226            msg: *mut sk_msg_md,
2227            start: __u32,
2228            len: __u32,
2229            flags: __u64,
2230        ) -> ::std::os::raw::c_int,
2231    >;
2232}
2233extern "C" {
2234    pub static mut bpf_msg_pop_data: ::std::option::Option<
2235        unsafe extern "C" fn(
2236            msg: *mut sk_msg_md,
2237            start: __u32,
2238            len: __u32,
2239            flags: __u64,
2240        ) -> ::std::os::raw::c_int,
2241    >;
2242}
2243extern "C" {
2244    pub static mut bpf_rc_pointer_rel: ::std::option::Option<
2245        unsafe extern "C" fn(
2246            ctx: *mut ::std::os::raw::c_void,
2247            rel_x: __s32,
2248            rel_y: __s32,
2249        ) -> ::std::os::raw::c_int,
2250    >;
2251}
2252extern "C" {
2253    pub static mut bpf_spin_lock: ::std::option::Option<
2254        unsafe extern "C" fn(lock: *mut bpf_spin_lock) -> ::std::os::raw::c_int,
2255    >;
2256}
2257extern "C" {
2258    pub static mut bpf_spin_unlock: ::std::option::Option<
2259        unsafe extern "C" fn(lock: *mut bpf_spin_lock) -> ::std::os::raw::c_int,
2260    >;
2261}
2262extern "C" {
2263    pub static mut bpf_sk_fullsock:
2264        ::std::option::Option<unsafe extern "C" fn(sk: *mut bpf_sock) -> *mut bpf_sock>;
2265}
2266extern "C" {
2267    pub static mut bpf_tcp_sock:
2268        ::std::option::Option<unsafe extern "C" fn(sk: *mut bpf_sock) -> *mut bpf_tcp_sock>;
2269}
2270extern "C" {
2271    pub static mut bpf_skb_ecn_set_ce:
2272        ::std::option::Option<unsafe extern "C" fn(skb: *mut __sk_buff) -> ::std::os::raw::c_int>;
2273}
2274extern "C" {
2275    pub static mut bpf_get_listener_sock:
2276        ::std::option::Option<unsafe extern "C" fn(sk: *mut bpf_sock) -> *mut bpf_sock>;
2277}
2278extern "C" {
2279    pub static mut bpf_skc_lookup_tcp: ::std::option::Option<
2280        unsafe extern "C" fn(
2281            ctx: *mut ::std::os::raw::c_void,
2282            tuple: *mut bpf_sock_tuple,
2283            tuple_size: __u32,
2284            netns: __u64,
2285            flags: __u64,
2286        ) -> *mut bpf_sock,
2287    >;
2288}
2289extern "C" {
2290    pub static mut bpf_tcp_check_syncookie: ::std::option::Option<
2291        unsafe extern "C" fn(
2292            sk: *mut bpf_sock,
2293            iph: *mut ::std::os::raw::c_void,
2294            iph_len: __u32,
2295            th: *mut tcphdr,
2296            th_len: __u32,
2297        ) -> ::std::os::raw::c_int,
2298    >;
2299}
2300extern "C" {
2301    pub static mut bpf_sysctl_get_name: ::std::option::Option<
2302        unsafe extern "C" fn(
2303            ctx: *mut bpf_sysctl,
2304            buf: *mut ::std::os::raw::c_char,
2305            buf_len: ::std::os::raw::c_ulong,
2306            flags: __u64,
2307        ) -> ::std::os::raw::c_int,
2308    >;
2309}
2310extern "C" {
2311    pub static mut bpf_sysctl_get_current_value: ::std::option::Option<
2312        unsafe extern "C" fn(
2313            ctx: *mut bpf_sysctl,
2314            buf: *mut ::std::os::raw::c_char,
2315            buf_len: ::std::os::raw::c_ulong,
2316        ) -> ::std::os::raw::c_int,
2317    >;
2318}
2319extern "C" {
2320    pub static mut bpf_sysctl_get_new_value: ::std::option::Option<
2321        unsafe extern "C" fn(
2322            ctx: *mut bpf_sysctl,
2323            buf: *mut ::std::os::raw::c_char,
2324            buf_len: ::std::os::raw::c_ulong,
2325        ) -> ::std::os::raw::c_int,
2326    >;
2327}
2328extern "C" {
2329    pub static mut bpf_sysctl_set_new_value: ::std::option::Option<
2330        unsafe extern "C" fn(
2331            ctx: *mut bpf_sysctl,
2332            buf: *const ::std::os::raw::c_char,
2333            buf_len: ::std::os::raw::c_ulong,
2334        ) -> ::std::os::raw::c_int,
2335    >;
2336}
2337extern "C" {
2338    pub static mut bpf_strtol: ::std::option::Option<
2339        unsafe extern "C" fn(
2340            buf: *const ::std::os::raw::c_char,
2341            buf_len: ::std::os::raw::c_ulong,
2342            flags: __u64,
2343            res: *mut ::std::os::raw::c_long,
2344        ) -> ::std::os::raw::c_int,
2345    >;
2346}
2347extern "C" {
2348    pub static mut bpf_strtoul: ::std::option::Option<
2349        unsafe extern "C" fn(
2350            buf: *const ::std::os::raw::c_char,
2351            buf_len: ::std::os::raw::c_ulong,
2352            flags: __u64,
2353            res: *mut ::std::os::raw::c_ulong,
2354        ) -> ::std::os::raw::c_int,
2355    >;
2356}
2357extern "C" {
2358    pub static mut bpf_sk_storage_get: ::std::option::Option<
2359        unsafe extern "C" fn(
2360            map: *mut ::std::os::raw::c_void,
2361            sk: *mut bpf_sock,
2362            value: *mut ::std::os::raw::c_void,
2363            flags: __u64,
2364        ) -> *mut ::std::os::raw::c_void,
2365    >;
2366}
2367extern "C" {
2368    pub static mut bpf_sk_storage_delete: ::std::option::Option<
2369        unsafe extern "C" fn(
2370            map: *mut ::std::os::raw::c_void,
2371            sk: *mut bpf_sock,
2372        ) -> ::std::os::raw::c_int,
2373    >;
2374}
2375extern "C" {
2376    pub static mut bpf_send_signal:
2377        ::std::option::Option<unsafe extern "C" fn(sig: __u32) -> ::std::os::raw::c_int>;
2378}
2379extern "C" {
2380    pub static mut bpf_tcp_gen_syncookie: ::std::option::Option<
2381        unsafe extern "C" fn(
2382            sk: *mut bpf_sock,
2383            iph: *mut ::std::os::raw::c_void,
2384            iph_len: __u32,
2385            th: *mut tcphdr,
2386            th_len: __u32,
2387        ) -> __s64,
2388    >;
2389}
2390extern "C" {
2391    pub static mut bpf_skb_output: ::std::option::Option<
2392        unsafe extern "C" fn(
2393            ctx: *mut ::std::os::raw::c_void,
2394            map: *mut ::std::os::raw::c_void,
2395            flags: __u64,
2396            data: *mut ::std::os::raw::c_void,
2397            size: __u64,
2398        ) -> ::std::os::raw::c_int,
2399    >;
2400}
2401extern "C" {
2402    pub static mut bpf_probe_read_user: ::std::option::Option<
2403        unsafe extern "C" fn(
2404            dst: *mut ::std::os::raw::c_void,
2405            size: __u32,
2406            unsafe_ptr: *const ::std::os::raw::c_void,
2407        ) -> ::std::os::raw::c_int,
2408    >;
2409}
2410extern "C" {
2411    pub static mut bpf_probe_read_kernel: ::std::option::Option<
2412        unsafe extern "C" fn(
2413            dst: *mut ::std::os::raw::c_void,
2414            size: __u32,
2415            unsafe_ptr: *const ::std::os::raw::c_void,
2416        ) -> ::std::os::raw::c_int,
2417    >;
2418}
2419extern "C" {
2420    pub static mut bpf_probe_read_user_str: ::std::option::Option<
2421        unsafe extern "C" fn(
2422            dst: *mut ::std::os::raw::c_void,
2423            size: __u32,
2424            unsafe_ptr: *const ::std::os::raw::c_void,
2425        ) -> ::std::os::raw::c_int,
2426    >;
2427}
2428extern "C" {
2429    pub static mut bpf_probe_read_kernel_str: ::std::option::Option<
2430        unsafe extern "C" fn(
2431            dst: *mut ::std::os::raw::c_void,
2432            size: __u32,
2433            unsafe_ptr: *const ::std::os::raw::c_void,
2434        ) -> ::std::os::raw::c_int,
2435    >;
2436}
2437extern "C" {
2438    pub static mut bpf_tcp_send_ack: ::std::option::Option<
2439        unsafe extern "C" fn(
2440            tp: *mut ::std::os::raw::c_void,
2441            rcv_nxt: __u32,
2442        ) -> ::std::os::raw::c_int,
2443    >;
2444}
2445extern "C" {
2446    pub static mut bpf_send_signal_thread:
2447        ::std::option::Option<unsafe extern "C" fn(sig: __u32) -> ::std::os::raw::c_int>;
2448}
2449extern "C" {
2450    pub static mut bpf_jiffies64: ::std::option::Option<unsafe extern "C" fn() -> __u64>;
2451}
2452extern "C" {
2453    pub static mut bpf_read_branch_records: ::std::option::Option<
2454        unsafe extern "C" fn(
2455            ctx: *mut bpf_perf_event_data,
2456            buf: *mut ::std::os::raw::c_void,
2457            size: __u32,
2458            flags: __u64,
2459        ) -> ::std::os::raw::c_int,
2460    >;
2461}