rebpf_sys/
libbpf_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 SI_LOAD_SHIFT: u32 = 16;
117pub const _K_SS_MAXSIZE: u32 = 128;
118pub const NETLINK_ROUTE: u32 = 0;
119pub const NETLINK_UNUSED: u32 = 1;
120pub const NETLINK_USERSOCK: u32 = 2;
121pub const NETLINK_FIREWALL: u32 = 3;
122pub const NETLINK_SOCK_DIAG: u32 = 4;
123pub const NETLINK_NFLOG: u32 = 5;
124pub const NETLINK_XFRM: u32 = 6;
125pub const NETLINK_SELINUX: u32 = 7;
126pub const NETLINK_ISCSI: u32 = 8;
127pub const NETLINK_AUDIT: u32 = 9;
128pub const NETLINK_FIB_LOOKUP: u32 = 10;
129pub const NETLINK_CONNECTOR: u32 = 11;
130pub const NETLINK_NETFILTER: u32 = 12;
131pub const NETLINK_IP6_FW: u32 = 13;
132pub const NETLINK_DNRTMSG: u32 = 14;
133pub const NETLINK_KOBJECT_UEVENT: u32 = 15;
134pub const NETLINK_GENERIC: u32 = 16;
135pub const NETLINK_SCSITRANSPORT: u32 = 18;
136pub const NETLINK_ECRYPTFS: u32 = 19;
137pub const NETLINK_RDMA: u32 = 20;
138pub const NETLINK_CRYPTO: u32 = 21;
139pub const NETLINK_SMC: u32 = 22;
140pub const NETLINK_INET_DIAG: u32 = 4;
141pub const MAX_LINKS: u32 = 32;
142pub const NLM_F_REQUEST: u32 = 1;
143pub const NLM_F_MULTI: u32 = 2;
144pub const NLM_F_ACK: u32 = 4;
145pub const NLM_F_ECHO: u32 = 8;
146pub const NLM_F_DUMP_INTR: u32 = 16;
147pub const NLM_F_DUMP_FILTERED: u32 = 32;
148pub const NLM_F_ROOT: u32 = 256;
149pub const NLM_F_MATCH: u32 = 512;
150pub const NLM_F_ATOMIC: u32 = 1024;
151pub const NLM_F_DUMP: u32 = 768;
152pub const NLM_F_REPLACE: u32 = 256;
153pub const NLM_F_EXCL: u32 = 512;
154pub const NLM_F_CREATE: u32 = 1024;
155pub const NLM_F_APPEND: u32 = 2048;
156pub const NLM_F_NONREC: u32 = 256;
157pub const NLM_F_CAPPED: u32 = 256;
158pub const NLM_F_ACK_TLVS: u32 = 512;
159pub const NLMSG_ALIGNTO: u32 = 4;
160pub const NLMSG_NOOP: u32 = 1;
161pub const NLMSG_ERROR: u32 = 2;
162pub const NLMSG_DONE: u32 = 3;
163pub const NLMSG_OVERRUN: u32 = 4;
164pub const NLMSG_MIN_TYPE: u32 = 16;
165pub const NETLINK_ADD_MEMBERSHIP: u32 = 1;
166pub const NETLINK_DROP_MEMBERSHIP: u32 = 2;
167pub const NETLINK_PKTINFO: u32 = 3;
168pub const NETLINK_BROADCAST_ERROR: u32 = 4;
169pub const NETLINK_NO_ENOBUFS: u32 = 5;
170pub const NETLINK_RX_RING: u32 = 6;
171pub const NETLINK_TX_RING: u32 = 7;
172pub const NETLINK_LISTEN_ALL_NSID: u32 = 8;
173pub const NETLINK_LIST_MEMBERSHIPS: u32 = 9;
174pub const NETLINK_CAP_ACK: u32 = 10;
175pub const NETLINK_EXT_ACK: u32 = 11;
176pub const NETLINK_GET_STRICT_CHK: u32 = 12;
177pub const NL_MMAP_MSG_ALIGNMENT: u32 = 4;
178pub const NET_MAJOR: u32 = 36;
179pub const NLA_F_NESTED: u32 = 32768;
180pub const NLA_F_NET_BYTEORDER: u32 = 16384;
181pub const NLA_TYPE_MASK: i32 = -49153;
182pub const NLA_ALIGNTO: u32 = 4;
183pub const MACVLAN_FLAG_NOPROMISC: u32 = 1;
184pub const IPVLAN_F_PRIVATE: u32 = 1;
185pub const IPVLAN_F_VEPA: u32 = 2;
186pub const MAX_VLAN_LIST_LEN: u32 = 1;
187pub const PORT_PROFILE_MAX: u32 = 40;
188pub const PORT_UUID_MAX: u32 = 16;
189pub const PORT_SELF_VF: i32 = -1;
190pub const XDP_FLAGS_UPDATE_IF_NOEXIST: u32 = 1;
191pub const XDP_FLAGS_SKB_MODE: u32 = 2;
192pub const XDP_FLAGS_DRV_MODE: u32 = 4;
193pub const XDP_FLAGS_HW_MODE: u32 = 8;
194pub const XDP_FLAGS_MODES: u32 = 14;
195pub const XDP_FLAGS_MASK: u32 = 15;
196pub const RMNET_FLAGS_INGRESS_DEAGGREGATION: u32 = 1;
197pub const RMNET_FLAGS_INGRESS_MAP_COMMANDS: u32 = 2;
198pub const RMNET_FLAGS_INGRESS_MAP_CKSUMV4: u32 = 4;
199pub const RMNET_FLAGS_EGRESS_MAP_CKSUMV4: u32 = 8;
200pub const BPF_LD: u32 = 0;
201pub const BPF_LDX: u32 = 1;
202pub const BPF_ST: u32 = 2;
203pub const BPF_STX: u32 = 3;
204pub const BPF_ALU: u32 = 4;
205pub const BPF_JMP: u32 = 5;
206pub const BPF_RET: u32 = 6;
207pub const BPF_MISC: u32 = 7;
208pub const BPF_W: u32 = 0;
209pub const BPF_H: u32 = 8;
210pub const BPF_B: u32 = 16;
211pub const BPF_IMM: u32 = 0;
212pub const BPF_ABS: u32 = 32;
213pub const BPF_IND: u32 = 64;
214pub const BPF_MEM: u32 = 96;
215pub const BPF_LEN: u32 = 128;
216pub const BPF_MSH: u32 = 160;
217pub const BPF_ADD: u32 = 0;
218pub const BPF_SUB: u32 = 16;
219pub const BPF_MUL: u32 = 32;
220pub const BPF_DIV: u32 = 48;
221pub const BPF_OR: u32 = 64;
222pub const BPF_AND: u32 = 80;
223pub const BPF_LSH: u32 = 96;
224pub const BPF_RSH: u32 = 112;
225pub const BPF_NEG: u32 = 128;
226pub const BPF_MOD: u32 = 144;
227pub const BPF_XOR: u32 = 160;
228pub const BPF_JA: u32 = 0;
229pub const BPF_JEQ: u32 = 16;
230pub const BPF_JGT: u32 = 32;
231pub const BPF_JGE: u32 = 48;
232pub const BPF_JSET: u32 = 64;
233pub const BPF_K: u32 = 0;
234pub const BPF_X: u32 = 8;
235pub const BPF_MAXINSNS: u32 = 4096;
236pub const BPF_JMP32: u32 = 6;
237pub const BPF_ALU64: u32 = 7;
238pub const BPF_DW: u32 = 24;
239pub const BPF_XADD: u32 = 192;
240pub const BPF_MOV: u32 = 176;
241pub const BPF_ARSH: u32 = 192;
242pub const BPF_END: u32 = 208;
243pub const BPF_TO_LE: u32 = 0;
244pub const BPF_TO_BE: u32 = 8;
245pub const BPF_FROM_LE: u32 = 0;
246pub const BPF_FROM_BE: u32 = 8;
247pub const BPF_JNE: u32 = 80;
248pub const BPF_JLT: u32 = 160;
249pub const BPF_JLE: u32 = 176;
250pub const BPF_JSGT: u32 = 96;
251pub const BPF_JSGE: u32 = 112;
252pub const BPF_JSLT: u32 = 192;
253pub const BPF_JSLE: u32 = 208;
254pub const BPF_CALL: u32 = 128;
255pub const BPF_EXIT: u32 = 144;
256pub const BPF_F_ALLOW_OVERRIDE: u32 = 1;
257pub const BPF_F_ALLOW_MULTI: u32 = 2;
258pub const BPF_F_STRICT_ALIGNMENT: u32 = 1;
259pub const BPF_F_ANY_ALIGNMENT: u32 = 2;
260pub const BPF_F_TEST_RND_HI32: u32 = 4;
261pub const BPF_F_TEST_STATE_FREQ: u32 = 8;
262pub const BPF_PSEUDO_MAP_FD: u32 = 1;
263pub const BPF_PSEUDO_MAP_VALUE: u32 = 2;
264pub const BPF_PSEUDO_CALL: u32 = 1;
265pub const BPF_ANY: u32 = 0;
266pub const BPF_NOEXIST: u32 = 1;
267pub const BPF_EXIST: u32 = 2;
268pub const BPF_F_LOCK: u32 = 4;
269pub const BPF_F_NO_PREALLOC: u32 = 1;
270pub const BPF_F_NO_COMMON_LRU: u32 = 2;
271pub const BPF_F_NUMA_NODE: u32 = 4;
272pub const BPF_OBJ_NAME_LEN: u32 = 16;
273pub const BPF_F_RDONLY: u32 = 8;
274pub const BPF_F_WRONLY: u32 = 16;
275pub const BPF_F_STACK_BUILD_ID: u32 = 32;
276pub const BPF_F_ZERO_SEED: u32 = 64;
277pub const BPF_F_RDONLY_PROG: u32 = 128;
278pub const BPF_F_WRONLY_PROG: u32 = 256;
279pub const BPF_F_CLONE: u32 = 512;
280pub const BPF_F_QUERY_EFFECTIVE: u32 = 1;
281pub const BPF_BUILD_ID_SIZE: u32 = 20;
282pub const BPF_F_RECOMPUTE_CSUM: u32 = 1;
283pub const BPF_F_INVALIDATE_HASH: u32 = 2;
284pub const BPF_F_HDR_FIELD_MASK: u32 = 15;
285pub const BPF_F_PSEUDO_HDR: u32 = 16;
286pub const BPF_F_MARK_MANGLED_0: u32 = 32;
287pub const BPF_F_MARK_ENFORCE: u32 = 64;
288pub const BPF_F_INGRESS: u32 = 1;
289pub const BPF_F_TUNINFO_IPV6: u32 = 1;
290pub const BPF_F_SKIP_FIELD_MASK: u32 = 255;
291pub const BPF_F_USER_STACK: u32 = 256;
292pub const BPF_F_FAST_STACK_CMP: u32 = 512;
293pub const BPF_F_REUSE_STACKID: u32 = 1024;
294pub const BPF_F_USER_BUILD_ID: u32 = 2048;
295pub const BPF_F_ZERO_CSUM_TX: u32 = 2;
296pub const BPF_F_DONT_FRAGMENT: u32 = 4;
297pub const BPF_F_SEQ_NUMBER: u32 = 8;
298pub const BPF_F_INDEX_MASK: u32 = 4294967295;
299pub const BPF_F_CURRENT_CPU: u32 = 4294967295;
300pub const BPF_F_CTXLEN_MASK: u64 = 4503595332403200;
301pub const BPF_F_CURRENT_NETNS: i32 = -1;
302pub const BPF_F_ADJ_ROOM_FIXED_GSO: u32 = 1;
303pub const BPF_ADJ_ROOM_ENCAP_L2_MASK: u32 = 255;
304pub const BPF_ADJ_ROOM_ENCAP_L2_SHIFT: u32 = 56;
305pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: u32 = 2;
306pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: u32 = 4;
307pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: u32 = 8;
308pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: u32 = 16;
309pub const BPF_F_SYSCTL_BASE_NAME: u32 = 1;
310pub const BPF_SK_STORAGE_GET_F_CREATE: u32 = 1;
311pub const XDP_PACKET_HEADROOM: u32 = 256;
312pub const BPF_TAG_SIZE: u32 = 8;
313pub const BPF_SOCK_OPS_RTO_CB_FLAG: u32 = 1;
314pub const BPF_SOCK_OPS_RETRANS_CB_FLAG: u32 = 2;
315pub const BPF_SOCK_OPS_STATE_CB_FLAG: u32 = 4;
316pub const BPF_SOCK_OPS_RTT_CB_FLAG: u32 = 8;
317pub const BPF_SOCK_OPS_ALL_CB_FLAGS: u32 = 15;
318pub const TCP_BPF_IW: u32 = 1001;
319pub const TCP_BPF_SNDCWND_CLAMP: u32 = 1002;
320pub const BPF_DEVCG_ACC_MKNOD: u32 = 1;
321pub const BPF_DEVCG_ACC_READ: u32 = 2;
322pub const BPF_DEVCG_ACC_WRITE: u32 = 4;
323pub const BPF_DEVCG_DEV_BLOCK: u32 = 1;
324pub const BPF_DEVCG_DEV_CHAR: u32 = 2;
325pub const BPF_FIB_LOOKUP_DIRECT: u32 = 1;
326pub const BPF_FIB_LOOKUP_OUTPUT: u32 = 2;
327pub const BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG: u32 = 1;
328pub const BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL: u32 = 2;
329pub const BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP: u32 = 4;
330pub const true_: u32 = 1;
331pub const false_: u32 = 0;
332pub const __bool_true_false_are_defined: u32 = 1;
333pub const _STDINT_H: u32 = 1;
334pub const _FEATURES_H: u32 = 1;
335pub const _DEFAULT_SOURCE: u32 = 1;
336pub const __USE_ISOC11: u32 = 1;
337pub const __USE_ISOC99: u32 = 1;
338pub const __USE_ISOC95: u32 = 1;
339pub const __USE_POSIX_IMPLICITLY: u32 = 1;
340pub const _POSIX_SOURCE: u32 = 1;
341pub const _POSIX_C_SOURCE: u32 = 200809;
342pub const __USE_POSIX: u32 = 1;
343pub const __USE_POSIX2: u32 = 1;
344pub const __USE_POSIX199309: u32 = 1;
345pub const __USE_POSIX199506: u32 = 1;
346pub const __USE_XOPEN2K: u32 = 1;
347pub const __USE_XOPEN2K8: u32 = 1;
348pub const _ATFILE_SOURCE: u32 = 1;
349pub const __USE_MISC: u32 = 1;
350pub const __USE_ATFILE: u32 = 1;
351pub const __USE_FORTIFY_LEVEL: u32 = 0;
352pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
353pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0;
354pub const _STDC_PREDEF_H: u32 = 1;
355pub const __STDC_IEC_559__: u32 = 1;
356pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
357pub const __STDC_ISO_10646__: u32 = 201706;
358pub const __GNU_LIBRARY__: u32 = 6;
359pub const __GLIBC__: u32 = 2;
360pub const __GLIBC_MINOR__: u32 = 29;
361pub const _SYS_CDEFS_H: u32 = 1;
362pub const __glibc_c99_flexarr_available: u32 = 1;
363pub const __WORDSIZE: u32 = 64;
364pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
365pub const __SYSCALL_WORDSIZE: u32 = 64;
366pub const __HAVE_GENERIC_SELECTION: u32 = 1;
367pub const __GLIBC_USE_LIB_EXT2: u32 = 0;
368pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0;
369pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0;
370pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0;
371pub const _BITS_TYPES_H: u32 = 1;
372pub const __TIMESIZE: u32 = 64;
373pub const _BITS_TYPESIZES_H: u32 = 1;
374pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
375pub const __INO_T_MATCHES_INO64_T: u32 = 1;
376pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
377pub const _BITS_TIME64_H: u32 = 1;
378pub const _BITS_WCHAR_H: u32 = 1;
379pub const _BITS_STDINT_INTN_H: u32 = 1;
380pub const _BITS_STDINT_UINTN_H: u32 = 1;
381pub const INT8_MIN: i32 = -128;
382pub const INT16_MIN: i32 = -32768;
383pub const INT32_MIN: i32 = -2147483648;
384pub const INT8_MAX: u32 = 127;
385pub const INT16_MAX: u32 = 32767;
386pub const INT32_MAX: u32 = 2147483647;
387pub const UINT8_MAX: u32 = 255;
388pub const UINT16_MAX: u32 = 65535;
389pub const UINT32_MAX: u32 = 4294967295;
390pub const INT_LEAST8_MIN: i32 = -128;
391pub const INT_LEAST16_MIN: i32 = -32768;
392pub const INT_LEAST32_MIN: i32 = -2147483648;
393pub const INT_LEAST8_MAX: u32 = 127;
394pub const INT_LEAST16_MAX: u32 = 32767;
395pub const INT_LEAST32_MAX: u32 = 2147483647;
396pub const UINT_LEAST8_MAX: u32 = 255;
397pub const UINT_LEAST16_MAX: u32 = 65535;
398pub const UINT_LEAST32_MAX: u32 = 4294967295;
399pub const INT_FAST8_MIN: i32 = -128;
400pub const INT_FAST16_MIN: i64 = -9223372036854775808;
401pub const INT_FAST32_MIN: i64 = -9223372036854775808;
402pub const INT_FAST8_MAX: u32 = 127;
403pub const INT_FAST16_MAX: u64 = 9223372036854775807;
404pub const INT_FAST32_MAX: u64 = 9223372036854775807;
405pub const UINT_FAST8_MAX: u32 = 255;
406pub const UINT_FAST16_MAX: i32 = -1;
407pub const UINT_FAST32_MAX: i32 = -1;
408pub const INTPTR_MIN: i64 = -9223372036854775808;
409pub const INTPTR_MAX: u64 = 9223372036854775807;
410pub const UINTPTR_MAX: i32 = -1;
411pub const PTRDIFF_MIN: i64 = -9223372036854775808;
412pub const PTRDIFF_MAX: u64 = 9223372036854775807;
413pub const SIG_ATOMIC_MIN: i32 = -2147483648;
414pub const SIG_ATOMIC_MAX: u32 = 2147483647;
415pub const SIZE_MAX: i32 = -1;
416pub const WINT_MIN: u32 = 0;
417pub const WINT_MAX: u32 = 4294967295;
418pub const _STRING_H: u32 = 1;
419pub const _BITS_TYPES_LOCALE_T_H: u32 = 1;
420pub const _BITS_TYPES___LOCALE_T_H: u32 = 1;
421pub const _STRINGS_H: u32 = 1;
422pub const MAPS_RELAX_COMPAT: u32 = 1;
423pub const BPF_LOG_BUF_SIZE: u32 = 16777215;
424pub const __GNUC_VA_LIST: u32 = 1;
425pub const BTF_MAGIC: u32 = 60319;
426pub const BTF_VERSION: u32 = 1;
427pub const BTF_MAX_TYPE: u32 = 1048575;
428pub const BTF_MAX_NAME_OFFSET: u32 = 16777215;
429pub const BTF_MAX_VLEN: u32 = 65535;
430pub const BTF_KIND_UNKN: u32 = 0;
431pub const BTF_KIND_INT: u32 = 1;
432pub const BTF_KIND_PTR: u32 = 2;
433pub const BTF_KIND_ARRAY: u32 = 3;
434pub const BTF_KIND_STRUCT: u32 = 4;
435pub const BTF_KIND_UNION: u32 = 5;
436pub const BTF_KIND_ENUM: u32 = 6;
437pub const BTF_KIND_FWD: u32 = 7;
438pub const BTF_KIND_TYPEDEF: u32 = 8;
439pub const BTF_KIND_VOLATILE: u32 = 9;
440pub const BTF_KIND_CONST: u32 = 10;
441pub const BTF_KIND_RESTRICT: u32 = 11;
442pub const BTF_KIND_FUNC: u32 = 12;
443pub const BTF_KIND_FUNC_PROTO: u32 = 13;
444pub const BTF_KIND_VAR: u32 = 14;
445pub const BTF_KIND_DATASEC: u32 = 15;
446pub const BTF_KIND_MAX: u32 = 15;
447pub const NR_BTF_KINDS: u32 = 16;
448pub const BTF_INT_SIGNED: u32 = 1;
449pub const BTF_INT_CHAR: u32 = 2;
450pub const BTF_INT_BOOL: u32 = 4;
451pub const BTF_ELF_SEC: &'static [u8; 5usize] = b".BTF\0";
452pub const BTF_EXT_ELF_SEC: &'static [u8; 9usize] = b".BTF.ext\0";
453pub const MAPS_ELF_SEC: &'static [u8; 6usize] = b".maps\0";
454pub const _STDIO_H: u32 = 1;
455pub const _____fpos_t_defined: u32 = 1;
456pub const ____mbstate_t_defined: u32 = 1;
457pub const _____fpos64_t_defined: u32 = 1;
458pub const ____FILE_defined: u32 = 1;
459pub const __FILE_defined: u32 = 1;
460pub const __struct_FILE_defined: u32 = 1;
461pub const _IO_EOF_SEEN: u32 = 16;
462pub const _IO_ERR_SEEN: u32 = 32;
463pub const _IO_USER_LOCK: u32 = 32768;
464pub const _IOFBF: u32 = 0;
465pub const _IOLBF: u32 = 1;
466pub const _IONBF: u32 = 2;
467pub const BUFSIZ: u32 = 8192;
468pub const EOF: i32 = -1;
469pub const SEEK_SET: u32 = 0;
470pub const SEEK_CUR: u32 = 1;
471pub const SEEK_END: u32 = 2;
472pub const P_tmpdir: &'static [u8; 5usize] = b"/tmp\0";
473pub const _BITS_STDIO_LIM_H: u32 = 1;
474pub const L_tmpnam: u32 = 20;
475pub const TMP_MAX: u32 = 238328;
476pub const FILENAME_MAX: u32 = 4096;
477pub const L_ctermid: u32 = 9;
478pub const FOPEN_MAX: u32 = 16;
479pub const _SYS_TYPES_H: u32 = 1;
480pub const __clock_t_defined: u32 = 1;
481pub const __clockid_t_defined: u32 = 1;
482pub const __time_t_defined: u32 = 1;
483pub const __timer_t_defined: u32 = 1;
484pub const __BIT_TYPES_DEFINED__: u32 = 1;
485pub const _ENDIAN_H: u32 = 1;
486pub const __LITTLE_ENDIAN: u32 = 1234;
487pub const __BIG_ENDIAN: u32 = 4321;
488pub const __PDP_ENDIAN: u32 = 3412;
489pub const __BYTE_ORDER: u32 = 1234;
490pub const __FLOAT_WORD_ORDER: u32 = 1234;
491pub const LITTLE_ENDIAN: u32 = 1234;
492pub const BIG_ENDIAN: u32 = 4321;
493pub const PDP_ENDIAN: u32 = 3412;
494pub const BYTE_ORDER: u32 = 1234;
495pub const _BITS_BYTESWAP_H: u32 = 1;
496pub const _BITS_UINTN_IDENTITY_H: u32 = 1;
497pub const _SYS_SELECT_H: u32 = 1;
498pub const __FD_ZERO_STOS: &'static [u8; 6usize] = b"stosq\0";
499pub const __sigset_t_defined: u32 = 1;
500pub const __timeval_defined: u32 = 1;
501pub const _STRUCT_TIMESPEC: u32 = 1;
502pub const FD_SETSIZE: u32 = 1024;
503pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1;
504pub const _THREAD_SHARED_TYPES_H: u32 = 1;
505pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1;
506pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40;
507pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56;
508pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56;
509pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32;
510pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4;
511pub const __SIZEOF_PTHREAD_COND_T: u32 = 48;
512pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4;
513pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8;
514pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4;
515pub const __PTHREAD_MUTEX_LOCK_ELISION: u32 = 1;
516pub const __PTHREAD_MUTEX_NUSERS_AFTER_KIND: u32 = 0;
517pub const __PTHREAD_MUTEX_USE_UNION: u32 = 0;
518pub const __PTHREAD_RWLOCK_INT_FLAGS_SHARED: u32 = 1;
519pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1;
520pub const __have_pthread_attr_t: u32 = 1;
521pub const XDP_SHARED_UMEM: u32 = 1;
522pub const XDP_COPY: u32 = 2;
523pub const XDP_ZEROCOPY: u32 = 4;
524pub const XDP_USE_NEED_WAKEUP: u32 = 8;
525pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: u32 = 1;
526pub const XDP_RING_NEED_WAKEUP: u32 = 1;
527pub const XDP_MMAP_OFFSETS: u32 = 1;
528pub const XDP_RX_RING: u32 = 2;
529pub const XDP_TX_RING: u32 = 3;
530pub const XDP_UMEM_REG: u32 = 4;
531pub const XDP_UMEM_FILL_RING: u32 = 5;
532pub const XDP_UMEM_COMPLETION_RING: u32 = 6;
533pub const XDP_STATISTICS: u32 = 7;
534pub const XDP_OPTIONS: u32 = 8;
535pub const XDP_OPTIONS_ZEROCOPY: u32 = 1;
536pub const XDP_PGOFF_RX_RING: u32 = 0;
537pub const XDP_PGOFF_TX_RING: u32 = 2147483648;
538pub const XDP_UMEM_PGOFF_FILL_RING: u64 = 4294967296;
539pub const XDP_UMEM_PGOFF_COMPLETION_RING: u64 = 6442450944;
540pub const XSK_UNALIGNED_BUF_OFFSET_SHIFT: u32 = 48;
541pub const XSK_UNALIGNED_BUF_ADDR_MASK: u64 = 281474976710655;
542pub const XSK_RING_CONS__DEFAULT_NUM_DESCS: u32 = 2048;
543pub const XSK_RING_PROD__DEFAULT_NUM_DESCS: u32 = 2048;
544pub const XSK_UMEM__DEFAULT_FRAME_SHIFT: u32 = 12;
545pub const XSK_UMEM__DEFAULT_FRAME_SIZE: u32 = 4096;
546pub const XSK_UMEM__DEFAULT_FRAME_HEADROOM: u32 = 0;
547pub const XSK_UMEM__DEFAULT_FLAGS: u32 = 0;
548pub const XSK_LIBBPF_FLAGS__INHIBIT_PROG_LOAD: u32 = 1;
549pub type __s8 = ::std::os::raw::c_schar;
550pub type __u8 = ::std::os::raw::c_uchar;
551pub type __s16 = ::std::os::raw::c_short;
552pub type __u16 = ::std::os::raw::c_ushort;
553pub type __s32 = ::std::os::raw::c_int;
554pub type __u32 = ::std::os::raw::c_uint;
555pub type __s64 = ::std::os::raw::c_longlong;
556pub type __u64 = ::std::os::raw::c_ulonglong;
557#[repr(C)]
558#[derive(Debug, Copy, Clone)]
559pub struct __kernel_fd_set {
560    pub fds_bits: [::std::os::raw::c_ulong; 16usize],
561}
562pub type __kernel_sighandler_t =
563    ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>;
564pub type __kernel_key_t = ::std::os::raw::c_int;
565pub type __kernel_mqd_t = ::std::os::raw::c_int;
566pub type __kernel_old_uid_t = ::std::os::raw::c_ushort;
567pub type __kernel_old_gid_t = ::std::os::raw::c_ushort;
568pub type __kernel_old_dev_t = ::std::os::raw::c_ulong;
569pub type __kernel_long_t = ::std::os::raw::c_long;
570pub type __kernel_ulong_t = ::std::os::raw::c_ulong;
571pub type __kernel_ino_t = __kernel_ulong_t;
572pub type __kernel_mode_t = ::std::os::raw::c_uint;
573pub type __kernel_pid_t = ::std::os::raw::c_int;
574pub type __kernel_ipc_pid_t = ::std::os::raw::c_int;
575pub type __kernel_uid_t = ::std::os::raw::c_uint;
576pub type __kernel_gid_t = ::std::os::raw::c_uint;
577pub type __kernel_suseconds_t = __kernel_long_t;
578pub type __kernel_daddr_t = ::std::os::raw::c_int;
579pub type __kernel_uid32_t = ::std::os::raw::c_uint;
580pub type __kernel_gid32_t = ::std::os::raw::c_uint;
581pub type __kernel_size_t = __kernel_ulong_t;
582pub type __kernel_ssize_t = __kernel_long_t;
583pub type __kernel_ptrdiff_t = __kernel_long_t;
584#[repr(C)]
585#[derive(Debug, Copy, Clone)]
586pub struct __kernel_fsid_t {
587    pub val: [::std::os::raw::c_int; 2usize],
588}
589pub type __kernel_off_t = __kernel_long_t;
590pub type __kernel_loff_t = ::std::os::raw::c_longlong;
591pub type __kernel_time_t = __kernel_long_t;
592pub type __kernel_time64_t = ::std::os::raw::c_longlong;
593pub type __kernel_clock_t = __kernel_long_t;
594pub type __kernel_timer_t = ::std::os::raw::c_int;
595pub type __kernel_clockid_t = ::std::os::raw::c_int;
596pub type __kernel_caddr_t = *mut ::std::os::raw::c_char;
597pub type __kernel_uid16_t = ::std::os::raw::c_ushort;
598pub type __kernel_gid16_t = ::std::os::raw::c_ushort;
599pub type __le16 = __u16;
600pub type __be16 = __u16;
601pub type __le32 = __u32;
602pub type __be32 = __u32;
603pub type __le64 = __u64;
604pub type __be64 = __u64;
605pub type __sum16 = __u16;
606pub type __wsum = __u32;
607pub type __poll_t = ::std::os::raw::c_uint;
608#[repr(C)]
609#[derive(Debug)]
610pub struct sysinfo {
611    pub uptime: __kernel_long_t,
612    pub loads: [__kernel_ulong_t; 3usize],
613    pub totalram: __kernel_ulong_t,
614    pub freeram: __kernel_ulong_t,
615    pub sharedram: __kernel_ulong_t,
616    pub bufferram: __kernel_ulong_t,
617    pub totalswap: __kernel_ulong_t,
618    pub freeswap: __kernel_ulong_t,
619    pub procs: __u16,
620    pub pad: __u16,
621    pub totalhigh: __kernel_ulong_t,
622    pub freehigh: __kernel_ulong_t,
623    pub mem_unit: __u32,
624    pub _f: __IncompleteArrayField<::std::os::raw::c_char>,
625}
626pub type __kernel_sa_family_t = ::std::os::raw::c_ushort;
627#[repr(C)]
628#[derive(Copy, Clone)]
629pub struct __kernel_sockaddr_storage {
630    pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
631}
632#[repr(C)]
633#[derive(Copy, Clone)]
634pub union __kernel_sockaddr_storage__bindgen_ty_1 {
635    pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
636    pub __align: *mut ::std::os::raw::c_void,
637    _bindgen_union_align: [u64; 16usize],
638}
639#[repr(C)]
640#[derive(Copy, Clone)]
641pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
642    pub ss_family: __kernel_sa_family_t,
643    pub __data: [::std::os::raw::c_char; 126usize],
644}
645#[repr(C)]
646#[derive(Debug, Copy, Clone)]
647pub struct sockaddr_nl {
648    pub nl_family: __kernel_sa_family_t,
649    pub nl_pad: ::std::os::raw::c_ushort,
650    pub nl_pid: __u32,
651    pub nl_groups: __u32,
652}
653#[repr(C)]
654#[derive(Debug, Copy, Clone)]
655pub struct nlmsghdr {
656    pub nlmsg_len: __u32,
657    pub nlmsg_type: __u16,
658    pub nlmsg_flags: __u16,
659    pub nlmsg_seq: __u32,
660    pub nlmsg_pid: __u32,
661}
662#[repr(C)]
663#[derive(Debug, Copy, Clone)]
664pub struct nlmsgerr {
665    pub error: ::std::os::raw::c_int,
666    pub msg: nlmsghdr,
667}
668pub const nlmsgerr_attrs_NLMSGERR_ATTR_UNUSED: nlmsgerr_attrs = 0;
669pub const nlmsgerr_attrs_NLMSGERR_ATTR_MSG: nlmsgerr_attrs = 1;
670pub const nlmsgerr_attrs_NLMSGERR_ATTR_OFFS: nlmsgerr_attrs = 2;
671pub const nlmsgerr_attrs_NLMSGERR_ATTR_COOKIE: nlmsgerr_attrs = 3;
672pub const nlmsgerr_attrs___NLMSGERR_ATTR_MAX: nlmsgerr_attrs = 4;
673pub const nlmsgerr_attrs_NLMSGERR_ATTR_MAX: nlmsgerr_attrs = 3;
674pub type nlmsgerr_attrs = u32;
675#[repr(C)]
676#[derive(Debug, Copy, Clone)]
677pub struct nl_pktinfo {
678    pub group: __u32,
679}
680#[repr(C)]
681#[derive(Debug, Copy, Clone)]
682pub struct nl_mmap_req {
683    pub nm_block_size: ::std::os::raw::c_uint,
684    pub nm_block_nr: ::std::os::raw::c_uint,
685    pub nm_frame_size: ::std::os::raw::c_uint,
686    pub nm_frame_nr: ::std::os::raw::c_uint,
687}
688#[repr(C)]
689#[derive(Debug, Copy, Clone)]
690pub struct nl_mmap_hdr {
691    pub nm_status: ::std::os::raw::c_uint,
692    pub nm_len: ::std::os::raw::c_uint,
693    pub nm_group: __u32,
694    pub nm_pid: __u32,
695    pub nm_uid: __u32,
696    pub nm_gid: __u32,
697}
698pub const nl_mmap_status_NL_MMAP_STATUS_UNUSED: nl_mmap_status = 0;
699pub const nl_mmap_status_NL_MMAP_STATUS_RESERVED: nl_mmap_status = 1;
700pub const nl_mmap_status_NL_MMAP_STATUS_VALID: nl_mmap_status = 2;
701pub const nl_mmap_status_NL_MMAP_STATUS_COPY: nl_mmap_status = 3;
702pub const nl_mmap_status_NL_MMAP_STATUS_SKIP: nl_mmap_status = 4;
703pub type nl_mmap_status = u32;
704pub const NETLINK_UNCONNECTED: _bindgen_ty_1 = 0;
705pub const NETLINK_CONNECTED: _bindgen_ty_1 = 1;
706pub type _bindgen_ty_1 = u32;
707#[repr(C)]
708#[derive(Debug, Copy, Clone)]
709pub struct nlattr {
710    pub nla_len: __u16,
711    pub nla_type: __u16,
712}
713#[repr(C)]
714#[derive(Debug, Copy, Clone)]
715pub struct nla_bitfield32 {
716    pub value: __u32,
717    pub selector: __u32,
718}
719#[repr(C)]
720#[derive(Debug, Copy, Clone)]
721pub struct rtnl_link_stats {
722    pub rx_packets: __u32,
723    pub tx_packets: __u32,
724    pub rx_bytes: __u32,
725    pub tx_bytes: __u32,
726    pub rx_errors: __u32,
727    pub tx_errors: __u32,
728    pub rx_dropped: __u32,
729    pub tx_dropped: __u32,
730    pub multicast: __u32,
731    pub collisions: __u32,
732    pub rx_length_errors: __u32,
733    pub rx_over_errors: __u32,
734    pub rx_crc_errors: __u32,
735    pub rx_frame_errors: __u32,
736    pub rx_fifo_errors: __u32,
737    pub rx_missed_errors: __u32,
738    pub tx_aborted_errors: __u32,
739    pub tx_carrier_errors: __u32,
740    pub tx_fifo_errors: __u32,
741    pub tx_heartbeat_errors: __u32,
742    pub tx_window_errors: __u32,
743    pub rx_compressed: __u32,
744    pub tx_compressed: __u32,
745    pub rx_nohandler: __u32,
746}
747#[repr(C)]
748#[derive(Debug, Copy, Clone)]
749pub struct rtnl_link_stats64 {
750    pub rx_packets: __u64,
751    pub tx_packets: __u64,
752    pub rx_bytes: __u64,
753    pub tx_bytes: __u64,
754    pub rx_errors: __u64,
755    pub tx_errors: __u64,
756    pub rx_dropped: __u64,
757    pub tx_dropped: __u64,
758    pub multicast: __u64,
759    pub collisions: __u64,
760    pub rx_length_errors: __u64,
761    pub rx_over_errors: __u64,
762    pub rx_crc_errors: __u64,
763    pub rx_frame_errors: __u64,
764    pub rx_fifo_errors: __u64,
765    pub rx_missed_errors: __u64,
766    pub tx_aborted_errors: __u64,
767    pub tx_carrier_errors: __u64,
768    pub tx_fifo_errors: __u64,
769    pub tx_heartbeat_errors: __u64,
770    pub tx_window_errors: __u64,
771    pub rx_compressed: __u64,
772    pub tx_compressed: __u64,
773    pub rx_nohandler: __u64,
774}
775#[repr(C)]
776#[derive(Debug, Copy, Clone)]
777pub struct rtnl_link_ifmap {
778    pub mem_start: __u64,
779    pub mem_end: __u64,
780    pub base_addr: __u64,
781    pub irq: __u16,
782    pub dma: __u8,
783    pub port: __u8,
784}
785pub const IFLA_UNSPEC: _bindgen_ty_2 = 0;
786pub const IFLA_ADDRESS: _bindgen_ty_2 = 1;
787pub const IFLA_BROADCAST: _bindgen_ty_2 = 2;
788pub const IFLA_IFNAME: _bindgen_ty_2 = 3;
789pub const IFLA_MTU: _bindgen_ty_2 = 4;
790pub const IFLA_LINK: _bindgen_ty_2 = 5;
791pub const IFLA_QDISC: _bindgen_ty_2 = 6;
792pub const IFLA_STATS: _bindgen_ty_2 = 7;
793pub const IFLA_COST: _bindgen_ty_2 = 8;
794pub const IFLA_PRIORITY: _bindgen_ty_2 = 9;
795pub const IFLA_MASTER: _bindgen_ty_2 = 10;
796pub const IFLA_WIRELESS: _bindgen_ty_2 = 11;
797pub const IFLA_PROTINFO: _bindgen_ty_2 = 12;
798pub const IFLA_TXQLEN: _bindgen_ty_2 = 13;
799pub const IFLA_MAP: _bindgen_ty_2 = 14;
800pub const IFLA_WEIGHT: _bindgen_ty_2 = 15;
801pub const IFLA_OPERSTATE: _bindgen_ty_2 = 16;
802pub const IFLA_LINKMODE: _bindgen_ty_2 = 17;
803pub const IFLA_LINKINFO: _bindgen_ty_2 = 18;
804pub const IFLA_NET_NS_PID: _bindgen_ty_2 = 19;
805pub const IFLA_IFALIAS: _bindgen_ty_2 = 20;
806pub const IFLA_NUM_VF: _bindgen_ty_2 = 21;
807pub const IFLA_VFINFO_LIST: _bindgen_ty_2 = 22;
808pub const IFLA_STATS64: _bindgen_ty_2 = 23;
809pub const IFLA_VF_PORTS: _bindgen_ty_2 = 24;
810pub const IFLA_PORT_SELF: _bindgen_ty_2 = 25;
811pub const IFLA_AF_SPEC: _bindgen_ty_2 = 26;
812pub const IFLA_GROUP: _bindgen_ty_2 = 27;
813pub const IFLA_NET_NS_FD: _bindgen_ty_2 = 28;
814pub const IFLA_EXT_MASK: _bindgen_ty_2 = 29;
815pub const IFLA_PROMISCUITY: _bindgen_ty_2 = 30;
816pub const IFLA_NUM_TX_QUEUES: _bindgen_ty_2 = 31;
817pub const IFLA_NUM_RX_QUEUES: _bindgen_ty_2 = 32;
818pub const IFLA_CARRIER: _bindgen_ty_2 = 33;
819pub const IFLA_PHYS_PORT_ID: _bindgen_ty_2 = 34;
820pub const IFLA_CARRIER_CHANGES: _bindgen_ty_2 = 35;
821pub const IFLA_PHYS_SWITCH_ID: _bindgen_ty_2 = 36;
822pub const IFLA_LINK_NETNSID: _bindgen_ty_2 = 37;
823pub const IFLA_PHYS_PORT_NAME: _bindgen_ty_2 = 38;
824pub const IFLA_PROTO_DOWN: _bindgen_ty_2 = 39;
825pub const IFLA_GSO_MAX_SEGS: _bindgen_ty_2 = 40;
826pub const IFLA_GSO_MAX_SIZE: _bindgen_ty_2 = 41;
827pub const IFLA_PAD: _bindgen_ty_2 = 42;
828pub const IFLA_XDP: _bindgen_ty_2 = 43;
829pub const IFLA_EVENT: _bindgen_ty_2 = 44;
830pub const IFLA_NEW_NETNSID: _bindgen_ty_2 = 45;
831pub const IFLA_IF_NETNSID: _bindgen_ty_2 = 46;
832pub const IFLA_TARGET_NETNSID: _bindgen_ty_2 = 46;
833pub const IFLA_CARRIER_UP_COUNT: _bindgen_ty_2 = 47;
834pub const IFLA_CARRIER_DOWN_COUNT: _bindgen_ty_2 = 48;
835pub const IFLA_NEW_IFINDEX: _bindgen_ty_2 = 49;
836pub const IFLA_MIN_MTU: _bindgen_ty_2 = 50;
837pub const IFLA_MAX_MTU: _bindgen_ty_2 = 51;
838pub const IFLA_PROP_LIST: _bindgen_ty_2 = 52;
839pub const IFLA_ALT_IFNAME: _bindgen_ty_2 = 53;
840pub const IFLA_PERM_ADDRESS: _bindgen_ty_2 = 54;
841pub const __IFLA_MAX: _bindgen_ty_2 = 55;
842pub type _bindgen_ty_2 = u32;
843pub const IFLA_INET_UNSPEC: _bindgen_ty_3 = 0;
844pub const IFLA_INET_CONF: _bindgen_ty_3 = 1;
845pub const __IFLA_INET_MAX: _bindgen_ty_3 = 2;
846pub type _bindgen_ty_3 = u32;
847pub const IFLA_INET6_UNSPEC: _bindgen_ty_4 = 0;
848pub const IFLA_INET6_FLAGS: _bindgen_ty_4 = 1;
849pub const IFLA_INET6_CONF: _bindgen_ty_4 = 2;
850pub const IFLA_INET6_STATS: _bindgen_ty_4 = 3;
851pub const IFLA_INET6_MCAST: _bindgen_ty_4 = 4;
852pub const IFLA_INET6_CACHEINFO: _bindgen_ty_4 = 5;
853pub const IFLA_INET6_ICMP6STATS: _bindgen_ty_4 = 6;
854pub const IFLA_INET6_TOKEN: _bindgen_ty_4 = 7;
855pub const IFLA_INET6_ADDR_GEN_MODE: _bindgen_ty_4 = 8;
856pub const __IFLA_INET6_MAX: _bindgen_ty_4 = 9;
857pub type _bindgen_ty_4 = u32;
858pub const in6_addr_gen_mode_IN6_ADDR_GEN_MODE_EUI64: in6_addr_gen_mode = 0;
859pub const in6_addr_gen_mode_IN6_ADDR_GEN_MODE_NONE: in6_addr_gen_mode = 1;
860pub const in6_addr_gen_mode_IN6_ADDR_GEN_MODE_STABLE_PRIVACY: in6_addr_gen_mode = 2;
861pub const in6_addr_gen_mode_IN6_ADDR_GEN_MODE_RANDOM: in6_addr_gen_mode = 3;
862pub type in6_addr_gen_mode = u32;
863pub const IFLA_BR_UNSPEC: _bindgen_ty_5 = 0;
864pub const IFLA_BR_FORWARD_DELAY: _bindgen_ty_5 = 1;
865pub const IFLA_BR_HELLO_TIME: _bindgen_ty_5 = 2;
866pub const IFLA_BR_MAX_AGE: _bindgen_ty_5 = 3;
867pub const IFLA_BR_AGEING_TIME: _bindgen_ty_5 = 4;
868pub const IFLA_BR_STP_STATE: _bindgen_ty_5 = 5;
869pub const IFLA_BR_PRIORITY: _bindgen_ty_5 = 6;
870pub const IFLA_BR_VLAN_FILTERING: _bindgen_ty_5 = 7;
871pub const IFLA_BR_VLAN_PROTOCOL: _bindgen_ty_5 = 8;
872pub const IFLA_BR_GROUP_FWD_MASK: _bindgen_ty_5 = 9;
873pub const IFLA_BR_ROOT_ID: _bindgen_ty_5 = 10;
874pub const IFLA_BR_BRIDGE_ID: _bindgen_ty_5 = 11;
875pub const IFLA_BR_ROOT_PORT: _bindgen_ty_5 = 12;
876pub const IFLA_BR_ROOT_PATH_COST: _bindgen_ty_5 = 13;
877pub const IFLA_BR_TOPOLOGY_CHANGE: _bindgen_ty_5 = 14;
878pub const IFLA_BR_TOPOLOGY_CHANGE_DETECTED: _bindgen_ty_5 = 15;
879pub const IFLA_BR_HELLO_TIMER: _bindgen_ty_5 = 16;
880pub const IFLA_BR_TCN_TIMER: _bindgen_ty_5 = 17;
881pub const IFLA_BR_TOPOLOGY_CHANGE_TIMER: _bindgen_ty_5 = 18;
882pub const IFLA_BR_GC_TIMER: _bindgen_ty_5 = 19;
883pub const IFLA_BR_GROUP_ADDR: _bindgen_ty_5 = 20;
884pub const IFLA_BR_FDB_FLUSH: _bindgen_ty_5 = 21;
885pub const IFLA_BR_MCAST_ROUTER: _bindgen_ty_5 = 22;
886pub const IFLA_BR_MCAST_SNOOPING: _bindgen_ty_5 = 23;
887pub const IFLA_BR_MCAST_QUERY_USE_IFADDR: _bindgen_ty_5 = 24;
888pub const IFLA_BR_MCAST_QUERIER: _bindgen_ty_5 = 25;
889pub const IFLA_BR_MCAST_HASH_ELASTICITY: _bindgen_ty_5 = 26;
890pub const IFLA_BR_MCAST_HASH_MAX: _bindgen_ty_5 = 27;
891pub const IFLA_BR_MCAST_LAST_MEMBER_CNT: _bindgen_ty_5 = 28;
892pub const IFLA_BR_MCAST_STARTUP_QUERY_CNT: _bindgen_ty_5 = 29;
893pub const IFLA_BR_MCAST_LAST_MEMBER_INTVL: _bindgen_ty_5 = 30;
894pub const IFLA_BR_MCAST_MEMBERSHIP_INTVL: _bindgen_ty_5 = 31;
895pub const IFLA_BR_MCAST_QUERIER_INTVL: _bindgen_ty_5 = 32;
896pub const IFLA_BR_MCAST_QUERY_INTVL: _bindgen_ty_5 = 33;
897pub const IFLA_BR_MCAST_QUERY_RESPONSE_INTVL: _bindgen_ty_5 = 34;
898pub const IFLA_BR_MCAST_STARTUP_QUERY_INTVL: _bindgen_ty_5 = 35;
899pub const IFLA_BR_NF_CALL_IPTABLES: _bindgen_ty_5 = 36;
900pub const IFLA_BR_NF_CALL_IP6TABLES: _bindgen_ty_5 = 37;
901pub const IFLA_BR_NF_CALL_ARPTABLES: _bindgen_ty_5 = 38;
902pub const IFLA_BR_VLAN_DEFAULT_PVID: _bindgen_ty_5 = 39;
903pub const IFLA_BR_PAD: _bindgen_ty_5 = 40;
904pub const IFLA_BR_VLAN_STATS_ENABLED: _bindgen_ty_5 = 41;
905pub const IFLA_BR_MCAST_STATS_ENABLED: _bindgen_ty_5 = 42;
906pub const IFLA_BR_MCAST_IGMP_VERSION: _bindgen_ty_5 = 43;
907pub const IFLA_BR_MCAST_MLD_VERSION: _bindgen_ty_5 = 44;
908pub const IFLA_BR_VLAN_STATS_PER_PORT: _bindgen_ty_5 = 45;
909pub const IFLA_BR_MULTI_BOOLOPT: _bindgen_ty_5 = 46;
910pub const __IFLA_BR_MAX: _bindgen_ty_5 = 47;
911pub type _bindgen_ty_5 = u32;
912#[repr(C)]
913#[derive(Debug, Copy, Clone)]
914pub struct ifla_bridge_id {
915    pub prio: [__u8; 2usize],
916    pub addr: [__u8; 6usize],
917}
918pub const BRIDGE_MODE_UNSPEC: _bindgen_ty_6 = 0;
919pub const BRIDGE_MODE_HAIRPIN: _bindgen_ty_6 = 1;
920pub type _bindgen_ty_6 = u32;
921pub const IFLA_BRPORT_UNSPEC: _bindgen_ty_7 = 0;
922pub const IFLA_BRPORT_STATE: _bindgen_ty_7 = 1;
923pub const IFLA_BRPORT_PRIORITY: _bindgen_ty_7 = 2;
924pub const IFLA_BRPORT_COST: _bindgen_ty_7 = 3;
925pub const IFLA_BRPORT_MODE: _bindgen_ty_7 = 4;
926pub const IFLA_BRPORT_GUARD: _bindgen_ty_7 = 5;
927pub const IFLA_BRPORT_PROTECT: _bindgen_ty_7 = 6;
928pub const IFLA_BRPORT_FAST_LEAVE: _bindgen_ty_7 = 7;
929pub const IFLA_BRPORT_LEARNING: _bindgen_ty_7 = 8;
930pub const IFLA_BRPORT_UNICAST_FLOOD: _bindgen_ty_7 = 9;
931pub const IFLA_BRPORT_PROXYARP: _bindgen_ty_7 = 10;
932pub const IFLA_BRPORT_LEARNING_SYNC: _bindgen_ty_7 = 11;
933pub const IFLA_BRPORT_PROXYARP_WIFI: _bindgen_ty_7 = 12;
934pub const IFLA_BRPORT_ROOT_ID: _bindgen_ty_7 = 13;
935pub const IFLA_BRPORT_BRIDGE_ID: _bindgen_ty_7 = 14;
936pub const IFLA_BRPORT_DESIGNATED_PORT: _bindgen_ty_7 = 15;
937pub const IFLA_BRPORT_DESIGNATED_COST: _bindgen_ty_7 = 16;
938pub const IFLA_BRPORT_ID: _bindgen_ty_7 = 17;
939pub const IFLA_BRPORT_NO: _bindgen_ty_7 = 18;
940pub const IFLA_BRPORT_TOPOLOGY_CHANGE_ACK: _bindgen_ty_7 = 19;
941pub const IFLA_BRPORT_CONFIG_PENDING: _bindgen_ty_7 = 20;
942pub const IFLA_BRPORT_MESSAGE_AGE_TIMER: _bindgen_ty_7 = 21;
943pub const IFLA_BRPORT_FORWARD_DELAY_TIMER: _bindgen_ty_7 = 22;
944pub const IFLA_BRPORT_HOLD_TIMER: _bindgen_ty_7 = 23;
945pub const IFLA_BRPORT_FLUSH: _bindgen_ty_7 = 24;
946pub const IFLA_BRPORT_MULTICAST_ROUTER: _bindgen_ty_7 = 25;
947pub const IFLA_BRPORT_PAD: _bindgen_ty_7 = 26;
948pub const IFLA_BRPORT_MCAST_FLOOD: _bindgen_ty_7 = 27;
949pub const IFLA_BRPORT_MCAST_TO_UCAST: _bindgen_ty_7 = 28;
950pub const IFLA_BRPORT_VLAN_TUNNEL: _bindgen_ty_7 = 29;
951pub const IFLA_BRPORT_BCAST_FLOOD: _bindgen_ty_7 = 30;
952pub const IFLA_BRPORT_GROUP_FWD_MASK: _bindgen_ty_7 = 31;
953pub const IFLA_BRPORT_NEIGH_SUPPRESS: _bindgen_ty_7 = 32;
954pub const IFLA_BRPORT_ISOLATED: _bindgen_ty_7 = 33;
955pub const IFLA_BRPORT_BACKUP_PORT: _bindgen_ty_7 = 34;
956pub const __IFLA_BRPORT_MAX: _bindgen_ty_7 = 35;
957pub type _bindgen_ty_7 = u32;
958#[repr(C)]
959#[derive(Debug, Copy, Clone)]
960pub struct ifla_cacheinfo {
961    pub max_reasm_len: __u32,
962    pub tstamp: __u32,
963    pub reachable_time: __u32,
964    pub retrans_time: __u32,
965}
966pub const IFLA_INFO_UNSPEC: _bindgen_ty_8 = 0;
967pub const IFLA_INFO_KIND: _bindgen_ty_8 = 1;
968pub const IFLA_INFO_DATA: _bindgen_ty_8 = 2;
969pub const IFLA_INFO_XSTATS: _bindgen_ty_8 = 3;
970pub const IFLA_INFO_SLAVE_KIND: _bindgen_ty_8 = 4;
971pub const IFLA_INFO_SLAVE_DATA: _bindgen_ty_8 = 5;
972pub const __IFLA_INFO_MAX: _bindgen_ty_8 = 6;
973pub type _bindgen_ty_8 = u32;
974pub const IFLA_VLAN_UNSPEC: _bindgen_ty_9 = 0;
975pub const IFLA_VLAN_ID: _bindgen_ty_9 = 1;
976pub const IFLA_VLAN_FLAGS: _bindgen_ty_9 = 2;
977pub const IFLA_VLAN_EGRESS_QOS: _bindgen_ty_9 = 3;
978pub const IFLA_VLAN_INGRESS_QOS: _bindgen_ty_9 = 4;
979pub const IFLA_VLAN_PROTOCOL: _bindgen_ty_9 = 5;
980pub const __IFLA_VLAN_MAX: _bindgen_ty_9 = 6;
981pub type _bindgen_ty_9 = u32;
982#[repr(C)]
983#[derive(Debug, Copy, Clone)]
984pub struct ifla_vlan_flags {
985    pub flags: __u32,
986    pub mask: __u32,
987}
988pub const IFLA_VLAN_QOS_UNSPEC: _bindgen_ty_10 = 0;
989pub const IFLA_VLAN_QOS_MAPPING: _bindgen_ty_10 = 1;
990pub const __IFLA_VLAN_QOS_MAX: _bindgen_ty_10 = 2;
991pub type _bindgen_ty_10 = u32;
992#[repr(C)]
993#[derive(Debug, Copy, Clone)]
994pub struct ifla_vlan_qos_mapping {
995    pub from: __u32,
996    pub to: __u32,
997}
998pub const IFLA_MACVLAN_UNSPEC: _bindgen_ty_11 = 0;
999pub const IFLA_MACVLAN_MODE: _bindgen_ty_11 = 1;
1000pub const IFLA_MACVLAN_FLAGS: _bindgen_ty_11 = 2;
1001pub const IFLA_MACVLAN_MACADDR_MODE: _bindgen_ty_11 = 3;
1002pub const IFLA_MACVLAN_MACADDR: _bindgen_ty_11 = 4;
1003pub const IFLA_MACVLAN_MACADDR_DATA: _bindgen_ty_11 = 5;
1004pub const IFLA_MACVLAN_MACADDR_COUNT: _bindgen_ty_11 = 6;
1005pub const __IFLA_MACVLAN_MAX: _bindgen_ty_11 = 7;
1006pub type _bindgen_ty_11 = u32;
1007pub const macvlan_mode_MACVLAN_MODE_PRIVATE: macvlan_mode = 1;
1008pub const macvlan_mode_MACVLAN_MODE_VEPA: macvlan_mode = 2;
1009pub const macvlan_mode_MACVLAN_MODE_BRIDGE: macvlan_mode = 4;
1010pub const macvlan_mode_MACVLAN_MODE_PASSTHRU: macvlan_mode = 8;
1011pub const macvlan_mode_MACVLAN_MODE_SOURCE: macvlan_mode = 16;
1012pub type macvlan_mode = u32;
1013pub const macvlan_macaddr_mode_MACVLAN_MACADDR_ADD: macvlan_macaddr_mode = 0;
1014pub const macvlan_macaddr_mode_MACVLAN_MACADDR_DEL: macvlan_macaddr_mode = 1;
1015pub const macvlan_macaddr_mode_MACVLAN_MACADDR_FLUSH: macvlan_macaddr_mode = 2;
1016pub const macvlan_macaddr_mode_MACVLAN_MACADDR_SET: macvlan_macaddr_mode = 3;
1017pub type macvlan_macaddr_mode = u32;
1018pub const IFLA_VRF_UNSPEC: _bindgen_ty_12 = 0;
1019pub const IFLA_VRF_TABLE: _bindgen_ty_12 = 1;
1020pub const __IFLA_VRF_MAX: _bindgen_ty_12 = 2;
1021pub type _bindgen_ty_12 = u32;
1022pub const IFLA_VRF_PORT_UNSPEC: _bindgen_ty_13 = 0;
1023pub const IFLA_VRF_PORT_TABLE: _bindgen_ty_13 = 1;
1024pub const __IFLA_VRF_PORT_MAX: _bindgen_ty_13 = 2;
1025pub type _bindgen_ty_13 = u32;
1026pub const IFLA_MACSEC_UNSPEC: _bindgen_ty_14 = 0;
1027pub const IFLA_MACSEC_SCI: _bindgen_ty_14 = 1;
1028pub const IFLA_MACSEC_PORT: _bindgen_ty_14 = 2;
1029pub const IFLA_MACSEC_ICV_LEN: _bindgen_ty_14 = 3;
1030pub const IFLA_MACSEC_CIPHER_SUITE: _bindgen_ty_14 = 4;
1031pub const IFLA_MACSEC_WINDOW: _bindgen_ty_14 = 5;
1032pub const IFLA_MACSEC_ENCODING_SA: _bindgen_ty_14 = 6;
1033pub const IFLA_MACSEC_ENCRYPT: _bindgen_ty_14 = 7;
1034pub const IFLA_MACSEC_PROTECT: _bindgen_ty_14 = 8;
1035pub const IFLA_MACSEC_INC_SCI: _bindgen_ty_14 = 9;
1036pub const IFLA_MACSEC_ES: _bindgen_ty_14 = 10;
1037pub const IFLA_MACSEC_SCB: _bindgen_ty_14 = 11;
1038pub const IFLA_MACSEC_REPLAY_PROTECT: _bindgen_ty_14 = 12;
1039pub const IFLA_MACSEC_VALIDATION: _bindgen_ty_14 = 13;
1040pub const IFLA_MACSEC_PAD: _bindgen_ty_14 = 14;
1041pub const __IFLA_MACSEC_MAX: _bindgen_ty_14 = 15;
1042pub type _bindgen_ty_14 = u32;
1043pub const IFLA_XFRM_UNSPEC: _bindgen_ty_15 = 0;
1044pub const IFLA_XFRM_LINK: _bindgen_ty_15 = 1;
1045pub const IFLA_XFRM_IF_ID: _bindgen_ty_15 = 2;
1046pub const __IFLA_XFRM_MAX: _bindgen_ty_15 = 3;
1047pub type _bindgen_ty_15 = u32;
1048pub const macsec_validation_type_MACSEC_VALIDATE_DISABLED: macsec_validation_type = 0;
1049pub const macsec_validation_type_MACSEC_VALIDATE_CHECK: macsec_validation_type = 1;
1050pub const macsec_validation_type_MACSEC_VALIDATE_STRICT: macsec_validation_type = 2;
1051pub const macsec_validation_type___MACSEC_VALIDATE_END: macsec_validation_type = 3;
1052pub const macsec_validation_type_MACSEC_VALIDATE_MAX: macsec_validation_type = 2;
1053pub type macsec_validation_type = u32;
1054pub const macsec_offload_MACSEC_OFFLOAD_OFF: macsec_offload = 0;
1055pub const macsec_offload_MACSEC_OFFLOAD_PHY: macsec_offload = 1;
1056pub const macsec_offload___MACSEC_OFFLOAD_END: macsec_offload = 2;
1057pub const macsec_offload_MACSEC_OFFLOAD_MAX: macsec_offload = 1;
1058pub type macsec_offload = u32;
1059pub const IFLA_IPVLAN_UNSPEC: _bindgen_ty_16 = 0;
1060pub const IFLA_IPVLAN_MODE: _bindgen_ty_16 = 1;
1061pub const IFLA_IPVLAN_FLAGS: _bindgen_ty_16 = 2;
1062pub const __IFLA_IPVLAN_MAX: _bindgen_ty_16 = 3;
1063pub type _bindgen_ty_16 = u32;
1064pub const ipvlan_mode_IPVLAN_MODE_L2: ipvlan_mode = 0;
1065pub const ipvlan_mode_IPVLAN_MODE_L3: ipvlan_mode = 1;
1066pub const ipvlan_mode_IPVLAN_MODE_L3S: ipvlan_mode = 2;
1067pub const ipvlan_mode_IPVLAN_MODE_MAX: ipvlan_mode = 3;
1068pub type ipvlan_mode = u32;
1069pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_17 = 0;
1070pub const IFLA_VXLAN_ID: _bindgen_ty_17 = 1;
1071pub const IFLA_VXLAN_GROUP: _bindgen_ty_17 = 2;
1072pub const IFLA_VXLAN_LINK: _bindgen_ty_17 = 3;
1073pub const IFLA_VXLAN_LOCAL: _bindgen_ty_17 = 4;
1074pub const IFLA_VXLAN_TTL: _bindgen_ty_17 = 5;
1075pub const IFLA_VXLAN_TOS: _bindgen_ty_17 = 6;
1076pub const IFLA_VXLAN_LEARNING: _bindgen_ty_17 = 7;
1077pub const IFLA_VXLAN_AGEING: _bindgen_ty_17 = 8;
1078pub const IFLA_VXLAN_LIMIT: _bindgen_ty_17 = 9;
1079pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_17 = 10;
1080pub const IFLA_VXLAN_PROXY: _bindgen_ty_17 = 11;
1081pub const IFLA_VXLAN_RSC: _bindgen_ty_17 = 12;
1082pub const IFLA_VXLAN_L2MISS: _bindgen_ty_17 = 13;
1083pub const IFLA_VXLAN_L3MISS: _bindgen_ty_17 = 14;
1084pub const IFLA_VXLAN_PORT: _bindgen_ty_17 = 15;
1085pub const IFLA_VXLAN_GROUP6: _bindgen_ty_17 = 16;
1086pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_17 = 17;
1087pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_17 = 18;
1088pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_17 = 19;
1089pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_17 = 20;
1090pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_17 = 21;
1091pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_17 = 22;
1092pub const IFLA_VXLAN_GBP: _bindgen_ty_17 = 23;
1093pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_17 = 24;
1094pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_17 = 25;
1095pub const IFLA_VXLAN_LABEL: _bindgen_ty_17 = 26;
1096pub const IFLA_VXLAN_GPE: _bindgen_ty_17 = 27;
1097pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_17 = 28;
1098pub const IFLA_VXLAN_DF: _bindgen_ty_17 = 29;
1099pub const __IFLA_VXLAN_MAX: _bindgen_ty_17 = 30;
1100pub type _bindgen_ty_17 = u32;
1101#[repr(C)]
1102#[derive(Debug, Copy, Clone)]
1103pub struct ifla_vxlan_port_range {
1104    pub low: __be16,
1105    pub high: __be16,
1106}
1107pub const ifla_vxlan_df_VXLAN_DF_UNSET: ifla_vxlan_df = 0;
1108pub const ifla_vxlan_df_VXLAN_DF_SET: ifla_vxlan_df = 1;
1109pub const ifla_vxlan_df_VXLAN_DF_INHERIT: ifla_vxlan_df = 2;
1110pub const ifla_vxlan_df___VXLAN_DF_END: ifla_vxlan_df = 3;
1111pub const ifla_vxlan_df_VXLAN_DF_MAX: ifla_vxlan_df = 2;
1112pub type ifla_vxlan_df = u32;
1113pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_18 = 0;
1114pub const IFLA_GENEVE_ID: _bindgen_ty_18 = 1;
1115pub const IFLA_GENEVE_REMOTE: _bindgen_ty_18 = 2;
1116pub const IFLA_GENEVE_TTL: _bindgen_ty_18 = 3;
1117pub const IFLA_GENEVE_TOS: _bindgen_ty_18 = 4;
1118pub const IFLA_GENEVE_PORT: _bindgen_ty_18 = 5;
1119pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_18 = 6;
1120pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_18 = 7;
1121pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_18 = 8;
1122pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_18 = 9;
1123pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_18 = 10;
1124pub const IFLA_GENEVE_LABEL: _bindgen_ty_18 = 11;
1125pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_18 = 12;
1126pub const IFLA_GENEVE_DF: _bindgen_ty_18 = 13;
1127pub const __IFLA_GENEVE_MAX: _bindgen_ty_18 = 14;
1128pub type _bindgen_ty_18 = u32;
1129pub const ifla_geneve_df_GENEVE_DF_UNSET: ifla_geneve_df = 0;
1130pub const ifla_geneve_df_GENEVE_DF_SET: ifla_geneve_df = 1;
1131pub const ifla_geneve_df_GENEVE_DF_INHERIT: ifla_geneve_df = 2;
1132pub const ifla_geneve_df___GENEVE_DF_END: ifla_geneve_df = 3;
1133pub const ifla_geneve_df_GENEVE_DF_MAX: ifla_geneve_df = 2;
1134pub type ifla_geneve_df = u32;
1135pub const IFLA_PPP_UNSPEC: _bindgen_ty_19 = 0;
1136pub const IFLA_PPP_DEV_FD: _bindgen_ty_19 = 1;
1137pub const __IFLA_PPP_MAX: _bindgen_ty_19 = 2;
1138pub type _bindgen_ty_19 = u32;
1139pub const ifla_gtp_role_GTP_ROLE_GGSN: ifla_gtp_role = 0;
1140pub const ifla_gtp_role_GTP_ROLE_SGSN: ifla_gtp_role = 1;
1141pub type ifla_gtp_role = u32;
1142pub const IFLA_GTP_UNSPEC: _bindgen_ty_20 = 0;
1143pub const IFLA_GTP_FD0: _bindgen_ty_20 = 1;
1144pub const IFLA_GTP_FD1: _bindgen_ty_20 = 2;
1145pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_20 = 3;
1146pub const IFLA_GTP_ROLE: _bindgen_ty_20 = 4;
1147pub const __IFLA_GTP_MAX: _bindgen_ty_20 = 5;
1148pub type _bindgen_ty_20 = u32;
1149pub const IFLA_BOND_UNSPEC: _bindgen_ty_21 = 0;
1150pub const IFLA_BOND_MODE: _bindgen_ty_21 = 1;
1151pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_21 = 2;
1152pub const IFLA_BOND_MIIMON: _bindgen_ty_21 = 3;
1153pub const IFLA_BOND_UPDELAY: _bindgen_ty_21 = 4;
1154pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_21 = 5;
1155pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_21 = 6;
1156pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_21 = 7;
1157pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_21 = 8;
1158pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_21 = 9;
1159pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_21 = 10;
1160pub const IFLA_BOND_PRIMARY: _bindgen_ty_21 = 11;
1161pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_21 = 12;
1162pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_21 = 13;
1163pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_21 = 14;
1164pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_21 = 15;
1165pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_21 = 16;
1166pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_21 = 17;
1167pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_21 = 18;
1168pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_21 = 19;
1169pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_21 = 20;
1170pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_21 = 21;
1171pub const IFLA_BOND_AD_SELECT: _bindgen_ty_21 = 22;
1172pub const IFLA_BOND_AD_INFO: _bindgen_ty_21 = 23;
1173pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_21 = 24;
1174pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_21 = 25;
1175pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_21 = 26;
1176pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_21 = 27;
1177pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_21 = 28;
1178pub const __IFLA_BOND_MAX: _bindgen_ty_21 = 29;
1179pub type _bindgen_ty_21 = u32;
1180pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_22 = 0;
1181pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_22 = 1;
1182pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_22 = 2;
1183pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_22 = 3;
1184pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_22 = 4;
1185pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_22 = 5;
1186pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_22 = 6;
1187pub type _bindgen_ty_22 = u32;
1188pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_23 = 0;
1189pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_23 = 1;
1190pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_23 = 2;
1191pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_23 = 3;
1192pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_23 = 4;
1193pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_23 = 5;
1194pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_23 = 6;
1195pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_23 = 7;
1196pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_23 = 8;
1197pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_23 = 9;
1198pub type _bindgen_ty_23 = u32;
1199pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_24 = 0;
1200pub const IFLA_VF_INFO: _bindgen_ty_24 = 1;
1201pub const __IFLA_VF_INFO_MAX: _bindgen_ty_24 = 2;
1202pub type _bindgen_ty_24 = u32;
1203pub const IFLA_VF_UNSPEC: _bindgen_ty_25 = 0;
1204pub const IFLA_VF_MAC: _bindgen_ty_25 = 1;
1205pub const IFLA_VF_VLAN: _bindgen_ty_25 = 2;
1206pub const IFLA_VF_TX_RATE: _bindgen_ty_25 = 3;
1207pub const IFLA_VF_SPOOFCHK: _bindgen_ty_25 = 4;
1208pub const IFLA_VF_LINK_STATE: _bindgen_ty_25 = 5;
1209pub const IFLA_VF_RATE: _bindgen_ty_25 = 6;
1210pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_25 = 7;
1211pub const IFLA_VF_STATS: _bindgen_ty_25 = 8;
1212pub const IFLA_VF_TRUST: _bindgen_ty_25 = 9;
1213pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_25 = 10;
1214pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_25 = 11;
1215pub const IFLA_VF_VLAN_LIST: _bindgen_ty_25 = 12;
1216pub const IFLA_VF_BROADCAST: _bindgen_ty_25 = 13;
1217pub const __IFLA_VF_MAX: _bindgen_ty_25 = 14;
1218pub type _bindgen_ty_25 = u32;
1219#[repr(C)]
1220#[derive(Debug, Copy, Clone)]
1221pub struct ifla_vf_mac {
1222    pub vf: __u32,
1223    pub mac: [__u8; 32usize],
1224}
1225#[repr(C)]
1226#[derive(Debug, Copy, Clone)]
1227pub struct ifla_vf_broadcast {
1228    pub broadcast: [__u8; 32usize],
1229}
1230#[repr(C)]
1231#[derive(Debug, Copy, Clone)]
1232pub struct ifla_vf_vlan {
1233    pub vf: __u32,
1234    pub vlan: __u32,
1235    pub qos: __u32,
1236}
1237pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_26 = 0;
1238pub const IFLA_VF_VLAN_INFO: _bindgen_ty_26 = 1;
1239pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_26 = 2;
1240pub type _bindgen_ty_26 = u32;
1241#[repr(C)]
1242#[derive(Debug, Copy, Clone)]
1243pub struct ifla_vf_vlan_info {
1244    pub vf: __u32,
1245    pub vlan: __u32,
1246    pub qos: __u32,
1247    pub vlan_proto: __be16,
1248}
1249#[repr(C)]
1250#[derive(Debug, Copy, Clone)]
1251pub struct ifla_vf_tx_rate {
1252    pub vf: __u32,
1253    pub rate: __u32,
1254}
1255#[repr(C)]
1256#[derive(Debug, Copy, Clone)]
1257pub struct ifla_vf_rate {
1258    pub vf: __u32,
1259    pub min_tx_rate: __u32,
1260    pub max_tx_rate: __u32,
1261}
1262#[repr(C)]
1263#[derive(Debug, Copy, Clone)]
1264pub struct ifla_vf_spoofchk {
1265    pub vf: __u32,
1266    pub setting: __u32,
1267}
1268#[repr(C)]
1269#[derive(Debug, Copy, Clone)]
1270pub struct ifla_vf_guid {
1271    pub vf: __u32,
1272    pub guid: __u64,
1273}
1274pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_27 = 0;
1275pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_27 = 1;
1276pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_27 = 2;
1277pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_27 = 3;
1278pub type _bindgen_ty_27 = u32;
1279#[repr(C)]
1280#[derive(Debug, Copy, Clone)]
1281pub struct ifla_vf_link_state {
1282    pub vf: __u32,
1283    pub link_state: __u32,
1284}
1285#[repr(C)]
1286#[derive(Debug, Copy, Clone)]
1287pub struct ifla_vf_rss_query_en {
1288    pub vf: __u32,
1289    pub setting: __u32,
1290}
1291pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_28 = 0;
1292pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_28 = 1;
1293pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_28 = 2;
1294pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_28 = 3;
1295pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_28 = 4;
1296pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_28 = 5;
1297pub const IFLA_VF_STATS_PAD: _bindgen_ty_28 = 6;
1298pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_28 = 7;
1299pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_28 = 8;
1300pub const __IFLA_VF_STATS_MAX: _bindgen_ty_28 = 9;
1301pub type _bindgen_ty_28 = u32;
1302#[repr(C)]
1303#[derive(Debug, Copy, Clone)]
1304pub struct ifla_vf_trust {
1305    pub vf: __u32,
1306    pub setting: __u32,
1307}
1308pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_29 = 0;
1309pub const IFLA_VF_PORT: _bindgen_ty_29 = 1;
1310pub const __IFLA_VF_PORT_MAX: _bindgen_ty_29 = 2;
1311pub type _bindgen_ty_29 = u32;
1312pub const IFLA_PORT_UNSPEC: _bindgen_ty_30 = 0;
1313pub const IFLA_PORT_VF: _bindgen_ty_30 = 1;
1314pub const IFLA_PORT_PROFILE: _bindgen_ty_30 = 2;
1315pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_30 = 3;
1316pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_30 = 4;
1317pub const IFLA_PORT_HOST_UUID: _bindgen_ty_30 = 5;
1318pub const IFLA_PORT_REQUEST: _bindgen_ty_30 = 6;
1319pub const IFLA_PORT_RESPONSE: _bindgen_ty_30 = 7;
1320pub const __IFLA_PORT_MAX: _bindgen_ty_30 = 8;
1321pub type _bindgen_ty_30 = u32;
1322pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_31 = 0;
1323pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_31 = 1;
1324pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_31 = 2;
1325pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_31 = 3;
1326pub type _bindgen_ty_31 = u32;
1327pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_32 = 0;
1328pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_32 = 1;
1329pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_32 = 2;
1330pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_32 = 3;
1331pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_32 = 4;
1332pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_32 = 5;
1333pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_32 = 6;
1334pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_32 = 256;
1335pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_32 = 257;
1336pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_32 = 258;
1337pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_32 = 259;
1338pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_32 = 260;
1339pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_32 = 261;
1340pub type _bindgen_ty_32 = u32;
1341#[repr(C)]
1342#[derive(Debug, Copy, Clone)]
1343pub struct ifla_port_vsi {
1344    pub vsi_mgr_id: __u8,
1345    pub vsi_type_id: [__u8; 3usize],
1346    pub vsi_type_version: __u8,
1347    pub pad: [__u8; 3usize],
1348}
1349pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_33 = 0;
1350pub const IFLA_IPOIB_PKEY: _bindgen_ty_33 = 1;
1351pub const IFLA_IPOIB_MODE: _bindgen_ty_33 = 2;
1352pub const IFLA_IPOIB_UMCAST: _bindgen_ty_33 = 3;
1353pub const __IFLA_IPOIB_MAX: _bindgen_ty_33 = 4;
1354pub type _bindgen_ty_33 = u32;
1355pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_34 = 0;
1356pub const IPOIB_MODE_CONNECTED: _bindgen_ty_34 = 1;
1357pub type _bindgen_ty_34 = u32;
1358pub const IFLA_HSR_UNSPEC: _bindgen_ty_35 = 0;
1359pub const IFLA_HSR_SLAVE1: _bindgen_ty_35 = 1;
1360pub const IFLA_HSR_SLAVE2: _bindgen_ty_35 = 2;
1361pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_35 = 3;
1362pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_35 = 4;
1363pub const IFLA_HSR_SEQ_NR: _bindgen_ty_35 = 5;
1364pub const IFLA_HSR_VERSION: _bindgen_ty_35 = 6;
1365pub const __IFLA_HSR_MAX: _bindgen_ty_35 = 7;
1366pub type _bindgen_ty_35 = u32;
1367#[repr(C)]
1368#[derive(Debug, Copy, Clone)]
1369pub struct if_stats_msg {
1370    pub family: __u8,
1371    pub pad1: __u8,
1372    pub pad2: __u16,
1373    pub ifindex: __u32,
1374    pub filter_mask: __u32,
1375}
1376pub const IFLA_STATS_UNSPEC: _bindgen_ty_36 = 0;
1377pub const IFLA_STATS_LINK_64: _bindgen_ty_36 = 1;
1378pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_36 = 2;
1379pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_36 = 3;
1380pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_36 = 4;
1381pub const IFLA_STATS_AF_SPEC: _bindgen_ty_36 = 5;
1382pub const __IFLA_STATS_MAX: _bindgen_ty_36 = 6;
1383pub type _bindgen_ty_36 = u32;
1384pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_37 = 0;
1385pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_37 = 1;
1386pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_37 = 2;
1387pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_37 = 3;
1388pub type _bindgen_ty_37 = u32;
1389pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_38 = 0;
1390pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_38 = 1;
1391pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_38 = 2;
1392pub type _bindgen_ty_38 = u32;
1393pub const XDP_ATTACHED_NONE: _bindgen_ty_39 = 0;
1394pub const XDP_ATTACHED_DRV: _bindgen_ty_39 = 1;
1395pub const XDP_ATTACHED_SKB: _bindgen_ty_39 = 2;
1396pub const XDP_ATTACHED_HW: _bindgen_ty_39 = 3;
1397pub const XDP_ATTACHED_MULTI: _bindgen_ty_39 = 4;
1398pub type _bindgen_ty_39 = u32;
1399pub const IFLA_XDP_UNSPEC: _bindgen_ty_40 = 0;
1400pub const IFLA_XDP_FD: _bindgen_ty_40 = 1;
1401pub const IFLA_XDP_ATTACHED: _bindgen_ty_40 = 2;
1402pub const IFLA_XDP_FLAGS: _bindgen_ty_40 = 3;
1403pub const IFLA_XDP_PROG_ID: _bindgen_ty_40 = 4;
1404pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_40 = 5;
1405pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_40 = 6;
1406pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_40 = 7;
1407pub const __IFLA_XDP_MAX: _bindgen_ty_40 = 8;
1408pub type _bindgen_ty_40 = u32;
1409pub const IFLA_EVENT_NONE: _bindgen_ty_41 = 0;
1410pub const IFLA_EVENT_REBOOT: _bindgen_ty_41 = 1;
1411pub const IFLA_EVENT_FEATURES: _bindgen_ty_41 = 2;
1412pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_41 = 3;
1413pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_41 = 4;
1414pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_41 = 5;
1415pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_41 = 6;
1416pub type _bindgen_ty_41 = u32;
1417pub const IFLA_TUN_UNSPEC: _bindgen_ty_42 = 0;
1418pub const IFLA_TUN_OWNER: _bindgen_ty_42 = 1;
1419pub const IFLA_TUN_GROUP: _bindgen_ty_42 = 2;
1420pub const IFLA_TUN_TYPE: _bindgen_ty_42 = 3;
1421pub const IFLA_TUN_PI: _bindgen_ty_42 = 4;
1422pub const IFLA_TUN_VNET_HDR: _bindgen_ty_42 = 5;
1423pub const IFLA_TUN_PERSIST: _bindgen_ty_42 = 6;
1424pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_42 = 7;
1425pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_42 = 8;
1426pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_42 = 9;
1427pub const __IFLA_TUN_MAX: _bindgen_ty_42 = 10;
1428pub type _bindgen_ty_42 = u32;
1429pub const IFLA_RMNET_UNSPEC: _bindgen_ty_43 = 0;
1430pub const IFLA_RMNET_MUX_ID: _bindgen_ty_43 = 1;
1431pub const IFLA_RMNET_FLAGS: _bindgen_ty_43 = 2;
1432pub const __IFLA_RMNET_MAX: _bindgen_ty_43 = 3;
1433pub type _bindgen_ty_43 = u32;
1434#[repr(C)]
1435#[derive(Debug, Copy, Clone)]
1436pub struct ifla_rmnet_flags {
1437    pub flags: __u32,
1438    pub mask: __u32,
1439}
1440pub const BPF_REG_0: _bindgen_ty_44 = 0;
1441pub const BPF_REG_1: _bindgen_ty_44 = 1;
1442pub const BPF_REG_2: _bindgen_ty_44 = 2;
1443pub const BPF_REG_3: _bindgen_ty_44 = 3;
1444pub const BPF_REG_4: _bindgen_ty_44 = 4;
1445pub const BPF_REG_5: _bindgen_ty_44 = 5;
1446pub const BPF_REG_6: _bindgen_ty_44 = 6;
1447pub const BPF_REG_7: _bindgen_ty_44 = 7;
1448pub const BPF_REG_8: _bindgen_ty_44 = 8;
1449pub const BPF_REG_9: _bindgen_ty_44 = 9;
1450pub const BPF_REG_10: _bindgen_ty_44 = 10;
1451pub const __MAX_BPF_REG: _bindgen_ty_44 = 11;
1452pub type _bindgen_ty_44 = u32;
1453#[repr(C)]
1454#[derive(Debug, Copy, Clone)]
1455pub struct bpf_insn {
1456    pub code: __u8,
1457    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
1458    pub off: __s16,
1459    pub imm: __s32,
1460}
1461impl bpf_insn {
1462    #[inline]
1463    pub fn dst_reg(&self) -> __u8 {
1464        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
1465    }
1466    #[inline]
1467    pub fn set_dst_reg(&mut self, val: __u8) {
1468        unsafe {
1469            let val: u8 = ::std::mem::transmute(val);
1470            self._bitfield_1.set(0usize, 4u8, val as u64)
1471        }
1472    }
1473    #[inline]
1474    pub fn src_reg(&self) -> __u8 {
1475        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
1476    }
1477    #[inline]
1478    pub fn set_src_reg(&mut self, val: __u8) {
1479        unsafe {
1480            let val: u8 = ::std::mem::transmute(val);
1481            self._bitfield_1.set(4usize, 4u8, val as u64)
1482        }
1483    }
1484    #[inline]
1485    pub fn new_bitfield_1(dst_reg: __u8, src_reg: __u8) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
1486        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
1487            Default::default();
1488        __bindgen_bitfield_unit.set(0usize, 4u8, {
1489            let dst_reg: u8 = unsafe { ::std::mem::transmute(dst_reg) };
1490            dst_reg as u64
1491        });
1492        __bindgen_bitfield_unit.set(4usize, 4u8, {
1493            let src_reg: u8 = unsafe { ::std::mem::transmute(src_reg) };
1494            src_reg as u64
1495        });
1496        __bindgen_bitfield_unit
1497    }
1498}
1499#[repr(C)]
1500#[derive(Debug)]
1501pub struct bpf_lpm_trie_key {
1502    pub prefixlen: __u32,
1503    pub data: __IncompleteArrayField<__u8>,
1504}
1505#[repr(C)]
1506#[derive(Debug, Copy, Clone)]
1507pub struct bpf_cgroup_storage_key {
1508    pub cgroup_inode_id: __u64,
1509    pub attach_type: __u32,
1510}
1511pub const bpf_cmd_BPF_MAP_CREATE: bpf_cmd = 0;
1512pub const bpf_cmd_BPF_MAP_LOOKUP_ELEM: bpf_cmd = 1;
1513pub const bpf_cmd_BPF_MAP_UPDATE_ELEM: bpf_cmd = 2;
1514pub const bpf_cmd_BPF_MAP_DELETE_ELEM: bpf_cmd = 3;
1515pub const bpf_cmd_BPF_MAP_GET_NEXT_KEY: bpf_cmd = 4;
1516pub const bpf_cmd_BPF_PROG_LOAD: bpf_cmd = 5;
1517pub const bpf_cmd_BPF_OBJ_PIN: bpf_cmd = 6;
1518pub const bpf_cmd_BPF_OBJ_GET: bpf_cmd = 7;
1519pub const bpf_cmd_BPF_PROG_ATTACH: bpf_cmd = 8;
1520pub const bpf_cmd_BPF_PROG_DETACH: bpf_cmd = 9;
1521pub const bpf_cmd_BPF_PROG_TEST_RUN: bpf_cmd = 10;
1522pub const bpf_cmd_BPF_PROG_GET_NEXT_ID: bpf_cmd = 11;
1523pub const bpf_cmd_BPF_MAP_GET_NEXT_ID: bpf_cmd = 12;
1524pub const bpf_cmd_BPF_PROG_GET_FD_BY_ID: bpf_cmd = 13;
1525pub const bpf_cmd_BPF_MAP_GET_FD_BY_ID: bpf_cmd = 14;
1526pub const bpf_cmd_BPF_OBJ_GET_INFO_BY_FD: bpf_cmd = 15;
1527pub const bpf_cmd_BPF_PROG_QUERY: bpf_cmd = 16;
1528pub const bpf_cmd_BPF_RAW_TRACEPOINT_OPEN: bpf_cmd = 17;
1529pub const bpf_cmd_BPF_BTF_LOAD: bpf_cmd = 18;
1530pub const bpf_cmd_BPF_BTF_GET_FD_BY_ID: bpf_cmd = 19;
1531pub const bpf_cmd_BPF_TASK_FD_QUERY: bpf_cmd = 20;
1532pub const bpf_cmd_BPF_MAP_LOOKUP_AND_DELETE_ELEM: bpf_cmd = 21;
1533pub const bpf_cmd_BPF_MAP_FREEZE: bpf_cmd = 22;
1534pub const bpf_cmd_BPF_BTF_GET_NEXT_ID: bpf_cmd = 23;
1535pub type bpf_cmd = u32;
1536pub const bpf_map_type_BPF_MAP_TYPE_UNSPEC: bpf_map_type = 0;
1537pub const bpf_map_type_BPF_MAP_TYPE_HASH: bpf_map_type = 1;
1538pub const bpf_map_type_BPF_MAP_TYPE_ARRAY: bpf_map_type = 2;
1539pub const bpf_map_type_BPF_MAP_TYPE_PROG_ARRAY: bpf_map_type = 3;
1540pub const bpf_map_type_BPF_MAP_TYPE_PERF_EVENT_ARRAY: bpf_map_type = 4;
1541pub const bpf_map_type_BPF_MAP_TYPE_PERCPU_HASH: bpf_map_type = 5;
1542pub const bpf_map_type_BPF_MAP_TYPE_PERCPU_ARRAY: bpf_map_type = 6;
1543pub const bpf_map_type_BPF_MAP_TYPE_STACK_TRACE: bpf_map_type = 7;
1544pub const bpf_map_type_BPF_MAP_TYPE_CGROUP_ARRAY: bpf_map_type = 8;
1545pub const bpf_map_type_BPF_MAP_TYPE_LRU_HASH: bpf_map_type = 9;
1546pub const bpf_map_type_BPF_MAP_TYPE_LRU_PERCPU_HASH: bpf_map_type = 10;
1547pub const bpf_map_type_BPF_MAP_TYPE_LPM_TRIE: bpf_map_type = 11;
1548pub const bpf_map_type_BPF_MAP_TYPE_ARRAY_OF_MAPS: bpf_map_type = 12;
1549pub const bpf_map_type_BPF_MAP_TYPE_HASH_OF_MAPS: bpf_map_type = 13;
1550pub const bpf_map_type_BPF_MAP_TYPE_DEVMAP: bpf_map_type = 14;
1551pub const bpf_map_type_BPF_MAP_TYPE_SOCKMAP: bpf_map_type = 15;
1552pub const bpf_map_type_BPF_MAP_TYPE_CPUMAP: bpf_map_type = 16;
1553pub const bpf_map_type_BPF_MAP_TYPE_XSKMAP: bpf_map_type = 17;
1554pub const bpf_map_type_BPF_MAP_TYPE_SOCKHASH: bpf_map_type = 18;
1555pub const bpf_map_type_BPF_MAP_TYPE_CGROUP_STORAGE: bpf_map_type = 19;
1556pub const bpf_map_type_BPF_MAP_TYPE_REUSEPORT_SOCKARRAY: bpf_map_type = 20;
1557pub const bpf_map_type_BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE: bpf_map_type = 21;
1558pub const bpf_map_type_BPF_MAP_TYPE_QUEUE: bpf_map_type = 22;
1559pub const bpf_map_type_BPF_MAP_TYPE_STACK: bpf_map_type = 23;
1560pub const bpf_map_type_BPF_MAP_TYPE_SK_STORAGE: bpf_map_type = 24;
1561pub const bpf_map_type_BPF_MAP_TYPE_DEVMAP_HASH: bpf_map_type = 25;
1562pub type bpf_map_type = u32;
1563pub const bpf_prog_type_BPF_PROG_TYPE_UNSPEC: bpf_prog_type = 0;
1564pub const bpf_prog_type_BPF_PROG_TYPE_SOCKET_FILTER: bpf_prog_type = 1;
1565pub const bpf_prog_type_BPF_PROG_TYPE_KPROBE: bpf_prog_type = 2;
1566pub const bpf_prog_type_BPF_PROG_TYPE_SCHED_CLS: bpf_prog_type = 3;
1567pub const bpf_prog_type_BPF_PROG_TYPE_SCHED_ACT: bpf_prog_type = 4;
1568pub const bpf_prog_type_BPF_PROG_TYPE_TRACEPOINT: bpf_prog_type = 5;
1569pub const bpf_prog_type_BPF_PROG_TYPE_XDP: bpf_prog_type = 6;
1570pub const bpf_prog_type_BPF_PROG_TYPE_PERF_EVENT: bpf_prog_type = 7;
1571pub const bpf_prog_type_BPF_PROG_TYPE_CGROUP_SKB: bpf_prog_type = 8;
1572pub const bpf_prog_type_BPF_PROG_TYPE_CGROUP_SOCK: bpf_prog_type = 9;
1573pub const bpf_prog_type_BPF_PROG_TYPE_LWT_IN: bpf_prog_type = 10;
1574pub const bpf_prog_type_BPF_PROG_TYPE_LWT_OUT: bpf_prog_type = 11;
1575pub const bpf_prog_type_BPF_PROG_TYPE_LWT_XMIT: bpf_prog_type = 12;
1576pub const bpf_prog_type_BPF_PROG_TYPE_SOCK_OPS: bpf_prog_type = 13;
1577pub const bpf_prog_type_BPF_PROG_TYPE_SK_SKB: bpf_prog_type = 14;
1578pub const bpf_prog_type_BPF_PROG_TYPE_CGROUP_DEVICE: bpf_prog_type = 15;
1579pub const bpf_prog_type_BPF_PROG_TYPE_SK_MSG: bpf_prog_type = 16;
1580pub const bpf_prog_type_BPF_PROG_TYPE_RAW_TRACEPOINT: bpf_prog_type = 17;
1581pub const bpf_prog_type_BPF_PROG_TYPE_CGROUP_SOCK_ADDR: bpf_prog_type = 18;
1582pub const bpf_prog_type_BPF_PROG_TYPE_LWT_SEG6LOCAL: bpf_prog_type = 19;
1583pub const bpf_prog_type_BPF_PROG_TYPE_LIRC_MODE2: bpf_prog_type = 20;
1584pub const bpf_prog_type_BPF_PROG_TYPE_SK_REUSEPORT: bpf_prog_type = 21;
1585pub const bpf_prog_type_BPF_PROG_TYPE_FLOW_DISSECTOR: bpf_prog_type = 22;
1586pub const bpf_prog_type_BPF_PROG_TYPE_CGROUP_SYSCTL: bpf_prog_type = 23;
1587pub const bpf_prog_type_BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE: bpf_prog_type = 24;
1588pub const bpf_prog_type_BPF_PROG_TYPE_CGROUP_SOCKOPT: bpf_prog_type = 25;
1589pub type bpf_prog_type = u32;
1590pub const bpf_attach_type_BPF_CGROUP_INET_INGRESS: bpf_attach_type = 0;
1591pub const bpf_attach_type_BPF_CGROUP_INET_EGRESS: bpf_attach_type = 1;
1592pub const bpf_attach_type_BPF_CGROUP_INET_SOCK_CREATE: bpf_attach_type = 2;
1593pub const bpf_attach_type_BPF_CGROUP_SOCK_OPS: bpf_attach_type = 3;
1594pub const bpf_attach_type_BPF_SK_SKB_STREAM_PARSER: bpf_attach_type = 4;
1595pub const bpf_attach_type_BPF_SK_SKB_STREAM_VERDICT: bpf_attach_type = 5;
1596pub const bpf_attach_type_BPF_CGROUP_DEVICE: bpf_attach_type = 6;
1597pub const bpf_attach_type_BPF_SK_MSG_VERDICT: bpf_attach_type = 7;
1598pub const bpf_attach_type_BPF_CGROUP_INET4_BIND: bpf_attach_type = 8;
1599pub const bpf_attach_type_BPF_CGROUP_INET6_BIND: bpf_attach_type = 9;
1600pub const bpf_attach_type_BPF_CGROUP_INET4_CONNECT: bpf_attach_type = 10;
1601pub const bpf_attach_type_BPF_CGROUP_INET6_CONNECT: bpf_attach_type = 11;
1602pub const bpf_attach_type_BPF_CGROUP_INET4_POST_BIND: bpf_attach_type = 12;
1603pub const bpf_attach_type_BPF_CGROUP_INET6_POST_BIND: bpf_attach_type = 13;
1604pub const bpf_attach_type_BPF_CGROUP_UDP4_SENDMSG: bpf_attach_type = 14;
1605pub const bpf_attach_type_BPF_CGROUP_UDP6_SENDMSG: bpf_attach_type = 15;
1606pub const bpf_attach_type_BPF_LIRC_MODE2: bpf_attach_type = 16;
1607pub const bpf_attach_type_BPF_FLOW_DISSECTOR: bpf_attach_type = 17;
1608pub const bpf_attach_type_BPF_CGROUP_SYSCTL: bpf_attach_type = 18;
1609pub const bpf_attach_type_BPF_CGROUP_UDP4_RECVMSG: bpf_attach_type = 19;
1610pub const bpf_attach_type_BPF_CGROUP_UDP6_RECVMSG: bpf_attach_type = 20;
1611pub const bpf_attach_type_BPF_CGROUP_GETSOCKOPT: bpf_attach_type = 21;
1612pub const bpf_attach_type_BPF_CGROUP_SETSOCKOPT: bpf_attach_type = 22;
1613pub const bpf_attach_type___MAX_BPF_ATTACH_TYPE: bpf_attach_type = 23;
1614pub type bpf_attach_type = u32;
1615pub const bpf_stack_build_id_status_BPF_STACK_BUILD_ID_EMPTY: bpf_stack_build_id_status = 0;
1616pub const bpf_stack_build_id_status_BPF_STACK_BUILD_ID_VALID: bpf_stack_build_id_status = 1;
1617pub const bpf_stack_build_id_status_BPF_STACK_BUILD_ID_IP: bpf_stack_build_id_status = 2;
1618pub type bpf_stack_build_id_status = u32;
1619#[repr(C)]
1620#[derive(Copy, Clone)]
1621pub struct bpf_stack_build_id {
1622    pub status: __s32,
1623    pub build_id: [::std::os::raw::c_uchar; 20usize],
1624    pub __bindgen_anon_1: bpf_stack_build_id__bindgen_ty_1,
1625}
1626#[repr(C)]
1627#[derive(Copy, Clone)]
1628pub union bpf_stack_build_id__bindgen_ty_1 {
1629    pub offset: __u64,
1630    pub ip: __u64,
1631    _bindgen_union_align: u64,
1632}
1633#[repr(C)]
1634#[derive(Copy, Clone)]
1635pub union bpf_attr {
1636    pub __bindgen_anon_1: bpf_attr__bindgen_ty_1,
1637    pub __bindgen_anon_2: bpf_attr__bindgen_ty_2,
1638    pub __bindgen_anon_3: bpf_attr__bindgen_ty_3,
1639    pub __bindgen_anon_4: bpf_attr__bindgen_ty_4,
1640    pub __bindgen_anon_5: bpf_attr__bindgen_ty_5,
1641    pub test: bpf_attr__bindgen_ty_6,
1642    pub __bindgen_anon_6: bpf_attr__bindgen_ty_7,
1643    pub info: bpf_attr__bindgen_ty_8,
1644    pub query: bpf_attr__bindgen_ty_9,
1645    pub raw_tracepoint: bpf_attr__bindgen_ty_10,
1646    pub __bindgen_anon_7: bpf_attr__bindgen_ty_11,
1647    pub task_fd_query: bpf_attr__bindgen_ty_12,
1648    _bindgen_union_align: [u64; 14usize],
1649}
1650#[repr(C)]
1651#[derive(Debug, Copy, Clone)]
1652pub struct bpf_attr__bindgen_ty_1 {
1653    pub map_type: __u32,
1654    pub key_size: __u32,
1655    pub value_size: __u32,
1656    pub max_entries: __u32,
1657    pub map_flags: __u32,
1658    pub inner_map_fd: __u32,
1659    pub numa_node: __u32,
1660    pub map_name: [::std::os::raw::c_char; 16usize],
1661    pub map_ifindex: __u32,
1662    pub btf_fd: __u32,
1663    pub btf_key_type_id: __u32,
1664    pub btf_value_type_id: __u32,
1665}
1666#[repr(C)]
1667#[derive(Copy, Clone)]
1668pub struct bpf_attr__bindgen_ty_2 {
1669    pub map_fd: __u32,
1670    pub key: __u64,
1671    pub __bindgen_anon_1: bpf_attr__bindgen_ty_2__bindgen_ty_1,
1672    pub flags: __u64,
1673}
1674#[repr(C)]
1675#[derive(Copy, Clone)]
1676pub union bpf_attr__bindgen_ty_2__bindgen_ty_1 {
1677    pub value: __u64,
1678    pub next_key: __u64,
1679    _bindgen_union_align: u64,
1680}
1681#[repr(C)]
1682#[derive(Debug, Copy, Clone)]
1683pub struct bpf_attr__bindgen_ty_3 {
1684    pub prog_type: __u32,
1685    pub insn_cnt: __u32,
1686    pub insns: __u64,
1687    pub license: __u64,
1688    pub log_level: __u32,
1689    pub log_size: __u32,
1690    pub log_buf: __u64,
1691    pub kern_version: __u32,
1692    pub prog_flags: __u32,
1693    pub prog_name: [::std::os::raw::c_char; 16usize],
1694    pub prog_ifindex: __u32,
1695    pub expected_attach_type: __u32,
1696    pub prog_btf_fd: __u32,
1697    pub func_info_rec_size: __u32,
1698    pub func_info: __u64,
1699    pub func_info_cnt: __u32,
1700    pub line_info_rec_size: __u32,
1701    pub line_info: __u64,
1702    pub line_info_cnt: __u32,
1703}
1704#[repr(C)]
1705#[derive(Debug, Copy, Clone)]
1706pub struct bpf_attr__bindgen_ty_4 {
1707    pub pathname: __u64,
1708    pub bpf_fd: __u32,
1709    pub file_flags: __u32,
1710}
1711#[repr(C)]
1712#[derive(Debug, Copy, Clone)]
1713pub struct bpf_attr__bindgen_ty_5 {
1714    pub target_fd: __u32,
1715    pub attach_bpf_fd: __u32,
1716    pub attach_type: __u32,
1717    pub attach_flags: __u32,
1718}
1719#[repr(C)]
1720#[derive(Debug, Copy, Clone)]
1721pub struct bpf_attr__bindgen_ty_6 {
1722    pub prog_fd: __u32,
1723    pub retval: __u32,
1724    pub data_size_in: __u32,
1725    pub data_size_out: __u32,
1726    pub data_in: __u64,
1727    pub data_out: __u64,
1728    pub repeat: __u32,
1729    pub duration: __u32,
1730    pub ctx_size_in: __u32,
1731    pub ctx_size_out: __u32,
1732    pub ctx_in: __u64,
1733    pub ctx_out: __u64,
1734}
1735#[repr(C)]
1736#[derive(Copy, Clone)]
1737pub struct bpf_attr__bindgen_ty_7 {
1738    pub __bindgen_anon_1: bpf_attr__bindgen_ty_7__bindgen_ty_1,
1739    pub next_id: __u32,
1740    pub open_flags: __u32,
1741}
1742#[repr(C)]
1743#[derive(Copy, Clone)]
1744pub union bpf_attr__bindgen_ty_7__bindgen_ty_1 {
1745    pub start_id: __u32,
1746    pub prog_id: __u32,
1747    pub map_id: __u32,
1748    pub btf_id: __u32,
1749    _bindgen_union_align: u32,
1750}
1751#[repr(C)]
1752#[derive(Debug, Copy, Clone)]
1753pub struct bpf_attr__bindgen_ty_8 {
1754    pub bpf_fd: __u32,
1755    pub info_len: __u32,
1756    pub info: __u64,
1757}
1758#[repr(C)]
1759#[derive(Debug, Copy, Clone)]
1760pub struct bpf_attr__bindgen_ty_9 {
1761    pub target_fd: __u32,
1762    pub attach_type: __u32,
1763    pub query_flags: __u32,
1764    pub attach_flags: __u32,
1765    pub prog_ids: __u64,
1766    pub prog_cnt: __u32,
1767}
1768#[repr(C)]
1769#[derive(Debug, Copy, Clone)]
1770pub struct bpf_attr__bindgen_ty_10 {
1771    pub name: __u64,
1772    pub prog_fd: __u32,
1773}
1774#[repr(C)]
1775#[derive(Debug, Copy, Clone)]
1776pub struct bpf_attr__bindgen_ty_11 {
1777    pub btf: __u64,
1778    pub btf_log_buf: __u64,
1779    pub btf_size: __u32,
1780    pub btf_log_size: __u32,
1781    pub btf_log_level: __u32,
1782}
1783#[repr(C)]
1784#[derive(Debug, Copy, Clone)]
1785pub struct bpf_attr__bindgen_ty_12 {
1786    pub pid: __u32,
1787    pub fd: __u32,
1788    pub flags: __u32,
1789    pub buf_len: __u32,
1790    pub buf: __u64,
1791    pub prog_id: __u32,
1792    pub fd_type: __u32,
1793    pub probe_offset: __u64,
1794    pub probe_addr: __u64,
1795}
1796pub const bpf_func_id_BPF_FUNC_unspec: bpf_func_id = 0;
1797pub const bpf_func_id_BPF_FUNC_map_lookup_elem: bpf_func_id = 1;
1798pub const bpf_func_id_BPF_FUNC_map_update_elem: bpf_func_id = 2;
1799pub const bpf_func_id_BPF_FUNC_map_delete_elem: bpf_func_id = 3;
1800pub const bpf_func_id_BPF_FUNC_probe_read: bpf_func_id = 4;
1801pub const bpf_func_id_BPF_FUNC_ktime_get_ns: bpf_func_id = 5;
1802pub const bpf_func_id_BPF_FUNC_trace_printk: bpf_func_id = 6;
1803pub const bpf_func_id_BPF_FUNC_get_prandom_u32: bpf_func_id = 7;
1804pub const bpf_func_id_BPF_FUNC_get_smp_processor_id: bpf_func_id = 8;
1805pub const bpf_func_id_BPF_FUNC_skb_store_bytes: bpf_func_id = 9;
1806pub const bpf_func_id_BPF_FUNC_l3_csum_replace: bpf_func_id = 10;
1807pub const bpf_func_id_BPF_FUNC_l4_csum_replace: bpf_func_id = 11;
1808pub const bpf_func_id_BPF_FUNC_tail_call: bpf_func_id = 12;
1809pub const bpf_func_id_BPF_FUNC_clone_redirect: bpf_func_id = 13;
1810pub const bpf_func_id_BPF_FUNC_get_current_pid_tgid: bpf_func_id = 14;
1811pub const bpf_func_id_BPF_FUNC_get_current_uid_gid: bpf_func_id = 15;
1812pub const bpf_func_id_BPF_FUNC_get_current_comm: bpf_func_id = 16;
1813pub const bpf_func_id_BPF_FUNC_get_cgroup_classid: bpf_func_id = 17;
1814pub const bpf_func_id_BPF_FUNC_skb_vlan_push: bpf_func_id = 18;
1815pub const bpf_func_id_BPF_FUNC_skb_vlan_pop: bpf_func_id = 19;
1816pub const bpf_func_id_BPF_FUNC_skb_get_tunnel_key: bpf_func_id = 20;
1817pub const bpf_func_id_BPF_FUNC_skb_set_tunnel_key: bpf_func_id = 21;
1818pub const bpf_func_id_BPF_FUNC_perf_event_read: bpf_func_id = 22;
1819pub const bpf_func_id_BPF_FUNC_redirect: bpf_func_id = 23;
1820pub const bpf_func_id_BPF_FUNC_get_route_realm: bpf_func_id = 24;
1821pub const bpf_func_id_BPF_FUNC_perf_event_output: bpf_func_id = 25;
1822pub const bpf_func_id_BPF_FUNC_skb_load_bytes: bpf_func_id = 26;
1823pub const bpf_func_id_BPF_FUNC_get_stackid: bpf_func_id = 27;
1824pub const bpf_func_id_BPF_FUNC_csum_diff: bpf_func_id = 28;
1825pub const bpf_func_id_BPF_FUNC_skb_get_tunnel_opt: bpf_func_id = 29;
1826pub const bpf_func_id_BPF_FUNC_skb_set_tunnel_opt: bpf_func_id = 30;
1827pub const bpf_func_id_BPF_FUNC_skb_change_proto: bpf_func_id = 31;
1828pub const bpf_func_id_BPF_FUNC_skb_change_type: bpf_func_id = 32;
1829pub const bpf_func_id_BPF_FUNC_skb_under_cgroup: bpf_func_id = 33;
1830pub const bpf_func_id_BPF_FUNC_get_hash_recalc: bpf_func_id = 34;
1831pub const bpf_func_id_BPF_FUNC_get_current_task: bpf_func_id = 35;
1832pub const bpf_func_id_BPF_FUNC_probe_write_user: bpf_func_id = 36;
1833pub const bpf_func_id_BPF_FUNC_current_task_under_cgroup: bpf_func_id = 37;
1834pub const bpf_func_id_BPF_FUNC_skb_change_tail: bpf_func_id = 38;
1835pub const bpf_func_id_BPF_FUNC_skb_pull_data: bpf_func_id = 39;
1836pub const bpf_func_id_BPF_FUNC_csum_update: bpf_func_id = 40;
1837pub const bpf_func_id_BPF_FUNC_set_hash_invalid: bpf_func_id = 41;
1838pub const bpf_func_id_BPF_FUNC_get_numa_node_id: bpf_func_id = 42;
1839pub const bpf_func_id_BPF_FUNC_skb_change_head: bpf_func_id = 43;
1840pub const bpf_func_id_BPF_FUNC_xdp_adjust_head: bpf_func_id = 44;
1841pub const bpf_func_id_BPF_FUNC_probe_read_str: bpf_func_id = 45;
1842pub const bpf_func_id_BPF_FUNC_get_socket_cookie: bpf_func_id = 46;
1843pub const bpf_func_id_BPF_FUNC_get_socket_uid: bpf_func_id = 47;
1844pub const bpf_func_id_BPF_FUNC_set_hash: bpf_func_id = 48;
1845pub const bpf_func_id_BPF_FUNC_setsockopt: bpf_func_id = 49;
1846pub const bpf_func_id_BPF_FUNC_skb_adjust_room: bpf_func_id = 50;
1847pub const bpf_func_id_BPF_FUNC_redirect_map: bpf_func_id = 51;
1848pub const bpf_func_id_BPF_FUNC_sk_redirect_map: bpf_func_id = 52;
1849pub const bpf_func_id_BPF_FUNC_sock_map_update: bpf_func_id = 53;
1850pub const bpf_func_id_BPF_FUNC_xdp_adjust_meta: bpf_func_id = 54;
1851pub const bpf_func_id_BPF_FUNC_perf_event_read_value: bpf_func_id = 55;
1852pub const bpf_func_id_BPF_FUNC_perf_prog_read_value: bpf_func_id = 56;
1853pub const bpf_func_id_BPF_FUNC_getsockopt: bpf_func_id = 57;
1854pub const bpf_func_id_BPF_FUNC_override_return: bpf_func_id = 58;
1855pub const bpf_func_id_BPF_FUNC_sock_ops_cb_flags_set: bpf_func_id = 59;
1856pub const bpf_func_id_BPF_FUNC_msg_redirect_map: bpf_func_id = 60;
1857pub const bpf_func_id_BPF_FUNC_msg_apply_bytes: bpf_func_id = 61;
1858pub const bpf_func_id_BPF_FUNC_msg_cork_bytes: bpf_func_id = 62;
1859pub const bpf_func_id_BPF_FUNC_msg_pull_data: bpf_func_id = 63;
1860pub const bpf_func_id_BPF_FUNC_bind: bpf_func_id = 64;
1861pub const bpf_func_id_BPF_FUNC_xdp_adjust_tail: bpf_func_id = 65;
1862pub const bpf_func_id_BPF_FUNC_skb_get_xfrm_state: bpf_func_id = 66;
1863pub const bpf_func_id_BPF_FUNC_get_stack: bpf_func_id = 67;
1864pub const bpf_func_id_BPF_FUNC_skb_load_bytes_relative: bpf_func_id = 68;
1865pub const bpf_func_id_BPF_FUNC_fib_lookup: bpf_func_id = 69;
1866pub const bpf_func_id_BPF_FUNC_sock_hash_update: bpf_func_id = 70;
1867pub const bpf_func_id_BPF_FUNC_msg_redirect_hash: bpf_func_id = 71;
1868pub const bpf_func_id_BPF_FUNC_sk_redirect_hash: bpf_func_id = 72;
1869pub const bpf_func_id_BPF_FUNC_lwt_push_encap: bpf_func_id = 73;
1870pub const bpf_func_id_BPF_FUNC_lwt_seg6_store_bytes: bpf_func_id = 74;
1871pub const bpf_func_id_BPF_FUNC_lwt_seg6_adjust_srh: bpf_func_id = 75;
1872pub const bpf_func_id_BPF_FUNC_lwt_seg6_action: bpf_func_id = 76;
1873pub const bpf_func_id_BPF_FUNC_rc_repeat: bpf_func_id = 77;
1874pub const bpf_func_id_BPF_FUNC_rc_keydown: bpf_func_id = 78;
1875pub const bpf_func_id_BPF_FUNC_skb_cgroup_id: bpf_func_id = 79;
1876pub const bpf_func_id_BPF_FUNC_get_current_cgroup_id: bpf_func_id = 80;
1877pub const bpf_func_id_BPF_FUNC_get_local_storage: bpf_func_id = 81;
1878pub const bpf_func_id_BPF_FUNC_sk_select_reuseport: bpf_func_id = 82;
1879pub const bpf_func_id_BPF_FUNC_skb_ancestor_cgroup_id: bpf_func_id = 83;
1880pub const bpf_func_id_BPF_FUNC_sk_lookup_tcp: bpf_func_id = 84;
1881pub const bpf_func_id_BPF_FUNC_sk_lookup_udp: bpf_func_id = 85;
1882pub const bpf_func_id_BPF_FUNC_sk_release: bpf_func_id = 86;
1883pub const bpf_func_id_BPF_FUNC_map_push_elem: bpf_func_id = 87;
1884pub const bpf_func_id_BPF_FUNC_map_pop_elem: bpf_func_id = 88;
1885pub const bpf_func_id_BPF_FUNC_map_peek_elem: bpf_func_id = 89;
1886pub const bpf_func_id_BPF_FUNC_msg_push_data: bpf_func_id = 90;
1887pub const bpf_func_id_BPF_FUNC_msg_pop_data: bpf_func_id = 91;
1888pub const bpf_func_id_BPF_FUNC_rc_pointer_rel: bpf_func_id = 92;
1889pub const bpf_func_id_BPF_FUNC_spin_lock: bpf_func_id = 93;
1890pub const bpf_func_id_BPF_FUNC_spin_unlock: bpf_func_id = 94;
1891pub const bpf_func_id_BPF_FUNC_sk_fullsock: bpf_func_id = 95;
1892pub const bpf_func_id_BPF_FUNC_tcp_sock: bpf_func_id = 96;
1893pub const bpf_func_id_BPF_FUNC_skb_ecn_set_ce: bpf_func_id = 97;
1894pub const bpf_func_id_BPF_FUNC_get_listener_sock: bpf_func_id = 98;
1895pub const bpf_func_id_BPF_FUNC_skc_lookup_tcp: bpf_func_id = 99;
1896pub const bpf_func_id_BPF_FUNC_tcp_check_syncookie: bpf_func_id = 100;
1897pub const bpf_func_id_BPF_FUNC_sysctl_get_name: bpf_func_id = 101;
1898pub const bpf_func_id_BPF_FUNC_sysctl_get_current_value: bpf_func_id = 102;
1899pub const bpf_func_id_BPF_FUNC_sysctl_get_new_value: bpf_func_id = 103;
1900pub const bpf_func_id_BPF_FUNC_sysctl_set_new_value: bpf_func_id = 104;
1901pub const bpf_func_id_BPF_FUNC_strtol: bpf_func_id = 105;
1902pub const bpf_func_id_BPF_FUNC_strtoul: bpf_func_id = 106;
1903pub const bpf_func_id_BPF_FUNC_sk_storage_get: bpf_func_id = 107;
1904pub const bpf_func_id_BPF_FUNC_sk_storage_delete: bpf_func_id = 108;
1905pub const bpf_func_id_BPF_FUNC_send_signal: bpf_func_id = 109;
1906pub const bpf_func_id_BPF_FUNC_tcp_gen_syncookie: bpf_func_id = 110;
1907pub const bpf_func_id___BPF_FUNC_MAX_ID: bpf_func_id = 111;
1908pub type bpf_func_id = u32;
1909pub const bpf_adj_room_mode_BPF_ADJ_ROOM_NET: bpf_adj_room_mode = 0;
1910pub const bpf_adj_room_mode_BPF_ADJ_ROOM_MAC: bpf_adj_room_mode = 1;
1911pub type bpf_adj_room_mode = u32;
1912pub const bpf_hdr_start_off_BPF_HDR_START_MAC: bpf_hdr_start_off = 0;
1913pub const bpf_hdr_start_off_BPF_HDR_START_NET: bpf_hdr_start_off = 1;
1914pub type bpf_hdr_start_off = u32;
1915pub const bpf_lwt_encap_mode_BPF_LWT_ENCAP_SEG6: bpf_lwt_encap_mode = 0;
1916pub const bpf_lwt_encap_mode_BPF_LWT_ENCAP_SEG6_INLINE: bpf_lwt_encap_mode = 1;
1917pub const bpf_lwt_encap_mode_BPF_LWT_ENCAP_IP: bpf_lwt_encap_mode = 2;
1918pub type bpf_lwt_encap_mode = u32;
1919#[repr(C)]
1920#[derive(Copy, Clone)]
1921pub struct __sk_buff {
1922    pub len: __u32,
1923    pub pkt_type: __u32,
1924    pub mark: __u32,
1925    pub queue_mapping: __u32,
1926    pub protocol: __u32,
1927    pub vlan_present: __u32,
1928    pub vlan_tci: __u32,
1929    pub vlan_proto: __u32,
1930    pub priority: __u32,
1931    pub ingress_ifindex: __u32,
1932    pub ifindex: __u32,
1933    pub tc_index: __u32,
1934    pub cb: [__u32; 5usize],
1935    pub hash: __u32,
1936    pub tc_classid: __u32,
1937    pub data: __u32,
1938    pub data_end: __u32,
1939    pub napi_id: __u32,
1940    pub family: __u32,
1941    pub remote_ip4: __u32,
1942    pub local_ip4: __u32,
1943    pub remote_ip6: [__u32; 4usize],
1944    pub local_ip6: [__u32; 4usize],
1945    pub remote_port: __u32,
1946    pub local_port: __u32,
1947    pub data_meta: __u32,
1948    pub __bindgen_anon_1: __sk_buff__bindgen_ty_1,
1949    pub tstamp: __u64,
1950    pub wire_len: __u32,
1951    pub gso_segs: __u32,
1952    pub __bindgen_anon_2: __sk_buff__bindgen_ty_2,
1953}
1954#[repr(C)]
1955#[derive(Copy, Clone)]
1956pub union __sk_buff__bindgen_ty_1 {
1957    pub flow_keys: *mut bpf_flow_keys,
1958    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u8>,
1959    _bindgen_union_align: u64,
1960}
1961impl __sk_buff__bindgen_ty_1 {
1962    #[inline]
1963    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize], u8> {
1964        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u8> =
1965            Default::default();
1966        __bindgen_bitfield_unit
1967    }
1968}
1969#[repr(C)]
1970#[derive(Copy, Clone)]
1971pub union __sk_buff__bindgen_ty_2 {
1972    pub sk: *mut bpf_sock,
1973    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u8>,
1974    _bindgen_union_align: u64,
1975}
1976impl __sk_buff__bindgen_ty_2 {
1977    #[inline]
1978    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize], u8> {
1979        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u8> =
1980            Default::default();
1981        __bindgen_bitfield_unit
1982    }
1983}
1984#[repr(C)]
1985#[derive(Copy, Clone)]
1986pub struct bpf_tunnel_key {
1987    pub tunnel_id: __u32,
1988    pub __bindgen_anon_1: bpf_tunnel_key__bindgen_ty_1,
1989    pub tunnel_tos: __u8,
1990    pub tunnel_ttl: __u8,
1991    pub tunnel_ext: __u16,
1992    pub tunnel_label: __u32,
1993}
1994#[repr(C)]
1995#[derive(Copy, Clone)]
1996pub union bpf_tunnel_key__bindgen_ty_1 {
1997    pub remote_ipv4: __u32,
1998    pub remote_ipv6: [__u32; 4usize],
1999    _bindgen_union_align: [u32; 4usize],
2000}
2001#[repr(C)]
2002#[derive(Copy, Clone)]
2003pub struct bpf_xfrm_state {
2004    pub reqid: __u32,
2005    pub spi: __u32,
2006    pub family: __u16,
2007    pub ext: __u16,
2008    pub __bindgen_anon_1: bpf_xfrm_state__bindgen_ty_1,
2009}
2010#[repr(C)]
2011#[derive(Copy, Clone)]
2012pub union bpf_xfrm_state__bindgen_ty_1 {
2013    pub remote_ipv4: __u32,
2014    pub remote_ipv6: [__u32; 4usize],
2015    _bindgen_union_align: [u32; 4usize],
2016}
2017pub const bpf_ret_code_BPF_OK: bpf_ret_code = 0;
2018pub const bpf_ret_code_BPF_DROP: bpf_ret_code = 2;
2019pub const bpf_ret_code_BPF_REDIRECT: bpf_ret_code = 7;
2020pub const bpf_ret_code_BPF_LWT_REROUTE: bpf_ret_code = 128;
2021pub type bpf_ret_code = u32;
2022#[repr(C)]
2023#[derive(Debug, Copy, Clone)]
2024pub struct bpf_sock {
2025    pub bound_dev_if: __u32,
2026    pub family: __u32,
2027    pub type_: __u32,
2028    pub protocol: __u32,
2029    pub mark: __u32,
2030    pub priority: __u32,
2031    pub src_ip4: __u32,
2032    pub src_ip6: [__u32; 4usize],
2033    pub src_port: __u32,
2034    pub dst_port: __u32,
2035    pub dst_ip4: __u32,
2036    pub dst_ip6: [__u32; 4usize],
2037    pub state: __u32,
2038}
2039#[repr(C)]
2040#[derive(Debug, Copy, Clone)]
2041pub struct bpf_tcp_sock {
2042    pub snd_cwnd: __u32,
2043    pub srtt_us: __u32,
2044    pub rtt_min: __u32,
2045    pub snd_ssthresh: __u32,
2046    pub rcv_nxt: __u32,
2047    pub snd_nxt: __u32,
2048    pub snd_una: __u32,
2049    pub mss_cache: __u32,
2050    pub ecn_flags: __u32,
2051    pub rate_delivered: __u32,
2052    pub rate_interval_us: __u32,
2053    pub packets_out: __u32,
2054    pub retrans_out: __u32,
2055    pub total_retrans: __u32,
2056    pub segs_in: __u32,
2057    pub data_segs_in: __u32,
2058    pub segs_out: __u32,
2059    pub data_segs_out: __u32,
2060    pub lost_out: __u32,
2061    pub sacked_out: __u32,
2062    pub bytes_received: __u64,
2063    pub bytes_acked: __u64,
2064    pub dsack_dups: __u32,
2065    pub delivered: __u32,
2066    pub delivered_ce: __u32,
2067    pub icsk_retransmits: __u32,
2068}
2069#[repr(C)]
2070#[derive(Copy, Clone)]
2071pub struct bpf_sock_tuple {
2072    pub __bindgen_anon_1: bpf_sock_tuple__bindgen_ty_1,
2073}
2074#[repr(C)]
2075#[derive(Copy, Clone)]
2076pub union bpf_sock_tuple__bindgen_ty_1 {
2077    pub ipv4: bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1,
2078    pub ipv6: bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2,
2079    _bindgen_union_align: [u32; 9usize],
2080}
2081#[repr(C)]
2082#[derive(Debug, Copy, Clone)]
2083pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1 {
2084    pub saddr: __be32,
2085    pub daddr: __be32,
2086    pub sport: __be16,
2087    pub dport: __be16,
2088}
2089#[repr(C)]
2090#[derive(Debug, Copy, Clone)]
2091pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2 {
2092    pub saddr: [__be32; 4usize],
2093    pub daddr: [__be32; 4usize],
2094    pub sport: __be16,
2095    pub dport: __be16,
2096}
2097#[repr(C)]
2098#[derive(Debug, Copy, Clone)]
2099pub struct bpf_xdp_sock {
2100    pub queue_id: __u32,
2101}
2102pub const xdp_action_XDP_ABORTED: xdp_action = 0;
2103pub const xdp_action_XDP_DROP: xdp_action = 1;
2104pub const xdp_action_XDP_PASS: xdp_action = 2;
2105pub const xdp_action_XDP_TX: xdp_action = 3;
2106pub const xdp_action_XDP_REDIRECT: xdp_action = 4;
2107pub type xdp_action = u32;
2108#[repr(C)]
2109#[derive(Debug, Copy, Clone)]
2110pub struct xdp_md {
2111    pub data: __u32,
2112    pub data_end: __u32,
2113    pub data_meta: __u32,
2114    pub ingress_ifindex: __u32,
2115    pub rx_queue_index: __u32,
2116}
2117pub const sk_action_SK_DROP: sk_action = 0;
2118pub const sk_action_SK_PASS: sk_action = 1;
2119pub type sk_action = u32;
2120#[repr(C)]
2121#[derive(Copy, Clone)]
2122pub struct sk_msg_md {
2123    pub __bindgen_anon_1: sk_msg_md__bindgen_ty_1,
2124    pub __bindgen_anon_2: sk_msg_md__bindgen_ty_2,
2125    pub family: __u32,
2126    pub remote_ip4: __u32,
2127    pub local_ip4: __u32,
2128    pub remote_ip6: [__u32; 4usize],
2129    pub local_ip6: [__u32; 4usize],
2130    pub remote_port: __u32,
2131    pub local_port: __u32,
2132    pub size: __u32,
2133}
2134#[repr(C)]
2135#[derive(Copy, Clone)]
2136pub union sk_msg_md__bindgen_ty_1 {
2137    pub data: *mut ::std::os::raw::c_void,
2138    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u8>,
2139    _bindgen_union_align: u64,
2140}
2141impl sk_msg_md__bindgen_ty_1 {
2142    #[inline]
2143    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize], u8> {
2144        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u8> =
2145            Default::default();
2146        __bindgen_bitfield_unit
2147    }
2148}
2149#[repr(C)]
2150#[derive(Copy, Clone)]
2151pub union sk_msg_md__bindgen_ty_2 {
2152    pub data_end: *mut ::std::os::raw::c_void,
2153    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u8>,
2154    _bindgen_union_align: u64,
2155}
2156impl sk_msg_md__bindgen_ty_2 {
2157    #[inline]
2158    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize], u8> {
2159        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u8> =
2160            Default::default();
2161        __bindgen_bitfield_unit
2162    }
2163}
2164#[repr(C)]
2165#[derive(Copy, Clone)]
2166pub struct sk_reuseport_md {
2167    pub __bindgen_anon_1: sk_reuseport_md__bindgen_ty_1,
2168    pub __bindgen_anon_2: sk_reuseport_md__bindgen_ty_2,
2169    pub len: __u32,
2170    pub eth_protocol: __u32,
2171    pub ip_protocol: __u32,
2172    pub bind_inany: __u32,
2173    pub hash: __u32,
2174}
2175#[repr(C)]
2176#[derive(Copy, Clone)]
2177pub union sk_reuseport_md__bindgen_ty_1 {
2178    pub data: *mut ::std::os::raw::c_void,
2179    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u8>,
2180    _bindgen_union_align: u64,
2181}
2182impl sk_reuseport_md__bindgen_ty_1 {
2183    #[inline]
2184    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize], u8> {
2185        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u8> =
2186            Default::default();
2187        __bindgen_bitfield_unit
2188    }
2189}
2190#[repr(C)]
2191#[derive(Copy, Clone)]
2192pub union sk_reuseport_md__bindgen_ty_2 {
2193    pub data_end: *mut ::std::os::raw::c_void,
2194    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u8>,
2195    _bindgen_union_align: u64,
2196}
2197impl sk_reuseport_md__bindgen_ty_2 {
2198    #[inline]
2199    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize], u8> {
2200        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u8> =
2201            Default::default();
2202        __bindgen_bitfield_unit
2203    }
2204}
2205#[repr(C)]
2206#[derive(Debug, Copy, Clone)]
2207pub struct bpf_prog_info {
2208    pub type_: __u32,
2209    pub id: __u32,
2210    pub tag: [__u8; 8usize],
2211    pub jited_prog_len: __u32,
2212    pub xlated_prog_len: __u32,
2213    pub jited_prog_insns: __u64,
2214    pub xlated_prog_insns: __u64,
2215    pub load_time: __u64,
2216    pub created_by_uid: __u32,
2217    pub nr_map_ids: __u32,
2218    pub map_ids: __u64,
2219    pub name: [::std::os::raw::c_char; 16usize],
2220    pub ifindex: __u32,
2221    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u8>,
2222    pub netns_dev: __u64,
2223    pub netns_ino: __u64,
2224    pub nr_jited_ksyms: __u32,
2225    pub nr_jited_func_lens: __u32,
2226    pub jited_ksyms: __u64,
2227    pub jited_func_lens: __u64,
2228    pub btf_id: __u32,
2229    pub func_info_rec_size: __u32,
2230    pub func_info: __u64,
2231    pub nr_func_info: __u32,
2232    pub nr_line_info: __u32,
2233    pub line_info: __u64,
2234    pub jited_line_info: __u64,
2235    pub nr_jited_line_info: __u32,
2236    pub line_info_rec_size: __u32,
2237    pub jited_line_info_rec_size: __u32,
2238    pub nr_prog_tags: __u32,
2239    pub prog_tags: __u64,
2240    pub run_time_ns: __u64,
2241    pub run_cnt: __u64,
2242}
2243impl bpf_prog_info {
2244    #[inline]
2245    pub fn gpl_compatible(&self) -> __u32 {
2246        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
2247    }
2248    #[inline]
2249    pub fn set_gpl_compatible(&mut self, val: __u32) {
2250        unsafe {
2251            let val: u32 = ::std::mem::transmute(val);
2252            self._bitfield_1.set(0usize, 1u8, val as u64)
2253        }
2254    }
2255    #[inline]
2256    pub fn new_bitfield_1(gpl_compatible: __u32) -> __BindgenBitfieldUnit<[u8; 4usize], u8> {
2257        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u8> =
2258            Default::default();
2259        __bindgen_bitfield_unit.set(0usize, 1u8, {
2260            let gpl_compatible: u32 = unsafe { ::std::mem::transmute(gpl_compatible) };
2261            gpl_compatible as u64
2262        });
2263        __bindgen_bitfield_unit
2264    }
2265}
2266#[repr(C)]
2267#[derive(Debug, Copy, Clone)]
2268pub struct bpf_map_info {
2269    pub type_: __u32,
2270    pub id: __u32,
2271    pub key_size: __u32,
2272    pub value_size: __u32,
2273    pub max_entries: __u32,
2274    pub map_flags: __u32,
2275    pub name: [::std::os::raw::c_char; 16usize],
2276    pub ifindex: __u32,
2277    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u8>,
2278    pub netns_dev: __u64,
2279    pub netns_ino: __u64,
2280    pub btf_id: __u32,
2281    pub btf_key_type_id: __u32,
2282    pub btf_value_type_id: __u32,
2283}
2284impl bpf_map_info {
2285    #[inline]
2286    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize], u8> {
2287        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u8> =
2288            Default::default();
2289        __bindgen_bitfield_unit
2290    }
2291}
2292#[repr(C)]
2293#[derive(Debug, Copy, Clone)]
2294pub struct bpf_btf_info {
2295    pub btf: __u64,
2296    pub btf_size: __u32,
2297    pub id: __u32,
2298}
2299#[repr(C)]
2300#[derive(Copy, Clone)]
2301pub struct bpf_sock_addr {
2302    pub user_family: __u32,
2303    pub user_ip4: __u32,
2304    pub user_ip6: [__u32; 4usize],
2305    pub user_port: __u32,
2306    pub family: __u32,
2307    pub type_: __u32,
2308    pub protocol: __u32,
2309    pub msg_src_ip4: __u32,
2310    pub msg_src_ip6: [__u32; 4usize],
2311    pub __bindgen_anon_1: bpf_sock_addr__bindgen_ty_1,
2312}
2313#[repr(C)]
2314#[derive(Copy, Clone)]
2315pub union bpf_sock_addr__bindgen_ty_1 {
2316    pub sk: *mut bpf_sock,
2317    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u8>,
2318    _bindgen_union_align: u64,
2319}
2320impl bpf_sock_addr__bindgen_ty_1 {
2321    #[inline]
2322    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize], u8> {
2323        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u8> =
2324            Default::default();
2325        __bindgen_bitfield_unit
2326    }
2327}
2328#[repr(C)]
2329#[derive(Copy, Clone)]
2330pub struct bpf_sock_ops {
2331    pub op: __u32,
2332    pub __bindgen_anon_1: bpf_sock_ops__bindgen_ty_1,
2333    pub family: __u32,
2334    pub remote_ip4: __u32,
2335    pub local_ip4: __u32,
2336    pub remote_ip6: [__u32; 4usize],
2337    pub local_ip6: [__u32; 4usize],
2338    pub remote_port: __u32,
2339    pub local_port: __u32,
2340    pub is_fullsock: __u32,
2341    pub snd_cwnd: __u32,
2342    pub srtt_us: __u32,
2343    pub bpf_sock_ops_cb_flags: __u32,
2344    pub state: __u32,
2345    pub rtt_min: __u32,
2346    pub snd_ssthresh: __u32,
2347    pub rcv_nxt: __u32,
2348    pub snd_nxt: __u32,
2349    pub snd_una: __u32,
2350    pub mss_cache: __u32,
2351    pub ecn_flags: __u32,
2352    pub rate_delivered: __u32,
2353    pub rate_interval_us: __u32,
2354    pub packets_out: __u32,
2355    pub retrans_out: __u32,
2356    pub total_retrans: __u32,
2357    pub segs_in: __u32,
2358    pub data_segs_in: __u32,
2359    pub segs_out: __u32,
2360    pub data_segs_out: __u32,
2361    pub lost_out: __u32,
2362    pub sacked_out: __u32,
2363    pub sk_txhash: __u32,
2364    pub bytes_received: __u64,
2365    pub bytes_acked: __u64,
2366    pub __bindgen_anon_2: bpf_sock_ops__bindgen_ty_2,
2367}
2368#[repr(C)]
2369#[derive(Copy, Clone)]
2370pub union bpf_sock_ops__bindgen_ty_1 {
2371    pub args: [__u32; 4usize],
2372    pub reply: __u32,
2373    pub replylong: [__u32; 4usize],
2374    _bindgen_union_align: [u32; 4usize],
2375}
2376#[repr(C)]
2377#[derive(Copy, Clone)]
2378pub union bpf_sock_ops__bindgen_ty_2 {
2379    pub sk: *mut bpf_sock,
2380    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u8>,
2381    _bindgen_union_align: u64,
2382}
2383impl bpf_sock_ops__bindgen_ty_2 {
2384    #[inline]
2385    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize], u8> {
2386        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u8> =
2387            Default::default();
2388        __bindgen_bitfield_unit
2389    }
2390}
2391pub const BPF_SOCK_OPS_VOID: _bindgen_ty_45 = 0;
2392pub const BPF_SOCK_OPS_TIMEOUT_INIT: _bindgen_ty_45 = 1;
2393pub const BPF_SOCK_OPS_RWND_INIT: _bindgen_ty_45 = 2;
2394pub const BPF_SOCK_OPS_TCP_CONNECT_CB: _bindgen_ty_45 = 3;
2395pub const BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB: _bindgen_ty_45 = 4;
2396pub const BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB: _bindgen_ty_45 = 5;
2397pub const BPF_SOCK_OPS_NEEDS_ECN: _bindgen_ty_45 = 6;
2398pub const BPF_SOCK_OPS_BASE_RTT: _bindgen_ty_45 = 7;
2399pub const BPF_SOCK_OPS_RTO_CB: _bindgen_ty_45 = 8;
2400pub const BPF_SOCK_OPS_RETRANS_CB: _bindgen_ty_45 = 9;
2401pub const BPF_SOCK_OPS_STATE_CB: _bindgen_ty_45 = 10;
2402pub const BPF_SOCK_OPS_TCP_LISTEN_CB: _bindgen_ty_45 = 11;
2403pub const BPF_SOCK_OPS_RTT_CB: _bindgen_ty_45 = 12;
2404pub type _bindgen_ty_45 = u32;
2405pub const BPF_TCP_ESTABLISHED: _bindgen_ty_46 = 1;
2406pub const BPF_TCP_SYN_SENT: _bindgen_ty_46 = 2;
2407pub const BPF_TCP_SYN_RECV: _bindgen_ty_46 = 3;
2408pub const BPF_TCP_FIN_WAIT1: _bindgen_ty_46 = 4;
2409pub const BPF_TCP_FIN_WAIT2: _bindgen_ty_46 = 5;
2410pub const BPF_TCP_TIME_WAIT: _bindgen_ty_46 = 6;
2411pub const BPF_TCP_CLOSE: _bindgen_ty_46 = 7;
2412pub const BPF_TCP_CLOSE_WAIT: _bindgen_ty_46 = 8;
2413pub const BPF_TCP_LAST_ACK: _bindgen_ty_46 = 9;
2414pub const BPF_TCP_LISTEN: _bindgen_ty_46 = 10;
2415pub const BPF_TCP_CLOSING: _bindgen_ty_46 = 11;
2416pub const BPF_TCP_NEW_SYN_RECV: _bindgen_ty_46 = 12;
2417pub const BPF_TCP_MAX_STATES: _bindgen_ty_46 = 13;
2418pub type _bindgen_ty_46 = u32;
2419#[repr(C)]
2420#[derive(Debug, Copy, Clone)]
2421pub struct bpf_perf_event_value {
2422    pub counter: __u64,
2423    pub enabled: __u64,
2424    pub running: __u64,
2425}
2426#[repr(C)]
2427#[derive(Debug, Copy, Clone)]
2428pub struct bpf_cgroup_dev_ctx {
2429    pub access_type: __u32,
2430    pub major: __u32,
2431    pub minor: __u32,
2432}
2433#[repr(C)]
2434#[derive(Debug)]
2435pub struct bpf_raw_tracepoint_args {
2436    pub args: __IncompleteArrayField<__u64>,
2437}
2438pub const BPF_FIB_LKUP_RET_SUCCESS: _bindgen_ty_47 = 0;
2439pub const BPF_FIB_LKUP_RET_BLACKHOLE: _bindgen_ty_47 = 1;
2440pub const BPF_FIB_LKUP_RET_UNREACHABLE: _bindgen_ty_47 = 2;
2441pub const BPF_FIB_LKUP_RET_PROHIBIT: _bindgen_ty_47 = 3;
2442pub const BPF_FIB_LKUP_RET_NOT_FWDED: _bindgen_ty_47 = 4;
2443pub const BPF_FIB_LKUP_RET_FWD_DISABLED: _bindgen_ty_47 = 5;
2444pub const BPF_FIB_LKUP_RET_UNSUPP_LWT: _bindgen_ty_47 = 6;
2445pub const BPF_FIB_LKUP_RET_NO_NEIGH: _bindgen_ty_47 = 7;
2446pub const BPF_FIB_LKUP_RET_FRAG_NEEDED: _bindgen_ty_47 = 8;
2447pub type _bindgen_ty_47 = u32;
2448#[repr(C)]
2449#[derive(Copy, Clone)]
2450pub struct bpf_fib_lookup {
2451    pub family: __u8,
2452    pub l4_protocol: __u8,
2453    pub sport: __be16,
2454    pub dport: __be16,
2455    pub tot_len: __u16,
2456    pub ifindex: __u32,
2457    pub __bindgen_anon_1: bpf_fib_lookup__bindgen_ty_1,
2458    pub __bindgen_anon_2: bpf_fib_lookup__bindgen_ty_2,
2459    pub __bindgen_anon_3: bpf_fib_lookup__bindgen_ty_3,
2460    pub h_vlan_proto: __be16,
2461    pub h_vlan_TCI: __be16,
2462    pub smac: [__u8; 6usize],
2463    pub dmac: [__u8; 6usize],
2464}
2465#[repr(C)]
2466#[derive(Copy, Clone)]
2467pub union bpf_fib_lookup__bindgen_ty_1 {
2468    pub tos: __u8,
2469    pub flowinfo: __be32,
2470    pub rt_metric: __u32,
2471    _bindgen_union_align: u32,
2472}
2473#[repr(C)]
2474#[derive(Copy, Clone)]
2475pub union bpf_fib_lookup__bindgen_ty_2 {
2476    pub ipv4_src: __be32,
2477    pub ipv6_src: [__u32; 4usize],
2478    _bindgen_union_align: [u32; 4usize],
2479}
2480#[repr(C)]
2481#[derive(Copy, Clone)]
2482pub union bpf_fib_lookup__bindgen_ty_3 {
2483    pub ipv4_dst: __be32,
2484    pub ipv6_dst: [__u32; 4usize],
2485    _bindgen_union_align: [u32; 4usize],
2486}
2487pub const bpf_task_fd_type_BPF_FD_TYPE_RAW_TRACEPOINT: bpf_task_fd_type = 0;
2488pub const bpf_task_fd_type_BPF_FD_TYPE_TRACEPOINT: bpf_task_fd_type = 1;
2489pub const bpf_task_fd_type_BPF_FD_TYPE_KPROBE: bpf_task_fd_type = 2;
2490pub const bpf_task_fd_type_BPF_FD_TYPE_KRETPROBE: bpf_task_fd_type = 3;
2491pub const bpf_task_fd_type_BPF_FD_TYPE_UPROBE: bpf_task_fd_type = 4;
2492pub const bpf_task_fd_type_BPF_FD_TYPE_URETPROBE: bpf_task_fd_type = 5;
2493pub type bpf_task_fd_type = u32;
2494#[repr(C)]
2495#[derive(Copy, Clone)]
2496pub struct bpf_flow_keys {
2497    pub nhoff: __u16,
2498    pub thoff: __u16,
2499    pub addr_proto: __u16,
2500    pub is_frag: __u8,
2501    pub is_first_frag: __u8,
2502    pub is_encap: __u8,
2503    pub ip_proto: __u8,
2504    pub n_proto: __be16,
2505    pub sport: __be16,
2506    pub dport: __be16,
2507    pub __bindgen_anon_1: bpf_flow_keys__bindgen_ty_1,
2508    pub flags: __u32,
2509    pub flow_label: __be32,
2510}
2511#[repr(C)]
2512#[derive(Copy, Clone)]
2513pub union bpf_flow_keys__bindgen_ty_1 {
2514    pub __bindgen_anon_1: bpf_flow_keys__bindgen_ty_1__bindgen_ty_1,
2515    pub __bindgen_anon_2: bpf_flow_keys__bindgen_ty_1__bindgen_ty_2,
2516    _bindgen_union_align: [u32; 8usize],
2517}
2518#[repr(C)]
2519#[derive(Debug, Copy, Clone)]
2520pub struct bpf_flow_keys__bindgen_ty_1__bindgen_ty_1 {
2521    pub ipv4_src: __be32,
2522    pub ipv4_dst: __be32,
2523}
2524#[repr(C)]
2525#[derive(Debug, Copy, Clone)]
2526pub struct bpf_flow_keys__bindgen_ty_1__bindgen_ty_2 {
2527    pub ipv6_src: [__u32; 4usize],
2528    pub ipv6_dst: [__u32; 4usize],
2529}
2530#[repr(C)]
2531#[derive(Debug, Copy, Clone)]
2532pub struct bpf_func_info {
2533    pub insn_off: __u32,
2534    pub type_id: __u32,
2535}
2536#[repr(C)]
2537#[derive(Debug, Copy, Clone)]
2538pub struct bpf_line_info {
2539    pub insn_off: __u32,
2540    pub file_name_off: __u32,
2541    pub line_off: __u32,
2542    pub line_col: __u32,
2543}
2544#[repr(C)]
2545#[derive(Debug, Copy, Clone)]
2546pub struct bpf_spin_lock {
2547    pub val: __u32,
2548}
2549#[repr(C)]
2550#[derive(Debug, Copy, Clone)]
2551pub struct bpf_sysctl {
2552    pub write: __u32,
2553    pub file_pos: __u32,
2554}
2555#[repr(C)]
2556#[derive(Copy, Clone)]
2557pub struct bpf_sockopt {
2558    pub __bindgen_anon_1: bpf_sockopt__bindgen_ty_1,
2559    pub __bindgen_anon_2: bpf_sockopt__bindgen_ty_2,
2560    pub __bindgen_anon_3: bpf_sockopt__bindgen_ty_3,
2561    pub level: __s32,
2562    pub optname: __s32,
2563    pub optlen: __s32,
2564    pub retval: __s32,
2565}
2566#[repr(C)]
2567#[derive(Copy, Clone)]
2568pub union bpf_sockopt__bindgen_ty_1 {
2569    pub sk: *mut bpf_sock,
2570    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u8>,
2571    _bindgen_union_align: u64,
2572}
2573impl bpf_sockopt__bindgen_ty_1 {
2574    #[inline]
2575    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize], u8> {
2576        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u8> =
2577            Default::default();
2578        __bindgen_bitfield_unit
2579    }
2580}
2581#[repr(C)]
2582#[derive(Copy, Clone)]
2583pub union bpf_sockopt__bindgen_ty_2 {
2584    pub optval: *mut ::std::os::raw::c_void,
2585    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u8>,
2586    _bindgen_union_align: u64,
2587}
2588impl bpf_sockopt__bindgen_ty_2 {
2589    #[inline]
2590    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize], u8> {
2591        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u8> =
2592            Default::default();
2593        __bindgen_bitfield_unit
2594    }
2595}
2596#[repr(C)]
2597#[derive(Copy, Clone)]
2598pub union bpf_sockopt__bindgen_ty_3 {
2599    pub optval_end: *mut ::std::os::raw::c_void,
2600    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u8>,
2601    _bindgen_union_align: u64,
2602}
2603impl bpf_sockopt__bindgen_ty_3 {
2604    #[inline]
2605    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize], u8> {
2606        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u8> =
2607            Default::default();
2608        __bindgen_bitfield_unit
2609    }
2610}
2611pub type size_t = ::std::os::raw::c_ulong;
2612pub type wchar_t = ::std::os::raw::c_int;
2613#[repr(C)]
2614#[repr(align(16))]
2615#[derive(Debug, Copy, Clone)]
2616pub struct max_align_t {
2617    pub __clang_max_align_nonce1: ::std::os::raw::c_longlong,
2618    pub __bindgen_padding_0: u64,
2619    pub __clang_max_align_nonce2: u128,
2620}
2621pub type __u_char = ::std::os::raw::c_uchar;
2622pub type __u_short = ::std::os::raw::c_ushort;
2623pub type __u_int = ::std::os::raw::c_uint;
2624pub type __u_long = ::std::os::raw::c_ulong;
2625pub type __int8_t = ::std::os::raw::c_schar;
2626pub type __uint8_t = ::std::os::raw::c_uchar;
2627pub type __int16_t = ::std::os::raw::c_short;
2628pub type __uint16_t = ::std::os::raw::c_ushort;
2629pub type __int32_t = ::std::os::raw::c_int;
2630pub type __uint32_t = ::std::os::raw::c_uint;
2631pub type __int64_t = ::std::os::raw::c_long;
2632pub type __uint64_t = ::std::os::raw::c_ulong;
2633pub type __int_least8_t = __int8_t;
2634pub type __uint_least8_t = __uint8_t;
2635pub type __int_least16_t = __int16_t;
2636pub type __uint_least16_t = __uint16_t;
2637pub type __int_least32_t = __int32_t;
2638pub type __uint_least32_t = __uint32_t;
2639pub type __int_least64_t = __int64_t;
2640pub type __uint_least64_t = __uint64_t;
2641pub type __quad_t = ::std::os::raw::c_long;
2642pub type __u_quad_t = ::std::os::raw::c_ulong;
2643pub type __intmax_t = ::std::os::raw::c_long;
2644pub type __uintmax_t = ::std::os::raw::c_ulong;
2645pub type __dev_t = ::std::os::raw::c_ulong;
2646pub type __uid_t = ::std::os::raw::c_uint;
2647pub type __gid_t = ::std::os::raw::c_uint;
2648pub type __ino_t = ::std::os::raw::c_ulong;
2649pub type __ino64_t = ::std::os::raw::c_ulong;
2650pub type __mode_t = ::std::os::raw::c_uint;
2651pub type __nlink_t = ::std::os::raw::c_ulong;
2652pub type __off_t = ::std::os::raw::c_long;
2653pub type __off64_t = ::std::os::raw::c_long;
2654pub type __pid_t = ::std::os::raw::c_int;
2655#[repr(C)]
2656#[derive(Debug, Copy, Clone)]
2657pub struct __fsid_t {
2658    pub __val: [::std::os::raw::c_int; 2usize],
2659}
2660pub type __clock_t = ::std::os::raw::c_long;
2661pub type __rlim_t = ::std::os::raw::c_ulong;
2662pub type __rlim64_t = ::std::os::raw::c_ulong;
2663pub type __id_t = ::std::os::raw::c_uint;
2664pub type __time_t = ::std::os::raw::c_long;
2665pub type __useconds_t = ::std::os::raw::c_uint;
2666pub type __suseconds_t = ::std::os::raw::c_long;
2667pub type __daddr_t = ::std::os::raw::c_int;
2668pub type __key_t = ::std::os::raw::c_int;
2669pub type __clockid_t = ::std::os::raw::c_int;
2670pub type __timer_t = *mut ::std::os::raw::c_void;
2671pub type __blksize_t = ::std::os::raw::c_long;
2672pub type __blkcnt_t = ::std::os::raw::c_long;
2673pub type __blkcnt64_t = ::std::os::raw::c_long;
2674pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
2675pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
2676pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
2677pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
2678pub type __fsword_t = ::std::os::raw::c_long;
2679pub type __ssize_t = ::std::os::raw::c_long;
2680pub type __syscall_slong_t = ::std::os::raw::c_long;
2681pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
2682pub type __loff_t = __off64_t;
2683pub type __caddr_t = *mut ::std::os::raw::c_char;
2684pub type __intptr_t = ::std::os::raw::c_long;
2685pub type __socklen_t = ::std::os::raw::c_uint;
2686pub type __sig_atomic_t = ::std::os::raw::c_int;
2687pub type int_least8_t = __int_least8_t;
2688pub type int_least16_t = __int_least16_t;
2689pub type int_least32_t = __int_least32_t;
2690pub type int_least64_t = __int_least64_t;
2691pub type uint_least8_t = __uint_least8_t;
2692pub type uint_least16_t = __uint_least16_t;
2693pub type uint_least32_t = __uint_least32_t;
2694pub type uint_least64_t = __uint_least64_t;
2695pub type int_fast8_t = ::std::os::raw::c_schar;
2696pub type int_fast16_t = ::std::os::raw::c_long;
2697pub type int_fast32_t = ::std::os::raw::c_long;
2698pub type int_fast64_t = ::std::os::raw::c_long;
2699pub type uint_fast8_t = ::std::os::raw::c_uchar;
2700pub type uint_fast16_t = ::std::os::raw::c_ulong;
2701pub type uint_fast32_t = ::std::os::raw::c_ulong;
2702pub type uint_fast64_t = ::std::os::raw::c_ulong;
2703pub type intmax_t = __intmax_t;
2704pub type uintmax_t = __uintmax_t;
2705extern "C" {
2706    pub fn memcpy(
2707        __dest: *mut ::std::os::raw::c_void,
2708        __src: *const ::std::os::raw::c_void,
2709        __n: ::std::os::raw::c_ulong,
2710    ) -> *mut ::std::os::raw::c_void;
2711}
2712extern "C" {
2713    pub fn memmove(
2714        __dest: *mut ::std::os::raw::c_void,
2715        __src: *const ::std::os::raw::c_void,
2716        __n: ::std::os::raw::c_ulong,
2717    ) -> *mut ::std::os::raw::c_void;
2718}
2719extern "C" {
2720    pub fn memccpy(
2721        __dest: *mut ::std::os::raw::c_void,
2722        __src: *const ::std::os::raw::c_void,
2723        __c: ::std::os::raw::c_int,
2724        __n: size_t,
2725    ) -> *mut ::std::os::raw::c_void;
2726}
2727extern "C" {
2728    pub fn memset(
2729        __s: *mut ::std::os::raw::c_void,
2730        __c: ::std::os::raw::c_int,
2731        __n: ::std::os::raw::c_ulong,
2732    ) -> *mut ::std::os::raw::c_void;
2733}
2734extern "C" {
2735    pub fn memcmp(
2736        __s1: *const ::std::os::raw::c_void,
2737        __s2: *const ::std::os::raw::c_void,
2738        __n: ::std::os::raw::c_ulong,
2739    ) -> ::std::os::raw::c_int;
2740}
2741extern "C" {
2742    pub fn memchr(
2743        __s: *const ::std::os::raw::c_void,
2744        __c: ::std::os::raw::c_int,
2745        __n: ::std::os::raw::c_ulong,
2746    ) -> *mut ::std::os::raw::c_void;
2747}
2748extern "C" {
2749    pub fn strcpy(
2750        __dest: *mut ::std::os::raw::c_char,
2751        __src: *const ::std::os::raw::c_char,
2752    ) -> *mut ::std::os::raw::c_char;
2753}
2754extern "C" {
2755    pub fn strncpy(
2756        __dest: *mut ::std::os::raw::c_char,
2757        __src: *const ::std::os::raw::c_char,
2758        __n: ::std::os::raw::c_ulong,
2759    ) -> *mut ::std::os::raw::c_char;
2760}
2761extern "C" {
2762    pub fn strcat(
2763        __dest: *mut ::std::os::raw::c_char,
2764        __src: *const ::std::os::raw::c_char,
2765    ) -> *mut ::std::os::raw::c_char;
2766}
2767extern "C" {
2768    pub fn strncat(
2769        __dest: *mut ::std::os::raw::c_char,
2770        __src: *const ::std::os::raw::c_char,
2771        __n: ::std::os::raw::c_ulong,
2772    ) -> *mut ::std::os::raw::c_char;
2773}
2774extern "C" {
2775    pub fn strcmp(
2776        __s1: *const ::std::os::raw::c_char,
2777        __s2: *const ::std::os::raw::c_char,
2778    ) -> ::std::os::raw::c_int;
2779}
2780extern "C" {
2781    pub fn strncmp(
2782        __s1: *const ::std::os::raw::c_char,
2783        __s2: *const ::std::os::raw::c_char,
2784        __n: ::std::os::raw::c_ulong,
2785    ) -> ::std::os::raw::c_int;
2786}
2787extern "C" {
2788    pub fn strcoll(
2789        __s1: *const ::std::os::raw::c_char,
2790        __s2: *const ::std::os::raw::c_char,
2791    ) -> ::std::os::raw::c_int;
2792}
2793extern "C" {
2794    pub fn strxfrm(
2795        __dest: *mut ::std::os::raw::c_char,
2796        __src: *const ::std::os::raw::c_char,
2797        __n: ::std::os::raw::c_ulong,
2798    ) -> ::std::os::raw::c_ulong;
2799}
2800#[repr(C)]
2801#[derive(Debug, Copy, Clone)]
2802pub struct __locale_struct {
2803    pub __locales: [*mut __locale_data; 13usize],
2804    pub __ctype_b: *const ::std::os::raw::c_ushort,
2805    pub __ctype_tolower: *const ::std::os::raw::c_int,
2806    pub __ctype_toupper: *const ::std::os::raw::c_int,
2807    pub __names: [*const ::std::os::raw::c_char; 13usize],
2808}
2809pub type __locale_t = *mut __locale_struct;
2810pub type locale_t = __locale_t;
2811extern "C" {
2812    pub fn strcoll_l(
2813        __s1: *const ::std::os::raw::c_char,
2814        __s2: *const ::std::os::raw::c_char,
2815        __l: locale_t,
2816    ) -> ::std::os::raw::c_int;
2817}
2818extern "C" {
2819    pub fn strxfrm_l(
2820        __dest: *mut ::std::os::raw::c_char,
2821        __src: *const ::std::os::raw::c_char,
2822        __n: size_t,
2823        __l: locale_t,
2824    ) -> size_t;
2825}
2826extern "C" {
2827    pub fn strdup(__s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
2828}
2829extern "C" {
2830    pub fn strndup(
2831        __string: *const ::std::os::raw::c_char,
2832        __n: ::std::os::raw::c_ulong,
2833    ) -> *mut ::std::os::raw::c_char;
2834}
2835extern "C" {
2836    pub fn strchr(
2837        __s: *const ::std::os::raw::c_char,
2838        __c: ::std::os::raw::c_int,
2839    ) -> *mut ::std::os::raw::c_char;
2840}
2841extern "C" {
2842    pub fn strrchr(
2843        __s: *const ::std::os::raw::c_char,
2844        __c: ::std::os::raw::c_int,
2845    ) -> *mut ::std::os::raw::c_char;
2846}
2847extern "C" {
2848    pub fn strcspn(
2849        __s: *const ::std::os::raw::c_char,
2850        __reject: *const ::std::os::raw::c_char,
2851    ) -> ::std::os::raw::c_ulong;
2852}
2853extern "C" {
2854    pub fn strspn(
2855        __s: *const ::std::os::raw::c_char,
2856        __accept: *const ::std::os::raw::c_char,
2857    ) -> ::std::os::raw::c_ulong;
2858}
2859extern "C" {
2860    pub fn strpbrk(
2861        __s: *const ::std::os::raw::c_char,
2862        __accept: *const ::std::os::raw::c_char,
2863    ) -> *mut ::std::os::raw::c_char;
2864}
2865extern "C" {
2866    pub fn strstr(
2867        __haystack: *const ::std::os::raw::c_char,
2868        __needle: *const ::std::os::raw::c_char,
2869    ) -> *mut ::std::os::raw::c_char;
2870}
2871extern "C" {
2872    pub fn strtok(
2873        __s: *mut ::std::os::raw::c_char,
2874        __delim: *const ::std::os::raw::c_char,
2875    ) -> *mut ::std::os::raw::c_char;
2876}
2877extern "C" {
2878    pub fn __strtok_r(
2879        __s: *mut ::std::os::raw::c_char,
2880        __delim: *const ::std::os::raw::c_char,
2881        __save_ptr: *mut *mut ::std::os::raw::c_char,
2882    ) -> *mut ::std::os::raw::c_char;
2883}
2884extern "C" {
2885    pub fn strtok_r(
2886        __s: *mut ::std::os::raw::c_char,
2887        __delim: *const ::std::os::raw::c_char,
2888        __save_ptr: *mut *mut ::std::os::raw::c_char,
2889    ) -> *mut ::std::os::raw::c_char;
2890}
2891extern "C" {
2892    pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong;
2893}
2894extern "C" {
2895    pub fn strnlen(__string: *const ::std::os::raw::c_char, __maxlen: size_t) -> size_t;
2896}
2897extern "C" {
2898    pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
2899}
2900extern "C" {
2901    #[link_name = "\u{1}__xpg_strerror_r"]
2902    pub fn strerror_r(
2903        __errnum: ::std::os::raw::c_int,
2904        __buf: *mut ::std::os::raw::c_char,
2905        __buflen: size_t,
2906    ) -> ::std::os::raw::c_int;
2907}
2908extern "C" {
2909    pub fn strerror_l(
2910        __errnum: ::std::os::raw::c_int,
2911        __l: locale_t,
2912    ) -> *mut ::std::os::raw::c_char;
2913}
2914extern "C" {
2915    pub fn bcmp(
2916        __s1: *const ::std::os::raw::c_void,
2917        __s2: *const ::std::os::raw::c_void,
2918        __n: ::std::os::raw::c_ulong,
2919    ) -> ::std::os::raw::c_int;
2920}
2921extern "C" {
2922    pub fn bcopy(
2923        __src: *const ::std::os::raw::c_void,
2924        __dest: *mut ::std::os::raw::c_void,
2925        __n: size_t,
2926    );
2927}
2928extern "C" {
2929    pub fn bzero(__s: *mut ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong);
2930}
2931extern "C" {
2932    pub fn index(
2933        __s: *const ::std::os::raw::c_char,
2934        __c: ::std::os::raw::c_int,
2935    ) -> *mut ::std::os::raw::c_char;
2936}
2937extern "C" {
2938    pub fn rindex(
2939        __s: *const ::std::os::raw::c_char,
2940        __c: ::std::os::raw::c_int,
2941    ) -> *mut ::std::os::raw::c_char;
2942}
2943extern "C" {
2944    pub fn ffs(__i: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2945}
2946extern "C" {
2947    pub fn ffsl(__l: ::std::os::raw::c_long) -> ::std::os::raw::c_int;
2948}
2949extern "C" {
2950    pub fn ffsll(__ll: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int;
2951}
2952extern "C" {
2953    pub fn strcasecmp(
2954        __s1: *const ::std::os::raw::c_char,
2955        __s2: *const ::std::os::raw::c_char,
2956    ) -> ::std::os::raw::c_int;
2957}
2958extern "C" {
2959    pub fn strncasecmp(
2960        __s1: *const ::std::os::raw::c_char,
2961        __s2: *const ::std::os::raw::c_char,
2962        __n: ::std::os::raw::c_ulong,
2963    ) -> ::std::os::raw::c_int;
2964}
2965extern "C" {
2966    pub fn strcasecmp_l(
2967        __s1: *const ::std::os::raw::c_char,
2968        __s2: *const ::std::os::raw::c_char,
2969        __loc: locale_t,
2970    ) -> ::std::os::raw::c_int;
2971}
2972extern "C" {
2973    pub fn strncasecmp_l(
2974        __s1: *const ::std::os::raw::c_char,
2975        __s2: *const ::std::os::raw::c_char,
2976        __n: size_t,
2977        __loc: locale_t,
2978    ) -> ::std::os::raw::c_int;
2979}
2980extern "C" {
2981    pub fn explicit_bzero(__s: *mut ::std::os::raw::c_void, __n: size_t);
2982}
2983extern "C" {
2984    pub fn strsep(
2985        __stringp: *mut *mut ::std::os::raw::c_char,
2986        __delim: *const ::std::os::raw::c_char,
2987    ) -> *mut ::std::os::raw::c_char;
2988}
2989extern "C" {
2990    pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
2991}
2992extern "C" {
2993    pub fn __stpcpy(
2994        __dest: *mut ::std::os::raw::c_char,
2995        __src: *const ::std::os::raw::c_char,
2996    ) -> *mut ::std::os::raw::c_char;
2997}
2998extern "C" {
2999    pub fn stpcpy(
3000        __dest: *mut ::std::os::raw::c_char,
3001        __src: *const ::std::os::raw::c_char,
3002    ) -> *mut ::std::os::raw::c_char;
3003}
3004extern "C" {
3005    pub fn __stpncpy(
3006        __dest: *mut ::std::os::raw::c_char,
3007        __src: *const ::std::os::raw::c_char,
3008        __n: size_t,
3009    ) -> *mut ::std::os::raw::c_char;
3010}
3011extern "C" {
3012    pub fn stpncpy(
3013        __dest: *mut ::std::os::raw::c_char,
3014        __src: *const ::std::os::raw::c_char,
3015        __n: ::std::os::raw::c_ulong,
3016    ) -> *mut ::std::os::raw::c_char;
3017}
3018#[repr(C)]
3019#[derive(Copy, Clone)]
3020pub struct bpf_create_map_attr {
3021    pub name: *const ::std::os::raw::c_char,
3022    pub map_type: bpf_map_type,
3023    pub map_flags: __u32,
3024    pub key_size: __u32,
3025    pub value_size: __u32,
3026    pub max_entries: __u32,
3027    pub numa_node: __u32,
3028    pub btf_fd: __u32,
3029    pub btf_key_type_id: __u32,
3030    pub btf_value_type_id: __u32,
3031    pub map_ifindex: __u32,
3032    pub __bindgen_anon_1: bpf_create_map_attr__bindgen_ty_1,
3033}
3034#[repr(C)]
3035#[derive(Copy, Clone)]
3036pub union bpf_create_map_attr__bindgen_ty_1 {
3037    pub inner_map_fd: __u32,
3038    pub btf_vmlinux_value_type_id: __u32,
3039    _bindgen_union_align: u32,
3040}
3041extern "C" {
3042    pub fn bpf_create_map_xattr(create_attr: *const bpf_create_map_attr) -> ::std::os::raw::c_int;
3043}
3044extern "C" {
3045    pub fn bpf_create_map_node(
3046        map_type: bpf_map_type,
3047        name: *const ::std::os::raw::c_char,
3048        key_size: ::std::os::raw::c_int,
3049        value_size: ::std::os::raw::c_int,
3050        max_entries: ::std::os::raw::c_int,
3051        map_flags: __u32,
3052        node: ::std::os::raw::c_int,
3053    ) -> ::std::os::raw::c_int;
3054}
3055extern "C" {
3056    pub fn bpf_create_map_name(
3057        map_type: bpf_map_type,
3058        name: *const ::std::os::raw::c_char,
3059        key_size: ::std::os::raw::c_int,
3060        value_size: ::std::os::raw::c_int,
3061        max_entries: ::std::os::raw::c_int,
3062        map_flags: __u32,
3063    ) -> ::std::os::raw::c_int;
3064}
3065extern "C" {
3066    pub fn bpf_create_map(
3067        map_type: bpf_map_type,
3068        key_size: ::std::os::raw::c_int,
3069        value_size: ::std::os::raw::c_int,
3070        max_entries: ::std::os::raw::c_int,
3071        map_flags: __u32,
3072    ) -> ::std::os::raw::c_int;
3073}
3074extern "C" {
3075    pub fn bpf_create_map_in_map_node(
3076        map_type: bpf_map_type,
3077        name: *const ::std::os::raw::c_char,
3078        key_size: ::std::os::raw::c_int,
3079        inner_map_fd: ::std::os::raw::c_int,
3080        max_entries: ::std::os::raw::c_int,
3081        map_flags: __u32,
3082        node: ::std::os::raw::c_int,
3083    ) -> ::std::os::raw::c_int;
3084}
3085extern "C" {
3086    pub fn bpf_create_map_in_map(
3087        map_type: bpf_map_type,
3088        name: *const ::std::os::raw::c_char,
3089        key_size: ::std::os::raw::c_int,
3090        inner_map_fd: ::std::os::raw::c_int,
3091        max_entries: ::std::os::raw::c_int,
3092        map_flags: __u32,
3093    ) -> ::std::os::raw::c_int;
3094}
3095#[repr(C)]
3096#[derive(Copy, Clone)]
3097pub struct bpf_load_program_attr {
3098    pub prog_type: bpf_prog_type,
3099    pub expected_attach_type: bpf_attach_type,
3100    pub name: *const ::std::os::raw::c_char,
3101    pub insns: *const bpf_insn,
3102    pub insns_cnt: size_t,
3103    pub license: *const ::std::os::raw::c_char,
3104    pub __bindgen_anon_1: bpf_load_program_attr__bindgen_ty_1,
3105    pub __bindgen_anon_2: bpf_load_program_attr__bindgen_ty_2,
3106    pub prog_btf_fd: __u32,
3107    pub func_info_rec_size: __u32,
3108    pub func_info: *const ::std::os::raw::c_void,
3109    pub func_info_cnt: __u32,
3110    pub line_info_rec_size: __u32,
3111    pub line_info: *const ::std::os::raw::c_void,
3112    pub line_info_cnt: __u32,
3113    pub log_level: __u32,
3114    pub prog_flags: __u32,
3115}
3116#[repr(C)]
3117#[derive(Copy, Clone)]
3118pub union bpf_load_program_attr__bindgen_ty_1 {
3119    pub kern_version: __u32,
3120    pub attach_prog_fd: __u32,
3121    _bindgen_union_align: u32,
3122}
3123#[repr(C)]
3124#[derive(Copy, Clone)]
3125pub union bpf_load_program_attr__bindgen_ty_2 {
3126    pub prog_ifindex: __u32,
3127    pub attach_btf_id: __u32,
3128    _bindgen_union_align: u32,
3129}
3130extern "C" {
3131    pub fn bpf_load_program_xattr(
3132        load_attr: *const bpf_load_program_attr,
3133        log_buf: *mut ::std::os::raw::c_char,
3134        log_buf_sz: size_t,
3135    ) -> ::std::os::raw::c_int;
3136}
3137extern "C" {
3138    pub fn bpf_load_program(
3139        type_: bpf_prog_type,
3140        insns: *const bpf_insn,
3141        insns_cnt: size_t,
3142        license: *const ::std::os::raw::c_char,
3143        kern_version: __u32,
3144        log_buf: *mut ::std::os::raw::c_char,
3145        log_buf_sz: size_t,
3146    ) -> ::std::os::raw::c_int;
3147}
3148extern "C" {
3149    pub fn bpf_verify_program(
3150        type_: bpf_prog_type,
3151        insns: *const bpf_insn,
3152        insns_cnt: size_t,
3153        prog_flags: __u32,
3154        license: *const ::std::os::raw::c_char,
3155        kern_version: __u32,
3156        log_buf: *mut ::std::os::raw::c_char,
3157        log_buf_sz: size_t,
3158        log_level: ::std::os::raw::c_int,
3159    ) -> ::std::os::raw::c_int;
3160}
3161extern "C" {
3162    pub fn bpf_map_update_elem(
3163        fd: ::std::os::raw::c_int,
3164        key: *const ::std::os::raw::c_void,
3165        value: *const ::std::os::raw::c_void,
3166        flags: __u64,
3167    ) -> ::std::os::raw::c_int;
3168}
3169extern "C" {
3170    pub fn bpf_map_lookup_elem(
3171        fd: ::std::os::raw::c_int,
3172        key: *const ::std::os::raw::c_void,
3173        value: *mut ::std::os::raw::c_void,
3174    ) -> ::std::os::raw::c_int;
3175}
3176extern "C" {
3177    pub fn bpf_map_lookup_elem_flags(
3178        fd: ::std::os::raw::c_int,
3179        key: *const ::std::os::raw::c_void,
3180        value: *mut ::std::os::raw::c_void,
3181        flags: __u64,
3182    ) -> ::std::os::raw::c_int;
3183}
3184extern "C" {
3185    pub fn bpf_map_lookup_and_delete_elem(
3186        fd: ::std::os::raw::c_int,
3187        key: *const ::std::os::raw::c_void,
3188        value: *mut ::std::os::raw::c_void,
3189    ) -> ::std::os::raw::c_int;
3190}
3191extern "C" {
3192    pub fn bpf_map_delete_elem(
3193        fd: ::std::os::raw::c_int,
3194        key: *const ::std::os::raw::c_void,
3195    ) -> ::std::os::raw::c_int;
3196}
3197extern "C" {
3198    pub fn bpf_map_get_next_key(
3199        fd: ::std::os::raw::c_int,
3200        key: *const ::std::os::raw::c_void,
3201        next_key: *mut ::std::os::raw::c_void,
3202    ) -> ::std::os::raw::c_int;
3203}
3204extern "C" {
3205    pub fn bpf_map_freeze(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3206}
3207#[repr(C)]
3208#[derive(Debug, Copy, Clone)]
3209pub struct bpf_map_batch_opts {
3210    pub sz: size_t,
3211    pub elem_flags: __u64,
3212    pub flags: __u64,
3213}
3214extern "C" {
3215    pub fn bpf_map_delete_batch(
3216        fd: ::std::os::raw::c_int,
3217        keys: *mut ::std::os::raw::c_void,
3218        count: *mut __u32,
3219        opts: *const bpf_map_batch_opts,
3220    ) -> ::std::os::raw::c_int;
3221}
3222extern "C" {
3223    pub fn bpf_map_lookup_batch(
3224        fd: ::std::os::raw::c_int,
3225        in_batch: *mut ::std::os::raw::c_void,
3226        out_batch: *mut ::std::os::raw::c_void,
3227        keys: *mut ::std::os::raw::c_void,
3228        values: *mut ::std::os::raw::c_void,
3229        count: *mut __u32,
3230        opts: *const bpf_map_batch_opts,
3231    ) -> ::std::os::raw::c_int;
3232}
3233extern "C" {
3234    pub fn bpf_map_lookup_and_delete_batch(
3235        fd: ::std::os::raw::c_int,
3236        in_batch: *mut ::std::os::raw::c_void,
3237        out_batch: *mut ::std::os::raw::c_void,
3238        keys: *mut ::std::os::raw::c_void,
3239        values: *mut ::std::os::raw::c_void,
3240        count: *mut __u32,
3241        opts: *const bpf_map_batch_opts,
3242    ) -> ::std::os::raw::c_int;
3243}
3244extern "C" {
3245    pub fn bpf_map_update_batch(
3246        fd: ::std::os::raw::c_int,
3247        keys: *mut ::std::os::raw::c_void,
3248        values: *mut ::std::os::raw::c_void,
3249        count: *mut __u32,
3250        opts: *const bpf_map_batch_opts,
3251    ) -> ::std::os::raw::c_int;
3252}
3253extern "C" {
3254    pub fn bpf_obj_pin(
3255        fd: ::std::os::raw::c_int,
3256        pathname: *const ::std::os::raw::c_char,
3257    ) -> ::std::os::raw::c_int;
3258}
3259extern "C" {
3260    pub fn bpf_obj_get(pathname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3261}
3262#[repr(C)]
3263#[derive(Debug, Copy, Clone)]
3264pub struct bpf_prog_attach_opts {
3265    pub sz: size_t,
3266    pub flags: ::std::os::raw::c_uint,
3267    pub replace_prog_fd: ::std::os::raw::c_int,
3268}
3269extern "C" {
3270    pub fn bpf_prog_attach(
3271        prog_fd: ::std::os::raw::c_int,
3272        attachable_fd: ::std::os::raw::c_int,
3273        type_: bpf_attach_type,
3274        flags: ::std::os::raw::c_uint,
3275    ) -> ::std::os::raw::c_int;
3276}
3277extern "C" {
3278    pub fn bpf_prog_attach_xattr(
3279        prog_fd: ::std::os::raw::c_int,
3280        attachable_fd: ::std::os::raw::c_int,
3281        type_: bpf_attach_type,
3282        opts: *const bpf_prog_attach_opts,
3283    ) -> ::std::os::raw::c_int;
3284}
3285extern "C" {
3286    pub fn bpf_prog_detach(
3287        attachable_fd: ::std::os::raw::c_int,
3288        type_: bpf_attach_type,
3289    ) -> ::std::os::raw::c_int;
3290}
3291extern "C" {
3292    pub fn bpf_prog_detach2(
3293        prog_fd: ::std::os::raw::c_int,
3294        attachable_fd: ::std::os::raw::c_int,
3295        type_: bpf_attach_type,
3296    ) -> ::std::os::raw::c_int;
3297}
3298#[repr(C)]
3299#[derive(Debug, Copy, Clone)]
3300pub struct bpf_prog_test_run_attr {
3301    pub prog_fd: ::std::os::raw::c_int,
3302    pub repeat: ::std::os::raw::c_int,
3303    pub data_in: *const ::std::os::raw::c_void,
3304    pub data_size_in: __u32,
3305    pub data_out: *mut ::std::os::raw::c_void,
3306    pub data_size_out: __u32,
3307    pub retval: __u32,
3308    pub duration: __u32,
3309    pub ctx_in: *const ::std::os::raw::c_void,
3310    pub ctx_size_in: __u32,
3311    pub ctx_out: *mut ::std::os::raw::c_void,
3312    pub ctx_size_out: __u32,
3313}
3314extern "C" {
3315    pub fn bpf_prog_test_run_xattr(test_attr: *mut bpf_prog_test_run_attr)
3316        -> ::std::os::raw::c_int;
3317}
3318extern "C" {
3319    pub fn bpf_prog_test_run(
3320        prog_fd: ::std::os::raw::c_int,
3321        repeat: ::std::os::raw::c_int,
3322        data: *mut ::std::os::raw::c_void,
3323        size: __u32,
3324        data_out: *mut ::std::os::raw::c_void,
3325        size_out: *mut __u32,
3326        retval: *mut __u32,
3327        duration: *mut __u32,
3328    ) -> ::std::os::raw::c_int;
3329}
3330extern "C" {
3331    pub fn bpf_prog_get_next_id(start_id: __u32, next_id: *mut __u32) -> ::std::os::raw::c_int;
3332}
3333extern "C" {
3334    pub fn bpf_map_get_next_id(start_id: __u32, next_id: *mut __u32) -> ::std::os::raw::c_int;
3335}
3336extern "C" {
3337    pub fn bpf_btf_get_next_id(start_id: __u32, next_id: *mut __u32) -> ::std::os::raw::c_int;
3338}
3339extern "C" {
3340    pub fn bpf_prog_get_fd_by_id(id: __u32) -> ::std::os::raw::c_int;
3341}
3342extern "C" {
3343    pub fn bpf_map_get_fd_by_id(id: __u32) -> ::std::os::raw::c_int;
3344}
3345extern "C" {
3346    pub fn bpf_btf_get_fd_by_id(id: __u32) -> ::std::os::raw::c_int;
3347}
3348extern "C" {
3349    pub fn bpf_obj_get_info_by_fd(
3350        prog_fd: ::std::os::raw::c_int,
3351        info: *mut ::std::os::raw::c_void,
3352        info_len: *mut __u32,
3353    ) -> ::std::os::raw::c_int;
3354}
3355extern "C" {
3356    pub fn bpf_prog_query(
3357        target_fd: ::std::os::raw::c_int,
3358        type_: bpf_attach_type,
3359        query_flags: __u32,
3360        attach_flags: *mut __u32,
3361        prog_ids: *mut __u32,
3362        prog_cnt: *mut __u32,
3363    ) -> ::std::os::raw::c_int;
3364}
3365extern "C" {
3366    pub fn bpf_raw_tracepoint_open(
3367        name: *const ::std::os::raw::c_char,
3368        prog_fd: ::std::os::raw::c_int,
3369    ) -> ::std::os::raw::c_int;
3370}
3371extern "C" {
3372    pub fn bpf_load_btf(
3373        btf: *mut ::std::os::raw::c_void,
3374        btf_size: __u32,
3375        log_buf: *mut ::std::os::raw::c_char,
3376        log_buf_size: __u32,
3377        do_log: bool,
3378    ) -> ::std::os::raw::c_int;
3379}
3380extern "C" {
3381    pub fn bpf_task_fd_query(
3382        pid: ::std::os::raw::c_int,
3383        fd: ::std::os::raw::c_int,
3384        flags: __u32,
3385        buf: *mut ::std::os::raw::c_char,
3386        buf_len: *mut __u32,
3387        prog_id: *mut __u32,
3388        fd_type: *mut __u32,
3389        probe_offset: *mut __u64,
3390        probe_addr: *mut __u64,
3391    ) -> ::std::os::raw::c_int;
3392}
3393pub type va_list = __builtin_va_list;
3394pub type __gnuc_va_list = __builtin_va_list;
3395#[repr(C)]
3396#[derive(Debug, Copy, Clone)]
3397pub struct btf_header {
3398    pub magic: __u16,
3399    pub version: __u8,
3400    pub flags: __u8,
3401    pub hdr_len: __u32,
3402    pub type_off: __u32,
3403    pub type_len: __u32,
3404    pub str_off: __u32,
3405    pub str_len: __u32,
3406}
3407#[repr(C)]
3408#[derive(Copy, Clone)]
3409pub struct btf_type {
3410    pub name_off: __u32,
3411    pub info: __u32,
3412    pub __bindgen_anon_1: btf_type__bindgen_ty_1,
3413}
3414#[repr(C)]
3415#[derive(Copy, Clone)]
3416pub union btf_type__bindgen_ty_1 {
3417    pub size: __u32,
3418    pub type_: __u32,
3419    _bindgen_union_align: u32,
3420}
3421#[repr(C)]
3422#[derive(Debug, Copy, Clone)]
3423pub struct btf_enum {
3424    pub name_off: __u32,
3425    pub val: __s32,
3426}
3427#[repr(C)]
3428#[derive(Debug, Copy, Clone)]
3429pub struct btf_array {
3430    pub type_: __u32,
3431    pub index_type: __u32,
3432    pub nelems: __u32,
3433}
3434#[repr(C)]
3435#[derive(Debug, Copy, Clone)]
3436pub struct btf_member {
3437    pub name_off: __u32,
3438    pub type_: __u32,
3439    pub offset: __u32,
3440}
3441#[repr(C)]
3442#[derive(Debug, Copy, Clone)]
3443pub struct btf_param {
3444    pub name_off: __u32,
3445    pub type_: __u32,
3446}
3447pub const BTF_VAR_STATIC: _bindgen_ty_48 = 0;
3448pub const BTF_VAR_GLOBAL_ALLOCATED: _bindgen_ty_48 = 1;
3449pub type _bindgen_ty_48 = u32;
3450#[repr(C)]
3451#[derive(Debug, Copy, Clone)]
3452pub struct btf_var {
3453    pub linkage: __u32,
3454}
3455#[repr(C)]
3456#[derive(Debug, Copy, Clone)]
3457pub struct btf_var_secinfo {
3458    pub type_: __u32,
3459    pub offset: __u32,
3460    pub size: __u32,
3461}
3462#[repr(C)]
3463#[derive(Debug, Copy, Clone)]
3464pub struct btf {
3465    _unused: [u8; 0],
3466}
3467#[repr(C)]
3468#[derive(Debug, Copy, Clone)]
3469pub struct btf_ext {
3470    _unused: [u8; 0],
3471}
3472#[repr(C)]
3473#[derive(Debug, Copy, Clone)]
3474pub struct bpf_object {
3475    _unused: [u8; 0],
3476}
3477#[repr(C)]
3478#[derive(Debug, Copy, Clone)]
3479pub struct btf_ext_header {
3480    pub magic: __u16,
3481    pub version: __u8,
3482    pub flags: __u8,
3483    pub hdr_len: __u32,
3484    pub func_info_off: __u32,
3485    pub func_info_len: __u32,
3486    pub line_info_off: __u32,
3487    pub line_info_len: __u32,
3488    pub field_reloc_off: __u32,
3489    pub field_reloc_len: __u32,
3490}
3491extern "C" {
3492    pub fn btf__free(btf: *mut btf);
3493}
3494extern "C" {
3495    pub fn btf__new(data: *mut __u8, size: __u32) -> *mut btf;
3496}
3497extern "C" {
3498    pub fn btf__parse_elf(
3499        path: *const ::std::os::raw::c_char,
3500        btf_ext: *mut *mut btf_ext,
3501    ) -> *mut btf;
3502}
3503extern "C" {
3504    pub fn btf__finalize_data(obj: *mut bpf_object, btf: *mut btf) -> ::std::os::raw::c_int;
3505}
3506extern "C" {
3507    pub fn btf__load(btf: *mut btf) -> ::std::os::raw::c_int;
3508}
3509extern "C" {
3510    pub fn btf__find_by_name(btf: *const btf, type_name: *const ::std::os::raw::c_char) -> __s32;
3511}
3512extern "C" {
3513    pub fn btf__find_by_name_kind(
3514        btf: *const btf,
3515        type_name: *const ::std::os::raw::c_char,
3516        kind: __u32,
3517    ) -> __s32;
3518}
3519extern "C" {
3520    pub fn btf__get_nr_types(btf: *const btf) -> __u32;
3521}
3522extern "C" {
3523    pub fn btf__type_by_id(btf: *const btf, id: __u32) -> *const btf_type;
3524}
3525extern "C" {
3526    pub fn btf__resolve_size(btf: *const btf, type_id: __u32) -> __s64;
3527}
3528extern "C" {
3529    pub fn btf__resolve_type(btf: *const btf, type_id: __u32) -> ::std::os::raw::c_int;
3530}
3531extern "C" {
3532    pub fn btf__align_of(btf: *const btf, id: __u32) -> ::std::os::raw::c_int;
3533}
3534extern "C" {
3535    pub fn btf__fd(btf: *const btf) -> ::std::os::raw::c_int;
3536}
3537extern "C" {
3538    pub fn btf__get_raw_data(btf: *const btf, size: *mut __u32) -> *const ::std::os::raw::c_void;
3539}
3540extern "C" {
3541    pub fn btf__name_by_offset(btf: *const btf, offset: __u32) -> *const ::std::os::raw::c_char;
3542}
3543extern "C" {
3544    pub fn btf__get_from_id(id: __u32, btf: *mut *mut btf) -> ::std::os::raw::c_int;
3545}
3546extern "C" {
3547    pub fn btf__get_map_kv_tids(
3548        btf: *const btf,
3549        map_name: *const ::std::os::raw::c_char,
3550        expected_key_size: __u32,
3551        expected_value_size: __u32,
3552        key_type_id: *mut __u32,
3553        value_type_id: *mut __u32,
3554    ) -> ::std::os::raw::c_int;
3555}
3556extern "C" {
3557    pub fn btf_ext__new(data: *mut __u8, size: __u32) -> *mut btf_ext;
3558}
3559extern "C" {
3560    pub fn btf_ext__free(btf_ext: *mut btf_ext);
3561}
3562extern "C" {
3563    pub fn btf_ext__get_raw_data(
3564        btf_ext: *const btf_ext,
3565        size: *mut __u32,
3566    ) -> *const ::std::os::raw::c_void;
3567}
3568extern "C" {
3569    pub fn btf_ext__reloc_func_info(
3570        btf: *const btf,
3571        btf_ext: *const btf_ext,
3572        sec_name: *const ::std::os::raw::c_char,
3573        insns_cnt: __u32,
3574        func_info: *mut *mut ::std::os::raw::c_void,
3575        cnt: *mut __u32,
3576    ) -> ::std::os::raw::c_int;
3577}
3578extern "C" {
3579    pub fn btf_ext__reloc_line_info(
3580        btf: *const btf,
3581        btf_ext: *const btf_ext,
3582        sec_name: *const ::std::os::raw::c_char,
3583        insns_cnt: __u32,
3584        line_info: *mut *mut ::std::os::raw::c_void,
3585        cnt: *mut __u32,
3586    ) -> ::std::os::raw::c_int;
3587}
3588extern "C" {
3589    pub fn btf_ext__func_info_rec_size(btf_ext: *const btf_ext) -> __u32;
3590}
3591extern "C" {
3592    pub fn btf_ext__line_info_rec_size(btf_ext: *const btf_ext) -> __u32;
3593}
3594extern "C" {
3595    pub fn libbpf_find_kernel_btf() -> *mut btf;
3596}
3597#[repr(C)]
3598#[derive(Debug, Copy, Clone)]
3599pub struct btf_dedup_opts {
3600    pub dedup_table_size: ::std::os::raw::c_uint,
3601    pub dont_resolve_fwds: bool,
3602}
3603extern "C" {
3604    pub fn btf__dedup(
3605        btf: *mut btf,
3606        btf_ext: *mut btf_ext,
3607        opts: *const btf_dedup_opts,
3608    ) -> ::std::os::raw::c_int;
3609}
3610#[repr(C)]
3611#[derive(Debug, Copy, Clone)]
3612pub struct btf_dump {
3613    _unused: [u8; 0],
3614}
3615#[repr(C)]
3616#[derive(Debug, Copy, Clone)]
3617pub struct btf_dump_opts {
3618    pub ctx: *mut ::std::os::raw::c_void,
3619}
3620pub type btf_dump_printf_fn_t = ::std::option::Option<
3621    unsafe extern "C" fn(
3622        ctx: *mut ::std::os::raw::c_void,
3623        fmt: *const ::std::os::raw::c_char,
3624        args: *mut __va_list_tag,
3625    ),
3626>;
3627extern "C" {
3628    pub fn btf_dump__new(
3629        btf: *const btf,
3630        btf_ext: *const btf_ext,
3631        opts: *const btf_dump_opts,
3632        printf_fn: btf_dump_printf_fn_t,
3633    ) -> *mut btf_dump;
3634}
3635extern "C" {
3636    pub fn btf_dump__free(d: *mut btf_dump);
3637}
3638extern "C" {
3639    pub fn btf_dump__dump_type(d: *mut btf_dump, id: __u32) -> ::std::os::raw::c_int;
3640}
3641#[repr(C)]
3642#[derive(Debug, Copy, Clone)]
3643pub struct btf_dump_emit_type_decl_opts {
3644    pub sz: size_t,
3645    pub field_name: *const ::std::os::raw::c_char,
3646    pub indent_level: ::std::os::raw::c_int,
3647}
3648extern "C" {
3649    pub fn btf_dump__emit_type_decl(
3650        d: *mut btf_dump,
3651        id: __u32,
3652        opts: *const btf_dump_emit_type_decl_opts,
3653    ) -> ::std::os::raw::c_int;
3654}
3655#[repr(C)]
3656#[derive(Copy, Clone)]
3657pub struct __mbstate_t {
3658    pub __count: ::std::os::raw::c_int,
3659    pub __value: __mbstate_t__bindgen_ty_1,
3660}
3661#[repr(C)]
3662#[derive(Copy, Clone)]
3663pub union __mbstate_t__bindgen_ty_1 {
3664    pub __wch: ::std::os::raw::c_uint,
3665    pub __wchb: [::std::os::raw::c_char; 4usize],
3666    _bindgen_union_align: u32,
3667}
3668#[repr(C)]
3669#[derive(Copy, Clone)]
3670pub struct _G_fpos_t {
3671    pub __pos: __off_t,
3672    pub __state: __mbstate_t,
3673}
3674pub type __fpos_t = _G_fpos_t;
3675#[repr(C)]
3676#[derive(Copy, Clone)]
3677pub struct _G_fpos64_t {
3678    pub __pos: __off64_t,
3679    pub __state: __mbstate_t,
3680}
3681pub type __fpos64_t = _G_fpos64_t;
3682pub type __FILE = _IO_FILE;
3683pub type FILE = _IO_FILE;
3684#[repr(C)]
3685#[derive(Debug, Copy, Clone)]
3686pub struct _IO_marker {
3687    _unused: [u8; 0],
3688}
3689#[repr(C)]
3690#[derive(Debug, Copy, Clone)]
3691pub struct _IO_codecvt {
3692    _unused: [u8; 0],
3693}
3694#[repr(C)]
3695#[derive(Debug, Copy, Clone)]
3696pub struct _IO_wide_data {
3697    _unused: [u8; 0],
3698}
3699pub type _IO_lock_t = ::std::os::raw::c_void;
3700#[repr(C)]
3701#[derive(Debug, Copy, Clone)]
3702pub struct _IO_FILE {
3703    pub _flags: ::std::os::raw::c_int,
3704    pub _IO_read_ptr: *mut ::std::os::raw::c_char,
3705    pub _IO_read_end: *mut ::std::os::raw::c_char,
3706    pub _IO_read_base: *mut ::std::os::raw::c_char,
3707    pub _IO_write_base: *mut ::std::os::raw::c_char,
3708    pub _IO_write_ptr: *mut ::std::os::raw::c_char,
3709    pub _IO_write_end: *mut ::std::os::raw::c_char,
3710    pub _IO_buf_base: *mut ::std::os::raw::c_char,
3711    pub _IO_buf_end: *mut ::std::os::raw::c_char,
3712    pub _IO_save_base: *mut ::std::os::raw::c_char,
3713    pub _IO_backup_base: *mut ::std::os::raw::c_char,
3714    pub _IO_save_end: *mut ::std::os::raw::c_char,
3715    pub _markers: *mut _IO_marker,
3716    pub _chain: *mut _IO_FILE,
3717    pub _fileno: ::std::os::raw::c_int,
3718    pub _flags2: ::std::os::raw::c_int,
3719    pub _old_offset: __off_t,
3720    pub _cur_column: ::std::os::raw::c_ushort,
3721    pub _vtable_offset: ::std::os::raw::c_schar,
3722    pub _shortbuf: [::std::os::raw::c_char; 1usize],
3723    pub _lock: *mut _IO_lock_t,
3724    pub _offset: __off64_t,
3725    pub _codecvt: *mut _IO_codecvt,
3726    pub _wide_data: *mut _IO_wide_data,
3727    pub _freeres_list: *mut _IO_FILE,
3728    pub _freeres_buf: *mut ::std::os::raw::c_void,
3729    pub __pad5: size_t,
3730    pub _mode: ::std::os::raw::c_int,
3731    pub _unused2: [::std::os::raw::c_char; 20usize],
3732}
3733pub type off_t = __off_t;
3734pub type ssize_t = __ssize_t;
3735pub type fpos_t = __fpos_t;
3736extern "C" {
3737    pub static mut stdin: *mut FILE;
3738}
3739extern "C" {
3740    pub static mut stdout: *mut FILE;
3741}
3742extern "C" {
3743    pub static mut stderr: *mut FILE;
3744}
3745extern "C" {
3746    pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3747}
3748extern "C" {
3749    pub fn rename(
3750        __old: *const ::std::os::raw::c_char,
3751        __new: *const ::std::os::raw::c_char,
3752    ) -> ::std::os::raw::c_int;
3753}
3754extern "C" {
3755    pub fn renameat(
3756        __oldfd: ::std::os::raw::c_int,
3757        __old: *const ::std::os::raw::c_char,
3758        __newfd: ::std::os::raw::c_int,
3759        __new: *const ::std::os::raw::c_char,
3760    ) -> ::std::os::raw::c_int;
3761}
3762extern "C" {
3763    pub fn tmpfile() -> *mut FILE;
3764}
3765extern "C" {
3766    pub fn tmpnam(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
3767}
3768extern "C" {
3769    pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
3770}
3771extern "C" {
3772    pub fn tempnam(
3773        __dir: *const ::std::os::raw::c_char,
3774        __pfx: *const ::std::os::raw::c_char,
3775    ) -> *mut ::std::os::raw::c_char;
3776}
3777extern "C" {
3778    pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
3779}
3780extern "C" {
3781    pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int;
3782}
3783extern "C" {
3784    pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
3785}
3786extern "C" {
3787    pub fn fopen(
3788        __filename: *const ::std::os::raw::c_char,
3789        __modes: *const ::std::os::raw::c_char,
3790    ) -> *mut FILE;
3791}
3792extern "C" {
3793    pub fn freopen(
3794        __filename: *const ::std::os::raw::c_char,
3795        __modes: *const ::std::os::raw::c_char,
3796        __stream: *mut FILE,
3797    ) -> *mut FILE;
3798}
3799extern "C" {
3800    pub fn fdopen(__fd: ::std::os::raw::c_int, __modes: *const ::std::os::raw::c_char)
3801        -> *mut FILE;
3802}
3803extern "C" {
3804    pub fn fmemopen(
3805        __s: *mut ::std::os::raw::c_void,
3806        __len: size_t,
3807        __modes: *const ::std::os::raw::c_char,
3808    ) -> *mut FILE;
3809}
3810extern "C" {
3811    pub fn open_memstream(
3812        __bufloc: *mut *mut ::std::os::raw::c_char,
3813        __sizeloc: *mut size_t,
3814    ) -> *mut FILE;
3815}
3816extern "C" {
3817    pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char);
3818}
3819extern "C" {
3820    pub fn setvbuf(
3821        __stream: *mut FILE,
3822        __buf: *mut ::std::os::raw::c_char,
3823        __modes: ::std::os::raw::c_int,
3824        __n: size_t,
3825    ) -> ::std::os::raw::c_int;
3826}
3827extern "C" {
3828    pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, __size: size_t);
3829}
3830extern "C" {
3831    pub fn setlinebuf(__stream: *mut FILE);
3832}
3833extern "C" {
3834    pub fn fprintf(
3835        __stream: *mut FILE,
3836        __format: *const ::std::os::raw::c_char,
3837        ...
3838    ) -> ::std::os::raw::c_int;
3839}
3840extern "C" {
3841    pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
3842}
3843extern "C" {
3844    pub fn sprintf(
3845        __s: *mut ::std::os::raw::c_char,
3846        __format: *const ::std::os::raw::c_char,
3847        ...
3848    ) -> ::std::os::raw::c_int;
3849}
3850extern "C" {
3851    pub fn vfprintf(
3852        __s: *mut FILE,
3853        __format: *const ::std::os::raw::c_char,
3854        __arg: *mut __va_list_tag,
3855    ) -> ::std::os::raw::c_int;
3856}
3857extern "C" {
3858    pub fn vprintf(
3859        __format: *const ::std::os::raw::c_char,
3860        __arg: *mut __va_list_tag,
3861    ) -> ::std::os::raw::c_int;
3862}
3863extern "C" {
3864    pub fn vsprintf(
3865        __s: *mut ::std::os::raw::c_char,
3866        __format: *const ::std::os::raw::c_char,
3867        __arg: *mut __va_list_tag,
3868    ) -> ::std::os::raw::c_int;
3869}
3870extern "C" {
3871    pub fn snprintf(
3872        __s: *mut ::std::os::raw::c_char,
3873        __maxlen: ::std::os::raw::c_ulong,
3874        __format: *const ::std::os::raw::c_char,
3875        ...
3876    ) -> ::std::os::raw::c_int;
3877}
3878extern "C" {
3879    pub fn vsnprintf(
3880        __s: *mut ::std::os::raw::c_char,
3881        __maxlen: ::std::os::raw::c_ulong,
3882        __format: *const ::std::os::raw::c_char,
3883        __arg: *mut __va_list_tag,
3884    ) -> ::std::os::raw::c_int;
3885}
3886extern "C" {
3887    pub fn vdprintf(
3888        __fd: ::std::os::raw::c_int,
3889        __fmt: *const ::std::os::raw::c_char,
3890        __arg: *mut __va_list_tag,
3891    ) -> ::std::os::raw::c_int;
3892}
3893extern "C" {
3894    pub fn dprintf(
3895        __fd: ::std::os::raw::c_int,
3896        __fmt: *const ::std::os::raw::c_char,
3897        ...
3898    ) -> ::std::os::raw::c_int;
3899}
3900extern "C" {
3901    pub fn fscanf(
3902        __stream: *mut FILE,
3903        __format: *const ::std::os::raw::c_char,
3904        ...
3905    ) -> ::std::os::raw::c_int;
3906}
3907extern "C" {
3908    pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
3909}
3910extern "C" {
3911    pub fn sscanf(
3912        __s: *const ::std::os::raw::c_char,
3913        __format: *const ::std::os::raw::c_char,
3914        ...
3915    ) -> ::std::os::raw::c_int;
3916}
3917extern "C" {
3918    #[link_name = "\u{1}__isoc99_fscanf"]
3919    pub fn fscanf1(
3920        __stream: *mut FILE,
3921        __format: *const ::std::os::raw::c_char,
3922        ...
3923    ) -> ::std::os::raw::c_int;
3924}
3925extern "C" {
3926    #[link_name = "\u{1}__isoc99_scanf"]
3927    pub fn scanf1(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
3928}
3929extern "C" {
3930    #[link_name = "\u{1}__isoc99_sscanf"]
3931    pub fn sscanf1(
3932        __s: *const ::std::os::raw::c_char,
3933        __format: *const ::std::os::raw::c_char,
3934        ...
3935    ) -> ::std::os::raw::c_int;
3936}
3937extern "C" {
3938    pub fn vfscanf(
3939        __s: *mut FILE,
3940        __format: *const ::std::os::raw::c_char,
3941        __arg: *mut __va_list_tag,
3942    ) -> ::std::os::raw::c_int;
3943}
3944extern "C" {
3945    pub fn vscanf(
3946        __format: *const ::std::os::raw::c_char,
3947        __arg: *mut __va_list_tag,
3948    ) -> ::std::os::raw::c_int;
3949}
3950extern "C" {
3951    pub fn vsscanf(
3952        __s: *const ::std::os::raw::c_char,
3953        __format: *const ::std::os::raw::c_char,
3954        __arg: *mut __va_list_tag,
3955    ) -> ::std::os::raw::c_int;
3956}
3957extern "C" {
3958    #[link_name = "\u{1}__isoc99_vfscanf"]
3959    pub fn vfscanf1(
3960        __s: *mut FILE,
3961        __format: *const ::std::os::raw::c_char,
3962        __arg: *mut __va_list_tag,
3963    ) -> ::std::os::raw::c_int;
3964}
3965extern "C" {
3966    #[link_name = "\u{1}__isoc99_vscanf"]
3967    pub fn vscanf1(
3968        __format: *const ::std::os::raw::c_char,
3969        __arg: *mut __va_list_tag,
3970    ) -> ::std::os::raw::c_int;
3971}
3972extern "C" {
3973    #[link_name = "\u{1}__isoc99_vsscanf"]
3974    pub fn vsscanf1(
3975        __s: *const ::std::os::raw::c_char,
3976        __format: *const ::std::os::raw::c_char,
3977        __arg: *mut __va_list_tag,
3978    ) -> ::std::os::raw::c_int;
3979}
3980extern "C" {
3981    pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int;
3982}
3983extern "C" {
3984    pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int;
3985}
3986extern "C" {
3987    pub fn getchar() -> ::std::os::raw::c_int;
3988}
3989extern "C" {
3990    pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
3991}
3992extern "C" {
3993    pub fn getchar_unlocked() -> ::std::os::raw::c_int;
3994}
3995extern "C" {
3996    pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
3997}
3998extern "C" {
3999    pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
4000}
4001extern "C" {
4002    pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
4003}
4004extern "C" {
4005    pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4006}
4007extern "C" {
4008    pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE)
4009        -> ::std::os::raw::c_int;
4010}
4011extern "C" {
4012    pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
4013}
4014extern "C" {
4015    pub fn putchar_unlocked(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4016}
4017extern "C" {
4018    pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int;
4019}
4020extern "C" {
4021    pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
4022}
4023extern "C" {
4024    pub fn fgets(
4025        __s: *mut ::std::os::raw::c_char,
4026        __n: ::std::os::raw::c_int,
4027        __stream: *mut FILE,
4028    ) -> *mut ::std::os::raw::c_char;
4029}
4030extern "C" {
4031    pub fn __getdelim(
4032        __lineptr: *mut *mut ::std::os::raw::c_char,
4033        __n: *mut size_t,
4034        __delimiter: ::std::os::raw::c_int,
4035        __stream: *mut FILE,
4036    ) -> __ssize_t;
4037}
4038extern "C" {
4039    pub fn getdelim(
4040        __lineptr: *mut *mut ::std::os::raw::c_char,
4041        __n: *mut size_t,
4042        __delimiter: ::std::os::raw::c_int,
4043        __stream: *mut FILE,
4044    ) -> __ssize_t;
4045}
4046extern "C" {
4047    pub fn getline(
4048        __lineptr: *mut *mut ::std::os::raw::c_char,
4049        __n: *mut size_t,
4050        __stream: *mut FILE,
4051    ) -> __ssize_t;
4052}
4053extern "C" {
4054    pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int;
4055}
4056extern "C" {
4057    pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
4058}
4059extern "C" {
4060    pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
4061}
4062extern "C" {
4063    pub fn fread(
4064        __ptr: *mut ::std::os::raw::c_void,
4065        __size: ::std::os::raw::c_ulong,
4066        __n: ::std::os::raw::c_ulong,
4067        __stream: *mut FILE,
4068    ) -> ::std::os::raw::c_ulong;
4069}
4070extern "C" {
4071    pub fn fwrite(
4072        __ptr: *const ::std::os::raw::c_void,
4073        __size: ::std::os::raw::c_ulong,
4074        __n: ::std::os::raw::c_ulong,
4075        __s: *mut FILE,
4076    ) -> ::std::os::raw::c_ulong;
4077}
4078extern "C" {
4079    pub fn fread_unlocked(
4080        __ptr: *mut ::std::os::raw::c_void,
4081        __size: size_t,
4082        __n: size_t,
4083        __stream: *mut FILE,
4084    ) -> size_t;
4085}
4086extern "C" {
4087    pub fn fwrite_unlocked(
4088        __ptr: *const ::std::os::raw::c_void,
4089        __size: size_t,
4090        __n: size_t,
4091        __stream: *mut FILE,
4092    ) -> size_t;
4093}
4094extern "C" {
4095    pub fn fseek(
4096        __stream: *mut FILE,
4097        __off: ::std::os::raw::c_long,
4098        __whence: ::std::os::raw::c_int,
4099    ) -> ::std::os::raw::c_int;
4100}
4101extern "C" {
4102    pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long;
4103}
4104extern "C" {
4105    pub fn rewind(__stream: *mut FILE);
4106}
4107extern "C" {
4108    pub fn fseeko(
4109        __stream: *mut FILE,
4110        __off: __off_t,
4111        __whence: ::std::os::raw::c_int,
4112    ) -> ::std::os::raw::c_int;
4113}
4114extern "C" {
4115    pub fn ftello(__stream: *mut FILE) -> __off_t;
4116}
4117extern "C" {
4118    pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int;
4119}
4120extern "C" {
4121    pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int;
4122}
4123extern "C" {
4124    pub fn clearerr(__stream: *mut FILE);
4125}
4126extern "C" {
4127    pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int;
4128}
4129extern "C" {
4130    pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int;
4131}
4132extern "C" {
4133    pub fn clearerr_unlocked(__stream: *mut FILE);
4134}
4135extern "C" {
4136    pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
4137}
4138extern "C" {
4139    pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
4140}
4141extern "C" {
4142    pub fn perror(__s: *const ::std::os::raw::c_char);
4143}
4144extern "C" {
4145    pub static mut sys_nerr: ::std::os::raw::c_int;
4146}
4147extern "C" {
4148    pub static mut sys_errlist: [*const ::std::os::raw::c_char; 0usize];
4149}
4150extern "C" {
4151    pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int;
4152}
4153extern "C" {
4154    pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
4155}
4156extern "C" {
4157    pub fn popen(
4158        __command: *const ::std::os::raw::c_char,
4159        __modes: *const ::std::os::raw::c_char,
4160    ) -> *mut FILE;
4161}
4162extern "C" {
4163    pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
4164}
4165extern "C" {
4166    pub fn ctermid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
4167}
4168extern "C" {
4169    pub fn flockfile(__stream: *mut FILE);
4170}
4171extern "C" {
4172    pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int;
4173}
4174extern "C" {
4175    pub fn funlockfile(__stream: *mut FILE);
4176}
4177extern "C" {
4178    pub fn __uflow(arg1: *mut FILE) -> ::std::os::raw::c_int;
4179}
4180extern "C" {
4181    pub fn __overflow(arg1: *mut FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4182}
4183pub type u_char = __u_char;
4184pub type u_short = __u_short;
4185pub type u_int = __u_int;
4186pub type u_long = __u_long;
4187pub type quad_t = __quad_t;
4188pub type u_quad_t = __u_quad_t;
4189pub type fsid_t = __fsid_t;
4190pub type loff_t = __loff_t;
4191pub type ino_t = __ino_t;
4192pub type dev_t = __dev_t;
4193pub type gid_t = __gid_t;
4194pub type mode_t = __mode_t;
4195pub type nlink_t = __nlink_t;
4196pub type uid_t = __uid_t;
4197pub type pid_t = __pid_t;
4198pub type id_t = __id_t;
4199pub type daddr_t = __daddr_t;
4200pub type caddr_t = __caddr_t;
4201pub type key_t = __key_t;
4202pub type clock_t = __clock_t;
4203pub type clockid_t = __clockid_t;
4204pub type time_t = __time_t;
4205pub type timer_t = __timer_t;
4206pub type ulong = ::std::os::raw::c_ulong;
4207pub type ushort = ::std::os::raw::c_ushort;
4208pub type uint = ::std::os::raw::c_uint;
4209pub type u_int8_t = __uint8_t;
4210pub type u_int16_t = __uint16_t;
4211pub type u_int32_t = __uint32_t;
4212pub type u_int64_t = __uint64_t;
4213pub type register_t = ::std::os::raw::c_long;
4214#[repr(C)]
4215#[derive(Debug, Copy, Clone)]
4216pub struct __sigset_t {
4217    pub __val: [::std::os::raw::c_ulong; 16usize],
4218}
4219pub type sigset_t = __sigset_t;
4220#[repr(C)]
4221#[derive(Debug, Copy, Clone)]
4222pub struct timeval {
4223    pub tv_sec: __time_t,
4224    pub tv_usec: __suseconds_t,
4225}
4226#[repr(C)]
4227#[derive(Debug, Copy, Clone)]
4228pub struct timespec {
4229    pub tv_sec: __time_t,
4230    pub tv_nsec: __syscall_slong_t,
4231}
4232pub type suseconds_t = __suseconds_t;
4233pub type __fd_mask = ::std::os::raw::c_long;
4234#[repr(C)]
4235#[derive(Debug, Copy, Clone)]
4236pub struct fd_set {
4237    pub __fds_bits: [__fd_mask; 16usize],
4238}
4239pub type fd_mask = __fd_mask;
4240extern "C" {
4241    pub fn select(
4242        __nfds: ::std::os::raw::c_int,
4243        __readfds: *mut fd_set,
4244        __writefds: *mut fd_set,
4245        __exceptfds: *mut fd_set,
4246        __timeout: *mut timeval,
4247    ) -> ::std::os::raw::c_int;
4248}
4249extern "C" {
4250    pub fn pselect(
4251        __nfds: ::std::os::raw::c_int,
4252        __readfds: *mut fd_set,
4253        __writefds: *mut fd_set,
4254        __exceptfds: *mut fd_set,
4255        __timeout: *const timespec,
4256        __sigmask: *const __sigset_t,
4257    ) -> ::std::os::raw::c_int;
4258}
4259pub type blksize_t = __blksize_t;
4260pub type blkcnt_t = __blkcnt_t;
4261pub type fsblkcnt_t = __fsblkcnt_t;
4262pub type fsfilcnt_t = __fsfilcnt_t;
4263#[repr(C)]
4264#[derive(Debug, Copy, Clone)]
4265pub struct __pthread_rwlock_arch_t {
4266    pub __readers: ::std::os::raw::c_uint,
4267    pub __writers: ::std::os::raw::c_uint,
4268    pub __wrphase_futex: ::std::os::raw::c_uint,
4269    pub __writers_futex: ::std::os::raw::c_uint,
4270    pub __pad3: ::std::os::raw::c_uint,
4271    pub __pad4: ::std::os::raw::c_uint,
4272    pub __cur_writer: ::std::os::raw::c_int,
4273    pub __shared: ::std::os::raw::c_int,
4274    pub __rwelision: ::std::os::raw::c_schar,
4275    pub __pad1: [::std::os::raw::c_uchar; 7usize],
4276    pub __pad2: ::std::os::raw::c_ulong,
4277    pub __flags: ::std::os::raw::c_uint,
4278}
4279#[repr(C)]
4280#[derive(Debug, Copy, Clone)]
4281pub struct __pthread_internal_list {
4282    pub __prev: *mut __pthread_internal_list,
4283    pub __next: *mut __pthread_internal_list,
4284}
4285pub type __pthread_list_t = __pthread_internal_list;
4286#[repr(C)]
4287#[derive(Debug, Copy, Clone)]
4288pub struct __pthread_mutex_s {
4289    pub __lock: ::std::os::raw::c_int,
4290    pub __count: ::std::os::raw::c_uint,
4291    pub __owner: ::std::os::raw::c_int,
4292    pub __nusers: ::std::os::raw::c_uint,
4293    pub __kind: ::std::os::raw::c_int,
4294    pub __spins: ::std::os::raw::c_short,
4295    pub __elision: ::std::os::raw::c_short,
4296    pub __list: __pthread_list_t,
4297}
4298#[repr(C)]
4299#[derive(Copy, Clone)]
4300pub struct __pthread_cond_s {
4301    pub __bindgen_anon_1: __pthread_cond_s__bindgen_ty_1,
4302    pub __bindgen_anon_2: __pthread_cond_s__bindgen_ty_2,
4303    pub __g_refs: [::std::os::raw::c_uint; 2usize],
4304    pub __g_size: [::std::os::raw::c_uint; 2usize],
4305    pub __g1_orig_size: ::std::os::raw::c_uint,
4306    pub __wrefs: ::std::os::raw::c_uint,
4307    pub __g_signals: [::std::os::raw::c_uint; 2usize],
4308}
4309#[repr(C)]
4310#[derive(Copy, Clone)]
4311pub union __pthread_cond_s__bindgen_ty_1 {
4312    pub __wseq: ::std::os::raw::c_ulonglong,
4313    pub __wseq32: __pthread_cond_s__bindgen_ty_1__bindgen_ty_1,
4314    _bindgen_union_align: u64,
4315}
4316#[repr(C)]
4317#[derive(Debug, Copy, Clone)]
4318pub struct __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 {
4319    pub __low: ::std::os::raw::c_uint,
4320    pub __high: ::std::os::raw::c_uint,
4321}
4322#[repr(C)]
4323#[derive(Copy, Clone)]
4324pub union __pthread_cond_s__bindgen_ty_2 {
4325    pub __g1_start: ::std::os::raw::c_ulonglong,
4326    pub __g1_start32: __pthread_cond_s__bindgen_ty_2__bindgen_ty_1,
4327    _bindgen_union_align: u64,
4328}
4329#[repr(C)]
4330#[derive(Debug, Copy, Clone)]
4331pub struct __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 {
4332    pub __low: ::std::os::raw::c_uint,
4333    pub __high: ::std::os::raw::c_uint,
4334}
4335pub type pthread_t = ::std::os::raw::c_ulong;
4336#[repr(C)]
4337#[derive(Copy, Clone)]
4338pub union pthread_mutexattr_t {
4339    pub __size: [::std::os::raw::c_char; 4usize],
4340    pub __align: ::std::os::raw::c_int,
4341    _bindgen_union_align: u32,
4342}
4343#[repr(C)]
4344#[derive(Copy, Clone)]
4345pub union pthread_condattr_t {
4346    pub __size: [::std::os::raw::c_char; 4usize],
4347    pub __align: ::std::os::raw::c_int,
4348    _bindgen_union_align: u32,
4349}
4350pub type pthread_key_t = ::std::os::raw::c_uint;
4351pub type pthread_once_t = ::std::os::raw::c_int;
4352#[repr(C)]
4353#[derive(Copy, Clone)]
4354pub union pthread_attr_t {
4355    pub __size: [::std::os::raw::c_char; 56usize],
4356    pub __align: ::std::os::raw::c_long,
4357    _bindgen_union_align: [u64; 7usize],
4358}
4359#[repr(C)]
4360#[derive(Copy, Clone)]
4361pub union pthread_mutex_t {
4362    pub __data: __pthread_mutex_s,
4363    pub __size: [::std::os::raw::c_char; 40usize],
4364    pub __align: ::std::os::raw::c_long,
4365    _bindgen_union_align: [u64; 5usize],
4366}
4367#[repr(C)]
4368#[derive(Copy, Clone)]
4369pub union pthread_cond_t {
4370    pub __data: __pthread_cond_s,
4371    pub __size: [::std::os::raw::c_char; 48usize],
4372    pub __align: ::std::os::raw::c_longlong,
4373    _bindgen_union_align: [u64; 6usize],
4374}
4375#[repr(C)]
4376#[derive(Copy, Clone)]
4377pub union pthread_rwlock_t {
4378    pub __data: __pthread_rwlock_arch_t,
4379    pub __size: [::std::os::raw::c_char; 56usize],
4380    pub __align: ::std::os::raw::c_long,
4381    _bindgen_union_align: [u64; 7usize],
4382}
4383#[repr(C)]
4384#[derive(Copy, Clone)]
4385pub union pthread_rwlockattr_t {
4386    pub __size: [::std::os::raw::c_char; 8usize],
4387    pub __align: ::std::os::raw::c_long,
4388    _bindgen_union_align: u64,
4389}
4390pub type pthread_spinlock_t = ::std::os::raw::c_int;
4391#[repr(C)]
4392#[derive(Copy, Clone)]
4393pub union pthread_barrier_t {
4394    pub __size: [::std::os::raw::c_char; 32usize],
4395    pub __align: ::std::os::raw::c_long,
4396    _bindgen_union_align: [u64; 4usize],
4397}
4398#[repr(C)]
4399#[derive(Copy, Clone)]
4400pub union pthread_barrierattr_t {
4401    pub __size: [::std::os::raw::c_char; 4usize],
4402    pub __align: ::std::os::raw::c_int,
4403    _bindgen_union_align: u32,
4404}
4405pub const libbpf_errno___LIBBPF_ERRNO__START: libbpf_errno = 4000;
4406pub const libbpf_errno_LIBBPF_ERRNO__LIBELF: libbpf_errno = 4000;
4407pub const libbpf_errno_LIBBPF_ERRNO__FORMAT: libbpf_errno = 4001;
4408pub const libbpf_errno_LIBBPF_ERRNO__KVERSION: libbpf_errno = 4002;
4409pub const libbpf_errno_LIBBPF_ERRNO__ENDIAN: libbpf_errno = 4003;
4410pub const libbpf_errno_LIBBPF_ERRNO__INTERNAL: libbpf_errno = 4004;
4411pub const libbpf_errno_LIBBPF_ERRNO__RELOC: libbpf_errno = 4005;
4412pub const libbpf_errno_LIBBPF_ERRNO__LOAD: libbpf_errno = 4006;
4413pub const libbpf_errno_LIBBPF_ERRNO__VERIFY: libbpf_errno = 4007;
4414pub const libbpf_errno_LIBBPF_ERRNO__PROG2BIG: libbpf_errno = 4008;
4415pub const libbpf_errno_LIBBPF_ERRNO__KVER: libbpf_errno = 4009;
4416pub const libbpf_errno_LIBBPF_ERRNO__PROGTYPE: libbpf_errno = 4010;
4417pub const libbpf_errno_LIBBPF_ERRNO__WRNGPID: libbpf_errno = 4011;
4418pub const libbpf_errno_LIBBPF_ERRNO__INVSEQ: libbpf_errno = 4012;
4419pub const libbpf_errno_LIBBPF_ERRNO__NLPARSE: libbpf_errno = 4013;
4420pub const libbpf_errno___LIBBPF_ERRNO__END: libbpf_errno = 4014;
4421pub type libbpf_errno = u32;
4422extern "C" {
4423    pub fn libbpf_strerror(
4424        err: ::std::os::raw::c_int,
4425        buf: *mut ::std::os::raw::c_char,
4426        size: size_t,
4427    ) -> ::std::os::raw::c_int;
4428}
4429pub const libbpf_print_level_LIBBPF_WARN: libbpf_print_level = 0;
4430pub const libbpf_print_level_LIBBPF_INFO: libbpf_print_level = 1;
4431pub const libbpf_print_level_LIBBPF_DEBUG: libbpf_print_level = 2;
4432pub type libbpf_print_level = u32;
4433pub type libbpf_print_fn_t = ::std::option::Option<
4434    unsafe extern "C" fn(
4435        level: libbpf_print_level,
4436        arg1: *const ::std::os::raw::c_char,
4437        ap: *mut __va_list_tag,
4438    ) -> ::std::os::raw::c_int,
4439>;
4440extern "C" {
4441    pub fn libbpf_set_print(fn_: libbpf_print_fn_t) -> libbpf_print_fn_t;
4442}
4443#[repr(C)]
4444#[derive(Debug, Copy, Clone)]
4445pub struct bpf_object_open_attr {
4446    pub file: *const ::std::os::raw::c_char,
4447    pub prog_type: bpf_prog_type,
4448}
4449#[repr(C)]
4450#[derive(Debug, Copy, Clone)]
4451pub struct bpf_object_open_opts {
4452    pub sz: size_t,
4453    pub object_name: *const ::std::os::raw::c_char,
4454    pub relaxed_maps: bool,
4455    pub relaxed_core_relocs: bool,
4456    pub pin_root_path: *const ::std::os::raw::c_char,
4457    pub attach_prog_fd: __u32,
4458    pub kconfig: *const ::std::os::raw::c_char,
4459}
4460extern "C" {
4461    pub fn bpf_object__open(path: *const ::std::os::raw::c_char) -> *mut bpf_object;
4462}
4463extern "C" {
4464    pub fn bpf_object__open_file(
4465        path: *const ::std::os::raw::c_char,
4466        opts: *const bpf_object_open_opts,
4467    ) -> *mut bpf_object;
4468}
4469extern "C" {
4470    pub fn bpf_object__open_mem(
4471        obj_buf: *const ::std::os::raw::c_void,
4472        obj_buf_sz: size_t,
4473        opts: *const bpf_object_open_opts,
4474    ) -> *mut bpf_object;
4475}
4476extern "C" {
4477    pub fn bpf_object__open_buffer(
4478        obj_buf: *const ::std::os::raw::c_void,
4479        obj_buf_sz: size_t,
4480        name: *const ::std::os::raw::c_char,
4481    ) -> *mut bpf_object;
4482}
4483extern "C" {
4484    pub fn bpf_object__open_xattr(attr: *mut bpf_object_open_attr) -> *mut bpf_object;
4485}
4486pub const libbpf_pin_type_LIBBPF_PIN_NONE: libbpf_pin_type = 0;
4487pub const libbpf_pin_type_LIBBPF_PIN_BY_NAME: libbpf_pin_type = 1;
4488pub type libbpf_pin_type = u32;
4489extern "C" {
4490    pub fn bpf_object__pin_maps(
4491        obj: *mut bpf_object,
4492        path: *const ::std::os::raw::c_char,
4493    ) -> ::std::os::raw::c_int;
4494}
4495extern "C" {
4496    pub fn bpf_object__unpin_maps(
4497        obj: *mut bpf_object,
4498        path: *const ::std::os::raw::c_char,
4499    ) -> ::std::os::raw::c_int;
4500}
4501extern "C" {
4502    pub fn bpf_object__pin_programs(
4503        obj: *mut bpf_object,
4504        path: *const ::std::os::raw::c_char,
4505    ) -> ::std::os::raw::c_int;
4506}
4507extern "C" {
4508    pub fn bpf_object__unpin_programs(
4509        obj: *mut bpf_object,
4510        path: *const ::std::os::raw::c_char,
4511    ) -> ::std::os::raw::c_int;
4512}
4513extern "C" {
4514    pub fn bpf_object__pin(
4515        object: *mut bpf_object,
4516        path: *const ::std::os::raw::c_char,
4517    ) -> ::std::os::raw::c_int;
4518}
4519extern "C" {
4520    pub fn bpf_object__close(object: *mut bpf_object);
4521}
4522#[repr(C)]
4523#[derive(Debug, Copy, Clone)]
4524pub struct bpf_object_load_attr {
4525    pub obj: *mut bpf_object,
4526    pub log_level: ::std::os::raw::c_int,
4527    pub target_btf_path: *const ::std::os::raw::c_char,
4528}
4529extern "C" {
4530    pub fn bpf_object__load(obj: *mut bpf_object) -> ::std::os::raw::c_int;
4531}
4532extern "C" {
4533    pub fn bpf_object__load_xattr(attr: *mut bpf_object_load_attr) -> ::std::os::raw::c_int;
4534}
4535extern "C" {
4536    pub fn bpf_object__unload(obj: *mut bpf_object) -> ::std::os::raw::c_int;
4537}
4538extern "C" {
4539    pub fn bpf_object__name(obj: *const bpf_object) -> *const ::std::os::raw::c_char;
4540}
4541extern "C" {
4542    pub fn bpf_object__kversion(obj: *const bpf_object) -> ::std::os::raw::c_uint;
4543}
4544extern "C" {
4545    pub fn bpf_object__btf(obj: *const bpf_object) -> *mut btf;
4546}
4547extern "C" {
4548    pub fn bpf_object__btf_fd(obj: *const bpf_object) -> ::std::os::raw::c_int;
4549}
4550#[repr(C)]
4551#[derive(Debug, Copy, Clone)]
4552pub struct bpf_program {
4553    _unused: [u8; 0],
4554}
4555extern "C" {
4556    pub fn bpf_object__find_program_by_title(
4557        obj: *const bpf_object,
4558        title: *const ::std::os::raw::c_char,
4559    ) -> *mut bpf_program;
4560}
4561extern "C" {
4562    pub fn bpf_object__find_program_by_name(
4563        obj: *const bpf_object,
4564        name: *const ::std::os::raw::c_char,
4565    ) -> *mut bpf_program;
4566}
4567extern "C" {
4568    pub fn bpf_object__next(prev: *mut bpf_object) -> *mut bpf_object;
4569}
4570pub type bpf_object_clear_priv_t = ::std::option::Option<
4571    unsafe extern "C" fn(arg1: *mut bpf_object, arg2: *mut ::std::os::raw::c_void),
4572>;
4573extern "C" {
4574    pub fn bpf_object__set_priv(
4575        obj: *mut bpf_object,
4576        priv_: *mut ::std::os::raw::c_void,
4577        clear_priv: bpf_object_clear_priv_t,
4578    ) -> ::std::os::raw::c_int;
4579}
4580extern "C" {
4581    pub fn bpf_object__priv(prog: *const bpf_object) -> *mut ::std::os::raw::c_void;
4582}
4583extern "C" {
4584    pub fn libbpf_prog_type_by_name(
4585        name: *const ::std::os::raw::c_char,
4586        prog_type: *mut bpf_prog_type,
4587        expected_attach_type: *mut bpf_attach_type,
4588    ) -> ::std::os::raw::c_int;
4589}
4590extern "C" {
4591    pub fn libbpf_attach_type_by_name(
4592        name: *const ::std::os::raw::c_char,
4593        attach_type: *mut bpf_attach_type,
4594    ) -> ::std::os::raw::c_int;
4595}
4596extern "C" {
4597    pub fn libbpf_find_vmlinux_btf_id(
4598        name: *const ::std::os::raw::c_char,
4599        attach_type: bpf_attach_type,
4600    ) -> ::std::os::raw::c_int;
4601}
4602extern "C" {
4603    pub fn bpf_program__next(prog: *mut bpf_program, obj: *const bpf_object) -> *mut bpf_program;
4604}
4605extern "C" {
4606    pub fn bpf_program__prev(prog: *mut bpf_program, obj: *const bpf_object) -> *mut bpf_program;
4607}
4608pub type bpf_program_clear_priv_t = ::std::option::Option<
4609    unsafe extern "C" fn(arg1: *mut bpf_program, arg2: *mut ::std::os::raw::c_void),
4610>;
4611extern "C" {
4612    pub fn bpf_program__set_priv(
4613        prog: *mut bpf_program,
4614        priv_: *mut ::std::os::raw::c_void,
4615        clear_priv: bpf_program_clear_priv_t,
4616    ) -> ::std::os::raw::c_int;
4617}
4618extern "C" {
4619    pub fn bpf_program__priv(prog: *const bpf_program) -> *mut ::std::os::raw::c_void;
4620}
4621extern "C" {
4622    pub fn bpf_program__set_ifindex(prog: *mut bpf_program, ifindex: __u32);
4623}
4624extern "C" {
4625    pub fn bpf_program__name(prog: *const bpf_program) -> *const ::std::os::raw::c_char;
4626}
4627extern "C" {
4628    pub fn bpf_program__title(
4629        prog: *const bpf_program,
4630        needs_copy: bool,
4631    ) -> *const ::std::os::raw::c_char;
4632}
4633extern "C" {
4634    pub fn bpf_program__size(prog: *const bpf_program) -> size_t;
4635}
4636extern "C" {
4637    pub fn bpf_program__load(
4638        prog: *mut bpf_program,
4639        license: *mut ::std::os::raw::c_char,
4640        kern_version: __u32,
4641    ) -> ::std::os::raw::c_int;
4642}
4643extern "C" {
4644    pub fn bpf_program__fd(prog: *const bpf_program) -> ::std::os::raw::c_int;
4645}
4646extern "C" {
4647    pub fn bpf_program__pin_instance(
4648        prog: *mut bpf_program,
4649        path: *const ::std::os::raw::c_char,
4650        instance: ::std::os::raw::c_int,
4651    ) -> ::std::os::raw::c_int;
4652}
4653extern "C" {
4654    pub fn bpf_program__unpin_instance(
4655        prog: *mut bpf_program,
4656        path: *const ::std::os::raw::c_char,
4657        instance: ::std::os::raw::c_int,
4658    ) -> ::std::os::raw::c_int;
4659}
4660extern "C" {
4661    pub fn bpf_program__pin(
4662        prog: *mut bpf_program,
4663        path: *const ::std::os::raw::c_char,
4664    ) -> ::std::os::raw::c_int;
4665}
4666extern "C" {
4667    pub fn bpf_program__unpin(
4668        prog: *mut bpf_program,
4669        path: *const ::std::os::raw::c_char,
4670    ) -> ::std::os::raw::c_int;
4671}
4672extern "C" {
4673    pub fn bpf_program__unload(prog: *mut bpf_program);
4674}
4675#[repr(C)]
4676#[derive(Debug, Copy, Clone)]
4677pub struct bpf_link {
4678    _unused: [u8; 0],
4679}
4680extern "C" {
4681    pub fn bpf_link__open(path: *const ::std::os::raw::c_char) -> *mut bpf_link;
4682}
4683extern "C" {
4684    pub fn bpf_link__fd(link: *const bpf_link) -> ::std::os::raw::c_int;
4685}
4686extern "C" {
4687    pub fn bpf_link__pin_path(link: *const bpf_link) -> *const ::std::os::raw::c_char;
4688}
4689extern "C" {
4690    pub fn bpf_link__pin(
4691        link: *mut bpf_link,
4692        path: *const ::std::os::raw::c_char,
4693    ) -> ::std::os::raw::c_int;
4694}
4695extern "C" {
4696    pub fn bpf_link__unpin(link: *mut bpf_link) -> ::std::os::raw::c_int;
4697}
4698extern "C" {
4699    pub fn bpf_link__disconnect(link: *mut bpf_link);
4700}
4701extern "C" {
4702    pub fn bpf_link__destroy(link: *mut bpf_link) -> ::std::os::raw::c_int;
4703}
4704extern "C" {
4705    pub fn bpf_program__attach(prog: *mut bpf_program) -> *mut bpf_link;
4706}
4707extern "C" {
4708    pub fn bpf_program__attach_perf_event(
4709        prog: *mut bpf_program,
4710        pfd: ::std::os::raw::c_int,
4711    ) -> *mut bpf_link;
4712}
4713extern "C" {
4714    pub fn bpf_program__attach_kprobe(
4715        prog: *mut bpf_program,
4716        retprobe: bool,
4717        func_name: *const ::std::os::raw::c_char,
4718    ) -> *mut bpf_link;
4719}
4720extern "C" {
4721    pub fn bpf_program__attach_uprobe(
4722        prog: *mut bpf_program,
4723        retprobe: bool,
4724        pid: pid_t,
4725        binary_path: *const ::std::os::raw::c_char,
4726        func_offset: size_t,
4727    ) -> *mut bpf_link;
4728}
4729extern "C" {
4730    pub fn bpf_program__attach_tracepoint(
4731        prog: *mut bpf_program,
4732        tp_category: *const ::std::os::raw::c_char,
4733        tp_name: *const ::std::os::raw::c_char,
4734    ) -> *mut bpf_link;
4735}
4736extern "C" {
4737    pub fn bpf_program__attach_raw_tracepoint(
4738        prog: *mut bpf_program,
4739        tp_name: *const ::std::os::raw::c_char,
4740    ) -> *mut bpf_link;
4741}
4742extern "C" {
4743    pub fn bpf_program__attach_trace(prog: *mut bpf_program) -> *mut bpf_link;
4744}
4745#[repr(C)]
4746#[derive(Debug, Copy, Clone)]
4747pub struct bpf_map {
4748    _unused: [u8; 0],
4749}
4750extern "C" {
4751    pub fn bpf_map__attach_struct_ops(map: *mut bpf_map) -> *mut bpf_link;
4752}
4753#[repr(C)]
4754#[derive(Debug, Copy, Clone)]
4755pub struct bpf_prog_prep_result {
4756    pub new_insn_ptr: *mut bpf_insn,
4757    pub new_insn_cnt: ::std::os::raw::c_int,
4758    pub pfd: *mut ::std::os::raw::c_int,
4759}
4760pub type bpf_program_prep_t = ::std::option::Option<
4761    unsafe extern "C" fn(
4762        prog: *mut bpf_program,
4763        n: ::std::os::raw::c_int,
4764        insns: *mut bpf_insn,
4765        insns_cnt: ::std::os::raw::c_int,
4766        res: *mut bpf_prog_prep_result,
4767    ) -> ::std::os::raw::c_int,
4768>;
4769extern "C" {
4770    pub fn bpf_program__set_prep(
4771        prog: *mut bpf_program,
4772        nr_instance: ::std::os::raw::c_int,
4773        prep: bpf_program_prep_t,
4774    ) -> ::std::os::raw::c_int;
4775}
4776extern "C" {
4777    pub fn bpf_program__nth_fd(
4778        prog: *const bpf_program,
4779        n: ::std::os::raw::c_int,
4780    ) -> ::std::os::raw::c_int;
4781}
4782extern "C" {
4783    pub fn bpf_program__set_socket_filter(prog: *mut bpf_program) -> ::std::os::raw::c_int;
4784}
4785extern "C" {
4786    pub fn bpf_program__set_tracepoint(prog: *mut bpf_program) -> ::std::os::raw::c_int;
4787}
4788extern "C" {
4789    pub fn bpf_program__set_raw_tracepoint(prog: *mut bpf_program) -> ::std::os::raw::c_int;
4790}
4791extern "C" {
4792    pub fn bpf_program__set_kprobe(prog: *mut bpf_program) -> ::std::os::raw::c_int;
4793}
4794extern "C" {
4795    pub fn bpf_program__set_sched_cls(prog: *mut bpf_program) -> ::std::os::raw::c_int;
4796}
4797extern "C" {
4798    pub fn bpf_program__set_sched_act(prog: *mut bpf_program) -> ::std::os::raw::c_int;
4799}
4800extern "C" {
4801    pub fn bpf_program__set_xdp(prog: *mut bpf_program) -> ::std::os::raw::c_int;
4802}
4803extern "C" {
4804    pub fn bpf_program__set_perf_event(prog: *mut bpf_program) -> ::std::os::raw::c_int;
4805}
4806extern "C" {
4807    pub fn bpf_program__set_tracing(prog: *mut bpf_program) -> ::std::os::raw::c_int;
4808}
4809extern "C" {
4810    pub fn bpf_program__set_struct_ops(prog: *mut bpf_program) -> ::std::os::raw::c_int;
4811}
4812extern "C" {
4813    pub fn bpf_program__set_extension(prog: *mut bpf_program) -> ::std::os::raw::c_int;
4814}
4815extern "C" {
4816    pub fn bpf_program__get_type(prog: *mut bpf_program) -> bpf_prog_type;
4817}
4818extern "C" {
4819    pub fn bpf_program__set_type(prog: *mut bpf_program, type_: bpf_prog_type);
4820}
4821extern "C" {
4822    pub fn bpf_program__get_expected_attach_type(prog: *mut bpf_program) -> bpf_attach_type;
4823}
4824extern "C" {
4825    pub fn bpf_program__set_expected_attach_type(prog: *mut bpf_program, type_: bpf_attach_type);
4826}
4827extern "C" {
4828    pub fn bpf_program__set_attach_target(
4829        prog: *mut bpf_program,
4830        attach_prog_fd: ::std::os::raw::c_int,
4831        attach_func_name: *const ::std::os::raw::c_char,
4832    ) -> ::std::os::raw::c_int;
4833}
4834extern "C" {
4835    pub fn bpf_program__is_socket_filter(prog: *const bpf_program) -> bool;
4836}
4837extern "C" {
4838    pub fn bpf_program__is_tracepoint(prog: *const bpf_program) -> bool;
4839}
4840extern "C" {
4841    pub fn bpf_program__is_raw_tracepoint(prog: *const bpf_program) -> bool;
4842}
4843extern "C" {
4844    pub fn bpf_program__is_kprobe(prog: *const bpf_program) -> bool;
4845}
4846extern "C" {
4847    pub fn bpf_program__is_sched_cls(prog: *const bpf_program) -> bool;
4848}
4849extern "C" {
4850    pub fn bpf_program__is_sched_act(prog: *const bpf_program) -> bool;
4851}
4852extern "C" {
4853    pub fn bpf_program__is_xdp(prog: *const bpf_program) -> bool;
4854}
4855extern "C" {
4856    pub fn bpf_program__is_perf_event(prog: *const bpf_program) -> bool;
4857}
4858extern "C" {
4859    pub fn bpf_program__is_tracing(prog: *const bpf_program) -> bool;
4860}
4861extern "C" {
4862    pub fn bpf_program__is_struct_ops(prog: *const bpf_program) -> bool;
4863}
4864extern "C" {
4865    pub fn bpf_program__is_extension(prog: *const bpf_program) -> bool;
4866}
4867#[repr(C)]
4868#[derive(Debug, Copy, Clone)]
4869pub struct bpf_map_def {
4870    pub type_: ::std::os::raw::c_uint,
4871    pub key_size: ::std::os::raw::c_uint,
4872    pub value_size: ::std::os::raw::c_uint,
4873    pub max_entries: ::std::os::raw::c_uint,
4874    pub map_flags: ::std::os::raw::c_uint,
4875}
4876extern "C" {
4877    pub fn bpf_object__find_map_by_name(
4878        obj: *const bpf_object,
4879        name: *const ::std::os::raw::c_char,
4880    ) -> *mut bpf_map;
4881}
4882extern "C" {
4883    pub fn bpf_object__find_map_fd_by_name(
4884        obj: *const bpf_object,
4885        name: *const ::std::os::raw::c_char,
4886    ) -> ::std::os::raw::c_int;
4887}
4888extern "C" {
4889    pub fn bpf_object__find_map_by_offset(obj: *mut bpf_object, offset: size_t) -> *mut bpf_map;
4890}
4891extern "C" {
4892    pub fn bpf_map__next(map: *const bpf_map, obj: *const bpf_object) -> *mut bpf_map;
4893}
4894extern "C" {
4895    pub fn bpf_map__prev(map: *const bpf_map, obj: *const bpf_object) -> *mut bpf_map;
4896}
4897extern "C" {
4898    pub fn bpf_map__fd(map: *const bpf_map) -> ::std::os::raw::c_int;
4899}
4900extern "C" {
4901    pub fn bpf_map__def(map: *const bpf_map) -> *const bpf_map_def;
4902}
4903extern "C" {
4904    pub fn bpf_map__name(map: *const bpf_map) -> *const ::std::os::raw::c_char;
4905}
4906extern "C" {
4907    pub fn bpf_map__btf_key_type_id(map: *const bpf_map) -> __u32;
4908}
4909extern "C" {
4910    pub fn bpf_map__btf_value_type_id(map: *const bpf_map) -> __u32;
4911}
4912pub type bpf_map_clear_priv_t = ::std::option::Option<
4913    unsafe extern "C" fn(arg1: *mut bpf_map, arg2: *mut ::std::os::raw::c_void),
4914>;
4915extern "C" {
4916    pub fn bpf_map__set_priv(
4917        map: *mut bpf_map,
4918        priv_: *mut ::std::os::raw::c_void,
4919        clear_priv: bpf_map_clear_priv_t,
4920    ) -> ::std::os::raw::c_int;
4921}
4922extern "C" {
4923    pub fn bpf_map__priv(map: *const bpf_map) -> *mut ::std::os::raw::c_void;
4924}
4925extern "C" {
4926    pub fn bpf_map__reuse_fd(map: *mut bpf_map, fd: ::std::os::raw::c_int)
4927        -> ::std::os::raw::c_int;
4928}
4929extern "C" {
4930    pub fn bpf_map__resize(map: *mut bpf_map, max_entries: __u32) -> ::std::os::raw::c_int;
4931}
4932extern "C" {
4933    pub fn bpf_map__is_offload_neutral(map: *const bpf_map) -> bool;
4934}
4935extern "C" {
4936    pub fn bpf_map__is_internal(map: *const bpf_map) -> bool;
4937}
4938extern "C" {
4939    pub fn bpf_map__set_ifindex(map: *mut bpf_map, ifindex: __u32);
4940}
4941extern "C" {
4942    pub fn bpf_map__set_pin_path(
4943        map: *mut bpf_map,
4944        path: *const ::std::os::raw::c_char,
4945    ) -> ::std::os::raw::c_int;
4946}
4947extern "C" {
4948    pub fn bpf_map__get_pin_path(map: *const bpf_map) -> *const ::std::os::raw::c_char;
4949}
4950extern "C" {
4951    pub fn bpf_map__is_pinned(map: *const bpf_map) -> bool;
4952}
4953extern "C" {
4954    pub fn bpf_map__pin(
4955        map: *mut bpf_map,
4956        path: *const ::std::os::raw::c_char,
4957    ) -> ::std::os::raw::c_int;
4958}
4959extern "C" {
4960    pub fn bpf_map__unpin(
4961        map: *mut bpf_map,
4962        path: *const ::std::os::raw::c_char,
4963    ) -> ::std::os::raw::c_int;
4964}
4965extern "C" {
4966    pub fn bpf_map__set_inner_map_fd(
4967        map: *mut bpf_map,
4968        fd: ::std::os::raw::c_int,
4969    ) -> ::std::os::raw::c_int;
4970}
4971extern "C" {
4972    pub fn libbpf_get_error(ptr: *const ::std::os::raw::c_void) -> ::std::os::raw::c_long;
4973}
4974#[repr(C)]
4975#[derive(Debug, Copy, Clone)]
4976pub struct bpf_prog_load_attr {
4977    pub file: *const ::std::os::raw::c_char,
4978    pub prog_type: bpf_prog_type,
4979    pub expected_attach_type: bpf_attach_type,
4980    pub ifindex: ::std::os::raw::c_int,
4981    pub log_level: ::std::os::raw::c_int,
4982    pub prog_flags: ::std::os::raw::c_int,
4983}
4984extern "C" {
4985    pub fn bpf_prog_load_xattr(
4986        attr: *const bpf_prog_load_attr,
4987        pobj: *mut *mut bpf_object,
4988        prog_fd: *mut ::std::os::raw::c_int,
4989    ) -> ::std::os::raw::c_int;
4990}
4991extern "C" {
4992    pub fn bpf_prog_load(
4993        file: *const ::std::os::raw::c_char,
4994        type_: bpf_prog_type,
4995        pobj: *mut *mut bpf_object,
4996        prog_fd: *mut ::std::os::raw::c_int,
4997    ) -> ::std::os::raw::c_int;
4998}
4999#[repr(C)]
5000#[derive(Debug, Copy, Clone)]
5001pub struct xdp_link_info {
5002    pub prog_id: __u32,
5003    pub drv_prog_id: __u32,
5004    pub hw_prog_id: __u32,
5005    pub skb_prog_id: __u32,
5006    pub attach_mode: __u8,
5007}
5008extern "C" {
5009    pub fn bpf_set_link_xdp_fd(
5010        ifindex: ::std::os::raw::c_int,
5011        fd: ::std::os::raw::c_int,
5012        flags: __u32,
5013    ) -> ::std::os::raw::c_int;
5014}
5015extern "C" {
5016    pub fn bpf_get_link_xdp_id(
5017        ifindex: ::std::os::raw::c_int,
5018        prog_id: *mut __u32,
5019        flags: __u32,
5020    ) -> ::std::os::raw::c_int;
5021}
5022extern "C" {
5023    pub fn bpf_get_link_xdp_info(
5024        ifindex: ::std::os::raw::c_int,
5025        info: *mut xdp_link_info,
5026        info_size: size_t,
5027        flags: __u32,
5028    ) -> ::std::os::raw::c_int;
5029}
5030#[repr(C)]
5031#[derive(Debug, Copy, Clone)]
5032pub struct perf_buffer {
5033    _unused: [u8; 0],
5034}
5035pub type perf_buffer_sample_fn = ::std::option::Option<
5036    unsafe extern "C" fn(
5037        ctx: *mut ::std::os::raw::c_void,
5038        cpu: ::std::os::raw::c_int,
5039        data: *mut ::std::os::raw::c_void,
5040        size: __u32,
5041    ),
5042>;
5043pub type perf_buffer_lost_fn = ::std::option::Option<
5044    unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, cpu: ::std::os::raw::c_int, cnt: __u64),
5045>;
5046#[repr(C)]
5047#[derive(Debug, Copy, Clone)]
5048pub struct perf_buffer_opts {
5049    pub sample_cb: perf_buffer_sample_fn,
5050    pub lost_cb: perf_buffer_lost_fn,
5051    pub ctx: *mut ::std::os::raw::c_void,
5052}
5053extern "C" {
5054    pub fn perf_buffer__new(
5055        map_fd: ::std::os::raw::c_int,
5056        page_cnt: size_t,
5057        opts: *const perf_buffer_opts,
5058    ) -> *mut perf_buffer;
5059}
5060pub const bpf_perf_event_ret_LIBBPF_PERF_EVENT_DONE: bpf_perf_event_ret = 0;
5061pub const bpf_perf_event_ret_LIBBPF_PERF_EVENT_ERROR: bpf_perf_event_ret = -1;
5062pub const bpf_perf_event_ret_LIBBPF_PERF_EVENT_CONT: bpf_perf_event_ret = -2;
5063pub type bpf_perf_event_ret = i32;
5064#[repr(C)]
5065#[derive(Debug, Copy, Clone)]
5066pub struct perf_event_header {
5067    _unused: [u8; 0],
5068}
5069pub type perf_buffer_event_fn = ::std::option::Option<
5070    unsafe extern "C" fn(
5071        ctx: *mut ::std::os::raw::c_void,
5072        cpu: ::std::os::raw::c_int,
5073        event: *mut perf_event_header,
5074    ) -> bpf_perf_event_ret,
5075>;
5076#[repr(C)]
5077#[derive(Debug, Copy, Clone)]
5078pub struct perf_buffer_raw_opts {
5079    pub attr: *mut perf_event_attr,
5080    pub event_cb: perf_buffer_event_fn,
5081    pub ctx: *mut ::std::os::raw::c_void,
5082    pub cpu_cnt: ::std::os::raw::c_int,
5083    pub cpus: *mut ::std::os::raw::c_int,
5084    pub map_keys: *mut ::std::os::raw::c_int,
5085}
5086extern "C" {
5087    pub fn perf_buffer__new_raw(
5088        map_fd: ::std::os::raw::c_int,
5089        page_cnt: size_t,
5090        opts: *const perf_buffer_raw_opts,
5091    ) -> *mut perf_buffer;
5092}
5093extern "C" {
5094    pub fn perf_buffer__free(pb: *mut perf_buffer);
5095}
5096extern "C" {
5097    pub fn perf_buffer__poll(
5098        pb: *mut perf_buffer,
5099        timeout_ms: ::std::os::raw::c_int,
5100    ) -> ::std::os::raw::c_int;
5101}
5102pub type bpf_perf_event_print_t = ::std::option::Option<
5103    unsafe extern "C" fn(
5104        hdr: *mut perf_event_header,
5105        private_data: *mut ::std::os::raw::c_void,
5106    ) -> bpf_perf_event_ret,
5107>;
5108extern "C" {
5109    pub fn bpf_perf_event_read_simple(
5110        mmap_mem: *mut ::std::os::raw::c_void,
5111        mmap_size: size_t,
5112        page_size: size_t,
5113        copy_mem: *mut *mut ::std::os::raw::c_void,
5114        copy_size: *mut size_t,
5115        fn_: bpf_perf_event_print_t,
5116        private_data: *mut ::std::os::raw::c_void,
5117    ) -> bpf_perf_event_ret;
5118}
5119#[repr(C)]
5120#[derive(Debug, Copy, Clone)]
5121pub struct bpf_prog_linfo {
5122    _unused: [u8; 0],
5123}
5124extern "C" {
5125    pub fn bpf_prog_linfo__free(prog_linfo: *mut bpf_prog_linfo);
5126}
5127extern "C" {
5128    pub fn bpf_prog_linfo__new(info: *const bpf_prog_info) -> *mut bpf_prog_linfo;
5129}
5130extern "C" {
5131    pub fn bpf_prog_linfo__lfind_addr_func(
5132        prog_linfo: *const bpf_prog_linfo,
5133        addr: __u64,
5134        func_idx: __u32,
5135        nr_skip: __u32,
5136    ) -> *const bpf_line_info;
5137}
5138extern "C" {
5139    pub fn bpf_prog_linfo__lfind(
5140        prog_linfo: *const bpf_prog_linfo,
5141        insn_off: __u32,
5142        nr_skip: __u32,
5143    ) -> *const bpf_line_info;
5144}
5145extern "C" {
5146    pub fn bpf_probe_prog_type(prog_type: bpf_prog_type, ifindex: __u32) -> bool;
5147}
5148extern "C" {
5149    pub fn bpf_probe_map_type(map_type: bpf_map_type, ifindex: __u32) -> bool;
5150}
5151extern "C" {
5152    pub fn bpf_probe_helper(id: bpf_func_id, prog_type: bpf_prog_type, ifindex: __u32) -> bool;
5153}
5154extern "C" {
5155    pub fn bpf_probe_large_insn_limit(ifindex: __u32) -> bool;
5156}
5157pub const bpf_prog_info_array_BPF_PROG_INFO_FIRST_ARRAY: bpf_prog_info_array = 0;
5158pub const bpf_prog_info_array_BPF_PROG_INFO_JITED_INSNS: bpf_prog_info_array = 0;
5159pub const bpf_prog_info_array_BPF_PROG_INFO_XLATED_INSNS: bpf_prog_info_array = 1;
5160pub const bpf_prog_info_array_BPF_PROG_INFO_MAP_IDS: bpf_prog_info_array = 2;
5161pub const bpf_prog_info_array_BPF_PROG_INFO_JITED_KSYMS: bpf_prog_info_array = 3;
5162pub const bpf_prog_info_array_BPF_PROG_INFO_JITED_FUNC_LENS: bpf_prog_info_array = 4;
5163pub const bpf_prog_info_array_BPF_PROG_INFO_FUNC_INFO: bpf_prog_info_array = 5;
5164pub const bpf_prog_info_array_BPF_PROG_INFO_LINE_INFO: bpf_prog_info_array = 6;
5165pub const bpf_prog_info_array_BPF_PROG_INFO_JITED_LINE_INFO: bpf_prog_info_array = 7;
5166pub const bpf_prog_info_array_BPF_PROG_INFO_PROG_TAGS: bpf_prog_info_array = 8;
5167pub const bpf_prog_info_array_BPF_PROG_INFO_LAST_ARRAY: bpf_prog_info_array = 9;
5168pub type bpf_prog_info_array = u32;
5169#[repr(C)]
5170#[derive(Debug)]
5171pub struct bpf_prog_info_linear {
5172    pub info_len: __u32,
5173    pub data_len: __u32,
5174    pub arrays: __u64,
5175    pub info: bpf_prog_info,
5176    pub data: __IncompleteArrayField<__u8>,
5177}
5178extern "C" {
5179    pub fn bpf_program__get_prog_info_linear(
5180        fd: ::std::os::raw::c_int,
5181        arrays: __u64,
5182    ) -> *mut bpf_prog_info_linear;
5183}
5184extern "C" {
5185    pub fn bpf_program__bpil_addr_to_offs(info_linear: *mut bpf_prog_info_linear);
5186}
5187extern "C" {
5188    pub fn bpf_program__bpil_offs_to_addr(info_linear: *mut bpf_prog_info_linear);
5189}
5190extern "C" {
5191    pub fn libbpf_num_possible_cpus() -> ::std::os::raw::c_int;
5192}
5193#[repr(C)]
5194#[derive(Debug, Copy, Clone)]
5195pub struct bpf_map_skeleton {
5196    pub name: *const ::std::os::raw::c_char,
5197    pub map: *mut *mut bpf_map,
5198    pub mmaped: *mut *mut ::std::os::raw::c_void,
5199}
5200#[repr(C)]
5201#[derive(Debug, Copy, Clone)]
5202pub struct bpf_prog_skeleton {
5203    pub name: *const ::std::os::raw::c_char,
5204    pub prog: *mut *mut bpf_program,
5205    pub link: *mut *mut bpf_link,
5206}
5207#[repr(C)]
5208#[derive(Debug, Copy, Clone)]
5209pub struct bpf_object_skeleton {
5210    pub sz: size_t,
5211    pub name: *const ::std::os::raw::c_char,
5212    pub data: *mut ::std::os::raw::c_void,
5213    pub data_sz: size_t,
5214    pub obj: *mut *mut bpf_object,
5215    pub map_cnt: ::std::os::raw::c_int,
5216    pub map_skel_sz: ::std::os::raw::c_int,
5217    pub maps: *mut bpf_map_skeleton,
5218    pub prog_cnt: ::std::os::raw::c_int,
5219    pub prog_skel_sz: ::std::os::raw::c_int,
5220    pub progs: *mut bpf_prog_skeleton,
5221}
5222extern "C" {
5223    pub fn bpf_object__open_skeleton(
5224        s: *mut bpf_object_skeleton,
5225        opts: *const bpf_object_open_opts,
5226    ) -> ::std::os::raw::c_int;
5227}
5228extern "C" {
5229    pub fn bpf_object__load_skeleton(s: *mut bpf_object_skeleton) -> ::std::os::raw::c_int;
5230}
5231extern "C" {
5232    pub fn bpf_object__attach_skeleton(s: *mut bpf_object_skeleton) -> ::std::os::raw::c_int;
5233}
5234extern "C" {
5235    pub fn bpf_object__detach_skeleton(s: *mut bpf_object_skeleton);
5236}
5237extern "C" {
5238    pub fn bpf_object__destroy_skeleton(s: *mut bpf_object_skeleton);
5239}
5240pub const libbpf_tristate_TRI_NO: libbpf_tristate = 0;
5241pub const libbpf_tristate_TRI_YES: libbpf_tristate = 1;
5242pub const libbpf_tristate_TRI_MODULE: libbpf_tristate = 2;
5243pub type libbpf_tristate = u32;
5244#[repr(C)]
5245#[derive(Debug, Copy, Clone)]
5246pub struct sockaddr_xdp {
5247    pub sxdp_family: __u16,
5248    pub sxdp_flags: __u16,
5249    pub sxdp_ifindex: __u32,
5250    pub sxdp_queue_id: __u32,
5251    pub sxdp_shared_umem_fd: __u32,
5252}
5253#[repr(C)]
5254#[derive(Debug, Copy, Clone)]
5255pub struct xdp_ring_offset {
5256    pub producer: __u64,
5257    pub consumer: __u64,
5258    pub desc: __u64,
5259    pub flags: __u64,
5260}
5261#[repr(C)]
5262#[derive(Debug, Copy, Clone)]
5263pub struct xdp_mmap_offsets {
5264    pub rx: xdp_ring_offset,
5265    pub tx: xdp_ring_offset,
5266    pub fr: xdp_ring_offset,
5267    pub cr: xdp_ring_offset,
5268}
5269#[repr(C)]
5270#[derive(Debug, Copy, Clone)]
5271pub struct xdp_umem_reg {
5272    pub addr: __u64,
5273    pub len: __u64,
5274    pub chunk_size: __u32,
5275    pub headroom: __u32,
5276    pub flags: __u32,
5277}
5278#[repr(C)]
5279#[derive(Debug, Copy, Clone)]
5280pub struct xdp_statistics {
5281    pub rx_dropped: __u64,
5282    pub rx_invalid_descs: __u64,
5283    pub tx_invalid_descs: __u64,
5284}
5285#[repr(C)]
5286#[derive(Debug, Copy, Clone)]
5287pub struct xdp_options {
5288    pub flags: __u32,
5289}
5290#[repr(C)]
5291#[derive(Debug, Copy, Clone)]
5292pub struct xdp_desc {
5293    pub addr: __u64,
5294    pub len: __u32,
5295    pub options: __u32,
5296}
5297#[repr(C)]
5298#[derive(Debug, Copy, Clone)]
5299pub struct xsk_ring_prod {
5300    pub cached_prod: __u32,
5301    pub cached_cons: __u32,
5302    pub mask: __u32,
5303    pub size: __u32,
5304    pub producer: *mut __u32,
5305    pub consumer: *mut __u32,
5306    pub ring: *mut ::std::os::raw::c_void,
5307    pub flags: *mut __u32,
5308}
5309#[repr(C)]
5310#[derive(Debug, Copy, Clone)]
5311pub struct xsk_ring_cons {
5312    pub cached_prod: __u32,
5313    pub cached_cons: __u32,
5314    pub mask: __u32,
5315    pub size: __u32,
5316    pub producer: *mut __u32,
5317    pub consumer: *mut __u32,
5318    pub ring: *mut ::std::os::raw::c_void,
5319    pub flags: *mut __u32,
5320}
5321#[repr(C)]
5322#[derive(Debug, Copy, Clone)]
5323pub struct xsk_umem {
5324    _unused: [u8; 0],
5325}
5326#[repr(C)]
5327#[derive(Debug, Copy, Clone)]
5328pub struct xsk_socket {
5329    _unused: [u8; 0],
5330}
5331extern "C" {
5332    pub fn xsk_umem__fd(umem: *const xsk_umem) -> ::std::os::raw::c_int;
5333}
5334extern "C" {
5335    pub fn xsk_socket__fd(xsk: *const xsk_socket) -> ::std::os::raw::c_int;
5336}
5337#[repr(C)]
5338#[derive(Debug, Copy, Clone)]
5339pub struct xsk_umem_config {
5340    pub fill_size: __u32,
5341    pub comp_size: __u32,
5342    pub frame_size: __u32,
5343    pub frame_headroom: __u32,
5344    pub flags: __u32,
5345}
5346#[repr(C)]
5347#[derive(Debug, Copy, Clone)]
5348pub struct xsk_socket_config {
5349    pub rx_size: __u32,
5350    pub tx_size: __u32,
5351    pub libbpf_flags: __u32,
5352    pub xdp_flags: __u32,
5353    pub bind_flags: __u16,
5354}
5355extern "C" {
5356    pub fn xsk_umem__create(
5357        umem: *mut *mut xsk_umem,
5358        umem_area: *mut ::std::os::raw::c_void,
5359        size: __u64,
5360        fill: *mut xsk_ring_prod,
5361        comp: *mut xsk_ring_cons,
5362        config: *const xsk_umem_config,
5363    ) -> ::std::os::raw::c_int;
5364}
5365extern "C" {
5366    pub fn xsk_umem__create_v0_0_2(
5367        umem: *mut *mut xsk_umem,
5368        umem_area: *mut ::std::os::raw::c_void,
5369        size: __u64,
5370        fill: *mut xsk_ring_prod,
5371        comp: *mut xsk_ring_cons,
5372        config: *const xsk_umem_config,
5373    ) -> ::std::os::raw::c_int;
5374}
5375extern "C" {
5376    pub fn xsk_umem__create_v0_0_4(
5377        umem: *mut *mut xsk_umem,
5378        umem_area: *mut ::std::os::raw::c_void,
5379        size: __u64,
5380        fill: *mut xsk_ring_prod,
5381        comp: *mut xsk_ring_cons,
5382        config: *const xsk_umem_config,
5383    ) -> ::std::os::raw::c_int;
5384}
5385extern "C" {
5386    pub fn xsk_socket__create(
5387        xsk: *mut *mut xsk_socket,
5388        ifname: *const ::std::os::raw::c_char,
5389        queue_id: __u32,
5390        umem: *mut xsk_umem,
5391        rx: *mut xsk_ring_cons,
5392        tx: *mut xsk_ring_prod,
5393        config: *const xsk_socket_config,
5394    ) -> ::std::os::raw::c_int;
5395}
5396extern "C" {
5397    pub fn xsk_umem__delete(umem: *mut xsk_umem) -> ::std::os::raw::c_int;
5398}
5399extern "C" {
5400    pub fn xsk_socket__delete(xsk: *mut xsk_socket);
5401}
5402#[repr(C)]
5403#[derive(Debug, Copy, Clone)]
5404pub struct __locale_data {
5405    pub _address: u8,
5406}
5407pub type __builtin_va_list = [__va_list_tag; 1usize];
5408#[repr(C)]
5409#[derive(Debug, Copy, Clone)]
5410pub struct __va_list_tag {
5411    pub gp_offset: ::std::os::raw::c_uint,
5412    pub fp_offset: ::std::os::raw::c_uint,
5413    pub overflow_arg_area: *mut ::std::os::raw::c_void,
5414    pub reg_save_area: *mut ::std::os::raw::c_void,
5415}
5416#[repr(C)]
5417#[derive(Debug, Copy, Clone)]
5418pub struct perf_event_attr {
5419    pub _address: u8,
5420}