libbpf_sys/
bindings.rs

1#[repr(C)]
2#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
3pub struct __BindgenBitfieldUnit<Storage> {
4    storage: Storage,
5}
6impl<Storage> __BindgenBitfieldUnit<Storage> {
7    #[inline]
8    pub const fn new(storage: Storage) -> Self {
9        Self { storage }
10    }
11}
12impl<Storage> __BindgenBitfieldUnit<Storage>
13where
14    Storage: AsRef<[u8]> + AsMut<[u8]>,
15{
16    #[inline]
17    fn extract_bit(byte: u8, index: usize) -> bool {
18        let bit_index = if cfg!(target_endian = "big") {
19            7 - (index % 8)
20        } else {
21            index % 8
22        };
23        let mask = 1 << bit_index;
24        byte & mask == mask
25    }
26    #[inline]
27    pub fn get_bit(&self, index: usize) -> bool {
28        debug_assert!(index / 8 < self.storage.as_ref().len());
29        let byte_index = index / 8;
30        let byte = self.storage.as_ref()[byte_index];
31        Self::extract_bit(byte, index)
32    }
33    #[inline]
34    pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
35        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
36        let byte_index = index / 8;
37        let byte = unsafe {
38            *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize)
39        };
40        Self::extract_bit(byte, index)
41    }
42    #[inline]
43    fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
44        let bit_index = if cfg!(target_endian = "big") {
45            7 - (index % 8)
46        } else {
47            index % 8
48        };
49        let mask = 1 << bit_index;
50        if val {
51            byte | mask
52        } else {
53            byte & !mask
54        }
55    }
56    #[inline]
57    pub fn set_bit(&mut self, index: usize, val: bool) {
58        debug_assert!(index / 8 < self.storage.as_ref().len());
59        let byte_index = index / 8;
60        let byte = &mut self.storage.as_mut()[byte_index];
61        *byte = Self::change_bit(*byte, index, val);
62    }
63    #[inline]
64    pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
65        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
66        let byte_index = index / 8;
67        let byte = unsafe {
68            (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize)
69        };
70        unsafe { *byte = Self::change_bit(*byte, index, val) };
71    }
72    #[inline]
73    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
74        debug_assert!(bit_width <= 64);
75        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
76        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
77        let mut val = 0;
78        for i in 0..(bit_width as usize) {
79            if self.get_bit(i + bit_offset) {
80                let index = if cfg!(target_endian = "big") {
81                    bit_width as usize - 1 - i
82                } else {
83                    i
84                };
85                val |= 1 << index;
86            }
87        }
88        val
89    }
90    #[inline]
91    pub unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
92        debug_assert!(bit_width <= 64);
93        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
94        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
95        let mut val = 0;
96        for i in 0..(bit_width as usize) {
97            if unsafe { Self::raw_get_bit(this, i + bit_offset) } {
98                let index = if cfg!(target_endian = "big") {
99                    bit_width as usize - 1 - i
100                } else {
101                    i
102                };
103                val |= 1 << index;
104            }
105        }
106        val
107    }
108    #[inline]
109    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
110        debug_assert!(bit_width <= 64);
111        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
112        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
113        for i in 0..(bit_width as usize) {
114            let mask = 1 << i;
115            let val_bit_is_set = val & mask == mask;
116            let index = if cfg!(target_endian = "big") {
117                bit_width as usize - 1 - i
118            } else {
119                i
120            };
121            self.set_bit(index + bit_offset, val_bit_is_set);
122        }
123    }
124    #[inline]
125    pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
126        debug_assert!(bit_width <= 64);
127        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
128        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
129        for i in 0..(bit_width as usize) {
130            let mask = 1 << i;
131            let val_bit_is_set = val & mask == mask;
132            let index = if cfg!(target_endian = "big") {
133                bit_width as usize - 1 - i
134            } else {
135                i
136            };
137            unsafe { Self::raw_set_bit(this, index + bit_offset, val_bit_is_set) };
138        }
139    }
140}
141#[repr(C)]
142#[derive(Default)]
143pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
144impl<T> __IncompleteArrayField<T> {
145    #[inline]
146    pub const fn new() -> Self {
147        __IncompleteArrayField(::std::marker::PhantomData, [])
148    }
149    #[inline]
150    pub fn as_ptr(&self) -> *const T {
151        self as *const _ as *const T
152    }
153    #[inline]
154    pub fn as_mut_ptr(&mut self) -> *mut T {
155        self as *mut _ as *mut T
156    }
157    #[inline]
158    pub unsafe fn as_slice(&self, len: usize) -> &[T] {
159        ::std::slice::from_raw_parts(self.as_ptr(), len)
160    }
161    #[inline]
162    pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
163        ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
164    }
165}
166impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
167    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
168        fmt.write_str("__IncompleteArrayField")
169    }
170}
171pub const XDP_FLAGS_UPDATE_IF_NOEXIST: u32 = 1;
172pub const XDP_FLAGS_SKB_MODE: u32 = 2;
173pub const XDP_FLAGS_DRV_MODE: u32 = 4;
174pub const XDP_FLAGS_HW_MODE: u32 = 8;
175pub const XDP_FLAGS_REPLACE: u32 = 16;
176pub const XDP_FLAGS_MODES: u32 = 14;
177pub const XDP_FLAGS_MASK: u32 = 31;
178pub const PERF_PMU_TYPE_SHIFT: u32 = 32;
179pub const PERF_HW_EVENT_MASK: u32 = 4294967295;
180pub const PERF_ATTR_SIZE_VER0: u32 = 64;
181pub const PERF_ATTR_SIZE_VER1: u32 = 72;
182pub const PERF_ATTR_SIZE_VER2: u32 = 80;
183pub const PERF_ATTR_SIZE_VER3: u32 = 96;
184pub const PERF_ATTR_SIZE_VER4: u32 = 104;
185pub const PERF_ATTR_SIZE_VER5: u32 = 112;
186pub const PERF_ATTR_SIZE_VER6: u32 = 120;
187pub const PERF_ATTR_SIZE_VER7: u32 = 128;
188pub const PERF_ATTR_SIZE_VER8: u32 = 136;
189pub const PERF_RECORD_MISC_CPUMODE_MASK: u32 = 7;
190pub const PERF_RECORD_MISC_CPUMODE_UNKNOWN: u32 = 0;
191pub const PERF_RECORD_MISC_KERNEL: u32 = 1;
192pub const PERF_RECORD_MISC_USER: u32 = 2;
193pub const PERF_RECORD_MISC_HYPERVISOR: u32 = 3;
194pub const PERF_RECORD_MISC_GUEST_KERNEL: u32 = 4;
195pub const PERF_RECORD_MISC_GUEST_USER: u32 = 5;
196pub const PERF_RECORD_MISC_PROC_MAP_PARSE_TIMEOUT: u32 = 4096;
197pub const PERF_RECORD_MISC_MMAP_DATA: u32 = 8192;
198pub const PERF_RECORD_MISC_COMM_EXEC: u32 = 8192;
199pub const PERF_RECORD_MISC_FORK_EXEC: u32 = 8192;
200pub const PERF_RECORD_MISC_SWITCH_OUT: u32 = 8192;
201pub const PERF_RECORD_MISC_EXACT_IP: u32 = 16384;
202pub const PERF_RECORD_MISC_SWITCH_OUT_PREEMPT: u32 = 16384;
203pub const PERF_RECORD_MISC_MMAP_BUILD_ID: u32 = 16384;
204pub const PERF_RECORD_MISC_EXT_RESERVED: u32 = 32768;
205pub const PERF_RECORD_KSYMBOL_FLAGS_UNREGISTER: u32 = 1;
206pub const PERF_MAX_STACK_DEPTH: u32 = 127;
207pub const PERF_MAX_CONTEXTS_PER_STACK: u32 = 8;
208pub const PERF_AUX_FLAG_TRUNCATED: u32 = 1;
209pub const PERF_AUX_FLAG_OVERWRITE: u32 = 2;
210pub const PERF_AUX_FLAG_PARTIAL: u32 = 4;
211pub const PERF_AUX_FLAG_COLLISION: u32 = 8;
212pub const PERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK: u32 = 65280;
213pub const PERF_AUX_FLAG_CORESIGHT_FORMAT_CORESIGHT: u32 = 0;
214pub const PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW: u32 = 256;
215pub const PERF_FLAG_FD_NO_GROUP: u32 = 1;
216pub const PERF_FLAG_FD_OUTPUT: u32 = 2;
217pub const PERF_FLAG_PID_CGROUP: u32 = 4;
218pub const PERF_FLAG_FD_CLOEXEC: u32 = 8;
219pub const PERF_MEM_OP_NA: u32 = 1;
220pub const PERF_MEM_OP_LOAD: u32 = 2;
221pub const PERF_MEM_OP_STORE: u32 = 4;
222pub const PERF_MEM_OP_PFETCH: u32 = 8;
223pub const PERF_MEM_OP_EXEC: u32 = 16;
224pub const PERF_MEM_OP_SHIFT: u32 = 0;
225pub const PERF_MEM_LVL_NA: u32 = 1;
226pub const PERF_MEM_LVL_HIT: u32 = 2;
227pub const PERF_MEM_LVL_MISS: u32 = 4;
228pub const PERF_MEM_LVL_L1: u32 = 8;
229pub const PERF_MEM_LVL_LFB: u32 = 16;
230pub const PERF_MEM_LVL_L2: u32 = 32;
231pub const PERF_MEM_LVL_L3: u32 = 64;
232pub const PERF_MEM_LVL_LOC_RAM: u32 = 128;
233pub const PERF_MEM_LVL_REM_RAM1: u32 = 256;
234pub const PERF_MEM_LVL_REM_RAM2: u32 = 512;
235pub const PERF_MEM_LVL_REM_CCE1: u32 = 1024;
236pub const PERF_MEM_LVL_REM_CCE2: u32 = 2048;
237pub const PERF_MEM_LVL_IO: u32 = 4096;
238pub const PERF_MEM_LVL_UNC: u32 = 8192;
239pub const PERF_MEM_LVL_SHIFT: u32 = 5;
240pub const PERF_MEM_REMOTE_REMOTE: u32 = 1;
241pub const PERF_MEM_REMOTE_SHIFT: u32 = 37;
242pub const PERF_MEM_LVLNUM_L1: u32 = 1;
243pub const PERF_MEM_LVLNUM_L2: u32 = 2;
244pub const PERF_MEM_LVLNUM_L3: u32 = 3;
245pub const PERF_MEM_LVLNUM_L4: u32 = 4;
246pub const PERF_MEM_LVLNUM_L2_MHB: u32 = 5;
247pub const PERF_MEM_LVLNUM_MSC: u32 = 6;
248pub const PERF_MEM_LVLNUM_UNC: u32 = 8;
249pub const PERF_MEM_LVLNUM_CXL: u32 = 9;
250pub const PERF_MEM_LVLNUM_IO: u32 = 10;
251pub const PERF_MEM_LVLNUM_ANY_CACHE: u32 = 11;
252pub const PERF_MEM_LVLNUM_LFB: u32 = 12;
253pub const PERF_MEM_LVLNUM_RAM: u32 = 13;
254pub const PERF_MEM_LVLNUM_PMEM: u32 = 14;
255pub const PERF_MEM_LVLNUM_NA: u32 = 15;
256pub const PERF_MEM_LVLNUM_SHIFT: u32 = 33;
257pub const PERF_MEM_SNOOP_NA: u32 = 1;
258pub const PERF_MEM_SNOOP_NONE: u32 = 2;
259pub const PERF_MEM_SNOOP_HIT: u32 = 4;
260pub const PERF_MEM_SNOOP_MISS: u32 = 8;
261pub const PERF_MEM_SNOOP_HITM: u32 = 16;
262pub const PERF_MEM_SNOOP_SHIFT: u32 = 19;
263pub const PERF_MEM_SNOOPX_FWD: u32 = 1;
264pub const PERF_MEM_SNOOPX_PEER: u32 = 2;
265pub const PERF_MEM_SNOOPX_SHIFT: u32 = 38;
266pub const PERF_MEM_LOCK_NA: u32 = 1;
267pub const PERF_MEM_LOCK_LOCKED: u32 = 2;
268pub const PERF_MEM_LOCK_SHIFT: u32 = 24;
269pub const PERF_MEM_TLB_NA: u32 = 1;
270pub const PERF_MEM_TLB_HIT: u32 = 2;
271pub const PERF_MEM_TLB_MISS: u32 = 4;
272pub const PERF_MEM_TLB_L1: u32 = 8;
273pub const PERF_MEM_TLB_L2: u32 = 16;
274pub const PERF_MEM_TLB_WK: u32 = 32;
275pub const PERF_MEM_TLB_OS: u32 = 64;
276pub const PERF_MEM_TLB_SHIFT: u32 = 26;
277pub const PERF_MEM_BLK_NA: u32 = 1;
278pub const PERF_MEM_BLK_DATA: u32 = 2;
279pub const PERF_MEM_BLK_ADDR: u32 = 4;
280pub const PERF_MEM_BLK_SHIFT: u32 = 40;
281pub const PERF_MEM_HOPS_0: u32 = 1;
282pub const PERF_MEM_HOPS_1: u32 = 2;
283pub const PERF_MEM_HOPS_2: u32 = 3;
284pub const PERF_MEM_HOPS_3: u32 = 4;
285pub const PERF_MEM_HOPS_SHIFT: u32 = 43;
286pub const PERF_BRANCH_ENTRY_INFO_BITS_MAX: u32 = 33;
287pub const BPF_LD: u32 = 0;
288pub const BPF_LDX: u32 = 1;
289pub const BPF_ST: u32 = 2;
290pub const BPF_STX: u32 = 3;
291pub const BPF_ALU: u32 = 4;
292pub const BPF_JMP: u32 = 5;
293pub const BPF_RET: u32 = 6;
294pub const BPF_MISC: u32 = 7;
295pub const BPF_W: u32 = 0;
296pub const BPF_H: u32 = 8;
297pub const BPF_B: u32 = 16;
298pub const BPF_IMM: u32 = 0;
299pub const BPF_ABS: u32 = 32;
300pub const BPF_IND: u32 = 64;
301pub const BPF_MEM: u32 = 96;
302pub const BPF_LEN: u32 = 128;
303pub const BPF_MSH: u32 = 160;
304pub const BPF_ADD: u32 = 0;
305pub const BPF_SUB: u32 = 16;
306pub const BPF_MUL: u32 = 32;
307pub const BPF_DIV: u32 = 48;
308pub const BPF_OR: u32 = 64;
309pub const BPF_AND: u32 = 80;
310pub const BPF_LSH: u32 = 96;
311pub const BPF_RSH: u32 = 112;
312pub const BPF_NEG: u32 = 128;
313pub const BPF_MOD: u32 = 144;
314pub const BPF_XOR: u32 = 160;
315pub const BPF_JA: u32 = 0;
316pub const BPF_JEQ: u32 = 16;
317pub const BPF_JGT: u32 = 32;
318pub const BPF_JGE: u32 = 48;
319pub const BPF_JSET: u32 = 64;
320pub const BPF_K: u32 = 0;
321pub const BPF_X: u32 = 8;
322pub const BPF_MAXINSNS: u32 = 4096;
323pub const BPF_JMP32: u32 = 6;
324pub const BPF_ALU64: u32 = 7;
325pub const BPF_DW: u32 = 24;
326pub const BPF_MEMSX: u32 = 128;
327pub const BPF_ATOMIC: u32 = 192;
328pub const BPF_XADD: u32 = 192;
329pub const BPF_MOV: u32 = 176;
330pub const BPF_ARSH: u32 = 192;
331pub const BPF_END: u32 = 208;
332pub const BPF_TO_LE: u32 = 0;
333pub const BPF_TO_BE: u32 = 8;
334pub const BPF_FROM_LE: u32 = 0;
335pub const BPF_FROM_BE: u32 = 8;
336pub const BPF_JNE: u32 = 80;
337pub const BPF_JLT: u32 = 160;
338pub const BPF_JLE: u32 = 176;
339pub const BPF_JSGT: u32 = 96;
340pub const BPF_JSGE: u32 = 112;
341pub const BPF_JSLT: u32 = 192;
342pub const BPF_JSLE: u32 = 208;
343pub const BPF_JCOND: u32 = 224;
344pub const BPF_CALL: u32 = 128;
345pub const BPF_EXIT: u32 = 144;
346pub const BPF_FETCH: u32 = 1;
347pub const BPF_XCHG: u32 = 225;
348pub const BPF_CMPXCHG: u32 = 241;
349pub const BPF_LOAD_ACQ: u32 = 256;
350pub const BPF_STORE_REL: u32 = 272;
351pub const BPF_F_ALLOW_OVERRIDE: u32 = 1;
352pub const BPF_F_ALLOW_MULTI: u32 = 2;
353pub const BPF_F_REPLACE: u32 = 4;
354pub const BPF_F_BEFORE: u32 = 8;
355pub const BPF_F_AFTER: u32 = 16;
356pub const BPF_F_ID: u32 = 32;
357pub const BPF_F_PREORDER: u32 = 64;
358pub const BPF_F_STRICT_ALIGNMENT: u32 = 1;
359pub const BPF_F_ANY_ALIGNMENT: u32 = 2;
360pub const BPF_F_TEST_RND_HI32: u32 = 4;
361pub const BPF_F_TEST_STATE_FREQ: u32 = 8;
362pub const BPF_F_SLEEPABLE: u32 = 16;
363pub const BPF_F_XDP_HAS_FRAGS: u32 = 32;
364pub const BPF_F_XDP_DEV_BOUND_ONLY: u32 = 64;
365pub const BPF_F_TEST_REG_INVARIANTS: u32 = 128;
366pub const BPF_F_NETFILTER_IP_DEFRAG: u32 = 1;
367pub const BPF_PSEUDO_MAP_FD: u32 = 1;
368pub const BPF_PSEUDO_MAP_IDX: u32 = 5;
369pub const BPF_PSEUDO_MAP_VALUE: u32 = 2;
370pub const BPF_PSEUDO_MAP_IDX_VALUE: u32 = 6;
371pub const BPF_PSEUDO_BTF_ID: u32 = 3;
372pub const BPF_PSEUDO_FUNC: u32 = 4;
373pub const BPF_PSEUDO_CALL: u32 = 1;
374pub const BPF_PSEUDO_KFUNC_CALL: u32 = 2;
375pub const BPF_F_QUERY_EFFECTIVE: u32 = 1;
376pub const BPF_F_TEST_RUN_ON_CPU: u32 = 1;
377pub const BPF_F_TEST_XDP_LIVE_FRAMES: u32 = 2;
378pub const BPF_F_TEST_SKB_CHECKSUM_COMPLETE: u32 = 4;
379pub const BPF_BUILD_ID_SIZE: u32 = 20;
380pub const BPF_OBJ_NAME_LEN: u32 = 16;
381pub const XDP_PACKET_HEADROOM: u32 = 256;
382pub const BPF_TAG_SIZE: u32 = 8;
383pub const BPF_LOG_BUF_SIZE: u32 = 16777215;
384pub const BTF_MAGIC: u32 = 60319;
385pub const BTF_VERSION: u32 = 1;
386pub const BTF_MAX_TYPE: u32 = 1048575;
387pub const BTF_MAX_NAME_OFFSET: u32 = 16777215;
388pub const BTF_MAX_VLEN: u32 = 65535;
389pub const BTF_INT_SIGNED: u32 = 1;
390pub const BTF_INT_CHAR: u32 = 2;
391pub const BTF_INT_BOOL: u32 = 4;
392pub const BTF_ELF_SEC: &[u8; 5] = b".BTF\0";
393pub const BTF_EXT_ELF_SEC: &[u8; 9] = b".BTF.ext\0";
394pub const BTF_BASE_ELF_SEC: &[u8; 10] = b".BTF.base\0";
395pub type size_t = ::std::os::raw::c_ulong;
396pub type __pid_t = ::std::os::raw::c_int;
397pub type __u8 = ::std::os::raw::c_uchar;
398pub type __s16 = ::std::os::raw::c_short;
399pub type __u16 = ::std::os::raw::c_ushort;
400pub type __s32 = ::std::os::raw::c_int;
401pub type __u32 = ::std::os::raw::c_uint;
402pub type __s64 = ::std::os::raw::c_longlong;
403pub type __u64 = ::std::os::raw::c_ulonglong;
404pub type __be16 = __u16;
405pub type __be32 = __u32;
406pub const XDP_ATTACHED_NONE: _bindgen_ty_48 = 0;
407pub const XDP_ATTACHED_DRV: _bindgen_ty_48 = 1;
408pub const XDP_ATTACHED_SKB: _bindgen_ty_48 = 2;
409pub const XDP_ATTACHED_HW: _bindgen_ty_48 = 3;
410pub const XDP_ATTACHED_MULTI: _bindgen_ty_48 = 4;
411pub type _bindgen_ty_48 = ::std::os::raw::c_uint;
412pub const PERF_TYPE_HARDWARE: perf_type_id = 0;
413pub const PERF_TYPE_SOFTWARE: perf_type_id = 1;
414pub const PERF_TYPE_TRACEPOINT: perf_type_id = 2;
415pub const PERF_TYPE_HW_CACHE: perf_type_id = 3;
416pub const PERF_TYPE_RAW: perf_type_id = 4;
417pub const PERF_TYPE_BREAKPOINT: perf_type_id = 5;
418pub const PERF_TYPE_MAX: perf_type_id = 6;
419pub type perf_type_id = ::std::os::raw::c_uint;
420pub const PERF_COUNT_HW_CPU_CYCLES: perf_hw_id = 0;
421pub const PERF_COUNT_HW_INSTRUCTIONS: perf_hw_id = 1;
422pub const PERF_COUNT_HW_CACHE_REFERENCES: perf_hw_id = 2;
423pub const PERF_COUNT_HW_CACHE_MISSES: perf_hw_id = 3;
424pub const PERF_COUNT_HW_BRANCH_INSTRUCTIONS: perf_hw_id = 4;
425pub const PERF_COUNT_HW_BRANCH_MISSES: perf_hw_id = 5;
426pub const PERF_COUNT_HW_BUS_CYCLES: perf_hw_id = 6;
427pub const PERF_COUNT_HW_STALLED_CYCLES_FRONTEND: perf_hw_id = 7;
428pub const PERF_COUNT_HW_STALLED_CYCLES_BACKEND: perf_hw_id = 8;
429pub const PERF_COUNT_HW_REF_CPU_CYCLES: perf_hw_id = 9;
430pub const PERF_COUNT_HW_MAX: perf_hw_id = 10;
431pub type perf_hw_id = ::std::os::raw::c_uint;
432pub const PERF_COUNT_HW_CACHE_L1D: perf_hw_cache_id = 0;
433pub const PERF_COUNT_HW_CACHE_L1I: perf_hw_cache_id = 1;
434pub const PERF_COUNT_HW_CACHE_LL: perf_hw_cache_id = 2;
435pub const PERF_COUNT_HW_CACHE_DTLB: perf_hw_cache_id = 3;
436pub const PERF_COUNT_HW_CACHE_ITLB: perf_hw_cache_id = 4;
437pub const PERF_COUNT_HW_CACHE_BPU: perf_hw_cache_id = 5;
438pub const PERF_COUNT_HW_CACHE_NODE: perf_hw_cache_id = 6;
439pub const PERF_COUNT_HW_CACHE_MAX: perf_hw_cache_id = 7;
440pub type perf_hw_cache_id = ::std::os::raw::c_uint;
441pub const PERF_COUNT_HW_CACHE_OP_READ: perf_hw_cache_op_id = 0;
442pub const PERF_COUNT_HW_CACHE_OP_WRITE: perf_hw_cache_op_id = 1;
443pub const PERF_COUNT_HW_CACHE_OP_PREFETCH: perf_hw_cache_op_id = 2;
444pub const PERF_COUNT_HW_CACHE_OP_MAX: perf_hw_cache_op_id = 3;
445pub type perf_hw_cache_op_id = ::std::os::raw::c_uint;
446pub const PERF_COUNT_HW_CACHE_RESULT_ACCESS: perf_hw_cache_op_result_id = 0;
447pub const PERF_COUNT_HW_CACHE_RESULT_MISS: perf_hw_cache_op_result_id = 1;
448pub const PERF_COUNT_HW_CACHE_RESULT_MAX: perf_hw_cache_op_result_id = 2;
449pub type perf_hw_cache_op_result_id = ::std::os::raw::c_uint;
450pub const PERF_COUNT_SW_CPU_CLOCK: perf_sw_ids = 0;
451pub const PERF_COUNT_SW_TASK_CLOCK: perf_sw_ids = 1;
452pub const PERF_COUNT_SW_PAGE_FAULTS: perf_sw_ids = 2;
453pub const PERF_COUNT_SW_CONTEXT_SWITCHES: perf_sw_ids = 3;
454pub const PERF_COUNT_SW_CPU_MIGRATIONS: perf_sw_ids = 4;
455pub const PERF_COUNT_SW_PAGE_FAULTS_MIN: perf_sw_ids = 5;
456pub const PERF_COUNT_SW_PAGE_FAULTS_MAJ: perf_sw_ids = 6;
457pub const PERF_COUNT_SW_ALIGNMENT_FAULTS: perf_sw_ids = 7;
458pub const PERF_COUNT_SW_EMULATION_FAULTS: perf_sw_ids = 8;
459pub const PERF_COUNT_SW_DUMMY: perf_sw_ids = 9;
460pub const PERF_COUNT_SW_BPF_OUTPUT: perf_sw_ids = 10;
461pub const PERF_COUNT_SW_CGROUP_SWITCHES: perf_sw_ids = 11;
462pub const PERF_COUNT_SW_MAX: perf_sw_ids = 12;
463pub type perf_sw_ids = ::std::os::raw::c_uint;
464pub const PERF_SAMPLE_IP: perf_event_sample_format = 1;
465pub const PERF_SAMPLE_TID: perf_event_sample_format = 2;
466pub const PERF_SAMPLE_TIME: perf_event_sample_format = 4;
467pub const PERF_SAMPLE_ADDR: perf_event_sample_format = 8;
468pub const PERF_SAMPLE_READ: perf_event_sample_format = 16;
469pub const PERF_SAMPLE_CALLCHAIN: perf_event_sample_format = 32;
470pub const PERF_SAMPLE_ID: perf_event_sample_format = 64;
471pub const PERF_SAMPLE_CPU: perf_event_sample_format = 128;
472pub const PERF_SAMPLE_PERIOD: perf_event_sample_format = 256;
473pub const PERF_SAMPLE_STREAM_ID: perf_event_sample_format = 512;
474pub const PERF_SAMPLE_RAW: perf_event_sample_format = 1024;
475pub const PERF_SAMPLE_BRANCH_STACK: perf_event_sample_format = 2048;
476pub const PERF_SAMPLE_REGS_USER: perf_event_sample_format = 4096;
477pub const PERF_SAMPLE_STACK_USER: perf_event_sample_format = 8192;
478pub const PERF_SAMPLE_WEIGHT: perf_event_sample_format = 16384;
479pub const PERF_SAMPLE_DATA_SRC: perf_event_sample_format = 32768;
480pub const PERF_SAMPLE_IDENTIFIER: perf_event_sample_format = 65536;
481pub const PERF_SAMPLE_TRANSACTION: perf_event_sample_format = 131072;
482pub const PERF_SAMPLE_REGS_INTR: perf_event_sample_format = 262144;
483pub const PERF_SAMPLE_PHYS_ADDR: perf_event_sample_format = 524288;
484pub const PERF_SAMPLE_AUX: perf_event_sample_format = 1048576;
485pub const PERF_SAMPLE_CGROUP: perf_event_sample_format = 2097152;
486pub const PERF_SAMPLE_DATA_PAGE_SIZE: perf_event_sample_format = 4194304;
487pub const PERF_SAMPLE_CODE_PAGE_SIZE: perf_event_sample_format = 8388608;
488pub const PERF_SAMPLE_WEIGHT_STRUCT: perf_event_sample_format = 16777216;
489pub const PERF_SAMPLE_MAX: perf_event_sample_format = 33554432;
490pub type perf_event_sample_format = ::std::os::raw::c_uint;
491pub const PERF_SAMPLE_BRANCH_USER_SHIFT: perf_branch_sample_type_shift = 0;
492pub const PERF_SAMPLE_BRANCH_KERNEL_SHIFT: perf_branch_sample_type_shift = 1;
493pub const PERF_SAMPLE_BRANCH_HV_SHIFT: perf_branch_sample_type_shift = 2;
494pub const PERF_SAMPLE_BRANCH_ANY_SHIFT: perf_branch_sample_type_shift = 3;
495pub const PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT: perf_branch_sample_type_shift = 4;
496pub const PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT: perf_branch_sample_type_shift = 5;
497pub const PERF_SAMPLE_BRANCH_IND_CALL_SHIFT: perf_branch_sample_type_shift = 6;
498pub const PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT: perf_branch_sample_type_shift = 7;
499pub const PERF_SAMPLE_BRANCH_IN_TX_SHIFT: perf_branch_sample_type_shift = 8;
500pub const PERF_SAMPLE_BRANCH_NO_TX_SHIFT: perf_branch_sample_type_shift = 9;
501pub const PERF_SAMPLE_BRANCH_COND_SHIFT: perf_branch_sample_type_shift = 10;
502pub const PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT: perf_branch_sample_type_shift = 11;
503pub const PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT: perf_branch_sample_type_shift = 12;
504pub const PERF_SAMPLE_BRANCH_CALL_SHIFT: perf_branch_sample_type_shift = 13;
505pub const PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT: perf_branch_sample_type_shift = 14;
506pub const PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT: perf_branch_sample_type_shift = 15;
507pub const PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT: perf_branch_sample_type_shift = 16;
508pub const PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT: perf_branch_sample_type_shift = 17;
509pub const PERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT: perf_branch_sample_type_shift = 18;
510pub const PERF_SAMPLE_BRANCH_COUNTERS_SHIFT: perf_branch_sample_type_shift = 19;
511pub const PERF_SAMPLE_BRANCH_MAX_SHIFT: perf_branch_sample_type_shift = 20;
512pub type perf_branch_sample_type_shift = ::std::os::raw::c_uint;
513pub const PERF_SAMPLE_BRANCH_USER: perf_branch_sample_type = 1;
514pub const PERF_SAMPLE_BRANCH_KERNEL: perf_branch_sample_type = 2;
515pub const PERF_SAMPLE_BRANCH_HV: perf_branch_sample_type = 4;
516pub const PERF_SAMPLE_BRANCH_ANY: perf_branch_sample_type = 8;
517pub const PERF_SAMPLE_BRANCH_ANY_CALL: perf_branch_sample_type = 16;
518pub const PERF_SAMPLE_BRANCH_ANY_RETURN: perf_branch_sample_type = 32;
519pub const PERF_SAMPLE_BRANCH_IND_CALL: perf_branch_sample_type = 64;
520pub const PERF_SAMPLE_BRANCH_ABORT_TX: perf_branch_sample_type = 128;
521pub const PERF_SAMPLE_BRANCH_IN_TX: perf_branch_sample_type = 256;
522pub const PERF_SAMPLE_BRANCH_NO_TX: perf_branch_sample_type = 512;
523pub const PERF_SAMPLE_BRANCH_COND: perf_branch_sample_type = 1024;
524pub const PERF_SAMPLE_BRANCH_CALL_STACK: perf_branch_sample_type = 2048;
525pub const PERF_SAMPLE_BRANCH_IND_JUMP: perf_branch_sample_type = 4096;
526pub const PERF_SAMPLE_BRANCH_CALL: perf_branch_sample_type = 8192;
527pub const PERF_SAMPLE_BRANCH_NO_FLAGS: perf_branch_sample_type = 16384;
528pub const PERF_SAMPLE_BRANCH_NO_CYCLES: perf_branch_sample_type = 32768;
529pub const PERF_SAMPLE_BRANCH_TYPE_SAVE: perf_branch_sample_type = 65536;
530pub const PERF_SAMPLE_BRANCH_HW_INDEX: perf_branch_sample_type = 131072;
531pub const PERF_SAMPLE_BRANCH_PRIV_SAVE: perf_branch_sample_type = 262144;
532pub const PERF_SAMPLE_BRANCH_COUNTERS: perf_branch_sample_type = 524288;
533pub const PERF_SAMPLE_BRANCH_MAX: perf_branch_sample_type = 1048576;
534pub type perf_branch_sample_type = ::std::os::raw::c_uint;
535pub const PERF_BR_UNKNOWN: _bindgen_ty_55 = 0;
536pub const PERF_BR_COND: _bindgen_ty_55 = 1;
537pub const PERF_BR_UNCOND: _bindgen_ty_55 = 2;
538pub const PERF_BR_IND: _bindgen_ty_55 = 3;
539pub const PERF_BR_CALL: _bindgen_ty_55 = 4;
540pub const PERF_BR_IND_CALL: _bindgen_ty_55 = 5;
541pub const PERF_BR_RET: _bindgen_ty_55 = 6;
542pub const PERF_BR_SYSCALL: _bindgen_ty_55 = 7;
543pub const PERF_BR_SYSRET: _bindgen_ty_55 = 8;
544pub const PERF_BR_COND_CALL: _bindgen_ty_55 = 9;
545pub const PERF_BR_COND_RET: _bindgen_ty_55 = 10;
546pub const PERF_BR_ERET: _bindgen_ty_55 = 11;
547pub const PERF_BR_IRQ: _bindgen_ty_55 = 12;
548pub const PERF_BR_SERROR: _bindgen_ty_55 = 13;
549pub const PERF_BR_NO_TX: _bindgen_ty_55 = 14;
550pub const PERF_BR_EXTEND_ABI: _bindgen_ty_55 = 15;
551pub const PERF_BR_MAX: _bindgen_ty_55 = 16;
552pub type _bindgen_ty_55 = ::std::os::raw::c_uint;
553pub const PERF_BR_SPEC_NA: _bindgen_ty_56 = 0;
554pub const PERF_BR_SPEC_WRONG_PATH: _bindgen_ty_56 = 1;
555pub const PERF_BR_NON_SPEC_CORRECT_PATH: _bindgen_ty_56 = 2;
556pub const PERF_BR_SPEC_CORRECT_PATH: _bindgen_ty_56 = 3;
557pub const PERF_BR_SPEC_MAX: _bindgen_ty_56 = 4;
558pub type _bindgen_ty_56 = ::std::os::raw::c_uint;
559pub const PERF_BR_NEW_FAULT_ALGN: _bindgen_ty_57 = 0;
560pub const PERF_BR_NEW_FAULT_DATA: _bindgen_ty_57 = 1;
561pub const PERF_BR_NEW_FAULT_INST: _bindgen_ty_57 = 2;
562pub const PERF_BR_NEW_ARCH_1: _bindgen_ty_57 = 3;
563pub const PERF_BR_NEW_ARCH_2: _bindgen_ty_57 = 4;
564pub const PERF_BR_NEW_ARCH_3: _bindgen_ty_57 = 5;
565pub const PERF_BR_NEW_ARCH_4: _bindgen_ty_57 = 6;
566pub const PERF_BR_NEW_ARCH_5: _bindgen_ty_57 = 7;
567pub const PERF_BR_NEW_MAX: _bindgen_ty_57 = 8;
568pub type _bindgen_ty_57 = ::std::os::raw::c_uint;
569pub const PERF_BR_PRIV_UNKNOWN: _bindgen_ty_58 = 0;
570pub const PERF_BR_PRIV_USER: _bindgen_ty_58 = 1;
571pub const PERF_BR_PRIV_KERNEL: _bindgen_ty_58 = 2;
572pub const PERF_BR_PRIV_HV: _bindgen_ty_58 = 3;
573pub type _bindgen_ty_58 = ::std::os::raw::c_uint;
574pub const PERF_SAMPLE_REGS_ABI_NONE: perf_sample_regs_abi = 0;
575pub const PERF_SAMPLE_REGS_ABI_32: perf_sample_regs_abi = 1;
576pub const PERF_SAMPLE_REGS_ABI_64: perf_sample_regs_abi = 2;
577pub type perf_sample_regs_abi = ::std::os::raw::c_uint;
578pub const PERF_TXN_ELISION: _bindgen_ty_59 = 1;
579pub const PERF_TXN_TRANSACTION: _bindgen_ty_59 = 2;
580pub const PERF_TXN_SYNC: _bindgen_ty_59 = 4;
581pub const PERF_TXN_ASYNC: _bindgen_ty_59 = 8;
582pub const PERF_TXN_RETRY: _bindgen_ty_59 = 16;
583pub const PERF_TXN_CONFLICT: _bindgen_ty_59 = 32;
584pub const PERF_TXN_CAPACITY_WRITE: _bindgen_ty_59 = 64;
585pub const PERF_TXN_CAPACITY_READ: _bindgen_ty_59 = 128;
586pub const PERF_TXN_MAX: _bindgen_ty_59 = 256;
587pub const PERF_TXN_ABORT_MASK: _bindgen_ty_59 = 18446744069414584320;
588pub const PERF_TXN_ABORT_SHIFT: _bindgen_ty_59 = 32;
589pub type _bindgen_ty_59 = ::std::os::raw::c_ulong;
590pub const PERF_FORMAT_TOTAL_TIME_ENABLED: perf_event_read_format = 1;
591pub const PERF_FORMAT_TOTAL_TIME_RUNNING: perf_event_read_format = 2;
592pub const PERF_FORMAT_ID: perf_event_read_format = 4;
593pub const PERF_FORMAT_GROUP: perf_event_read_format = 8;
594pub const PERF_FORMAT_LOST: perf_event_read_format = 16;
595pub const PERF_FORMAT_MAX: perf_event_read_format = 32;
596pub type perf_event_read_format = ::std::os::raw::c_uint;
597#[repr(C)]
598#[derive(Copy, Clone)]
599pub struct perf_event_attr {
600    pub type_: __u32,
601    pub size: __u32,
602    pub config: __u64,
603    pub __bindgen_anon_1: perf_event_attr__bindgen_ty_1,
604    pub sample_type: __u64,
605    pub read_format: __u64,
606    pub _bitfield_align_1: [u32; 0],
607    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
608    pub __bindgen_anon_2: perf_event_attr__bindgen_ty_2,
609    pub bp_type: __u32,
610    pub __bindgen_anon_3: perf_event_attr__bindgen_ty_3,
611    pub __bindgen_anon_4: perf_event_attr__bindgen_ty_4,
612    pub branch_sample_type: __u64,
613    pub sample_regs_user: __u64,
614    pub sample_stack_user: __u32,
615    pub clockid: __s32,
616    pub sample_regs_intr: __u64,
617    pub aux_watermark: __u32,
618    pub sample_max_stack: __u16,
619    pub __reserved_2: __u16,
620    pub aux_sample_size: __u32,
621    pub __bindgen_anon_5: perf_event_attr__bindgen_ty_5,
622    pub sig_data: __u64,
623    pub config3: __u64,
624}
625#[repr(C)]
626#[derive(Copy, Clone)]
627pub union perf_event_attr__bindgen_ty_1 {
628    pub sample_period: __u64,
629    pub sample_freq: __u64,
630}
631impl Default for perf_event_attr__bindgen_ty_1 {
632    fn default() -> Self {
633        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
634        unsafe {
635            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
636            s.assume_init()
637        }
638    }
639}
640#[repr(C)]
641#[derive(Copy, Clone)]
642pub union perf_event_attr__bindgen_ty_2 {
643    pub wakeup_events: __u32,
644    pub wakeup_watermark: __u32,
645}
646impl Default for perf_event_attr__bindgen_ty_2 {
647    fn default() -> Self {
648        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
649        unsafe {
650            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
651            s.assume_init()
652        }
653    }
654}
655#[repr(C)]
656#[derive(Copy, Clone)]
657pub union perf_event_attr__bindgen_ty_3 {
658    pub bp_addr: __u64,
659    pub kprobe_func: __u64,
660    pub uprobe_path: __u64,
661    pub config1: __u64,
662}
663impl Default for perf_event_attr__bindgen_ty_3 {
664    fn default() -> Self {
665        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
666        unsafe {
667            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
668            s.assume_init()
669        }
670    }
671}
672#[repr(C)]
673#[derive(Copy, Clone)]
674pub union perf_event_attr__bindgen_ty_4 {
675    pub bp_len: __u64,
676    pub kprobe_addr: __u64,
677    pub probe_offset: __u64,
678    pub config2: __u64,
679}
680impl Default for perf_event_attr__bindgen_ty_4 {
681    fn default() -> Self {
682        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
683        unsafe {
684            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
685            s.assume_init()
686        }
687    }
688}
689#[repr(C)]
690#[derive(Copy, Clone)]
691pub union perf_event_attr__bindgen_ty_5 {
692    pub aux_action: __u32,
693    pub __bindgen_anon_1: perf_event_attr__bindgen_ty_5__bindgen_ty_1,
694}
695#[repr(C)]
696#[derive(Debug, Default, Copy, Clone)]
697pub struct perf_event_attr__bindgen_ty_5__bindgen_ty_1 {
698    pub _bitfield_align_1: [u32; 0],
699    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
700}
701impl perf_event_attr__bindgen_ty_5__bindgen_ty_1 {
702    #[inline]
703    pub fn aux_start_paused(&self) -> __u32 {
704        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
705    }
706    #[inline]
707    pub fn set_aux_start_paused(&mut self, val: __u32) {
708        unsafe {
709            let val: u32 = ::std::mem::transmute(val);
710            self._bitfield_1.set(0usize, 1u8, val as u64)
711        }
712    }
713    #[inline]
714    pub unsafe fn aux_start_paused_raw(this: *const Self) -> __u32 {
715        unsafe {
716            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
717                ::std::ptr::addr_of!((*this)._bitfield_1),
718                0usize,
719                1u8,
720            ) as u32)
721        }
722    }
723    #[inline]
724    pub unsafe fn set_aux_start_paused_raw(this: *mut Self, val: __u32) {
725        unsafe {
726            let val: u32 = ::std::mem::transmute(val);
727            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
728                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
729                0usize,
730                1u8,
731                val as u64,
732            )
733        }
734    }
735    #[inline]
736    pub fn aux_pause(&self) -> __u32 {
737        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
738    }
739    #[inline]
740    pub fn set_aux_pause(&mut self, val: __u32) {
741        unsafe {
742            let val: u32 = ::std::mem::transmute(val);
743            self._bitfield_1.set(1usize, 1u8, val as u64)
744        }
745    }
746    #[inline]
747    pub unsafe fn aux_pause_raw(this: *const Self) -> __u32 {
748        unsafe {
749            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
750                ::std::ptr::addr_of!((*this)._bitfield_1),
751                1usize,
752                1u8,
753            ) as u32)
754        }
755    }
756    #[inline]
757    pub unsafe fn set_aux_pause_raw(this: *mut Self, val: __u32) {
758        unsafe {
759            let val: u32 = ::std::mem::transmute(val);
760            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
761                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
762                1usize,
763                1u8,
764                val as u64,
765            )
766        }
767    }
768    #[inline]
769    pub fn aux_resume(&self) -> __u32 {
770        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
771    }
772    #[inline]
773    pub fn set_aux_resume(&mut self, val: __u32) {
774        unsafe {
775            let val: u32 = ::std::mem::transmute(val);
776            self._bitfield_1.set(2usize, 1u8, val as u64)
777        }
778    }
779    #[inline]
780    pub unsafe fn aux_resume_raw(this: *const Self) -> __u32 {
781        unsafe {
782            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
783                ::std::ptr::addr_of!((*this)._bitfield_1),
784                2usize,
785                1u8,
786            ) as u32)
787        }
788    }
789    #[inline]
790    pub unsafe fn set_aux_resume_raw(this: *mut Self, val: __u32) {
791        unsafe {
792            let val: u32 = ::std::mem::transmute(val);
793            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
794                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
795                2usize,
796                1u8,
797                val as u64,
798            )
799        }
800    }
801    #[inline]
802    pub fn __reserved_3(&self) -> __u32 {
803        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
804    }
805    #[inline]
806    pub fn set___reserved_3(&mut self, val: __u32) {
807        unsafe {
808            let val: u32 = ::std::mem::transmute(val);
809            self._bitfield_1.set(3usize, 29u8, val as u64)
810        }
811    }
812    #[inline]
813    pub unsafe fn __reserved_3_raw(this: *const Self) -> __u32 {
814        unsafe {
815            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
816                ::std::ptr::addr_of!((*this)._bitfield_1),
817                3usize,
818                29u8,
819            ) as u32)
820        }
821    }
822    #[inline]
823    pub unsafe fn set___reserved_3_raw(this: *mut Self, val: __u32) {
824        unsafe {
825            let val: u32 = ::std::mem::transmute(val);
826            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
827                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
828                3usize,
829                29u8,
830                val as u64,
831            )
832        }
833    }
834    #[inline]
835    pub fn new_bitfield_1(
836        aux_start_paused: __u32,
837        aux_pause: __u32,
838        aux_resume: __u32,
839        __reserved_3: __u32,
840    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
841        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
842        __bindgen_bitfield_unit.set(0usize, 1u8, {
843            let aux_start_paused: u32 = unsafe { ::std::mem::transmute(aux_start_paused) };
844            aux_start_paused as u64
845        });
846        __bindgen_bitfield_unit.set(1usize, 1u8, {
847            let aux_pause: u32 = unsafe { ::std::mem::transmute(aux_pause) };
848            aux_pause as u64
849        });
850        __bindgen_bitfield_unit.set(2usize, 1u8, {
851            let aux_resume: u32 = unsafe { ::std::mem::transmute(aux_resume) };
852            aux_resume as u64
853        });
854        __bindgen_bitfield_unit.set(3usize, 29u8, {
855            let __reserved_3: u32 = unsafe { ::std::mem::transmute(__reserved_3) };
856            __reserved_3 as u64
857        });
858        __bindgen_bitfield_unit
859    }
860}
861impl Default for perf_event_attr__bindgen_ty_5 {
862    fn default() -> Self {
863        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
864        unsafe {
865            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
866            s.assume_init()
867        }
868    }
869}
870impl Default for perf_event_attr {
871    fn default() -> Self {
872        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
873        unsafe {
874            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
875            s.assume_init()
876        }
877    }
878}
879impl perf_event_attr {
880    #[inline]
881    pub fn disabled(&self) -> __u64 {
882        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u64) }
883    }
884    #[inline]
885    pub fn set_disabled(&mut self, val: __u64) {
886        unsafe {
887            let val: u64 = ::std::mem::transmute(val);
888            self._bitfield_1.set(0usize, 1u8, val as u64)
889        }
890    }
891    #[inline]
892    pub unsafe fn disabled_raw(this: *const Self) -> __u64 {
893        unsafe {
894            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
895                ::std::ptr::addr_of!((*this)._bitfield_1),
896                0usize,
897                1u8,
898            ) as u64)
899        }
900    }
901    #[inline]
902    pub unsafe fn set_disabled_raw(this: *mut Self, val: __u64) {
903        unsafe {
904            let val: u64 = ::std::mem::transmute(val);
905            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
906                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
907                0usize,
908                1u8,
909                val as u64,
910            )
911        }
912    }
913    #[inline]
914    pub fn inherit(&self) -> __u64 {
915        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u64) }
916    }
917    #[inline]
918    pub fn set_inherit(&mut self, val: __u64) {
919        unsafe {
920            let val: u64 = ::std::mem::transmute(val);
921            self._bitfield_1.set(1usize, 1u8, val as u64)
922        }
923    }
924    #[inline]
925    pub unsafe fn inherit_raw(this: *const Self) -> __u64 {
926        unsafe {
927            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
928                ::std::ptr::addr_of!((*this)._bitfield_1),
929                1usize,
930                1u8,
931            ) as u64)
932        }
933    }
934    #[inline]
935    pub unsafe fn set_inherit_raw(this: *mut Self, val: __u64) {
936        unsafe {
937            let val: u64 = ::std::mem::transmute(val);
938            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
939                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
940                1usize,
941                1u8,
942                val as u64,
943            )
944        }
945    }
946    #[inline]
947    pub fn pinned(&self) -> __u64 {
948        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u64) }
949    }
950    #[inline]
951    pub fn set_pinned(&mut self, val: __u64) {
952        unsafe {
953            let val: u64 = ::std::mem::transmute(val);
954            self._bitfield_1.set(2usize, 1u8, val as u64)
955        }
956    }
957    #[inline]
958    pub unsafe fn pinned_raw(this: *const Self) -> __u64 {
959        unsafe {
960            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
961                ::std::ptr::addr_of!((*this)._bitfield_1),
962                2usize,
963                1u8,
964            ) as u64)
965        }
966    }
967    #[inline]
968    pub unsafe fn set_pinned_raw(this: *mut Self, val: __u64) {
969        unsafe {
970            let val: u64 = ::std::mem::transmute(val);
971            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
972                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
973                2usize,
974                1u8,
975                val as u64,
976            )
977        }
978    }
979    #[inline]
980    pub fn exclusive(&self) -> __u64 {
981        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u64) }
982    }
983    #[inline]
984    pub fn set_exclusive(&mut self, val: __u64) {
985        unsafe {
986            let val: u64 = ::std::mem::transmute(val);
987            self._bitfield_1.set(3usize, 1u8, val as u64)
988        }
989    }
990    #[inline]
991    pub unsafe fn exclusive_raw(this: *const Self) -> __u64 {
992        unsafe {
993            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
994                ::std::ptr::addr_of!((*this)._bitfield_1),
995                3usize,
996                1u8,
997            ) as u64)
998        }
999    }
1000    #[inline]
1001    pub unsafe fn set_exclusive_raw(this: *mut Self, val: __u64) {
1002        unsafe {
1003            let val: u64 = ::std::mem::transmute(val);
1004            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1005                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1006                3usize,
1007                1u8,
1008                val as u64,
1009            )
1010        }
1011    }
1012    #[inline]
1013    pub fn exclude_user(&self) -> __u64 {
1014        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u64) }
1015    }
1016    #[inline]
1017    pub fn set_exclude_user(&mut self, val: __u64) {
1018        unsafe {
1019            let val: u64 = ::std::mem::transmute(val);
1020            self._bitfield_1.set(4usize, 1u8, val as u64)
1021        }
1022    }
1023    #[inline]
1024    pub unsafe fn exclude_user_raw(this: *const Self) -> __u64 {
1025        unsafe {
1026            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1027                ::std::ptr::addr_of!((*this)._bitfield_1),
1028                4usize,
1029                1u8,
1030            ) as u64)
1031        }
1032    }
1033    #[inline]
1034    pub unsafe fn set_exclude_user_raw(this: *mut Self, val: __u64) {
1035        unsafe {
1036            let val: u64 = ::std::mem::transmute(val);
1037            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1038                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1039                4usize,
1040                1u8,
1041                val as u64,
1042            )
1043        }
1044    }
1045    #[inline]
1046    pub fn exclude_kernel(&self) -> __u64 {
1047        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u64) }
1048    }
1049    #[inline]
1050    pub fn set_exclude_kernel(&mut self, val: __u64) {
1051        unsafe {
1052            let val: u64 = ::std::mem::transmute(val);
1053            self._bitfield_1.set(5usize, 1u8, val as u64)
1054        }
1055    }
1056    #[inline]
1057    pub unsafe fn exclude_kernel_raw(this: *const Self) -> __u64 {
1058        unsafe {
1059            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1060                ::std::ptr::addr_of!((*this)._bitfield_1),
1061                5usize,
1062                1u8,
1063            ) as u64)
1064        }
1065    }
1066    #[inline]
1067    pub unsafe fn set_exclude_kernel_raw(this: *mut Self, val: __u64) {
1068        unsafe {
1069            let val: u64 = ::std::mem::transmute(val);
1070            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1071                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1072                5usize,
1073                1u8,
1074                val as u64,
1075            )
1076        }
1077    }
1078    #[inline]
1079    pub fn exclude_hv(&self) -> __u64 {
1080        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u64) }
1081    }
1082    #[inline]
1083    pub fn set_exclude_hv(&mut self, val: __u64) {
1084        unsafe {
1085            let val: u64 = ::std::mem::transmute(val);
1086            self._bitfield_1.set(6usize, 1u8, val as u64)
1087        }
1088    }
1089    #[inline]
1090    pub unsafe fn exclude_hv_raw(this: *const Self) -> __u64 {
1091        unsafe {
1092            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1093                ::std::ptr::addr_of!((*this)._bitfield_1),
1094                6usize,
1095                1u8,
1096            ) as u64)
1097        }
1098    }
1099    #[inline]
1100    pub unsafe fn set_exclude_hv_raw(this: *mut Self, val: __u64) {
1101        unsafe {
1102            let val: u64 = ::std::mem::transmute(val);
1103            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1104                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1105                6usize,
1106                1u8,
1107                val as u64,
1108            )
1109        }
1110    }
1111    #[inline]
1112    pub fn exclude_idle(&self) -> __u64 {
1113        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u64) }
1114    }
1115    #[inline]
1116    pub fn set_exclude_idle(&mut self, val: __u64) {
1117        unsafe {
1118            let val: u64 = ::std::mem::transmute(val);
1119            self._bitfield_1.set(7usize, 1u8, val as u64)
1120        }
1121    }
1122    #[inline]
1123    pub unsafe fn exclude_idle_raw(this: *const Self) -> __u64 {
1124        unsafe {
1125            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1126                ::std::ptr::addr_of!((*this)._bitfield_1),
1127                7usize,
1128                1u8,
1129            ) as u64)
1130        }
1131    }
1132    #[inline]
1133    pub unsafe fn set_exclude_idle_raw(this: *mut Self, val: __u64) {
1134        unsafe {
1135            let val: u64 = ::std::mem::transmute(val);
1136            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1137                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1138                7usize,
1139                1u8,
1140                val as u64,
1141            )
1142        }
1143    }
1144    #[inline]
1145    pub fn mmap(&self) -> __u64 {
1146        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u64) }
1147    }
1148    #[inline]
1149    pub fn set_mmap(&mut self, val: __u64) {
1150        unsafe {
1151            let val: u64 = ::std::mem::transmute(val);
1152            self._bitfield_1.set(8usize, 1u8, val as u64)
1153        }
1154    }
1155    #[inline]
1156    pub unsafe fn mmap_raw(this: *const Self) -> __u64 {
1157        unsafe {
1158            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1159                ::std::ptr::addr_of!((*this)._bitfield_1),
1160                8usize,
1161                1u8,
1162            ) as u64)
1163        }
1164    }
1165    #[inline]
1166    pub unsafe fn set_mmap_raw(this: *mut Self, val: __u64) {
1167        unsafe {
1168            let val: u64 = ::std::mem::transmute(val);
1169            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1170                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1171                8usize,
1172                1u8,
1173                val as u64,
1174            )
1175        }
1176    }
1177    #[inline]
1178    pub fn comm(&self) -> __u64 {
1179        unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u64) }
1180    }
1181    #[inline]
1182    pub fn set_comm(&mut self, val: __u64) {
1183        unsafe {
1184            let val: u64 = ::std::mem::transmute(val);
1185            self._bitfield_1.set(9usize, 1u8, val as u64)
1186        }
1187    }
1188    #[inline]
1189    pub unsafe fn comm_raw(this: *const Self) -> __u64 {
1190        unsafe {
1191            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1192                ::std::ptr::addr_of!((*this)._bitfield_1),
1193                9usize,
1194                1u8,
1195            ) as u64)
1196        }
1197    }
1198    #[inline]
1199    pub unsafe fn set_comm_raw(this: *mut Self, val: __u64) {
1200        unsafe {
1201            let val: u64 = ::std::mem::transmute(val);
1202            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1203                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1204                9usize,
1205                1u8,
1206                val as u64,
1207            )
1208        }
1209    }
1210    #[inline]
1211    pub fn freq(&self) -> __u64 {
1212        unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u64) }
1213    }
1214    #[inline]
1215    pub fn set_freq(&mut self, val: __u64) {
1216        unsafe {
1217            let val: u64 = ::std::mem::transmute(val);
1218            self._bitfield_1.set(10usize, 1u8, val as u64)
1219        }
1220    }
1221    #[inline]
1222    pub unsafe fn freq_raw(this: *const Self) -> __u64 {
1223        unsafe {
1224            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1225                ::std::ptr::addr_of!((*this)._bitfield_1),
1226                10usize,
1227                1u8,
1228            ) as u64)
1229        }
1230    }
1231    #[inline]
1232    pub unsafe fn set_freq_raw(this: *mut Self, val: __u64) {
1233        unsafe {
1234            let val: u64 = ::std::mem::transmute(val);
1235            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1236                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1237                10usize,
1238                1u8,
1239                val as u64,
1240            )
1241        }
1242    }
1243    #[inline]
1244    pub fn inherit_stat(&self) -> __u64 {
1245        unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u64) }
1246    }
1247    #[inline]
1248    pub fn set_inherit_stat(&mut self, val: __u64) {
1249        unsafe {
1250            let val: u64 = ::std::mem::transmute(val);
1251            self._bitfield_1.set(11usize, 1u8, val as u64)
1252        }
1253    }
1254    #[inline]
1255    pub unsafe fn inherit_stat_raw(this: *const Self) -> __u64 {
1256        unsafe {
1257            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1258                ::std::ptr::addr_of!((*this)._bitfield_1),
1259                11usize,
1260                1u8,
1261            ) as u64)
1262        }
1263    }
1264    #[inline]
1265    pub unsafe fn set_inherit_stat_raw(this: *mut Self, val: __u64) {
1266        unsafe {
1267            let val: u64 = ::std::mem::transmute(val);
1268            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1269                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1270                11usize,
1271                1u8,
1272                val as u64,
1273            )
1274        }
1275    }
1276    #[inline]
1277    pub fn enable_on_exec(&self) -> __u64 {
1278        unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u64) }
1279    }
1280    #[inline]
1281    pub fn set_enable_on_exec(&mut self, val: __u64) {
1282        unsafe {
1283            let val: u64 = ::std::mem::transmute(val);
1284            self._bitfield_1.set(12usize, 1u8, val as u64)
1285        }
1286    }
1287    #[inline]
1288    pub unsafe fn enable_on_exec_raw(this: *const Self) -> __u64 {
1289        unsafe {
1290            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1291                ::std::ptr::addr_of!((*this)._bitfield_1),
1292                12usize,
1293                1u8,
1294            ) as u64)
1295        }
1296    }
1297    #[inline]
1298    pub unsafe fn set_enable_on_exec_raw(this: *mut Self, val: __u64) {
1299        unsafe {
1300            let val: u64 = ::std::mem::transmute(val);
1301            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1302                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1303                12usize,
1304                1u8,
1305                val as u64,
1306            )
1307        }
1308    }
1309    #[inline]
1310    pub fn task(&self) -> __u64 {
1311        unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u64) }
1312    }
1313    #[inline]
1314    pub fn set_task(&mut self, val: __u64) {
1315        unsafe {
1316            let val: u64 = ::std::mem::transmute(val);
1317            self._bitfield_1.set(13usize, 1u8, val as u64)
1318        }
1319    }
1320    #[inline]
1321    pub unsafe fn task_raw(this: *const Self) -> __u64 {
1322        unsafe {
1323            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1324                ::std::ptr::addr_of!((*this)._bitfield_1),
1325                13usize,
1326                1u8,
1327            ) as u64)
1328        }
1329    }
1330    #[inline]
1331    pub unsafe fn set_task_raw(this: *mut Self, val: __u64) {
1332        unsafe {
1333            let val: u64 = ::std::mem::transmute(val);
1334            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1335                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1336                13usize,
1337                1u8,
1338                val as u64,
1339            )
1340        }
1341    }
1342    #[inline]
1343    pub fn watermark(&self) -> __u64 {
1344        unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u64) }
1345    }
1346    #[inline]
1347    pub fn set_watermark(&mut self, val: __u64) {
1348        unsafe {
1349            let val: u64 = ::std::mem::transmute(val);
1350            self._bitfield_1.set(14usize, 1u8, val as u64)
1351        }
1352    }
1353    #[inline]
1354    pub unsafe fn watermark_raw(this: *const Self) -> __u64 {
1355        unsafe {
1356            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1357                ::std::ptr::addr_of!((*this)._bitfield_1),
1358                14usize,
1359                1u8,
1360            ) as u64)
1361        }
1362    }
1363    #[inline]
1364    pub unsafe fn set_watermark_raw(this: *mut Self, val: __u64) {
1365        unsafe {
1366            let val: u64 = ::std::mem::transmute(val);
1367            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1368                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1369                14usize,
1370                1u8,
1371                val as u64,
1372            )
1373        }
1374    }
1375    #[inline]
1376    pub fn precise_ip(&self) -> __u64 {
1377        unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 2u8) as u64) }
1378    }
1379    #[inline]
1380    pub fn set_precise_ip(&mut self, val: __u64) {
1381        unsafe {
1382            let val: u64 = ::std::mem::transmute(val);
1383            self._bitfield_1.set(15usize, 2u8, val as u64)
1384        }
1385    }
1386    #[inline]
1387    pub unsafe fn precise_ip_raw(this: *const Self) -> __u64 {
1388        unsafe {
1389            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1390                ::std::ptr::addr_of!((*this)._bitfield_1),
1391                15usize,
1392                2u8,
1393            ) as u64)
1394        }
1395    }
1396    #[inline]
1397    pub unsafe fn set_precise_ip_raw(this: *mut Self, val: __u64) {
1398        unsafe {
1399            let val: u64 = ::std::mem::transmute(val);
1400            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1401                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1402                15usize,
1403                2u8,
1404                val as u64,
1405            )
1406        }
1407    }
1408    #[inline]
1409    pub fn mmap_data(&self) -> __u64 {
1410        unsafe { ::std::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u64) }
1411    }
1412    #[inline]
1413    pub fn set_mmap_data(&mut self, val: __u64) {
1414        unsafe {
1415            let val: u64 = ::std::mem::transmute(val);
1416            self._bitfield_1.set(17usize, 1u8, val as u64)
1417        }
1418    }
1419    #[inline]
1420    pub unsafe fn mmap_data_raw(this: *const Self) -> __u64 {
1421        unsafe {
1422            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1423                ::std::ptr::addr_of!((*this)._bitfield_1),
1424                17usize,
1425                1u8,
1426            ) as u64)
1427        }
1428    }
1429    #[inline]
1430    pub unsafe fn set_mmap_data_raw(this: *mut Self, val: __u64) {
1431        unsafe {
1432            let val: u64 = ::std::mem::transmute(val);
1433            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1434                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1435                17usize,
1436                1u8,
1437                val as u64,
1438            )
1439        }
1440    }
1441    #[inline]
1442    pub fn sample_id_all(&self) -> __u64 {
1443        unsafe { ::std::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u64) }
1444    }
1445    #[inline]
1446    pub fn set_sample_id_all(&mut self, val: __u64) {
1447        unsafe {
1448            let val: u64 = ::std::mem::transmute(val);
1449            self._bitfield_1.set(18usize, 1u8, val as u64)
1450        }
1451    }
1452    #[inline]
1453    pub unsafe fn sample_id_all_raw(this: *const Self) -> __u64 {
1454        unsafe {
1455            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1456                ::std::ptr::addr_of!((*this)._bitfield_1),
1457                18usize,
1458                1u8,
1459            ) as u64)
1460        }
1461    }
1462    #[inline]
1463    pub unsafe fn set_sample_id_all_raw(this: *mut Self, val: __u64) {
1464        unsafe {
1465            let val: u64 = ::std::mem::transmute(val);
1466            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1467                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1468                18usize,
1469                1u8,
1470                val as u64,
1471            )
1472        }
1473    }
1474    #[inline]
1475    pub fn exclude_host(&self) -> __u64 {
1476        unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u64) }
1477    }
1478    #[inline]
1479    pub fn set_exclude_host(&mut self, val: __u64) {
1480        unsafe {
1481            let val: u64 = ::std::mem::transmute(val);
1482            self._bitfield_1.set(19usize, 1u8, val as u64)
1483        }
1484    }
1485    #[inline]
1486    pub unsafe fn exclude_host_raw(this: *const Self) -> __u64 {
1487        unsafe {
1488            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1489                ::std::ptr::addr_of!((*this)._bitfield_1),
1490                19usize,
1491                1u8,
1492            ) as u64)
1493        }
1494    }
1495    #[inline]
1496    pub unsafe fn set_exclude_host_raw(this: *mut Self, val: __u64) {
1497        unsafe {
1498            let val: u64 = ::std::mem::transmute(val);
1499            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1500                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1501                19usize,
1502                1u8,
1503                val as u64,
1504            )
1505        }
1506    }
1507    #[inline]
1508    pub fn exclude_guest(&self) -> __u64 {
1509        unsafe { ::std::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u64) }
1510    }
1511    #[inline]
1512    pub fn set_exclude_guest(&mut self, val: __u64) {
1513        unsafe {
1514            let val: u64 = ::std::mem::transmute(val);
1515            self._bitfield_1.set(20usize, 1u8, val as u64)
1516        }
1517    }
1518    #[inline]
1519    pub unsafe fn exclude_guest_raw(this: *const Self) -> __u64 {
1520        unsafe {
1521            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1522                ::std::ptr::addr_of!((*this)._bitfield_1),
1523                20usize,
1524                1u8,
1525            ) as u64)
1526        }
1527    }
1528    #[inline]
1529    pub unsafe fn set_exclude_guest_raw(this: *mut Self, val: __u64) {
1530        unsafe {
1531            let val: u64 = ::std::mem::transmute(val);
1532            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1533                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1534                20usize,
1535                1u8,
1536                val as u64,
1537            )
1538        }
1539    }
1540    #[inline]
1541    pub fn exclude_callchain_kernel(&self) -> __u64 {
1542        unsafe { ::std::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u64) }
1543    }
1544    #[inline]
1545    pub fn set_exclude_callchain_kernel(&mut self, val: __u64) {
1546        unsafe {
1547            let val: u64 = ::std::mem::transmute(val);
1548            self._bitfield_1.set(21usize, 1u8, val as u64)
1549        }
1550    }
1551    #[inline]
1552    pub unsafe fn exclude_callchain_kernel_raw(this: *const Self) -> __u64 {
1553        unsafe {
1554            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1555                ::std::ptr::addr_of!((*this)._bitfield_1),
1556                21usize,
1557                1u8,
1558            ) as u64)
1559        }
1560    }
1561    #[inline]
1562    pub unsafe fn set_exclude_callchain_kernel_raw(this: *mut Self, val: __u64) {
1563        unsafe {
1564            let val: u64 = ::std::mem::transmute(val);
1565            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1566                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1567                21usize,
1568                1u8,
1569                val as u64,
1570            )
1571        }
1572    }
1573    #[inline]
1574    pub fn exclude_callchain_user(&self) -> __u64 {
1575        unsafe { ::std::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u64) }
1576    }
1577    #[inline]
1578    pub fn set_exclude_callchain_user(&mut self, val: __u64) {
1579        unsafe {
1580            let val: u64 = ::std::mem::transmute(val);
1581            self._bitfield_1.set(22usize, 1u8, val as u64)
1582        }
1583    }
1584    #[inline]
1585    pub unsafe fn exclude_callchain_user_raw(this: *const Self) -> __u64 {
1586        unsafe {
1587            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1588                ::std::ptr::addr_of!((*this)._bitfield_1),
1589                22usize,
1590                1u8,
1591            ) as u64)
1592        }
1593    }
1594    #[inline]
1595    pub unsafe fn set_exclude_callchain_user_raw(this: *mut Self, val: __u64) {
1596        unsafe {
1597            let val: u64 = ::std::mem::transmute(val);
1598            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1599                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1600                22usize,
1601                1u8,
1602                val as u64,
1603            )
1604        }
1605    }
1606    #[inline]
1607    pub fn mmap2(&self) -> __u64 {
1608        unsafe { ::std::mem::transmute(self._bitfield_1.get(23usize, 1u8) as u64) }
1609    }
1610    #[inline]
1611    pub fn set_mmap2(&mut self, val: __u64) {
1612        unsafe {
1613            let val: u64 = ::std::mem::transmute(val);
1614            self._bitfield_1.set(23usize, 1u8, val as u64)
1615        }
1616    }
1617    #[inline]
1618    pub unsafe fn mmap2_raw(this: *const Self) -> __u64 {
1619        unsafe {
1620            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1621                ::std::ptr::addr_of!((*this)._bitfield_1),
1622                23usize,
1623                1u8,
1624            ) as u64)
1625        }
1626    }
1627    #[inline]
1628    pub unsafe fn set_mmap2_raw(this: *mut Self, val: __u64) {
1629        unsafe {
1630            let val: u64 = ::std::mem::transmute(val);
1631            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1632                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1633                23usize,
1634                1u8,
1635                val as u64,
1636            )
1637        }
1638    }
1639    #[inline]
1640    pub fn comm_exec(&self) -> __u64 {
1641        unsafe { ::std::mem::transmute(self._bitfield_1.get(24usize, 1u8) as u64) }
1642    }
1643    #[inline]
1644    pub fn set_comm_exec(&mut self, val: __u64) {
1645        unsafe {
1646            let val: u64 = ::std::mem::transmute(val);
1647            self._bitfield_1.set(24usize, 1u8, val as u64)
1648        }
1649    }
1650    #[inline]
1651    pub unsafe fn comm_exec_raw(this: *const Self) -> __u64 {
1652        unsafe {
1653            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1654                ::std::ptr::addr_of!((*this)._bitfield_1),
1655                24usize,
1656                1u8,
1657            ) as u64)
1658        }
1659    }
1660    #[inline]
1661    pub unsafe fn set_comm_exec_raw(this: *mut Self, val: __u64) {
1662        unsafe {
1663            let val: u64 = ::std::mem::transmute(val);
1664            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1665                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1666                24usize,
1667                1u8,
1668                val as u64,
1669            )
1670        }
1671    }
1672    #[inline]
1673    pub fn use_clockid(&self) -> __u64 {
1674        unsafe { ::std::mem::transmute(self._bitfield_1.get(25usize, 1u8) as u64) }
1675    }
1676    #[inline]
1677    pub fn set_use_clockid(&mut self, val: __u64) {
1678        unsafe {
1679            let val: u64 = ::std::mem::transmute(val);
1680            self._bitfield_1.set(25usize, 1u8, val as u64)
1681        }
1682    }
1683    #[inline]
1684    pub unsafe fn use_clockid_raw(this: *const Self) -> __u64 {
1685        unsafe {
1686            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1687                ::std::ptr::addr_of!((*this)._bitfield_1),
1688                25usize,
1689                1u8,
1690            ) as u64)
1691        }
1692    }
1693    #[inline]
1694    pub unsafe fn set_use_clockid_raw(this: *mut Self, val: __u64) {
1695        unsafe {
1696            let val: u64 = ::std::mem::transmute(val);
1697            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1698                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1699                25usize,
1700                1u8,
1701                val as u64,
1702            )
1703        }
1704    }
1705    #[inline]
1706    pub fn context_switch(&self) -> __u64 {
1707        unsafe { ::std::mem::transmute(self._bitfield_1.get(26usize, 1u8) as u64) }
1708    }
1709    #[inline]
1710    pub fn set_context_switch(&mut self, val: __u64) {
1711        unsafe {
1712            let val: u64 = ::std::mem::transmute(val);
1713            self._bitfield_1.set(26usize, 1u8, val as u64)
1714        }
1715    }
1716    #[inline]
1717    pub unsafe fn context_switch_raw(this: *const Self) -> __u64 {
1718        unsafe {
1719            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1720                ::std::ptr::addr_of!((*this)._bitfield_1),
1721                26usize,
1722                1u8,
1723            ) as u64)
1724        }
1725    }
1726    #[inline]
1727    pub unsafe fn set_context_switch_raw(this: *mut Self, val: __u64) {
1728        unsafe {
1729            let val: u64 = ::std::mem::transmute(val);
1730            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1731                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1732                26usize,
1733                1u8,
1734                val as u64,
1735            )
1736        }
1737    }
1738    #[inline]
1739    pub fn write_backward(&self) -> __u64 {
1740        unsafe { ::std::mem::transmute(self._bitfield_1.get(27usize, 1u8) as u64) }
1741    }
1742    #[inline]
1743    pub fn set_write_backward(&mut self, val: __u64) {
1744        unsafe {
1745            let val: u64 = ::std::mem::transmute(val);
1746            self._bitfield_1.set(27usize, 1u8, val as u64)
1747        }
1748    }
1749    #[inline]
1750    pub unsafe fn write_backward_raw(this: *const Self) -> __u64 {
1751        unsafe {
1752            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1753                ::std::ptr::addr_of!((*this)._bitfield_1),
1754                27usize,
1755                1u8,
1756            ) as u64)
1757        }
1758    }
1759    #[inline]
1760    pub unsafe fn set_write_backward_raw(this: *mut Self, val: __u64) {
1761        unsafe {
1762            let val: u64 = ::std::mem::transmute(val);
1763            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1764                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1765                27usize,
1766                1u8,
1767                val as u64,
1768            )
1769        }
1770    }
1771    #[inline]
1772    pub fn namespaces(&self) -> __u64 {
1773        unsafe { ::std::mem::transmute(self._bitfield_1.get(28usize, 1u8) as u64) }
1774    }
1775    #[inline]
1776    pub fn set_namespaces(&mut self, val: __u64) {
1777        unsafe {
1778            let val: u64 = ::std::mem::transmute(val);
1779            self._bitfield_1.set(28usize, 1u8, val as u64)
1780        }
1781    }
1782    #[inline]
1783    pub unsafe fn namespaces_raw(this: *const Self) -> __u64 {
1784        unsafe {
1785            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1786                ::std::ptr::addr_of!((*this)._bitfield_1),
1787                28usize,
1788                1u8,
1789            ) as u64)
1790        }
1791    }
1792    #[inline]
1793    pub unsafe fn set_namespaces_raw(this: *mut Self, val: __u64) {
1794        unsafe {
1795            let val: u64 = ::std::mem::transmute(val);
1796            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1797                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1798                28usize,
1799                1u8,
1800                val as u64,
1801            )
1802        }
1803    }
1804    #[inline]
1805    pub fn ksymbol(&self) -> __u64 {
1806        unsafe { ::std::mem::transmute(self._bitfield_1.get(29usize, 1u8) as u64) }
1807    }
1808    #[inline]
1809    pub fn set_ksymbol(&mut self, val: __u64) {
1810        unsafe {
1811            let val: u64 = ::std::mem::transmute(val);
1812            self._bitfield_1.set(29usize, 1u8, val as u64)
1813        }
1814    }
1815    #[inline]
1816    pub unsafe fn ksymbol_raw(this: *const Self) -> __u64 {
1817        unsafe {
1818            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1819                ::std::ptr::addr_of!((*this)._bitfield_1),
1820                29usize,
1821                1u8,
1822            ) as u64)
1823        }
1824    }
1825    #[inline]
1826    pub unsafe fn set_ksymbol_raw(this: *mut Self, val: __u64) {
1827        unsafe {
1828            let val: u64 = ::std::mem::transmute(val);
1829            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1830                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1831                29usize,
1832                1u8,
1833                val as u64,
1834            )
1835        }
1836    }
1837    #[inline]
1838    pub fn bpf_event(&self) -> __u64 {
1839        unsafe { ::std::mem::transmute(self._bitfield_1.get(30usize, 1u8) as u64) }
1840    }
1841    #[inline]
1842    pub fn set_bpf_event(&mut self, val: __u64) {
1843        unsafe {
1844            let val: u64 = ::std::mem::transmute(val);
1845            self._bitfield_1.set(30usize, 1u8, val as u64)
1846        }
1847    }
1848    #[inline]
1849    pub unsafe fn bpf_event_raw(this: *const Self) -> __u64 {
1850        unsafe {
1851            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1852                ::std::ptr::addr_of!((*this)._bitfield_1),
1853                30usize,
1854                1u8,
1855            ) as u64)
1856        }
1857    }
1858    #[inline]
1859    pub unsafe fn set_bpf_event_raw(this: *mut Self, val: __u64) {
1860        unsafe {
1861            let val: u64 = ::std::mem::transmute(val);
1862            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1863                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1864                30usize,
1865                1u8,
1866                val as u64,
1867            )
1868        }
1869    }
1870    #[inline]
1871    pub fn aux_output(&self) -> __u64 {
1872        unsafe { ::std::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u64) }
1873    }
1874    #[inline]
1875    pub fn set_aux_output(&mut self, val: __u64) {
1876        unsafe {
1877            let val: u64 = ::std::mem::transmute(val);
1878            self._bitfield_1.set(31usize, 1u8, val as u64)
1879        }
1880    }
1881    #[inline]
1882    pub unsafe fn aux_output_raw(this: *const Self) -> __u64 {
1883        unsafe {
1884            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1885                ::std::ptr::addr_of!((*this)._bitfield_1),
1886                31usize,
1887                1u8,
1888            ) as u64)
1889        }
1890    }
1891    #[inline]
1892    pub unsafe fn set_aux_output_raw(this: *mut Self, val: __u64) {
1893        unsafe {
1894            let val: u64 = ::std::mem::transmute(val);
1895            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1896                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1897                31usize,
1898                1u8,
1899                val as u64,
1900            )
1901        }
1902    }
1903    #[inline]
1904    pub fn cgroup(&self) -> __u64 {
1905        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 1u8) as u64) }
1906    }
1907    #[inline]
1908    pub fn set_cgroup(&mut self, val: __u64) {
1909        unsafe {
1910            let val: u64 = ::std::mem::transmute(val);
1911            self._bitfield_1.set(32usize, 1u8, val as u64)
1912        }
1913    }
1914    #[inline]
1915    pub unsafe fn cgroup_raw(this: *const Self) -> __u64 {
1916        unsafe {
1917            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1918                ::std::ptr::addr_of!((*this)._bitfield_1),
1919                32usize,
1920                1u8,
1921            ) as u64)
1922        }
1923    }
1924    #[inline]
1925    pub unsafe fn set_cgroup_raw(this: *mut Self, val: __u64) {
1926        unsafe {
1927            let val: u64 = ::std::mem::transmute(val);
1928            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1929                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1930                32usize,
1931                1u8,
1932                val as u64,
1933            )
1934        }
1935    }
1936    #[inline]
1937    pub fn text_poke(&self) -> __u64 {
1938        unsafe { ::std::mem::transmute(self._bitfield_1.get(33usize, 1u8) as u64) }
1939    }
1940    #[inline]
1941    pub fn set_text_poke(&mut self, val: __u64) {
1942        unsafe {
1943            let val: u64 = ::std::mem::transmute(val);
1944            self._bitfield_1.set(33usize, 1u8, val as u64)
1945        }
1946    }
1947    #[inline]
1948    pub unsafe fn text_poke_raw(this: *const Self) -> __u64 {
1949        unsafe {
1950            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1951                ::std::ptr::addr_of!((*this)._bitfield_1),
1952                33usize,
1953                1u8,
1954            ) as u64)
1955        }
1956    }
1957    #[inline]
1958    pub unsafe fn set_text_poke_raw(this: *mut Self, val: __u64) {
1959        unsafe {
1960            let val: u64 = ::std::mem::transmute(val);
1961            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1962                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1963                33usize,
1964                1u8,
1965                val as u64,
1966            )
1967        }
1968    }
1969    #[inline]
1970    pub fn build_id(&self) -> __u64 {
1971        unsafe { ::std::mem::transmute(self._bitfield_1.get(34usize, 1u8) as u64) }
1972    }
1973    #[inline]
1974    pub fn set_build_id(&mut self, val: __u64) {
1975        unsafe {
1976            let val: u64 = ::std::mem::transmute(val);
1977            self._bitfield_1.set(34usize, 1u8, val as u64)
1978        }
1979    }
1980    #[inline]
1981    pub unsafe fn build_id_raw(this: *const Self) -> __u64 {
1982        unsafe {
1983            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
1984                ::std::ptr::addr_of!((*this)._bitfield_1),
1985                34usize,
1986                1u8,
1987            ) as u64)
1988        }
1989    }
1990    #[inline]
1991    pub unsafe fn set_build_id_raw(this: *mut Self, val: __u64) {
1992        unsafe {
1993            let val: u64 = ::std::mem::transmute(val);
1994            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
1995                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1996                34usize,
1997                1u8,
1998                val as u64,
1999            )
2000        }
2001    }
2002    #[inline]
2003    pub fn inherit_thread(&self) -> __u64 {
2004        unsafe { ::std::mem::transmute(self._bitfield_1.get(35usize, 1u8) as u64) }
2005    }
2006    #[inline]
2007    pub fn set_inherit_thread(&mut self, val: __u64) {
2008        unsafe {
2009            let val: u64 = ::std::mem::transmute(val);
2010            self._bitfield_1.set(35usize, 1u8, val as u64)
2011        }
2012    }
2013    #[inline]
2014    pub unsafe fn inherit_thread_raw(this: *const Self) -> __u64 {
2015        unsafe {
2016            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
2017                ::std::ptr::addr_of!((*this)._bitfield_1),
2018                35usize,
2019                1u8,
2020            ) as u64)
2021        }
2022    }
2023    #[inline]
2024    pub unsafe fn set_inherit_thread_raw(this: *mut Self, val: __u64) {
2025        unsafe {
2026            let val: u64 = ::std::mem::transmute(val);
2027            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
2028                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2029                35usize,
2030                1u8,
2031                val as u64,
2032            )
2033        }
2034    }
2035    #[inline]
2036    pub fn remove_on_exec(&self) -> __u64 {
2037        unsafe { ::std::mem::transmute(self._bitfield_1.get(36usize, 1u8) as u64) }
2038    }
2039    #[inline]
2040    pub fn set_remove_on_exec(&mut self, val: __u64) {
2041        unsafe {
2042            let val: u64 = ::std::mem::transmute(val);
2043            self._bitfield_1.set(36usize, 1u8, val as u64)
2044        }
2045    }
2046    #[inline]
2047    pub unsafe fn remove_on_exec_raw(this: *const Self) -> __u64 {
2048        unsafe {
2049            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
2050                ::std::ptr::addr_of!((*this)._bitfield_1),
2051                36usize,
2052                1u8,
2053            ) as u64)
2054        }
2055    }
2056    #[inline]
2057    pub unsafe fn set_remove_on_exec_raw(this: *mut Self, val: __u64) {
2058        unsafe {
2059            let val: u64 = ::std::mem::transmute(val);
2060            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
2061                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2062                36usize,
2063                1u8,
2064                val as u64,
2065            )
2066        }
2067    }
2068    #[inline]
2069    pub fn sigtrap(&self) -> __u64 {
2070        unsafe { ::std::mem::transmute(self._bitfield_1.get(37usize, 1u8) as u64) }
2071    }
2072    #[inline]
2073    pub fn set_sigtrap(&mut self, val: __u64) {
2074        unsafe {
2075            let val: u64 = ::std::mem::transmute(val);
2076            self._bitfield_1.set(37usize, 1u8, val as u64)
2077        }
2078    }
2079    #[inline]
2080    pub unsafe fn sigtrap_raw(this: *const Self) -> __u64 {
2081        unsafe {
2082            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
2083                ::std::ptr::addr_of!((*this)._bitfield_1),
2084                37usize,
2085                1u8,
2086            ) as u64)
2087        }
2088    }
2089    #[inline]
2090    pub unsafe fn set_sigtrap_raw(this: *mut Self, val: __u64) {
2091        unsafe {
2092            let val: u64 = ::std::mem::transmute(val);
2093            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
2094                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2095                37usize,
2096                1u8,
2097                val as u64,
2098            )
2099        }
2100    }
2101    #[inline]
2102    pub fn __reserved_1(&self) -> __u64 {
2103        unsafe { ::std::mem::transmute(self._bitfield_1.get(38usize, 26u8) as u64) }
2104    }
2105    #[inline]
2106    pub fn set___reserved_1(&mut self, val: __u64) {
2107        unsafe {
2108            let val: u64 = ::std::mem::transmute(val);
2109            self._bitfield_1.set(38usize, 26u8, val as u64)
2110        }
2111    }
2112    #[inline]
2113    pub unsafe fn __reserved_1_raw(this: *const Self) -> __u64 {
2114        unsafe {
2115            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
2116                ::std::ptr::addr_of!((*this)._bitfield_1),
2117                38usize,
2118                26u8,
2119            ) as u64)
2120        }
2121    }
2122    #[inline]
2123    pub unsafe fn set___reserved_1_raw(this: *mut Self, val: __u64) {
2124        unsafe {
2125            let val: u64 = ::std::mem::transmute(val);
2126            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
2127                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2128                38usize,
2129                26u8,
2130                val as u64,
2131            )
2132        }
2133    }
2134    #[inline]
2135    pub fn new_bitfield_1(
2136        disabled: __u64,
2137        inherit: __u64,
2138        pinned: __u64,
2139        exclusive: __u64,
2140        exclude_user: __u64,
2141        exclude_kernel: __u64,
2142        exclude_hv: __u64,
2143        exclude_idle: __u64,
2144        mmap: __u64,
2145        comm: __u64,
2146        freq: __u64,
2147        inherit_stat: __u64,
2148        enable_on_exec: __u64,
2149        task: __u64,
2150        watermark: __u64,
2151        precise_ip: __u64,
2152        mmap_data: __u64,
2153        sample_id_all: __u64,
2154        exclude_host: __u64,
2155        exclude_guest: __u64,
2156        exclude_callchain_kernel: __u64,
2157        exclude_callchain_user: __u64,
2158        mmap2: __u64,
2159        comm_exec: __u64,
2160        use_clockid: __u64,
2161        context_switch: __u64,
2162        write_backward: __u64,
2163        namespaces: __u64,
2164        ksymbol: __u64,
2165        bpf_event: __u64,
2166        aux_output: __u64,
2167        cgroup: __u64,
2168        text_poke: __u64,
2169        build_id: __u64,
2170        inherit_thread: __u64,
2171        remove_on_exec: __u64,
2172        sigtrap: __u64,
2173        __reserved_1: __u64,
2174    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
2175        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
2176        __bindgen_bitfield_unit.set(0usize, 1u8, {
2177            let disabled: u64 = unsafe { ::std::mem::transmute(disabled) };
2178            disabled as u64
2179        });
2180        __bindgen_bitfield_unit.set(1usize, 1u8, {
2181            let inherit: u64 = unsafe { ::std::mem::transmute(inherit) };
2182            inherit as u64
2183        });
2184        __bindgen_bitfield_unit.set(2usize, 1u8, {
2185            let pinned: u64 = unsafe { ::std::mem::transmute(pinned) };
2186            pinned as u64
2187        });
2188        __bindgen_bitfield_unit.set(3usize, 1u8, {
2189            let exclusive: u64 = unsafe { ::std::mem::transmute(exclusive) };
2190            exclusive as u64
2191        });
2192        __bindgen_bitfield_unit.set(4usize, 1u8, {
2193            let exclude_user: u64 = unsafe { ::std::mem::transmute(exclude_user) };
2194            exclude_user as u64
2195        });
2196        __bindgen_bitfield_unit.set(5usize, 1u8, {
2197            let exclude_kernel: u64 = unsafe { ::std::mem::transmute(exclude_kernel) };
2198            exclude_kernel as u64
2199        });
2200        __bindgen_bitfield_unit.set(6usize, 1u8, {
2201            let exclude_hv: u64 = unsafe { ::std::mem::transmute(exclude_hv) };
2202            exclude_hv as u64
2203        });
2204        __bindgen_bitfield_unit.set(7usize, 1u8, {
2205            let exclude_idle: u64 = unsafe { ::std::mem::transmute(exclude_idle) };
2206            exclude_idle as u64
2207        });
2208        __bindgen_bitfield_unit.set(8usize, 1u8, {
2209            let mmap: u64 = unsafe { ::std::mem::transmute(mmap) };
2210            mmap as u64
2211        });
2212        __bindgen_bitfield_unit.set(9usize, 1u8, {
2213            let comm: u64 = unsafe { ::std::mem::transmute(comm) };
2214            comm as u64
2215        });
2216        __bindgen_bitfield_unit.set(10usize, 1u8, {
2217            let freq: u64 = unsafe { ::std::mem::transmute(freq) };
2218            freq as u64
2219        });
2220        __bindgen_bitfield_unit.set(11usize, 1u8, {
2221            let inherit_stat: u64 = unsafe { ::std::mem::transmute(inherit_stat) };
2222            inherit_stat as u64
2223        });
2224        __bindgen_bitfield_unit.set(12usize, 1u8, {
2225            let enable_on_exec: u64 = unsafe { ::std::mem::transmute(enable_on_exec) };
2226            enable_on_exec as u64
2227        });
2228        __bindgen_bitfield_unit.set(13usize, 1u8, {
2229            let task: u64 = unsafe { ::std::mem::transmute(task) };
2230            task as u64
2231        });
2232        __bindgen_bitfield_unit.set(14usize, 1u8, {
2233            let watermark: u64 = unsafe { ::std::mem::transmute(watermark) };
2234            watermark as u64
2235        });
2236        __bindgen_bitfield_unit.set(15usize, 2u8, {
2237            let precise_ip: u64 = unsafe { ::std::mem::transmute(precise_ip) };
2238            precise_ip as u64
2239        });
2240        __bindgen_bitfield_unit.set(17usize, 1u8, {
2241            let mmap_data: u64 = unsafe { ::std::mem::transmute(mmap_data) };
2242            mmap_data as u64
2243        });
2244        __bindgen_bitfield_unit.set(18usize, 1u8, {
2245            let sample_id_all: u64 = unsafe { ::std::mem::transmute(sample_id_all) };
2246            sample_id_all as u64
2247        });
2248        __bindgen_bitfield_unit.set(19usize, 1u8, {
2249            let exclude_host: u64 = unsafe { ::std::mem::transmute(exclude_host) };
2250            exclude_host as u64
2251        });
2252        __bindgen_bitfield_unit.set(20usize, 1u8, {
2253            let exclude_guest: u64 = unsafe { ::std::mem::transmute(exclude_guest) };
2254            exclude_guest as u64
2255        });
2256        __bindgen_bitfield_unit.set(21usize, 1u8, {
2257            let exclude_callchain_kernel: u64 =
2258                unsafe { ::std::mem::transmute(exclude_callchain_kernel) };
2259            exclude_callchain_kernel as u64
2260        });
2261        __bindgen_bitfield_unit.set(22usize, 1u8, {
2262            let exclude_callchain_user: u64 =
2263                unsafe { ::std::mem::transmute(exclude_callchain_user) };
2264            exclude_callchain_user as u64
2265        });
2266        __bindgen_bitfield_unit.set(23usize, 1u8, {
2267            let mmap2: u64 = unsafe { ::std::mem::transmute(mmap2) };
2268            mmap2 as u64
2269        });
2270        __bindgen_bitfield_unit.set(24usize, 1u8, {
2271            let comm_exec: u64 = unsafe { ::std::mem::transmute(comm_exec) };
2272            comm_exec as u64
2273        });
2274        __bindgen_bitfield_unit.set(25usize, 1u8, {
2275            let use_clockid: u64 = unsafe { ::std::mem::transmute(use_clockid) };
2276            use_clockid as u64
2277        });
2278        __bindgen_bitfield_unit.set(26usize, 1u8, {
2279            let context_switch: u64 = unsafe { ::std::mem::transmute(context_switch) };
2280            context_switch as u64
2281        });
2282        __bindgen_bitfield_unit.set(27usize, 1u8, {
2283            let write_backward: u64 = unsafe { ::std::mem::transmute(write_backward) };
2284            write_backward as u64
2285        });
2286        __bindgen_bitfield_unit.set(28usize, 1u8, {
2287            let namespaces: u64 = unsafe { ::std::mem::transmute(namespaces) };
2288            namespaces as u64
2289        });
2290        __bindgen_bitfield_unit.set(29usize, 1u8, {
2291            let ksymbol: u64 = unsafe { ::std::mem::transmute(ksymbol) };
2292            ksymbol as u64
2293        });
2294        __bindgen_bitfield_unit.set(30usize, 1u8, {
2295            let bpf_event: u64 = unsafe { ::std::mem::transmute(bpf_event) };
2296            bpf_event as u64
2297        });
2298        __bindgen_bitfield_unit.set(31usize, 1u8, {
2299            let aux_output: u64 = unsafe { ::std::mem::transmute(aux_output) };
2300            aux_output as u64
2301        });
2302        __bindgen_bitfield_unit.set(32usize, 1u8, {
2303            let cgroup: u64 = unsafe { ::std::mem::transmute(cgroup) };
2304            cgroup as u64
2305        });
2306        __bindgen_bitfield_unit.set(33usize, 1u8, {
2307            let text_poke: u64 = unsafe { ::std::mem::transmute(text_poke) };
2308            text_poke as u64
2309        });
2310        __bindgen_bitfield_unit.set(34usize, 1u8, {
2311            let build_id: u64 = unsafe { ::std::mem::transmute(build_id) };
2312            build_id as u64
2313        });
2314        __bindgen_bitfield_unit.set(35usize, 1u8, {
2315            let inherit_thread: u64 = unsafe { ::std::mem::transmute(inherit_thread) };
2316            inherit_thread as u64
2317        });
2318        __bindgen_bitfield_unit.set(36usize, 1u8, {
2319            let remove_on_exec: u64 = unsafe { ::std::mem::transmute(remove_on_exec) };
2320            remove_on_exec as u64
2321        });
2322        __bindgen_bitfield_unit.set(37usize, 1u8, {
2323            let sigtrap: u64 = unsafe { ::std::mem::transmute(sigtrap) };
2324            sigtrap as u64
2325        });
2326        __bindgen_bitfield_unit.set(38usize, 26u8, {
2327            let __reserved_1: u64 = unsafe { ::std::mem::transmute(__reserved_1) };
2328            __reserved_1 as u64
2329        });
2330        __bindgen_bitfield_unit
2331    }
2332}
2333#[repr(C)]
2334#[derive(Debug, Default)]
2335pub struct perf_event_query_bpf {
2336    pub ids_len: __u32,
2337    pub prog_cnt: __u32,
2338    pub ids: __IncompleteArrayField<__u32>,
2339}
2340pub const PERF_IOC_FLAG_GROUP: perf_event_ioc_flags = 1;
2341pub type perf_event_ioc_flags = ::std::os::raw::c_uint;
2342#[repr(C)]
2343#[derive(Copy, Clone)]
2344pub struct perf_event_mmap_page {
2345    pub version: __u32,
2346    pub compat_version: __u32,
2347    pub lock: __u32,
2348    pub index: __u32,
2349    pub offset: __s64,
2350    pub time_enabled: __u64,
2351    pub time_running: __u64,
2352    pub __bindgen_anon_1: perf_event_mmap_page__bindgen_ty_1,
2353    pub pmc_width: __u16,
2354    pub time_shift: __u16,
2355    pub time_mult: __u32,
2356    pub time_offset: __u64,
2357    pub time_zero: __u64,
2358    pub size: __u32,
2359    pub __reserved_1: __u32,
2360    pub time_cycles: __u64,
2361    pub time_mask: __u64,
2362    pub __reserved: [__u8; 928usize],
2363    pub data_head: __u64,
2364    pub data_tail: __u64,
2365    pub data_offset: __u64,
2366    pub data_size: __u64,
2367    pub aux_head: __u64,
2368    pub aux_tail: __u64,
2369    pub aux_offset: __u64,
2370    pub aux_size: __u64,
2371}
2372#[repr(C)]
2373#[derive(Copy, Clone)]
2374pub union perf_event_mmap_page__bindgen_ty_1 {
2375    pub capabilities: __u64,
2376    pub __bindgen_anon_1: perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1,
2377}
2378#[repr(C)]
2379#[derive(Debug, Default, Copy, Clone)]
2380pub struct perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 {
2381    pub _bitfield_align_1: [u64; 0],
2382    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
2383}
2384impl perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 {
2385    #[inline]
2386    pub fn cap_bit0(&self) -> __u64 {
2387        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u64) }
2388    }
2389    #[inline]
2390    pub fn set_cap_bit0(&mut self, val: __u64) {
2391        unsafe {
2392            let val: u64 = ::std::mem::transmute(val);
2393            self._bitfield_1.set(0usize, 1u8, val as u64)
2394        }
2395    }
2396    #[inline]
2397    pub unsafe fn cap_bit0_raw(this: *const Self) -> __u64 {
2398        unsafe {
2399            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
2400                ::std::ptr::addr_of!((*this)._bitfield_1),
2401                0usize,
2402                1u8,
2403            ) as u64)
2404        }
2405    }
2406    #[inline]
2407    pub unsafe fn set_cap_bit0_raw(this: *mut Self, val: __u64) {
2408        unsafe {
2409            let val: u64 = ::std::mem::transmute(val);
2410            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
2411                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2412                0usize,
2413                1u8,
2414                val as u64,
2415            )
2416        }
2417    }
2418    #[inline]
2419    pub fn cap_bit0_is_deprecated(&self) -> __u64 {
2420        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u64) }
2421    }
2422    #[inline]
2423    pub fn set_cap_bit0_is_deprecated(&mut self, val: __u64) {
2424        unsafe {
2425            let val: u64 = ::std::mem::transmute(val);
2426            self._bitfield_1.set(1usize, 1u8, val as u64)
2427        }
2428    }
2429    #[inline]
2430    pub unsafe fn cap_bit0_is_deprecated_raw(this: *const Self) -> __u64 {
2431        unsafe {
2432            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
2433                ::std::ptr::addr_of!((*this)._bitfield_1),
2434                1usize,
2435                1u8,
2436            ) as u64)
2437        }
2438    }
2439    #[inline]
2440    pub unsafe fn set_cap_bit0_is_deprecated_raw(this: *mut Self, val: __u64) {
2441        unsafe {
2442            let val: u64 = ::std::mem::transmute(val);
2443            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
2444                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2445                1usize,
2446                1u8,
2447                val as u64,
2448            )
2449        }
2450    }
2451    #[inline]
2452    pub fn cap_user_rdpmc(&self) -> __u64 {
2453        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u64) }
2454    }
2455    #[inline]
2456    pub fn set_cap_user_rdpmc(&mut self, val: __u64) {
2457        unsafe {
2458            let val: u64 = ::std::mem::transmute(val);
2459            self._bitfield_1.set(2usize, 1u8, val as u64)
2460        }
2461    }
2462    #[inline]
2463    pub unsafe fn cap_user_rdpmc_raw(this: *const Self) -> __u64 {
2464        unsafe {
2465            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
2466                ::std::ptr::addr_of!((*this)._bitfield_1),
2467                2usize,
2468                1u8,
2469            ) as u64)
2470        }
2471    }
2472    #[inline]
2473    pub unsafe fn set_cap_user_rdpmc_raw(this: *mut Self, val: __u64) {
2474        unsafe {
2475            let val: u64 = ::std::mem::transmute(val);
2476            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
2477                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2478                2usize,
2479                1u8,
2480                val as u64,
2481            )
2482        }
2483    }
2484    #[inline]
2485    pub fn cap_user_time(&self) -> __u64 {
2486        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u64) }
2487    }
2488    #[inline]
2489    pub fn set_cap_user_time(&mut self, val: __u64) {
2490        unsafe {
2491            let val: u64 = ::std::mem::transmute(val);
2492            self._bitfield_1.set(3usize, 1u8, val as u64)
2493        }
2494    }
2495    #[inline]
2496    pub unsafe fn cap_user_time_raw(this: *const Self) -> __u64 {
2497        unsafe {
2498            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
2499                ::std::ptr::addr_of!((*this)._bitfield_1),
2500                3usize,
2501                1u8,
2502            ) as u64)
2503        }
2504    }
2505    #[inline]
2506    pub unsafe fn set_cap_user_time_raw(this: *mut Self, val: __u64) {
2507        unsafe {
2508            let val: u64 = ::std::mem::transmute(val);
2509            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
2510                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2511                3usize,
2512                1u8,
2513                val as u64,
2514            )
2515        }
2516    }
2517    #[inline]
2518    pub fn cap_user_time_zero(&self) -> __u64 {
2519        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u64) }
2520    }
2521    #[inline]
2522    pub fn set_cap_user_time_zero(&mut self, val: __u64) {
2523        unsafe {
2524            let val: u64 = ::std::mem::transmute(val);
2525            self._bitfield_1.set(4usize, 1u8, val as u64)
2526        }
2527    }
2528    #[inline]
2529    pub unsafe fn cap_user_time_zero_raw(this: *const Self) -> __u64 {
2530        unsafe {
2531            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
2532                ::std::ptr::addr_of!((*this)._bitfield_1),
2533                4usize,
2534                1u8,
2535            ) as u64)
2536        }
2537    }
2538    #[inline]
2539    pub unsafe fn set_cap_user_time_zero_raw(this: *mut Self, val: __u64) {
2540        unsafe {
2541            let val: u64 = ::std::mem::transmute(val);
2542            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
2543                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2544                4usize,
2545                1u8,
2546                val as u64,
2547            )
2548        }
2549    }
2550    #[inline]
2551    pub fn cap_user_time_short(&self) -> __u64 {
2552        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u64) }
2553    }
2554    #[inline]
2555    pub fn set_cap_user_time_short(&mut self, val: __u64) {
2556        unsafe {
2557            let val: u64 = ::std::mem::transmute(val);
2558            self._bitfield_1.set(5usize, 1u8, val as u64)
2559        }
2560    }
2561    #[inline]
2562    pub unsafe fn cap_user_time_short_raw(this: *const Self) -> __u64 {
2563        unsafe {
2564            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
2565                ::std::ptr::addr_of!((*this)._bitfield_1),
2566                5usize,
2567                1u8,
2568            ) as u64)
2569        }
2570    }
2571    #[inline]
2572    pub unsafe fn set_cap_user_time_short_raw(this: *mut Self, val: __u64) {
2573        unsafe {
2574            let val: u64 = ::std::mem::transmute(val);
2575            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
2576                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2577                5usize,
2578                1u8,
2579                val as u64,
2580            )
2581        }
2582    }
2583    #[inline]
2584    pub fn cap_____res(&self) -> __u64 {
2585        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 58u8) as u64) }
2586    }
2587    #[inline]
2588    pub fn set_cap_____res(&mut self, val: __u64) {
2589        unsafe {
2590            let val: u64 = ::std::mem::transmute(val);
2591            self._bitfield_1.set(6usize, 58u8, val as u64)
2592        }
2593    }
2594    #[inline]
2595    pub unsafe fn cap_____res_raw(this: *const Self) -> __u64 {
2596        unsafe {
2597            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
2598                ::std::ptr::addr_of!((*this)._bitfield_1),
2599                6usize,
2600                58u8,
2601            ) as u64)
2602        }
2603    }
2604    #[inline]
2605    pub unsafe fn set_cap_____res_raw(this: *mut Self, val: __u64) {
2606        unsafe {
2607            let val: u64 = ::std::mem::transmute(val);
2608            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
2609                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2610                6usize,
2611                58u8,
2612                val as u64,
2613            )
2614        }
2615    }
2616    #[inline]
2617    pub fn new_bitfield_1(
2618        cap_bit0: __u64,
2619        cap_bit0_is_deprecated: __u64,
2620        cap_user_rdpmc: __u64,
2621        cap_user_time: __u64,
2622        cap_user_time_zero: __u64,
2623        cap_user_time_short: __u64,
2624        cap_____res: __u64,
2625    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
2626        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
2627        __bindgen_bitfield_unit.set(0usize, 1u8, {
2628            let cap_bit0: u64 = unsafe { ::std::mem::transmute(cap_bit0) };
2629            cap_bit0 as u64
2630        });
2631        __bindgen_bitfield_unit.set(1usize, 1u8, {
2632            let cap_bit0_is_deprecated: u64 =
2633                unsafe { ::std::mem::transmute(cap_bit0_is_deprecated) };
2634            cap_bit0_is_deprecated as u64
2635        });
2636        __bindgen_bitfield_unit.set(2usize, 1u8, {
2637            let cap_user_rdpmc: u64 = unsafe { ::std::mem::transmute(cap_user_rdpmc) };
2638            cap_user_rdpmc as u64
2639        });
2640        __bindgen_bitfield_unit.set(3usize, 1u8, {
2641            let cap_user_time: u64 = unsafe { ::std::mem::transmute(cap_user_time) };
2642            cap_user_time as u64
2643        });
2644        __bindgen_bitfield_unit.set(4usize, 1u8, {
2645            let cap_user_time_zero: u64 = unsafe { ::std::mem::transmute(cap_user_time_zero) };
2646            cap_user_time_zero as u64
2647        });
2648        __bindgen_bitfield_unit.set(5usize, 1u8, {
2649            let cap_user_time_short: u64 = unsafe { ::std::mem::transmute(cap_user_time_short) };
2650            cap_user_time_short as u64
2651        });
2652        __bindgen_bitfield_unit.set(6usize, 58u8, {
2653            let cap_____res: u64 = unsafe { ::std::mem::transmute(cap_____res) };
2654            cap_____res as u64
2655        });
2656        __bindgen_bitfield_unit
2657    }
2658}
2659impl Default for perf_event_mmap_page__bindgen_ty_1 {
2660    fn default() -> Self {
2661        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2662        unsafe {
2663            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2664            s.assume_init()
2665        }
2666    }
2667}
2668impl Default for perf_event_mmap_page {
2669    fn default() -> Self {
2670        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2671        unsafe {
2672            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2673            s.assume_init()
2674        }
2675    }
2676}
2677#[repr(C)]
2678#[derive(Debug, Default, Copy, Clone)]
2679pub struct perf_event_header {
2680    pub type_: __u32,
2681    pub misc: __u16,
2682    pub size: __u16,
2683}
2684#[repr(C)]
2685#[derive(Debug, Default, Copy, Clone)]
2686pub struct perf_ns_link_info {
2687    pub dev: __u64,
2688    pub ino: __u64,
2689}
2690pub const PERF_RECORD_MMAP: perf_event_type = 1;
2691pub const PERF_RECORD_LOST: perf_event_type = 2;
2692pub const PERF_RECORD_COMM: perf_event_type = 3;
2693pub const PERF_RECORD_EXIT: perf_event_type = 4;
2694pub const PERF_RECORD_THROTTLE: perf_event_type = 5;
2695pub const PERF_RECORD_UNTHROTTLE: perf_event_type = 6;
2696pub const PERF_RECORD_FORK: perf_event_type = 7;
2697pub const PERF_RECORD_READ: perf_event_type = 8;
2698pub const PERF_RECORD_SAMPLE: perf_event_type = 9;
2699pub const PERF_RECORD_MMAP2: perf_event_type = 10;
2700pub const PERF_RECORD_AUX: perf_event_type = 11;
2701pub const PERF_RECORD_ITRACE_START: perf_event_type = 12;
2702pub const PERF_RECORD_LOST_SAMPLES: perf_event_type = 13;
2703pub const PERF_RECORD_SWITCH: perf_event_type = 14;
2704pub const PERF_RECORD_SWITCH_CPU_WIDE: perf_event_type = 15;
2705pub const PERF_RECORD_NAMESPACES: perf_event_type = 16;
2706pub const PERF_RECORD_KSYMBOL: perf_event_type = 17;
2707pub const PERF_RECORD_BPF_EVENT: perf_event_type = 18;
2708pub const PERF_RECORD_CGROUP: perf_event_type = 19;
2709pub const PERF_RECORD_TEXT_POKE: perf_event_type = 20;
2710pub const PERF_RECORD_AUX_OUTPUT_HW_ID: perf_event_type = 21;
2711pub const PERF_RECORD_MAX: perf_event_type = 22;
2712pub type perf_event_type = ::std::os::raw::c_uint;
2713pub const PERF_RECORD_KSYMBOL_TYPE_UNKNOWN: perf_record_ksymbol_type = 0;
2714pub const PERF_RECORD_KSYMBOL_TYPE_BPF: perf_record_ksymbol_type = 1;
2715pub const PERF_RECORD_KSYMBOL_TYPE_OOL: perf_record_ksymbol_type = 2;
2716pub const PERF_RECORD_KSYMBOL_TYPE_MAX: perf_record_ksymbol_type = 3;
2717pub type perf_record_ksymbol_type = ::std::os::raw::c_uint;
2718pub const PERF_BPF_EVENT_UNKNOWN: perf_bpf_event_type = 0;
2719pub const PERF_BPF_EVENT_PROG_LOAD: perf_bpf_event_type = 1;
2720pub const PERF_BPF_EVENT_PROG_UNLOAD: perf_bpf_event_type = 2;
2721pub const PERF_BPF_EVENT_MAX: perf_bpf_event_type = 3;
2722pub type perf_bpf_event_type = ::std::os::raw::c_uint;
2723pub const PERF_CONTEXT_HV: perf_callchain_context = 18446744073709551584;
2724pub const PERF_CONTEXT_KERNEL: perf_callchain_context = 18446744073709551488;
2725pub const PERF_CONTEXT_USER: perf_callchain_context = 18446744073709551104;
2726pub const PERF_CONTEXT_GUEST: perf_callchain_context = 18446744073709549568;
2727pub const PERF_CONTEXT_GUEST_KERNEL: perf_callchain_context = 18446744073709549440;
2728pub const PERF_CONTEXT_GUEST_USER: perf_callchain_context = 18446744073709549056;
2729pub const PERF_CONTEXT_MAX: perf_callchain_context = 18446744073709547521;
2730pub type perf_callchain_context = ::std::os::raw::c_ulong;
2731#[repr(C)]
2732#[derive(Copy, Clone)]
2733pub union perf_mem_data_src {
2734    pub val: __u64,
2735    pub __bindgen_anon_1: perf_mem_data_src__bindgen_ty_1,
2736}
2737#[repr(C)]
2738#[repr(align(8))]
2739#[derive(Debug, Default, Copy, Clone)]
2740pub struct perf_mem_data_src__bindgen_ty_1 {
2741    pub _bitfield_align_1: [u32; 0],
2742    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
2743}
2744impl perf_mem_data_src__bindgen_ty_1 {
2745    #[inline]
2746    pub fn mem_op(&self) -> __u64 {
2747        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 5u8) as u64) }
2748    }
2749    #[inline]
2750    pub fn set_mem_op(&mut self, val: __u64) {
2751        unsafe {
2752            let val: u64 = ::std::mem::transmute(val);
2753            self._bitfield_1.set(0usize, 5u8, val as u64)
2754        }
2755    }
2756    #[inline]
2757    pub unsafe fn mem_op_raw(this: *const Self) -> __u64 {
2758        unsafe {
2759            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
2760                ::std::ptr::addr_of!((*this)._bitfield_1),
2761                0usize,
2762                5u8,
2763            ) as u64)
2764        }
2765    }
2766    #[inline]
2767    pub unsafe fn set_mem_op_raw(this: *mut Self, val: __u64) {
2768        unsafe {
2769            let val: u64 = ::std::mem::transmute(val);
2770            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
2771                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2772                0usize,
2773                5u8,
2774                val as u64,
2775            )
2776        }
2777    }
2778    #[inline]
2779    pub fn mem_lvl(&self) -> __u64 {
2780        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 14u8) as u64) }
2781    }
2782    #[inline]
2783    pub fn set_mem_lvl(&mut self, val: __u64) {
2784        unsafe {
2785            let val: u64 = ::std::mem::transmute(val);
2786            self._bitfield_1.set(5usize, 14u8, val as u64)
2787        }
2788    }
2789    #[inline]
2790    pub unsafe fn mem_lvl_raw(this: *const Self) -> __u64 {
2791        unsafe {
2792            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
2793                ::std::ptr::addr_of!((*this)._bitfield_1),
2794                5usize,
2795                14u8,
2796            ) as u64)
2797        }
2798    }
2799    #[inline]
2800    pub unsafe fn set_mem_lvl_raw(this: *mut Self, val: __u64) {
2801        unsafe {
2802            let val: u64 = ::std::mem::transmute(val);
2803            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
2804                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2805                5usize,
2806                14u8,
2807                val as u64,
2808            )
2809        }
2810    }
2811    #[inline]
2812    pub fn mem_snoop(&self) -> __u64 {
2813        unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 5u8) as u64) }
2814    }
2815    #[inline]
2816    pub fn set_mem_snoop(&mut self, val: __u64) {
2817        unsafe {
2818            let val: u64 = ::std::mem::transmute(val);
2819            self._bitfield_1.set(19usize, 5u8, val as u64)
2820        }
2821    }
2822    #[inline]
2823    pub unsafe fn mem_snoop_raw(this: *const Self) -> __u64 {
2824        unsafe {
2825            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
2826                ::std::ptr::addr_of!((*this)._bitfield_1),
2827                19usize,
2828                5u8,
2829            ) as u64)
2830        }
2831    }
2832    #[inline]
2833    pub unsafe fn set_mem_snoop_raw(this: *mut Self, val: __u64) {
2834        unsafe {
2835            let val: u64 = ::std::mem::transmute(val);
2836            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
2837                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2838                19usize,
2839                5u8,
2840                val as u64,
2841            )
2842        }
2843    }
2844    #[inline]
2845    pub fn mem_lock(&self) -> __u64 {
2846        unsafe { ::std::mem::transmute(self._bitfield_1.get(24usize, 2u8) as u64) }
2847    }
2848    #[inline]
2849    pub fn set_mem_lock(&mut self, val: __u64) {
2850        unsafe {
2851            let val: u64 = ::std::mem::transmute(val);
2852            self._bitfield_1.set(24usize, 2u8, val as u64)
2853        }
2854    }
2855    #[inline]
2856    pub unsafe fn mem_lock_raw(this: *const Self) -> __u64 {
2857        unsafe {
2858            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
2859                ::std::ptr::addr_of!((*this)._bitfield_1),
2860                24usize,
2861                2u8,
2862            ) as u64)
2863        }
2864    }
2865    #[inline]
2866    pub unsafe fn set_mem_lock_raw(this: *mut Self, val: __u64) {
2867        unsafe {
2868            let val: u64 = ::std::mem::transmute(val);
2869            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
2870                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2871                24usize,
2872                2u8,
2873                val as u64,
2874            )
2875        }
2876    }
2877    #[inline]
2878    pub fn mem_dtlb(&self) -> __u64 {
2879        unsafe { ::std::mem::transmute(self._bitfield_1.get(26usize, 7u8) as u64) }
2880    }
2881    #[inline]
2882    pub fn set_mem_dtlb(&mut self, val: __u64) {
2883        unsafe {
2884            let val: u64 = ::std::mem::transmute(val);
2885            self._bitfield_1.set(26usize, 7u8, val as u64)
2886        }
2887    }
2888    #[inline]
2889    pub unsafe fn mem_dtlb_raw(this: *const Self) -> __u64 {
2890        unsafe {
2891            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
2892                ::std::ptr::addr_of!((*this)._bitfield_1),
2893                26usize,
2894                7u8,
2895            ) as u64)
2896        }
2897    }
2898    #[inline]
2899    pub unsafe fn set_mem_dtlb_raw(this: *mut Self, val: __u64) {
2900        unsafe {
2901            let val: u64 = ::std::mem::transmute(val);
2902            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
2903                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2904                26usize,
2905                7u8,
2906                val as u64,
2907            )
2908        }
2909    }
2910    #[inline]
2911    pub fn mem_lvl_num(&self) -> __u64 {
2912        unsafe { ::std::mem::transmute(self._bitfield_1.get(33usize, 4u8) as u64) }
2913    }
2914    #[inline]
2915    pub fn set_mem_lvl_num(&mut self, val: __u64) {
2916        unsafe {
2917            let val: u64 = ::std::mem::transmute(val);
2918            self._bitfield_1.set(33usize, 4u8, val as u64)
2919        }
2920    }
2921    #[inline]
2922    pub unsafe fn mem_lvl_num_raw(this: *const Self) -> __u64 {
2923        unsafe {
2924            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
2925                ::std::ptr::addr_of!((*this)._bitfield_1),
2926                33usize,
2927                4u8,
2928            ) as u64)
2929        }
2930    }
2931    #[inline]
2932    pub unsafe fn set_mem_lvl_num_raw(this: *mut Self, val: __u64) {
2933        unsafe {
2934            let val: u64 = ::std::mem::transmute(val);
2935            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
2936                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2937                33usize,
2938                4u8,
2939                val as u64,
2940            )
2941        }
2942    }
2943    #[inline]
2944    pub fn mem_remote(&self) -> __u64 {
2945        unsafe { ::std::mem::transmute(self._bitfield_1.get(37usize, 1u8) as u64) }
2946    }
2947    #[inline]
2948    pub fn set_mem_remote(&mut self, val: __u64) {
2949        unsafe {
2950            let val: u64 = ::std::mem::transmute(val);
2951            self._bitfield_1.set(37usize, 1u8, val as u64)
2952        }
2953    }
2954    #[inline]
2955    pub unsafe fn mem_remote_raw(this: *const Self) -> __u64 {
2956        unsafe {
2957            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
2958                ::std::ptr::addr_of!((*this)._bitfield_1),
2959                37usize,
2960                1u8,
2961            ) as u64)
2962        }
2963    }
2964    #[inline]
2965    pub unsafe fn set_mem_remote_raw(this: *mut Self, val: __u64) {
2966        unsafe {
2967            let val: u64 = ::std::mem::transmute(val);
2968            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
2969                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2970                37usize,
2971                1u8,
2972                val as u64,
2973            )
2974        }
2975    }
2976    #[inline]
2977    pub fn mem_snoopx(&self) -> __u64 {
2978        unsafe { ::std::mem::transmute(self._bitfield_1.get(38usize, 2u8) as u64) }
2979    }
2980    #[inline]
2981    pub fn set_mem_snoopx(&mut self, val: __u64) {
2982        unsafe {
2983            let val: u64 = ::std::mem::transmute(val);
2984            self._bitfield_1.set(38usize, 2u8, val as u64)
2985        }
2986    }
2987    #[inline]
2988    pub unsafe fn mem_snoopx_raw(this: *const Self) -> __u64 {
2989        unsafe {
2990            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
2991                ::std::ptr::addr_of!((*this)._bitfield_1),
2992                38usize,
2993                2u8,
2994            ) as u64)
2995        }
2996    }
2997    #[inline]
2998    pub unsafe fn set_mem_snoopx_raw(this: *mut Self, val: __u64) {
2999        unsafe {
3000            let val: u64 = ::std::mem::transmute(val);
3001            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
3002                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3003                38usize,
3004                2u8,
3005                val as u64,
3006            )
3007        }
3008    }
3009    #[inline]
3010    pub fn mem_blk(&self) -> __u64 {
3011        unsafe { ::std::mem::transmute(self._bitfield_1.get(40usize, 3u8) as u64) }
3012    }
3013    #[inline]
3014    pub fn set_mem_blk(&mut self, val: __u64) {
3015        unsafe {
3016            let val: u64 = ::std::mem::transmute(val);
3017            self._bitfield_1.set(40usize, 3u8, val as u64)
3018        }
3019    }
3020    #[inline]
3021    pub unsafe fn mem_blk_raw(this: *const Self) -> __u64 {
3022        unsafe {
3023            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
3024                ::std::ptr::addr_of!((*this)._bitfield_1),
3025                40usize,
3026                3u8,
3027            ) as u64)
3028        }
3029    }
3030    #[inline]
3031    pub unsafe fn set_mem_blk_raw(this: *mut Self, val: __u64) {
3032        unsafe {
3033            let val: u64 = ::std::mem::transmute(val);
3034            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
3035                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3036                40usize,
3037                3u8,
3038                val as u64,
3039            )
3040        }
3041    }
3042    #[inline]
3043    pub fn mem_hops(&self) -> __u64 {
3044        unsafe { ::std::mem::transmute(self._bitfield_1.get(43usize, 3u8) as u64) }
3045    }
3046    #[inline]
3047    pub fn set_mem_hops(&mut self, val: __u64) {
3048        unsafe {
3049            let val: u64 = ::std::mem::transmute(val);
3050            self._bitfield_1.set(43usize, 3u8, val as u64)
3051        }
3052    }
3053    #[inline]
3054    pub unsafe fn mem_hops_raw(this: *const Self) -> __u64 {
3055        unsafe {
3056            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
3057                ::std::ptr::addr_of!((*this)._bitfield_1),
3058                43usize,
3059                3u8,
3060            ) as u64)
3061        }
3062    }
3063    #[inline]
3064    pub unsafe fn set_mem_hops_raw(this: *mut Self, val: __u64) {
3065        unsafe {
3066            let val: u64 = ::std::mem::transmute(val);
3067            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
3068                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3069                43usize,
3070                3u8,
3071                val as u64,
3072            )
3073        }
3074    }
3075    #[inline]
3076    pub fn mem_rsvd(&self) -> __u64 {
3077        unsafe { ::std::mem::transmute(self._bitfield_1.get(46usize, 18u8) as u64) }
3078    }
3079    #[inline]
3080    pub fn set_mem_rsvd(&mut self, val: __u64) {
3081        unsafe {
3082            let val: u64 = ::std::mem::transmute(val);
3083            self._bitfield_1.set(46usize, 18u8, val as u64)
3084        }
3085    }
3086    #[inline]
3087    pub unsafe fn mem_rsvd_raw(this: *const Self) -> __u64 {
3088        unsafe {
3089            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
3090                ::std::ptr::addr_of!((*this)._bitfield_1),
3091                46usize,
3092                18u8,
3093            ) as u64)
3094        }
3095    }
3096    #[inline]
3097    pub unsafe fn set_mem_rsvd_raw(this: *mut Self, val: __u64) {
3098        unsafe {
3099            let val: u64 = ::std::mem::transmute(val);
3100            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
3101                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3102                46usize,
3103                18u8,
3104                val as u64,
3105            )
3106        }
3107    }
3108    #[inline]
3109    pub fn new_bitfield_1(
3110        mem_op: __u64,
3111        mem_lvl: __u64,
3112        mem_snoop: __u64,
3113        mem_lock: __u64,
3114        mem_dtlb: __u64,
3115        mem_lvl_num: __u64,
3116        mem_remote: __u64,
3117        mem_snoopx: __u64,
3118        mem_blk: __u64,
3119        mem_hops: __u64,
3120        mem_rsvd: __u64,
3121    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
3122        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
3123        __bindgen_bitfield_unit.set(0usize, 5u8, {
3124            let mem_op: u64 = unsafe { ::std::mem::transmute(mem_op) };
3125            mem_op as u64
3126        });
3127        __bindgen_bitfield_unit.set(5usize, 14u8, {
3128            let mem_lvl: u64 = unsafe { ::std::mem::transmute(mem_lvl) };
3129            mem_lvl as u64
3130        });
3131        __bindgen_bitfield_unit.set(19usize, 5u8, {
3132            let mem_snoop: u64 = unsafe { ::std::mem::transmute(mem_snoop) };
3133            mem_snoop as u64
3134        });
3135        __bindgen_bitfield_unit.set(24usize, 2u8, {
3136            let mem_lock: u64 = unsafe { ::std::mem::transmute(mem_lock) };
3137            mem_lock as u64
3138        });
3139        __bindgen_bitfield_unit.set(26usize, 7u8, {
3140            let mem_dtlb: u64 = unsafe { ::std::mem::transmute(mem_dtlb) };
3141            mem_dtlb as u64
3142        });
3143        __bindgen_bitfield_unit.set(33usize, 4u8, {
3144            let mem_lvl_num: u64 = unsafe { ::std::mem::transmute(mem_lvl_num) };
3145            mem_lvl_num as u64
3146        });
3147        __bindgen_bitfield_unit.set(37usize, 1u8, {
3148            let mem_remote: u64 = unsafe { ::std::mem::transmute(mem_remote) };
3149            mem_remote as u64
3150        });
3151        __bindgen_bitfield_unit.set(38usize, 2u8, {
3152            let mem_snoopx: u64 = unsafe { ::std::mem::transmute(mem_snoopx) };
3153            mem_snoopx as u64
3154        });
3155        __bindgen_bitfield_unit.set(40usize, 3u8, {
3156            let mem_blk: u64 = unsafe { ::std::mem::transmute(mem_blk) };
3157            mem_blk as u64
3158        });
3159        __bindgen_bitfield_unit.set(43usize, 3u8, {
3160            let mem_hops: u64 = unsafe { ::std::mem::transmute(mem_hops) };
3161            mem_hops as u64
3162        });
3163        __bindgen_bitfield_unit.set(46usize, 18u8, {
3164            let mem_rsvd: u64 = unsafe { ::std::mem::transmute(mem_rsvd) };
3165            mem_rsvd as u64
3166        });
3167        __bindgen_bitfield_unit
3168    }
3169}
3170impl Default for perf_mem_data_src {
3171    fn default() -> Self {
3172        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3173        unsafe {
3174            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3175            s.assume_init()
3176        }
3177    }
3178}
3179#[repr(C)]
3180#[derive(Debug, Default, Copy, Clone)]
3181pub struct perf_branch_entry {
3182    pub from: __u64,
3183    pub to: __u64,
3184    pub _bitfield_align_1: [u32; 0],
3185    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
3186}
3187impl perf_branch_entry {
3188    #[inline]
3189    pub fn mispred(&self) -> __u64 {
3190        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u64) }
3191    }
3192    #[inline]
3193    pub fn set_mispred(&mut self, val: __u64) {
3194        unsafe {
3195            let val: u64 = ::std::mem::transmute(val);
3196            self._bitfield_1.set(0usize, 1u8, val as u64)
3197        }
3198    }
3199    #[inline]
3200    pub unsafe fn mispred_raw(this: *const Self) -> __u64 {
3201        unsafe {
3202            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
3203                ::std::ptr::addr_of!((*this)._bitfield_1),
3204                0usize,
3205                1u8,
3206            ) as u64)
3207        }
3208    }
3209    #[inline]
3210    pub unsafe fn set_mispred_raw(this: *mut Self, val: __u64) {
3211        unsafe {
3212            let val: u64 = ::std::mem::transmute(val);
3213            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
3214                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3215                0usize,
3216                1u8,
3217                val as u64,
3218            )
3219        }
3220    }
3221    #[inline]
3222    pub fn predicted(&self) -> __u64 {
3223        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u64) }
3224    }
3225    #[inline]
3226    pub fn set_predicted(&mut self, val: __u64) {
3227        unsafe {
3228            let val: u64 = ::std::mem::transmute(val);
3229            self._bitfield_1.set(1usize, 1u8, val as u64)
3230        }
3231    }
3232    #[inline]
3233    pub unsafe fn predicted_raw(this: *const Self) -> __u64 {
3234        unsafe {
3235            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
3236                ::std::ptr::addr_of!((*this)._bitfield_1),
3237                1usize,
3238                1u8,
3239            ) as u64)
3240        }
3241    }
3242    #[inline]
3243    pub unsafe fn set_predicted_raw(this: *mut Self, val: __u64) {
3244        unsafe {
3245            let val: u64 = ::std::mem::transmute(val);
3246            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
3247                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3248                1usize,
3249                1u8,
3250                val as u64,
3251            )
3252        }
3253    }
3254    #[inline]
3255    pub fn in_tx(&self) -> __u64 {
3256        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u64) }
3257    }
3258    #[inline]
3259    pub fn set_in_tx(&mut self, val: __u64) {
3260        unsafe {
3261            let val: u64 = ::std::mem::transmute(val);
3262            self._bitfield_1.set(2usize, 1u8, val as u64)
3263        }
3264    }
3265    #[inline]
3266    pub unsafe fn in_tx_raw(this: *const Self) -> __u64 {
3267        unsafe {
3268            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
3269                ::std::ptr::addr_of!((*this)._bitfield_1),
3270                2usize,
3271                1u8,
3272            ) as u64)
3273        }
3274    }
3275    #[inline]
3276    pub unsafe fn set_in_tx_raw(this: *mut Self, val: __u64) {
3277        unsafe {
3278            let val: u64 = ::std::mem::transmute(val);
3279            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
3280                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3281                2usize,
3282                1u8,
3283                val as u64,
3284            )
3285        }
3286    }
3287    #[inline]
3288    pub fn abort(&self) -> __u64 {
3289        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u64) }
3290    }
3291    #[inline]
3292    pub fn set_abort(&mut self, val: __u64) {
3293        unsafe {
3294            let val: u64 = ::std::mem::transmute(val);
3295            self._bitfield_1.set(3usize, 1u8, val as u64)
3296        }
3297    }
3298    #[inline]
3299    pub unsafe fn abort_raw(this: *const Self) -> __u64 {
3300        unsafe {
3301            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
3302                ::std::ptr::addr_of!((*this)._bitfield_1),
3303                3usize,
3304                1u8,
3305            ) as u64)
3306        }
3307    }
3308    #[inline]
3309    pub unsafe fn set_abort_raw(this: *mut Self, val: __u64) {
3310        unsafe {
3311            let val: u64 = ::std::mem::transmute(val);
3312            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
3313                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3314                3usize,
3315                1u8,
3316                val as u64,
3317            )
3318        }
3319    }
3320    #[inline]
3321    pub fn cycles(&self) -> __u64 {
3322        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 16u8) as u64) }
3323    }
3324    #[inline]
3325    pub fn set_cycles(&mut self, val: __u64) {
3326        unsafe {
3327            let val: u64 = ::std::mem::transmute(val);
3328            self._bitfield_1.set(4usize, 16u8, val as u64)
3329        }
3330    }
3331    #[inline]
3332    pub unsafe fn cycles_raw(this: *const Self) -> __u64 {
3333        unsafe {
3334            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
3335                ::std::ptr::addr_of!((*this)._bitfield_1),
3336                4usize,
3337                16u8,
3338            ) as u64)
3339        }
3340    }
3341    #[inline]
3342    pub unsafe fn set_cycles_raw(this: *mut Self, val: __u64) {
3343        unsafe {
3344            let val: u64 = ::std::mem::transmute(val);
3345            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
3346                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3347                4usize,
3348                16u8,
3349                val as u64,
3350            )
3351        }
3352    }
3353    #[inline]
3354    pub fn type_(&self) -> __u64 {
3355        unsafe { ::std::mem::transmute(self._bitfield_1.get(20usize, 4u8) as u64) }
3356    }
3357    #[inline]
3358    pub fn set_type(&mut self, val: __u64) {
3359        unsafe {
3360            let val: u64 = ::std::mem::transmute(val);
3361            self._bitfield_1.set(20usize, 4u8, val as u64)
3362        }
3363    }
3364    #[inline]
3365    pub unsafe fn type__raw(this: *const Self) -> __u64 {
3366        unsafe {
3367            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
3368                ::std::ptr::addr_of!((*this)._bitfield_1),
3369                20usize,
3370                4u8,
3371            ) as u64)
3372        }
3373    }
3374    #[inline]
3375    pub unsafe fn set_type_raw(this: *mut Self, val: __u64) {
3376        unsafe {
3377            let val: u64 = ::std::mem::transmute(val);
3378            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
3379                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3380                20usize,
3381                4u8,
3382                val as u64,
3383            )
3384        }
3385    }
3386    #[inline]
3387    pub fn spec(&self) -> __u64 {
3388        unsafe { ::std::mem::transmute(self._bitfield_1.get(24usize, 2u8) as u64) }
3389    }
3390    #[inline]
3391    pub fn set_spec(&mut self, val: __u64) {
3392        unsafe {
3393            let val: u64 = ::std::mem::transmute(val);
3394            self._bitfield_1.set(24usize, 2u8, val as u64)
3395        }
3396    }
3397    #[inline]
3398    pub unsafe fn spec_raw(this: *const Self) -> __u64 {
3399        unsafe {
3400            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
3401                ::std::ptr::addr_of!((*this)._bitfield_1),
3402                24usize,
3403                2u8,
3404            ) as u64)
3405        }
3406    }
3407    #[inline]
3408    pub unsafe fn set_spec_raw(this: *mut Self, val: __u64) {
3409        unsafe {
3410            let val: u64 = ::std::mem::transmute(val);
3411            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
3412                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3413                24usize,
3414                2u8,
3415                val as u64,
3416            )
3417        }
3418    }
3419    #[inline]
3420    pub fn new_type(&self) -> __u64 {
3421        unsafe { ::std::mem::transmute(self._bitfield_1.get(26usize, 4u8) as u64) }
3422    }
3423    #[inline]
3424    pub fn set_new_type(&mut self, val: __u64) {
3425        unsafe {
3426            let val: u64 = ::std::mem::transmute(val);
3427            self._bitfield_1.set(26usize, 4u8, val as u64)
3428        }
3429    }
3430    #[inline]
3431    pub unsafe fn new_type_raw(this: *const Self) -> __u64 {
3432        unsafe {
3433            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
3434                ::std::ptr::addr_of!((*this)._bitfield_1),
3435                26usize,
3436                4u8,
3437            ) as u64)
3438        }
3439    }
3440    #[inline]
3441    pub unsafe fn set_new_type_raw(this: *mut Self, val: __u64) {
3442        unsafe {
3443            let val: u64 = ::std::mem::transmute(val);
3444            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
3445                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3446                26usize,
3447                4u8,
3448                val as u64,
3449            )
3450        }
3451    }
3452    #[inline]
3453    pub fn priv_(&self) -> __u64 {
3454        unsafe { ::std::mem::transmute(self._bitfield_1.get(30usize, 3u8) as u64) }
3455    }
3456    #[inline]
3457    pub fn set_priv(&mut self, val: __u64) {
3458        unsafe {
3459            let val: u64 = ::std::mem::transmute(val);
3460            self._bitfield_1.set(30usize, 3u8, val as u64)
3461        }
3462    }
3463    #[inline]
3464    pub unsafe fn priv__raw(this: *const Self) -> __u64 {
3465        unsafe {
3466            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
3467                ::std::ptr::addr_of!((*this)._bitfield_1),
3468                30usize,
3469                3u8,
3470            ) as u64)
3471        }
3472    }
3473    #[inline]
3474    pub unsafe fn set_priv_raw(this: *mut Self, val: __u64) {
3475        unsafe {
3476            let val: u64 = ::std::mem::transmute(val);
3477            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
3478                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3479                30usize,
3480                3u8,
3481                val as u64,
3482            )
3483        }
3484    }
3485    #[inline]
3486    pub fn reserved(&self) -> __u64 {
3487        unsafe { ::std::mem::transmute(self._bitfield_1.get(33usize, 31u8) as u64) }
3488    }
3489    #[inline]
3490    pub fn set_reserved(&mut self, val: __u64) {
3491        unsafe {
3492            let val: u64 = ::std::mem::transmute(val);
3493            self._bitfield_1.set(33usize, 31u8, val as u64)
3494        }
3495    }
3496    #[inline]
3497    pub unsafe fn reserved_raw(this: *const Self) -> __u64 {
3498        unsafe {
3499            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
3500                ::std::ptr::addr_of!((*this)._bitfield_1),
3501                33usize,
3502                31u8,
3503            ) as u64)
3504        }
3505    }
3506    #[inline]
3507    pub unsafe fn set_reserved_raw(this: *mut Self, val: __u64) {
3508        unsafe {
3509            let val: u64 = ::std::mem::transmute(val);
3510            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
3511                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3512                33usize,
3513                31u8,
3514                val as u64,
3515            )
3516        }
3517    }
3518    #[inline]
3519    pub fn new_bitfield_1(
3520        mispred: __u64,
3521        predicted: __u64,
3522        in_tx: __u64,
3523        abort: __u64,
3524        cycles: __u64,
3525        type_: __u64,
3526        spec: __u64,
3527        new_type: __u64,
3528        priv_: __u64,
3529        reserved: __u64,
3530    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
3531        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
3532        __bindgen_bitfield_unit.set(0usize, 1u8, {
3533            let mispred: u64 = unsafe { ::std::mem::transmute(mispred) };
3534            mispred as u64
3535        });
3536        __bindgen_bitfield_unit.set(1usize, 1u8, {
3537            let predicted: u64 = unsafe { ::std::mem::transmute(predicted) };
3538            predicted as u64
3539        });
3540        __bindgen_bitfield_unit.set(2usize, 1u8, {
3541            let in_tx: u64 = unsafe { ::std::mem::transmute(in_tx) };
3542            in_tx as u64
3543        });
3544        __bindgen_bitfield_unit.set(3usize, 1u8, {
3545            let abort: u64 = unsafe { ::std::mem::transmute(abort) };
3546            abort as u64
3547        });
3548        __bindgen_bitfield_unit.set(4usize, 16u8, {
3549            let cycles: u64 = unsafe { ::std::mem::transmute(cycles) };
3550            cycles as u64
3551        });
3552        __bindgen_bitfield_unit.set(20usize, 4u8, {
3553            let type_: u64 = unsafe { ::std::mem::transmute(type_) };
3554            type_ as u64
3555        });
3556        __bindgen_bitfield_unit.set(24usize, 2u8, {
3557            let spec: u64 = unsafe { ::std::mem::transmute(spec) };
3558            spec as u64
3559        });
3560        __bindgen_bitfield_unit.set(26usize, 4u8, {
3561            let new_type: u64 = unsafe { ::std::mem::transmute(new_type) };
3562            new_type as u64
3563        });
3564        __bindgen_bitfield_unit.set(30usize, 3u8, {
3565            let priv_: u64 = unsafe { ::std::mem::transmute(priv_) };
3566            priv_ as u64
3567        });
3568        __bindgen_bitfield_unit.set(33usize, 31u8, {
3569            let reserved: u64 = unsafe { ::std::mem::transmute(reserved) };
3570            reserved as u64
3571        });
3572        __bindgen_bitfield_unit
3573    }
3574}
3575#[repr(C)]
3576#[derive(Copy, Clone)]
3577pub union perf_sample_weight {
3578    pub full: __u64,
3579    pub __bindgen_anon_1: perf_sample_weight__bindgen_ty_1,
3580}
3581#[repr(C)]
3582#[derive(Debug, Default, Copy, Clone)]
3583pub struct perf_sample_weight__bindgen_ty_1 {
3584    pub var1_dw: __u32,
3585    pub var2_w: __u16,
3586    pub var3_w: __u16,
3587}
3588impl Default for perf_sample_weight {
3589    fn default() -> Self {
3590        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3591        unsafe {
3592            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3593            s.assume_init()
3594        }
3595    }
3596}
3597pub const BPF_MAY_GOTO: bpf_cond_pseudo_jmp = 0;
3598pub type bpf_cond_pseudo_jmp = ::std::os::raw::c_uint;
3599pub const BPF_REG_0: _bindgen_ty_61 = 0;
3600pub const BPF_REG_1: _bindgen_ty_61 = 1;
3601pub const BPF_REG_2: _bindgen_ty_61 = 2;
3602pub const BPF_REG_3: _bindgen_ty_61 = 3;
3603pub const BPF_REG_4: _bindgen_ty_61 = 4;
3604pub const BPF_REG_5: _bindgen_ty_61 = 5;
3605pub const BPF_REG_6: _bindgen_ty_61 = 6;
3606pub const BPF_REG_7: _bindgen_ty_61 = 7;
3607pub const BPF_REG_8: _bindgen_ty_61 = 8;
3608pub const BPF_REG_9: _bindgen_ty_61 = 9;
3609pub const BPF_REG_10: _bindgen_ty_61 = 10;
3610pub const __MAX_BPF_REG: _bindgen_ty_61 = 11;
3611pub type _bindgen_ty_61 = ::std::os::raw::c_uint;
3612#[repr(C)]
3613#[derive(Debug, Default, Copy, Clone)]
3614pub struct bpf_insn {
3615    pub code: __u8,
3616    pub _bitfield_align_1: [u8; 0],
3617    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
3618    pub off: __s16,
3619    pub imm: __s32,
3620}
3621impl bpf_insn {
3622    #[inline]
3623    pub fn dst_reg(&self) -> __u8 {
3624        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
3625    }
3626    #[inline]
3627    pub fn set_dst_reg(&mut self, val: __u8) {
3628        unsafe {
3629            let val: u8 = ::std::mem::transmute(val);
3630            self._bitfield_1.set(0usize, 4u8, val as u64)
3631        }
3632    }
3633    #[inline]
3634    pub unsafe fn dst_reg_raw(this: *const Self) -> __u8 {
3635        unsafe {
3636            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
3637                ::std::ptr::addr_of!((*this)._bitfield_1),
3638                0usize,
3639                4u8,
3640            ) as u8)
3641        }
3642    }
3643    #[inline]
3644    pub unsafe fn set_dst_reg_raw(this: *mut Self, val: __u8) {
3645        unsafe {
3646            let val: u8 = ::std::mem::transmute(val);
3647            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
3648                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3649                0usize,
3650                4u8,
3651                val as u64,
3652            )
3653        }
3654    }
3655    #[inline]
3656    pub fn src_reg(&self) -> __u8 {
3657        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
3658    }
3659    #[inline]
3660    pub fn set_src_reg(&mut self, val: __u8) {
3661        unsafe {
3662            let val: u8 = ::std::mem::transmute(val);
3663            self._bitfield_1.set(4usize, 4u8, val as u64)
3664        }
3665    }
3666    #[inline]
3667    pub unsafe fn src_reg_raw(this: *const Self) -> __u8 {
3668        unsafe {
3669            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
3670                ::std::ptr::addr_of!((*this)._bitfield_1),
3671                4usize,
3672                4u8,
3673            ) as u8)
3674        }
3675    }
3676    #[inline]
3677    pub unsafe fn set_src_reg_raw(this: *mut Self, val: __u8) {
3678        unsafe {
3679            let val: u8 = ::std::mem::transmute(val);
3680            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
3681                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3682                4usize,
3683                4u8,
3684                val as u64,
3685            )
3686        }
3687    }
3688    #[inline]
3689    pub fn new_bitfield_1(dst_reg: __u8, src_reg: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
3690        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
3691        __bindgen_bitfield_unit.set(0usize, 4u8, {
3692            let dst_reg: u8 = unsafe { ::std::mem::transmute(dst_reg) };
3693            dst_reg as u64
3694        });
3695        __bindgen_bitfield_unit.set(4usize, 4u8, {
3696            let src_reg: u8 = unsafe { ::std::mem::transmute(src_reg) };
3697            src_reg as u64
3698        });
3699        __bindgen_bitfield_unit
3700    }
3701}
3702#[repr(C)]
3703#[derive(Debug, Default)]
3704pub struct bpf_lpm_trie_key {
3705    pub prefixlen: __u32,
3706    pub data: __IncompleteArrayField<__u8>,
3707}
3708#[repr(C)]
3709#[derive(Debug, Default, Copy, Clone)]
3710pub struct bpf_lpm_trie_key_hdr {
3711    pub prefixlen: __u32,
3712}
3713#[repr(C)]
3714pub struct bpf_lpm_trie_key_u8 {
3715    pub __bindgen_anon_1: bpf_lpm_trie_key_u8__bindgen_ty_1,
3716    pub data: __IncompleteArrayField<__u8>,
3717}
3718#[repr(C)]
3719#[derive(Copy, Clone)]
3720pub union bpf_lpm_trie_key_u8__bindgen_ty_1 {
3721    pub hdr: bpf_lpm_trie_key_hdr,
3722    pub prefixlen: __u32,
3723}
3724impl Default for bpf_lpm_trie_key_u8__bindgen_ty_1 {
3725    fn default() -> Self {
3726        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3727        unsafe {
3728            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3729            s.assume_init()
3730        }
3731    }
3732}
3733impl Default for bpf_lpm_trie_key_u8 {
3734    fn default() -> Self {
3735        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3736        unsafe {
3737            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3738            s.assume_init()
3739        }
3740    }
3741}
3742#[repr(C)]
3743#[derive(Debug, Default, Copy, Clone)]
3744pub struct bpf_cgroup_storage_key {
3745    pub cgroup_inode_id: __u64,
3746    pub attach_type: __u32,
3747    pub __bindgen_padding_0: [u8; 4usize],
3748}
3749pub const BPF_CGROUP_ITER_ORDER_UNSPEC: bpf_cgroup_iter_order = 0;
3750pub const BPF_CGROUP_ITER_SELF_ONLY: bpf_cgroup_iter_order = 1;
3751pub const BPF_CGROUP_ITER_DESCENDANTS_PRE: bpf_cgroup_iter_order = 2;
3752pub const BPF_CGROUP_ITER_DESCENDANTS_POST: bpf_cgroup_iter_order = 3;
3753pub const BPF_CGROUP_ITER_ANCESTORS_UP: bpf_cgroup_iter_order = 4;
3754pub type bpf_cgroup_iter_order = ::std::os::raw::c_uint;
3755#[repr(C)]
3756#[derive(Copy, Clone)]
3757pub union bpf_iter_link_info {
3758    pub map: bpf_iter_link_info__bindgen_ty_1,
3759    pub cgroup: bpf_iter_link_info__bindgen_ty_2,
3760    pub task: bpf_iter_link_info__bindgen_ty_3,
3761}
3762#[repr(C)]
3763#[derive(Debug, Default, Copy, Clone)]
3764pub struct bpf_iter_link_info__bindgen_ty_1 {
3765    pub map_fd: __u32,
3766}
3767#[repr(C)]
3768#[derive(Debug, Copy, Clone)]
3769pub struct bpf_iter_link_info__bindgen_ty_2 {
3770    pub order: bpf_cgroup_iter_order,
3771    pub cgroup_fd: __u32,
3772    pub cgroup_id: __u64,
3773}
3774impl Default for bpf_iter_link_info__bindgen_ty_2 {
3775    fn default() -> Self {
3776        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3777        unsafe {
3778            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3779            s.assume_init()
3780        }
3781    }
3782}
3783#[repr(C)]
3784#[derive(Debug, Default, Copy, Clone)]
3785pub struct bpf_iter_link_info__bindgen_ty_3 {
3786    pub tid: __u32,
3787    pub pid: __u32,
3788    pub pid_fd: __u32,
3789}
3790impl Default for bpf_iter_link_info {
3791    fn default() -> Self {
3792        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3793        unsafe {
3794            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3795            s.assume_init()
3796        }
3797    }
3798}
3799pub const BPF_MAP_CREATE: bpf_cmd = 0;
3800pub const BPF_MAP_LOOKUP_ELEM: bpf_cmd = 1;
3801pub const BPF_MAP_UPDATE_ELEM: bpf_cmd = 2;
3802pub const BPF_MAP_DELETE_ELEM: bpf_cmd = 3;
3803pub const BPF_MAP_GET_NEXT_KEY: bpf_cmd = 4;
3804pub const BPF_PROG_LOAD: bpf_cmd = 5;
3805pub const BPF_OBJ_PIN: bpf_cmd = 6;
3806pub const BPF_OBJ_GET: bpf_cmd = 7;
3807pub const BPF_PROG_ATTACH: bpf_cmd = 8;
3808pub const BPF_PROG_DETACH: bpf_cmd = 9;
3809pub const BPF_PROG_TEST_RUN: bpf_cmd = 10;
3810pub const BPF_PROG_RUN: bpf_cmd = 10;
3811pub const BPF_PROG_GET_NEXT_ID: bpf_cmd = 11;
3812pub const BPF_MAP_GET_NEXT_ID: bpf_cmd = 12;
3813pub const BPF_PROG_GET_FD_BY_ID: bpf_cmd = 13;
3814pub const BPF_MAP_GET_FD_BY_ID: bpf_cmd = 14;
3815pub const BPF_OBJ_GET_INFO_BY_FD: bpf_cmd = 15;
3816pub const BPF_PROG_QUERY: bpf_cmd = 16;
3817pub const BPF_RAW_TRACEPOINT_OPEN: bpf_cmd = 17;
3818pub const BPF_BTF_LOAD: bpf_cmd = 18;
3819pub const BPF_BTF_GET_FD_BY_ID: bpf_cmd = 19;
3820pub const BPF_TASK_FD_QUERY: bpf_cmd = 20;
3821pub const BPF_MAP_LOOKUP_AND_DELETE_ELEM: bpf_cmd = 21;
3822pub const BPF_MAP_FREEZE: bpf_cmd = 22;
3823pub const BPF_BTF_GET_NEXT_ID: bpf_cmd = 23;
3824pub const BPF_MAP_LOOKUP_BATCH: bpf_cmd = 24;
3825pub const BPF_MAP_LOOKUP_AND_DELETE_BATCH: bpf_cmd = 25;
3826pub const BPF_MAP_UPDATE_BATCH: bpf_cmd = 26;
3827pub const BPF_MAP_DELETE_BATCH: bpf_cmd = 27;
3828pub const BPF_LINK_CREATE: bpf_cmd = 28;
3829pub const BPF_LINK_UPDATE: bpf_cmd = 29;
3830pub const BPF_LINK_GET_FD_BY_ID: bpf_cmd = 30;
3831pub const BPF_LINK_GET_NEXT_ID: bpf_cmd = 31;
3832pub const BPF_ENABLE_STATS: bpf_cmd = 32;
3833pub const BPF_ITER_CREATE: bpf_cmd = 33;
3834pub const BPF_LINK_DETACH: bpf_cmd = 34;
3835pub const BPF_PROG_BIND_MAP: bpf_cmd = 35;
3836pub const BPF_TOKEN_CREATE: bpf_cmd = 36;
3837pub const BPF_PROG_STREAM_READ_BY_FD: bpf_cmd = 37;
3838pub const __MAX_BPF_CMD: bpf_cmd = 38;
3839pub type bpf_cmd = ::std::os::raw::c_uint;
3840pub const BPF_MAP_TYPE_UNSPEC: bpf_map_type = 0;
3841pub const BPF_MAP_TYPE_HASH: bpf_map_type = 1;
3842pub const BPF_MAP_TYPE_ARRAY: bpf_map_type = 2;
3843pub const BPF_MAP_TYPE_PROG_ARRAY: bpf_map_type = 3;
3844pub const BPF_MAP_TYPE_PERF_EVENT_ARRAY: bpf_map_type = 4;
3845pub const BPF_MAP_TYPE_PERCPU_HASH: bpf_map_type = 5;
3846pub const BPF_MAP_TYPE_PERCPU_ARRAY: bpf_map_type = 6;
3847pub const BPF_MAP_TYPE_STACK_TRACE: bpf_map_type = 7;
3848pub const BPF_MAP_TYPE_CGROUP_ARRAY: bpf_map_type = 8;
3849pub const BPF_MAP_TYPE_LRU_HASH: bpf_map_type = 9;
3850pub const BPF_MAP_TYPE_LRU_PERCPU_HASH: bpf_map_type = 10;
3851pub const BPF_MAP_TYPE_LPM_TRIE: bpf_map_type = 11;
3852pub const BPF_MAP_TYPE_ARRAY_OF_MAPS: bpf_map_type = 12;
3853pub const BPF_MAP_TYPE_HASH_OF_MAPS: bpf_map_type = 13;
3854pub const BPF_MAP_TYPE_DEVMAP: bpf_map_type = 14;
3855pub const BPF_MAP_TYPE_SOCKMAP: bpf_map_type = 15;
3856pub const BPF_MAP_TYPE_CPUMAP: bpf_map_type = 16;
3857pub const BPF_MAP_TYPE_XSKMAP: bpf_map_type = 17;
3858pub const BPF_MAP_TYPE_SOCKHASH: bpf_map_type = 18;
3859pub const BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED: bpf_map_type = 19;
3860pub const BPF_MAP_TYPE_CGROUP_STORAGE: bpf_map_type = 19;
3861pub const BPF_MAP_TYPE_REUSEPORT_SOCKARRAY: bpf_map_type = 20;
3862pub const BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED: bpf_map_type = 21;
3863pub const BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE: bpf_map_type = 21;
3864pub const BPF_MAP_TYPE_QUEUE: bpf_map_type = 22;
3865pub const BPF_MAP_TYPE_STACK: bpf_map_type = 23;
3866pub const BPF_MAP_TYPE_SK_STORAGE: bpf_map_type = 24;
3867pub const BPF_MAP_TYPE_DEVMAP_HASH: bpf_map_type = 25;
3868pub const BPF_MAP_TYPE_STRUCT_OPS: bpf_map_type = 26;
3869pub const BPF_MAP_TYPE_RINGBUF: bpf_map_type = 27;
3870pub const BPF_MAP_TYPE_INODE_STORAGE: bpf_map_type = 28;
3871pub const BPF_MAP_TYPE_TASK_STORAGE: bpf_map_type = 29;
3872pub const BPF_MAP_TYPE_BLOOM_FILTER: bpf_map_type = 30;
3873pub const BPF_MAP_TYPE_USER_RINGBUF: bpf_map_type = 31;
3874pub const BPF_MAP_TYPE_CGRP_STORAGE: bpf_map_type = 32;
3875pub const BPF_MAP_TYPE_ARENA: bpf_map_type = 33;
3876pub const __MAX_BPF_MAP_TYPE: bpf_map_type = 34;
3877pub type bpf_map_type = ::std::os::raw::c_uint;
3878pub const BPF_PROG_TYPE_UNSPEC: bpf_prog_type = 0;
3879pub const BPF_PROG_TYPE_SOCKET_FILTER: bpf_prog_type = 1;
3880pub const BPF_PROG_TYPE_KPROBE: bpf_prog_type = 2;
3881pub const BPF_PROG_TYPE_SCHED_CLS: bpf_prog_type = 3;
3882pub const BPF_PROG_TYPE_SCHED_ACT: bpf_prog_type = 4;
3883pub const BPF_PROG_TYPE_TRACEPOINT: bpf_prog_type = 5;
3884pub const BPF_PROG_TYPE_XDP: bpf_prog_type = 6;
3885pub const BPF_PROG_TYPE_PERF_EVENT: bpf_prog_type = 7;
3886pub const BPF_PROG_TYPE_CGROUP_SKB: bpf_prog_type = 8;
3887pub const BPF_PROG_TYPE_CGROUP_SOCK: bpf_prog_type = 9;
3888pub const BPF_PROG_TYPE_LWT_IN: bpf_prog_type = 10;
3889pub const BPF_PROG_TYPE_LWT_OUT: bpf_prog_type = 11;
3890pub const BPF_PROG_TYPE_LWT_XMIT: bpf_prog_type = 12;
3891pub const BPF_PROG_TYPE_SOCK_OPS: bpf_prog_type = 13;
3892pub const BPF_PROG_TYPE_SK_SKB: bpf_prog_type = 14;
3893pub const BPF_PROG_TYPE_CGROUP_DEVICE: bpf_prog_type = 15;
3894pub const BPF_PROG_TYPE_SK_MSG: bpf_prog_type = 16;
3895pub const BPF_PROG_TYPE_RAW_TRACEPOINT: bpf_prog_type = 17;
3896pub const BPF_PROG_TYPE_CGROUP_SOCK_ADDR: bpf_prog_type = 18;
3897pub const BPF_PROG_TYPE_LWT_SEG6LOCAL: bpf_prog_type = 19;
3898pub const BPF_PROG_TYPE_LIRC_MODE2: bpf_prog_type = 20;
3899pub const BPF_PROG_TYPE_SK_REUSEPORT: bpf_prog_type = 21;
3900pub const BPF_PROG_TYPE_FLOW_DISSECTOR: bpf_prog_type = 22;
3901pub const BPF_PROG_TYPE_CGROUP_SYSCTL: bpf_prog_type = 23;
3902pub const BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE: bpf_prog_type = 24;
3903pub const BPF_PROG_TYPE_CGROUP_SOCKOPT: bpf_prog_type = 25;
3904pub const BPF_PROG_TYPE_TRACING: bpf_prog_type = 26;
3905pub const BPF_PROG_TYPE_STRUCT_OPS: bpf_prog_type = 27;
3906pub const BPF_PROG_TYPE_EXT: bpf_prog_type = 28;
3907pub const BPF_PROG_TYPE_LSM: bpf_prog_type = 29;
3908pub const BPF_PROG_TYPE_SK_LOOKUP: bpf_prog_type = 30;
3909pub const BPF_PROG_TYPE_SYSCALL: bpf_prog_type = 31;
3910pub const BPF_PROG_TYPE_NETFILTER: bpf_prog_type = 32;
3911pub const __MAX_BPF_PROG_TYPE: bpf_prog_type = 33;
3912pub type bpf_prog_type = ::std::os::raw::c_uint;
3913pub const BPF_CGROUP_INET_INGRESS: bpf_attach_type = 0;
3914pub const BPF_CGROUP_INET_EGRESS: bpf_attach_type = 1;
3915pub const BPF_CGROUP_INET_SOCK_CREATE: bpf_attach_type = 2;
3916pub const BPF_CGROUP_SOCK_OPS: bpf_attach_type = 3;
3917pub const BPF_SK_SKB_STREAM_PARSER: bpf_attach_type = 4;
3918pub const BPF_SK_SKB_STREAM_VERDICT: bpf_attach_type = 5;
3919pub const BPF_CGROUP_DEVICE: bpf_attach_type = 6;
3920pub const BPF_SK_MSG_VERDICT: bpf_attach_type = 7;
3921pub const BPF_CGROUP_INET4_BIND: bpf_attach_type = 8;
3922pub const BPF_CGROUP_INET6_BIND: bpf_attach_type = 9;
3923pub const BPF_CGROUP_INET4_CONNECT: bpf_attach_type = 10;
3924pub const BPF_CGROUP_INET6_CONNECT: bpf_attach_type = 11;
3925pub const BPF_CGROUP_INET4_POST_BIND: bpf_attach_type = 12;
3926pub const BPF_CGROUP_INET6_POST_BIND: bpf_attach_type = 13;
3927pub const BPF_CGROUP_UDP4_SENDMSG: bpf_attach_type = 14;
3928pub const BPF_CGROUP_UDP6_SENDMSG: bpf_attach_type = 15;
3929pub const BPF_LIRC_MODE2: bpf_attach_type = 16;
3930pub const BPF_FLOW_DISSECTOR: bpf_attach_type = 17;
3931pub const BPF_CGROUP_SYSCTL: bpf_attach_type = 18;
3932pub const BPF_CGROUP_UDP4_RECVMSG: bpf_attach_type = 19;
3933pub const BPF_CGROUP_UDP6_RECVMSG: bpf_attach_type = 20;
3934pub const BPF_CGROUP_GETSOCKOPT: bpf_attach_type = 21;
3935pub const BPF_CGROUP_SETSOCKOPT: bpf_attach_type = 22;
3936pub const BPF_TRACE_RAW_TP: bpf_attach_type = 23;
3937pub const BPF_TRACE_FENTRY: bpf_attach_type = 24;
3938pub const BPF_TRACE_FEXIT: bpf_attach_type = 25;
3939pub const BPF_MODIFY_RETURN: bpf_attach_type = 26;
3940pub const BPF_LSM_MAC: bpf_attach_type = 27;
3941pub const BPF_TRACE_ITER: bpf_attach_type = 28;
3942pub const BPF_CGROUP_INET4_GETPEERNAME: bpf_attach_type = 29;
3943pub const BPF_CGROUP_INET6_GETPEERNAME: bpf_attach_type = 30;
3944pub const BPF_CGROUP_INET4_GETSOCKNAME: bpf_attach_type = 31;
3945pub const BPF_CGROUP_INET6_GETSOCKNAME: bpf_attach_type = 32;
3946pub const BPF_XDP_DEVMAP: bpf_attach_type = 33;
3947pub const BPF_CGROUP_INET_SOCK_RELEASE: bpf_attach_type = 34;
3948pub const BPF_XDP_CPUMAP: bpf_attach_type = 35;
3949pub const BPF_SK_LOOKUP: bpf_attach_type = 36;
3950pub const BPF_XDP: bpf_attach_type = 37;
3951pub const BPF_SK_SKB_VERDICT: bpf_attach_type = 38;
3952pub const BPF_SK_REUSEPORT_SELECT: bpf_attach_type = 39;
3953pub const BPF_SK_REUSEPORT_SELECT_OR_MIGRATE: bpf_attach_type = 40;
3954pub const BPF_PERF_EVENT: bpf_attach_type = 41;
3955pub const BPF_TRACE_KPROBE_MULTI: bpf_attach_type = 42;
3956pub const BPF_LSM_CGROUP: bpf_attach_type = 43;
3957pub const BPF_STRUCT_OPS: bpf_attach_type = 44;
3958pub const BPF_NETFILTER: bpf_attach_type = 45;
3959pub const BPF_TCX_INGRESS: bpf_attach_type = 46;
3960pub const BPF_TCX_EGRESS: bpf_attach_type = 47;
3961pub const BPF_TRACE_UPROBE_MULTI: bpf_attach_type = 48;
3962pub const BPF_CGROUP_UNIX_CONNECT: bpf_attach_type = 49;
3963pub const BPF_CGROUP_UNIX_SENDMSG: bpf_attach_type = 50;
3964pub const BPF_CGROUP_UNIX_RECVMSG: bpf_attach_type = 51;
3965pub const BPF_CGROUP_UNIX_GETPEERNAME: bpf_attach_type = 52;
3966pub const BPF_CGROUP_UNIX_GETSOCKNAME: bpf_attach_type = 53;
3967pub const BPF_NETKIT_PRIMARY: bpf_attach_type = 54;
3968pub const BPF_NETKIT_PEER: bpf_attach_type = 55;
3969pub const BPF_TRACE_KPROBE_SESSION: bpf_attach_type = 56;
3970pub const BPF_TRACE_UPROBE_SESSION: bpf_attach_type = 57;
3971pub const __MAX_BPF_ATTACH_TYPE: bpf_attach_type = 58;
3972pub type bpf_attach_type = ::std::os::raw::c_uint;
3973pub const BPF_LINK_TYPE_UNSPEC: bpf_link_type = 0;
3974pub const BPF_LINK_TYPE_RAW_TRACEPOINT: bpf_link_type = 1;
3975pub const BPF_LINK_TYPE_TRACING: bpf_link_type = 2;
3976pub const BPF_LINK_TYPE_CGROUP: bpf_link_type = 3;
3977pub const BPF_LINK_TYPE_ITER: bpf_link_type = 4;
3978pub const BPF_LINK_TYPE_NETNS: bpf_link_type = 5;
3979pub const BPF_LINK_TYPE_XDP: bpf_link_type = 6;
3980pub const BPF_LINK_TYPE_PERF_EVENT: bpf_link_type = 7;
3981pub const BPF_LINK_TYPE_KPROBE_MULTI: bpf_link_type = 8;
3982pub const BPF_LINK_TYPE_STRUCT_OPS: bpf_link_type = 9;
3983pub const BPF_LINK_TYPE_NETFILTER: bpf_link_type = 10;
3984pub const BPF_LINK_TYPE_TCX: bpf_link_type = 11;
3985pub const BPF_LINK_TYPE_UPROBE_MULTI: bpf_link_type = 12;
3986pub const BPF_LINK_TYPE_NETKIT: bpf_link_type = 13;
3987pub const BPF_LINK_TYPE_SOCKMAP: bpf_link_type = 14;
3988pub const __MAX_BPF_LINK_TYPE: bpf_link_type = 15;
3989pub type bpf_link_type = ::std::os::raw::c_uint;
3990pub const BPF_PERF_EVENT_UNSPEC: bpf_perf_event_type = 0;
3991pub const BPF_PERF_EVENT_UPROBE: bpf_perf_event_type = 1;
3992pub const BPF_PERF_EVENT_URETPROBE: bpf_perf_event_type = 2;
3993pub const BPF_PERF_EVENT_KPROBE: bpf_perf_event_type = 3;
3994pub const BPF_PERF_EVENT_KRETPROBE: bpf_perf_event_type = 4;
3995pub const BPF_PERF_EVENT_TRACEPOINT: bpf_perf_event_type = 5;
3996pub const BPF_PERF_EVENT_EVENT: bpf_perf_event_type = 6;
3997pub type bpf_perf_event_type = ::std::os::raw::c_uint;
3998pub const BPF_F_KPROBE_MULTI_RETURN: _bindgen_ty_62 = 1;
3999pub type _bindgen_ty_62 = ::std::os::raw::c_uint;
4000pub const BPF_F_UPROBE_MULTI_RETURN: _bindgen_ty_63 = 1;
4001pub type _bindgen_ty_63 = ::std::os::raw::c_uint;
4002pub const BPF_ADDR_SPACE_CAST: bpf_addr_space_cast = 1;
4003pub type bpf_addr_space_cast = ::std::os::raw::c_uint;
4004pub const BPF_ANY: _bindgen_ty_64 = 0;
4005pub const BPF_NOEXIST: _bindgen_ty_64 = 1;
4006pub const BPF_EXIST: _bindgen_ty_64 = 2;
4007pub const BPF_F_LOCK: _bindgen_ty_64 = 4;
4008pub type _bindgen_ty_64 = ::std::os::raw::c_uint;
4009pub const BPF_F_NO_PREALLOC: _bindgen_ty_65 = 1;
4010pub const BPF_F_NO_COMMON_LRU: _bindgen_ty_65 = 2;
4011pub const BPF_F_NUMA_NODE: _bindgen_ty_65 = 4;
4012pub const BPF_F_RDONLY: _bindgen_ty_65 = 8;
4013pub const BPF_F_WRONLY: _bindgen_ty_65 = 16;
4014pub const BPF_F_STACK_BUILD_ID: _bindgen_ty_65 = 32;
4015pub const BPF_F_ZERO_SEED: _bindgen_ty_65 = 64;
4016pub const BPF_F_RDONLY_PROG: _bindgen_ty_65 = 128;
4017pub const BPF_F_WRONLY_PROG: _bindgen_ty_65 = 256;
4018pub const BPF_F_CLONE: _bindgen_ty_65 = 512;
4019pub const BPF_F_MMAPABLE: _bindgen_ty_65 = 1024;
4020pub const BPF_F_PRESERVE_ELEMS: _bindgen_ty_65 = 2048;
4021pub const BPF_F_INNER_MAP: _bindgen_ty_65 = 4096;
4022pub const BPF_F_LINK: _bindgen_ty_65 = 8192;
4023pub const BPF_F_PATH_FD: _bindgen_ty_65 = 16384;
4024pub const BPF_F_VTYPE_BTF_OBJ_FD: _bindgen_ty_65 = 32768;
4025pub const BPF_F_TOKEN_FD: _bindgen_ty_65 = 65536;
4026pub const BPF_F_SEGV_ON_FAULT: _bindgen_ty_65 = 131072;
4027pub const BPF_F_NO_USER_CONV: _bindgen_ty_65 = 262144;
4028pub type _bindgen_ty_65 = ::std::os::raw::c_uint;
4029pub const BPF_STATS_RUN_TIME: bpf_stats_type = 0;
4030pub type bpf_stats_type = ::std::os::raw::c_uint;
4031pub const BPF_STACK_BUILD_ID_EMPTY: bpf_stack_build_id_status = 0;
4032pub const BPF_STACK_BUILD_ID_VALID: bpf_stack_build_id_status = 1;
4033pub const BPF_STACK_BUILD_ID_IP: bpf_stack_build_id_status = 2;
4034pub type bpf_stack_build_id_status = ::std::os::raw::c_uint;
4035#[repr(C)]
4036#[derive(Copy, Clone)]
4037pub struct bpf_stack_build_id {
4038    pub status: __s32,
4039    pub build_id: [::std::os::raw::c_uchar; 20usize],
4040    pub __bindgen_anon_1: bpf_stack_build_id__bindgen_ty_1,
4041}
4042#[repr(C)]
4043#[derive(Copy, Clone)]
4044pub union bpf_stack_build_id__bindgen_ty_1 {
4045    pub offset: __u64,
4046    pub ip: __u64,
4047}
4048impl Default for bpf_stack_build_id__bindgen_ty_1 {
4049    fn default() -> Self {
4050        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4051        unsafe {
4052            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4053            s.assume_init()
4054        }
4055    }
4056}
4057impl Default for bpf_stack_build_id {
4058    fn default() -> Self {
4059        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4060        unsafe {
4061            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4062            s.assume_init()
4063        }
4064    }
4065}
4066pub const BPF_STREAM_STDOUT: _bindgen_ty_66 = 1;
4067pub const BPF_STREAM_STDERR: _bindgen_ty_66 = 2;
4068pub type _bindgen_ty_66 = ::std::os::raw::c_uint;
4069#[repr(C)]
4070#[derive(Copy, Clone)]
4071pub union bpf_attr {
4072    pub __bindgen_anon_1: bpf_attr__bindgen_ty_1,
4073    pub __bindgen_anon_2: bpf_attr__bindgen_ty_2,
4074    pub batch: bpf_attr__bindgen_ty_3,
4075    pub __bindgen_anon_3: bpf_attr__bindgen_ty_4,
4076    pub __bindgen_anon_4: bpf_attr__bindgen_ty_5,
4077    pub __bindgen_anon_5: bpf_attr__bindgen_ty_6,
4078    pub test: bpf_attr__bindgen_ty_7,
4079    pub __bindgen_anon_6: bpf_attr__bindgen_ty_8,
4080    pub info: bpf_attr__bindgen_ty_9,
4081    pub query: bpf_attr__bindgen_ty_10,
4082    pub raw_tracepoint: bpf_attr__bindgen_ty_11,
4083    pub __bindgen_anon_7: bpf_attr__bindgen_ty_12,
4084    pub task_fd_query: bpf_attr__bindgen_ty_13,
4085    pub link_create: bpf_attr__bindgen_ty_14,
4086    pub link_update: bpf_attr__bindgen_ty_15,
4087    pub link_detach: bpf_attr__bindgen_ty_16,
4088    pub enable_stats: bpf_attr__bindgen_ty_17,
4089    pub iter_create: bpf_attr__bindgen_ty_18,
4090    pub prog_bind_map: bpf_attr__bindgen_ty_19,
4091    pub token_create: bpf_attr__bindgen_ty_20,
4092    pub prog_stream_read: bpf_attr__bindgen_ty_21,
4093}
4094#[repr(C)]
4095#[derive(Debug, Default, Copy, Clone)]
4096pub struct bpf_attr__bindgen_ty_1 {
4097    pub map_type: __u32,
4098    pub key_size: __u32,
4099    pub value_size: __u32,
4100    pub max_entries: __u32,
4101    pub map_flags: __u32,
4102    pub inner_map_fd: __u32,
4103    pub numa_node: __u32,
4104    pub map_name: [::std::os::raw::c_char; 16usize],
4105    pub map_ifindex: __u32,
4106    pub btf_fd: __u32,
4107    pub btf_key_type_id: __u32,
4108    pub btf_value_type_id: __u32,
4109    pub btf_vmlinux_value_type_id: __u32,
4110    pub map_extra: __u64,
4111    pub value_type_btf_obj_fd: __s32,
4112    pub map_token_fd: __s32,
4113}
4114#[repr(C)]
4115#[derive(Copy, Clone)]
4116pub struct bpf_attr__bindgen_ty_2 {
4117    pub map_fd: __u32,
4118    pub __bindgen_padding_0: [u8; 4usize],
4119    pub key: __u64,
4120    pub __bindgen_anon_1: bpf_attr__bindgen_ty_2__bindgen_ty_1,
4121    pub flags: __u64,
4122}
4123#[repr(C)]
4124#[derive(Copy, Clone)]
4125pub union bpf_attr__bindgen_ty_2__bindgen_ty_1 {
4126    pub value: __u64,
4127    pub next_key: __u64,
4128}
4129impl Default for bpf_attr__bindgen_ty_2__bindgen_ty_1 {
4130    fn default() -> Self {
4131        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4132        unsafe {
4133            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4134            s.assume_init()
4135        }
4136    }
4137}
4138impl Default for bpf_attr__bindgen_ty_2 {
4139    fn default() -> Self {
4140        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4141        unsafe {
4142            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4143            s.assume_init()
4144        }
4145    }
4146}
4147#[repr(C)]
4148#[derive(Debug, Default, Copy, Clone)]
4149pub struct bpf_attr__bindgen_ty_3 {
4150    pub in_batch: __u64,
4151    pub out_batch: __u64,
4152    pub keys: __u64,
4153    pub values: __u64,
4154    pub count: __u32,
4155    pub map_fd: __u32,
4156    pub elem_flags: __u64,
4157    pub flags: __u64,
4158}
4159#[repr(C)]
4160#[derive(Copy, Clone)]
4161pub struct bpf_attr__bindgen_ty_4 {
4162    pub prog_type: __u32,
4163    pub insn_cnt: __u32,
4164    pub insns: __u64,
4165    pub license: __u64,
4166    pub log_level: __u32,
4167    pub log_size: __u32,
4168    pub log_buf: __u64,
4169    pub kern_version: __u32,
4170    pub prog_flags: __u32,
4171    pub prog_name: [::std::os::raw::c_char; 16usize],
4172    pub prog_ifindex: __u32,
4173    pub expected_attach_type: __u32,
4174    pub prog_btf_fd: __u32,
4175    pub func_info_rec_size: __u32,
4176    pub func_info: __u64,
4177    pub func_info_cnt: __u32,
4178    pub line_info_rec_size: __u32,
4179    pub line_info: __u64,
4180    pub line_info_cnt: __u32,
4181    pub attach_btf_id: __u32,
4182    pub __bindgen_anon_1: bpf_attr__bindgen_ty_4__bindgen_ty_1,
4183    pub core_relo_cnt: __u32,
4184    pub fd_array: __u64,
4185    pub core_relos: __u64,
4186    pub core_relo_rec_size: __u32,
4187    pub log_true_size: __u32,
4188    pub prog_token_fd: __s32,
4189    pub fd_array_cnt: __u32,
4190}
4191#[repr(C)]
4192#[derive(Copy, Clone)]
4193pub union bpf_attr__bindgen_ty_4__bindgen_ty_1 {
4194    pub attach_prog_fd: __u32,
4195    pub attach_btf_obj_fd: __u32,
4196}
4197impl Default for bpf_attr__bindgen_ty_4__bindgen_ty_1 {
4198    fn default() -> Self {
4199        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4200        unsafe {
4201            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4202            s.assume_init()
4203        }
4204    }
4205}
4206impl Default for bpf_attr__bindgen_ty_4 {
4207    fn default() -> Self {
4208        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4209        unsafe {
4210            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4211            s.assume_init()
4212        }
4213    }
4214}
4215#[repr(C)]
4216#[derive(Debug, Default, Copy, Clone)]
4217pub struct bpf_attr__bindgen_ty_5 {
4218    pub pathname: __u64,
4219    pub bpf_fd: __u32,
4220    pub file_flags: __u32,
4221    pub path_fd: __s32,
4222    pub __bindgen_padding_0: [u8; 4usize],
4223}
4224#[repr(C)]
4225#[derive(Copy, Clone)]
4226pub struct bpf_attr__bindgen_ty_6 {
4227    pub __bindgen_anon_1: bpf_attr__bindgen_ty_6__bindgen_ty_1,
4228    pub attach_bpf_fd: __u32,
4229    pub attach_type: __u32,
4230    pub attach_flags: __u32,
4231    pub replace_bpf_fd: __u32,
4232    pub __bindgen_anon_2: bpf_attr__bindgen_ty_6__bindgen_ty_2,
4233    pub expected_revision: __u64,
4234}
4235#[repr(C)]
4236#[derive(Copy, Clone)]
4237pub union bpf_attr__bindgen_ty_6__bindgen_ty_1 {
4238    pub target_fd: __u32,
4239    pub target_ifindex: __u32,
4240}
4241impl Default for bpf_attr__bindgen_ty_6__bindgen_ty_1 {
4242    fn default() -> Self {
4243        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4244        unsafe {
4245            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4246            s.assume_init()
4247        }
4248    }
4249}
4250#[repr(C)]
4251#[derive(Copy, Clone)]
4252pub union bpf_attr__bindgen_ty_6__bindgen_ty_2 {
4253    pub relative_fd: __u32,
4254    pub relative_id: __u32,
4255}
4256impl Default for bpf_attr__bindgen_ty_6__bindgen_ty_2 {
4257    fn default() -> Self {
4258        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4259        unsafe {
4260            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4261            s.assume_init()
4262        }
4263    }
4264}
4265impl Default for bpf_attr__bindgen_ty_6 {
4266    fn default() -> Self {
4267        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4268        unsafe {
4269            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4270            s.assume_init()
4271        }
4272    }
4273}
4274#[repr(C)]
4275#[derive(Debug, Default, Copy, Clone)]
4276pub struct bpf_attr__bindgen_ty_7 {
4277    pub prog_fd: __u32,
4278    pub retval: __u32,
4279    pub data_size_in: __u32,
4280    pub data_size_out: __u32,
4281    pub data_in: __u64,
4282    pub data_out: __u64,
4283    pub repeat: __u32,
4284    pub duration: __u32,
4285    pub ctx_size_in: __u32,
4286    pub ctx_size_out: __u32,
4287    pub ctx_in: __u64,
4288    pub ctx_out: __u64,
4289    pub flags: __u32,
4290    pub cpu: __u32,
4291    pub batch_size: __u32,
4292    pub __bindgen_padding_0: [u8; 4usize],
4293}
4294#[repr(C)]
4295#[derive(Copy, Clone)]
4296pub struct bpf_attr__bindgen_ty_8 {
4297    pub __bindgen_anon_1: bpf_attr__bindgen_ty_8__bindgen_ty_1,
4298    pub next_id: __u32,
4299    pub open_flags: __u32,
4300    pub fd_by_id_token_fd: __s32,
4301}
4302#[repr(C)]
4303#[derive(Copy, Clone)]
4304pub union bpf_attr__bindgen_ty_8__bindgen_ty_1 {
4305    pub start_id: __u32,
4306    pub prog_id: __u32,
4307    pub map_id: __u32,
4308    pub btf_id: __u32,
4309    pub link_id: __u32,
4310}
4311impl Default for bpf_attr__bindgen_ty_8__bindgen_ty_1 {
4312    fn default() -> Self {
4313        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4314        unsafe {
4315            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4316            s.assume_init()
4317        }
4318    }
4319}
4320impl Default for bpf_attr__bindgen_ty_8 {
4321    fn default() -> Self {
4322        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4323        unsafe {
4324            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4325            s.assume_init()
4326        }
4327    }
4328}
4329#[repr(C)]
4330#[derive(Debug, Default, Copy, Clone)]
4331pub struct bpf_attr__bindgen_ty_9 {
4332    pub bpf_fd: __u32,
4333    pub info_len: __u32,
4334    pub info: __u64,
4335}
4336#[repr(C)]
4337#[derive(Copy, Clone)]
4338pub struct bpf_attr__bindgen_ty_10 {
4339    pub __bindgen_anon_1: bpf_attr__bindgen_ty_10__bindgen_ty_1,
4340    pub attach_type: __u32,
4341    pub query_flags: __u32,
4342    pub attach_flags: __u32,
4343    pub prog_ids: __u64,
4344    pub __bindgen_anon_2: bpf_attr__bindgen_ty_10__bindgen_ty_2,
4345    pub _bitfield_align_1: [u8; 0],
4346    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
4347    pub prog_attach_flags: __u64,
4348    pub link_ids: __u64,
4349    pub link_attach_flags: __u64,
4350    pub revision: __u64,
4351}
4352#[repr(C)]
4353#[derive(Copy, Clone)]
4354pub union bpf_attr__bindgen_ty_10__bindgen_ty_1 {
4355    pub target_fd: __u32,
4356    pub target_ifindex: __u32,
4357}
4358impl Default for bpf_attr__bindgen_ty_10__bindgen_ty_1 {
4359    fn default() -> Self {
4360        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4361        unsafe {
4362            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4363            s.assume_init()
4364        }
4365    }
4366}
4367#[repr(C)]
4368#[derive(Copy, Clone)]
4369pub union bpf_attr__bindgen_ty_10__bindgen_ty_2 {
4370    pub prog_cnt: __u32,
4371    pub count: __u32,
4372}
4373impl Default for bpf_attr__bindgen_ty_10__bindgen_ty_2 {
4374    fn default() -> Self {
4375        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4376        unsafe {
4377            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4378            s.assume_init()
4379        }
4380    }
4381}
4382impl Default for bpf_attr__bindgen_ty_10 {
4383    fn default() -> Self {
4384        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4385        unsafe {
4386            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4387            s.assume_init()
4388        }
4389    }
4390}
4391impl bpf_attr__bindgen_ty_10 {
4392    #[inline]
4393    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
4394        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
4395        __bindgen_bitfield_unit
4396    }
4397}
4398#[repr(C)]
4399#[derive(Debug, Default, Copy, Clone)]
4400pub struct bpf_attr__bindgen_ty_11 {
4401    pub name: __u64,
4402    pub prog_fd: __u32,
4403    pub _bitfield_align_1: [u8; 0],
4404    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
4405    pub cookie: __u64,
4406}
4407impl bpf_attr__bindgen_ty_11 {
4408    #[inline]
4409    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
4410        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
4411        __bindgen_bitfield_unit
4412    }
4413}
4414#[repr(C)]
4415#[derive(Debug, Default, Copy, Clone)]
4416pub struct bpf_attr__bindgen_ty_12 {
4417    pub btf: __u64,
4418    pub btf_log_buf: __u64,
4419    pub btf_size: __u32,
4420    pub btf_log_size: __u32,
4421    pub btf_log_level: __u32,
4422    pub btf_log_true_size: __u32,
4423    pub btf_flags: __u32,
4424    pub btf_token_fd: __s32,
4425}
4426#[repr(C)]
4427#[derive(Debug, Default, Copy, Clone)]
4428pub struct bpf_attr__bindgen_ty_13 {
4429    pub pid: __u32,
4430    pub fd: __u32,
4431    pub flags: __u32,
4432    pub buf_len: __u32,
4433    pub buf: __u64,
4434    pub prog_id: __u32,
4435    pub fd_type: __u32,
4436    pub probe_offset: __u64,
4437    pub probe_addr: __u64,
4438}
4439#[repr(C)]
4440#[derive(Copy, Clone)]
4441pub struct bpf_attr__bindgen_ty_14 {
4442    pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_1,
4443    pub __bindgen_anon_2: bpf_attr__bindgen_ty_14__bindgen_ty_2,
4444    pub attach_type: __u32,
4445    pub flags: __u32,
4446    pub __bindgen_anon_3: bpf_attr__bindgen_ty_14__bindgen_ty_3,
4447}
4448#[repr(C)]
4449#[derive(Copy, Clone)]
4450pub union bpf_attr__bindgen_ty_14__bindgen_ty_1 {
4451    pub prog_fd: __u32,
4452    pub map_fd: __u32,
4453}
4454impl Default for bpf_attr__bindgen_ty_14__bindgen_ty_1 {
4455    fn default() -> Self {
4456        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4457        unsafe {
4458            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4459            s.assume_init()
4460        }
4461    }
4462}
4463#[repr(C)]
4464#[derive(Copy, Clone)]
4465pub union bpf_attr__bindgen_ty_14__bindgen_ty_2 {
4466    pub target_fd: __u32,
4467    pub target_ifindex: __u32,
4468}
4469impl Default for bpf_attr__bindgen_ty_14__bindgen_ty_2 {
4470    fn default() -> Self {
4471        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4472        unsafe {
4473            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4474            s.assume_init()
4475        }
4476    }
4477}
4478#[repr(C)]
4479#[derive(Copy, Clone)]
4480pub union bpf_attr__bindgen_ty_14__bindgen_ty_3 {
4481    pub target_btf_id: __u32,
4482    pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_1,
4483    pub perf_event: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_2,
4484    pub kprobe_multi: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_3,
4485    pub tracing: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_4,
4486    pub netfilter: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_5,
4487    pub tcx: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6,
4488    pub uprobe_multi: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_7,
4489    pub netkit: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8,
4490    pub cgroup: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_9,
4491}
4492#[repr(C)]
4493#[derive(Debug, Default, Copy, Clone)]
4494pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_1 {
4495    pub iter_info: __u64,
4496    pub iter_info_len: __u32,
4497    pub __bindgen_padding_0: [u8; 4usize],
4498}
4499#[repr(C)]
4500#[derive(Debug, Default, Copy, Clone)]
4501pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_2 {
4502    pub bpf_cookie: __u64,
4503}
4504#[repr(C)]
4505#[derive(Debug, Default, Copy, Clone)]
4506pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_3 {
4507    pub flags: __u32,
4508    pub cnt: __u32,
4509    pub syms: __u64,
4510    pub addrs: __u64,
4511    pub cookies: __u64,
4512}
4513#[repr(C)]
4514#[derive(Debug, Default, Copy, Clone)]
4515pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_4 {
4516    pub target_btf_id: __u32,
4517    pub __bindgen_padding_0: [u8; 4usize],
4518    pub cookie: __u64,
4519}
4520#[repr(C)]
4521#[derive(Debug, Default, Copy, Clone)]
4522pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_5 {
4523    pub pf: __u32,
4524    pub hooknum: __u32,
4525    pub priority: __s32,
4526    pub flags: __u32,
4527}
4528#[repr(C)]
4529#[derive(Copy, Clone)]
4530pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6 {
4531    pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6__bindgen_ty_1,
4532    pub __bindgen_padding_0: [u8; 4usize],
4533    pub expected_revision: __u64,
4534}
4535#[repr(C)]
4536#[derive(Copy, Clone)]
4537pub union bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6__bindgen_ty_1 {
4538    pub relative_fd: __u32,
4539    pub relative_id: __u32,
4540}
4541impl Default for bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6__bindgen_ty_1 {
4542    fn default() -> Self {
4543        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4544        unsafe {
4545            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4546            s.assume_init()
4547        }
4548    }
4549}
4550impl Default for bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6 {
4551    fn default() -> Self {
4552        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4553        unsafe {
4554            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4555            s.assume_init()
4556        }
4557    }
4558}
4559#[repr(C)]
4560#[derive(Debug, Default, Copy, Clone)]
4561pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_7 {
4562    pub path: __u64,
4563    pub offsets: __u64,
4564    pub ref_ctr_offsets: __u64,
4565    pub cookies: __u64,
4566    pub cnt: __u32,
4567    pub flags: __u32,
4568    pub pid: __u32,
4569    pub __bindgen_padding_0: [u8; 4usize],
4570}
4571#[repr(C)]
4572#[derive(Copy, Clone)]
4573pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8 {
4574    pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8__bindgen_ty_1,
4575    pub __bindgen_padding_0: [u8; 4usize],
4576    pub expected_revision: __u64,
4577}
4578#[repr(C)]
4579#[derive(Copy, Clone)]
4580pub union bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8__bindgen_ty_1 {
4581    pub relative_fd: __u32,
4582    pub relative_id: __u32,
4583}
4584impl Default for bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8__bindgen_ty_1 {
4585    fn default() -> Self {
4586        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4587        unsafe {
4588            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4589            s.assume_init()
4590        }
4591    }
4592}
4593impl Default for bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8 {
4594    fn default() -> Self {
4595        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4596        unsafe {
4597            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4598            s.assume_init()
4599        }
4600    }
4601}
4602#[repr(C)]
4603#[derive(Copy, Clone)]
4604pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_9 {
4605    pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_9__bindgen_ty_1,
4606    pub __bindgen_padding_0: [u8; 4usize],
4607    pub expected_revision: __u64,
4608}
4609#[repr(C)]
4610#[derive(Copy, Clone)]
4611pub union bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_9__bindgen_ty_1 {
4612    pub relative_fd: __u32,
4613    pub relative_id: __u32,
4614}
4615impl Default for bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_9__bindgen_ty_1 {
4616    fn default() -> Self {
4617        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4618        unsafe {
4619            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4620            s.assume_init()
4621        }
4622    }
4623}
4624impl Default for bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_9 {
4625    fn default() -> Self {
4626        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4627        unsafe {
4628            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4629            s.assume_init()
4630        }
4631    }
4632}
4633impl Default for bpf_attr__bindgen_ty_14__bindgen_ty_3 {
4634    fn default() -> Self {
4635        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4636        unsafe {
4637            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4638            s.assume_init()
4639        }
4640    }
4641}
4642impl Default for bpf_attr__bindgen_ty_14 {
4643    fn default() -> Self {
4644        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4645        unsafe {
4646            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4647            s.assume_init()
4648        }
4649    }
4650}
4651#[repr(C)]
4652#[derive(Copy, Clone)]
4653pub struct bpf_attr__bindgen_ty_15 {
4654    pub link_fd: __u32,
4655    pub __bindgen_anon_1: bpf_attr__bindgen_ty_15__bindgen_ty_1,
4656    pub flags: __u32,
4657    pub __bindgen_anon_2: bpf_attr__bindgen_ty_15__bindgen_ty_2,
4658}
4659#[repr(C)]
4660#[derive(Copy, Clone)]
4661pub union bpf_attr__bindgen_ty_15__bindgen_ty_1 {
4662    pub new_prog_fd: __u32,
4663    pub new_map_fd: __u32,
4664}
4665impl Default for bpf_attr__bindgen_ty_15__bindgen_ty_1 {
4666    fn default() -> Self {
4667        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4668        unsafe {
4669            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4670            s.assume_init()
4671        }
4672    }
4673}
4674#[repr(C)]
4675#[derive(Copy, Clone)]
4676pub union bpf_attr__bindgen_ty_15__bindgen_ty_2 {
4677    pub old_prog_fd: __u32,
4678    pub old_map_fd: __u32,
4679}
4680impl Default for bpf_attr__bindgen_ty_15__bindgen_ty_2 {
4681    fn default() -> Self {
4682        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4683        unsafe {
4684            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4685            s.assume_init()
4686        }
4687    }
4688}
4689impl Default for bpf_attr__bindgen_ty_15 {
4690    fn default() -> Self {
4691        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4692        unsafe {
4693            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4694            s.assume_init()
4695        }
4696    }
4697}
4698#[repr(C)]
4699#[derive(Debug, Default, Copy, Clone)]
4700pub struct bpf_attr__bindgen_ty_16 {
4701    pub link_fd: __u32,
4702}
4703#[repr(C)]
4704#[derive(Debug, Default, Copy, Clone)]
4705pub struct bpf_attr__bindgen_ty_17 {
4706    pub type_: __u32,
4707}
4708#[repr(C)]
4709#[derive(Debug, Default, Copy, Clone)]
4710pub struct bpf_attr__bindgen_ty_18 {
4711    pub link_fd: __u32,
4712    pub flags: __u32,
4713}
4714#[repr(C)]
4715#[derive(Debug, Default, Copy, Clone)]
4716pub struct bpf_attr__bindgen_ty_19 {
4717    pub prog_fd: __u32,
4718    pub map_fd: __u32,
4719    pub flags: __u32,
4720}
4721#[repr(C)]
4722#[derive(Debug, Default, Copy, Clone)]
4723pub struct bpf_attr__bindgen_ty_20 {
4724    pub flags: __u32,
4725    pub bpffs_fd: __u32,
4726}
4727#[repr(C)]
4728#[derive(Debug, Default, Copy, Clone)]
4729pub struct bpf_attr__bindgen_ty_21 {
4730    pub stream_buf: __u64,
4731    pub stream_buf_len: __u32,
4732    pub stream_id: __u32,
4733    pub prog_fd: __u32,
4734    pub __bindgen_padding_0: [u8; 4usize],
4735}
4736impl Default for bpf_attr {
4737    fn default() -> Self {
4738        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4739        unsafe {
4740            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4741            s.assume_init()
4742        }
4743    }
4744}
4745pub const BPF_FUNC_unspec: bpf_func_id = 0;
4746pub const BPF_FUNC_map_lookup_elem: bpf_func_id = 1;
4747pub const BPF_FUNC_map_update_elem: bpf_func_id = 2;
4748pub const BPF_FUNC_map_delete_elem: bpf_func_id = 3;
4749pub const BPF_FUNC_probe_read: bpf_func_id = 4;
4750pub const BPF_FUNC_ktime_get_ns: bpf_func_id = 5;
4751pub const BPF_FUNC_trace_printk: bpf_func_id = 6;
4752pub const BPF_FUNC_get_prandom_u32: bpf_func_id = 7;
4753pub const BPF_FUNC_get_smp_processor_id: bpf_func_id = 8;
4754pub const BPF_FUNC_skb_store_bytes: bpf_func_id = 9;
4755pub const BPF_FUNC_l3_csum_replace: bpf_func_id = 10;
4756pub const BPF_FUNC_l4_csum_replace: bpf_func_id = 11;
4757pub const BPF_FUNC_tail_call: bpf_func_id = 12;
4758pub const BPF_FUNC_clone_redirect: bpf_func_id = 13;
4759pub const BPF_FUNC_get_current_pid_tgid: bpf_func_id = 14;
4760pub const BPF_FUNC_get_current_uid_gid: bpf_func_id = 15;
4761pub const BPF_FUNC_get_current_comm: bpf_func_id = 16;
4762pub const BPF_FUNC_get_cgroup_classid: bpf_func_id = 17;
4763pub const BPF_FUNC_skb_vlan_push: bpf_func_id = 18;
4764pub const BPF_FUNC_skb_vlan_pop: bpf_func_id = 19;
4765pub const BPF_FUNC_skb_get_tunnel_key: bpf_func_id = 20;
4766pub const BPF_FUNC_skb_set_tunnel_key: bpf_func_id = 21;
4767pub const BPF_FUNC_perf_event_read: bpf_func_id = 22;
4768pub const BPF_FUNC_redirect: bpf_func_id = 23;
4769pub const BPF_FUNC_get_route_realm: bpf_func_id = 24;
4770pub const BPF_FUNC_perf_event_output: bpf_func_id = 25;
4771pub const BPF_FUNC_skb_load_bytes: bpf_func_id = 26;
4772pub const BPF_FUNC_get_stackid: bpf_func_id = 27;
4773pub const BPF_FUNC_csum_diff: bpf_func_id = 28;
4774pub const BPF_FUNC_skb_get_tunnel_opt: bpf_func_id = 29;
4775pub const BPF_FUNC_skb_set_tunnel_opt: bpf_func_id = 30;
4776pub const BPF_FUNC_skb_change_proto: bpf_func_id = 31;
4777pub const BPF_FUNC_skb_change_type: bpf_func_id = 32;
4778pub const BPF_FUNC_skb_under_cgroup: bpf_func_id = 33;
4779pub const BPF_FUNC_get_hash_recalc: bpf_func_id = 34;
4780pub const BPF_FUNC_get_current_task: bpf_func_id = 35;
4781pub const BPF_FUNC_probe_write_user: bpf_func_id = 36;
4782pub const BPF_FUNC_current_task_under_cgroup: bpf_func_id = 37;
4783pub const BPF_FUNC_skb_change_tail: bpf_func_id = 38;
4784pub const BPF_FUNC_skb_pull_data: bpf_func_id = 39;
4785pub const BPF_FUNC_csum_update: bpf_func_id = 40;
4786pub const BPF_FUNC_set_hash_invalid: bpf_func_id = 41;
4787pub const BPF_FUNC_get_numa_node_id: bpf_func_id = 42;
4788pub const BPF_FUNC_skb_change_head: bpf_func_id = 43;
4789pub const BPF_FUNC_xdp_adjust_head: bpf_func_id = 44;
4790pub const BPF_FUNC_probe_read_str: bpf_func_id = 45;
4791pub const BPF_FUNC_get_socket_cookie: bpf_func_id = 46;
4792pub const BPF_FUNC_get_socket_uid: bpf_func_id = 47;
4793pub const BPF_FUNC_set_hash: bpf_func_id = 48;
4794pub const BPF_FUNC_setsockopt: bpf_func_id = 49;
4795pub const BPF_FUNC_skb_adjust_room: bpf_func_id = 50;
4796pub const BPF_FUNC_redirect_map: bpf_func_id = 51;
4797pub const BPF_FUNC_sk_redirect_map: bpf_func_id = 52;
4798pub const BPF_FUNC_sock_map_update: bpf_func_id = 53;
4799pub const BPF_FUNC_xdp_adjust_meta: bpf_func_id = 54;
4800pub const BPF_FUNC_perf_event_read_value: bpf_func_id = 55;
4801pub const BPF_FUNC_perf_prog_read_value: bpf_func_id = 56;
4802pub const BPF_FUNC_getsockopt: bpf_func_id = 57;
4803pub const BPF_FUNC_override_return: bpf_func_id = 58;
4804pub const BPF_FUNC_sock_ops_cb_flags_set: bpf_func_id = 59;
4805pub const BPF_FUNC_msg_redirect_map: bpf_func_id = 60;
4806pub const BPF_FUNC_msg_apply_bytes: bpf_func_id = 61;
4807pub const BPF_FUNC_msg_cork_bytes: bpf_func_id = 62;
4808pub const BPF_FUNC_msg_pull_data: bpf_func_id = 63;
4809pub const BPF_FUNC_bind: bpf_func_id = 64;
4810pub const BPF_FUNC_xdp_adjust_tail: bpf_func_id = 65;
4811pub const BPF_FUNC_skb_get_xfrm_state: bpf_func_id = 66;
4812pub const BPF_FUNC_get_stack: bpf_func_id = 67;
4813pub const BPF_FUNC_skb_load_bytes_relative: bpf_func_id = 68;
4814pub const BPF_FUNC_fib_lookup: bpf_func_id = 69;
4815pub const BPF_FUNC_sock_hash_update: bpf_func_id = 70;
4816pub const BPF_FUNC_msg_redirect_hash: bpf_func_id = 71;
4817pub const BPF_FUNC_sk_redirect_hash: bpf_func_id = 72;
4818pub const BPF_FUNC_lwt_push_encap: bpf_func_id = 73;
4819pub const BPF_FUNC_lwt_seg6_store_bytes: bpf_func_id = 74;
4820pub const BPF_FUNC_lwt_seg6_adjust_srh: bpf_func_id = 75;
4821pub const BPF_FUNC_lwt_seg6_action: bpf_func_id = 76;
4822pub const BPF_FUNC_rc_repeat: bpf_func_id = 77;
4823pub const BPF_FUNC_rc_keydown: bpf_func_id = 78;
4824pub const BPF_FUNC_skb_cgroup_id: bpf_func_id = 79;
4825pub const BPF_FUNC_get_current_cgroup_id: bpf_func_id = 80;
4826pub const BPF_FUNC_get_local_storage: bpf_func_id = 81;
4827pub const BPF_FUNC_sk_select_reuseport: bpf_func_id = 82;
4828pub const BPF_FUNC_skb_ancestor_cgroup_id: bpf_func_id = 83;
4829pub const BPF_FUNC_sk_lookup_tcp: bpf_func_id = 84;
4830pub const BPF_FUNC_sk_lookup_udp: bpf_func_id = 85;
4831pub const BPF_FUNC_sk_release: bpf_func_id = 86;
4832pub const BPF_FUNC_map_push_elem: bpf_func_id = 87;
4833pub const BPF_FUNC_map_pop_elem: bpf_func_id = 88;
4834pub const BPF_FUNC_map_peek_elem: bpf_func_id = 89;
4835pub const BPF_FUNC_msg_push_data: bpf_func_id = 90;
4836pub const BPF_FUNC_msg_pop_data: bpf_func_id = 91;
4837pub const BPF_FUNC_rc_pointer_rel: bpf_func_id = 92;
4838pub const BPF_FUNC_spin_lock: bpf_func_id = 93;
4839pub const BPF_FUNC_spin_unlock: bpf_func_id = 94;
4840pub const BPF_FUNC_sk_fullsock: bpf_func_id = 95;
4841pub const BPF_FUNC_tcp_sock: bpf_func_id = 96;
4842pub const BPF_FUNC_skb_ecn_set_ce: bpf_func_id = 97;
4843pub const BPF_FUNC_get_listener_sock: bpf_func_id = 98;
4844pub const BPF_FUNC_skc_lookup_tcp: bpf_func_id = 99;
4845pub const BPF_FUNC_tcp_check_syncookie: bpf_func_id = 100;
4846pub const BPF_FUNC_sysctl_get_name: bpf_func_id = 101;
4847pub const BPF_FUNC_sysctl_get_current_value: bpf_func_id = 102;
4848pub const BPF_FUNC_sysctl_get_new_value: bpf_func_id = 103;
4849pub const BPF_FUNC_sysctl_set_new_value: bpf_func_id = 104;
4850pub const BPF_FUNC_strtol: bpf_func_id = 105;
4851pub const BPF_FUNC_strtoul: bpf_func_id = 106;
4852pub const BPF_FUNC_sk_storage_get: bpf_func_id = 107;
4853pub const BPF_FUNC_sk_storage_delete: bpf_func_id = 108;
4854pub const BPF_FUNC_send_signal: bpf_func_id = 109;
4855pub const BPF_FUNC_tcp_gen_syncookie: bpf_func_id = 110;
4856pub const BPF_FUNC_skb_output: bpf_func_id = 111;
4857pub const BPF_FUNC_probe_read_user: bpf_func_id = 112;
4858pub const BPF_FUNC_probe_read_kernel: bpf_func_id = 113;
4859pub const BPF_FUNC_probe_read_user_str: bpf_func_id = 114;
4860pub const BPF_FUNC_probe_read_kernel_str: bpf_func_id = 115;
4861pub const BPF_FUNC_tcp_send_ack: bpf_func_id = 116;
4862pub const BPF_FUNC_send_signal_thread: bpf_func_id = 117;
4863pub const BPF_FUNC_jiffies64: bpf_func_id = 118;
4864pub const BPF_FUNC_read_branch_records: bpf_func_id = 119;
4865pub const BPF_FUNC_get_ns_current_pid_tgid: bpf_func_id = 120;
4866pub const BPF_FUNC_xdp_output: bpf_func_id = 121;
4867pub const BPF_FUNC_get_netns_cookie: bpf_func_id = 122;
4868pub const BPF_FUNC_get_current_ancestor_cgroup_id: bpf_func_id = 123;
4869pub const BPF_FUNC_sk_assign: bpf_func_id = 124;
4870pub const BPF_FUNC_ktime_get_boot_ns: bpf_func_id = 125;
4871pub const BPF_FUNC_seq_printf: bpf_func_id = 126;
4872pub const BPF_FUNC_seq_write: bpf_func_id = 127;
4873pub const BPF_FUNC_sk_cgroup_id: bpf_func_id = 128;
4874pub const BPF_FUNC_sk_ancestor_cgroup_id: bpf_func_id = 129;
4875pub const BPF_FUNC_ringbuf_output: bpf_func_id = 130;
4876pub const BPF_FUNC_ringbuf_reserve: bpf_func_id = 131;
4877pub const BPF_FUNC_ringbuf_submit: bpf_func_id = 132;
4878pub const BPF_FUNC_ringbuf_discard: bpf_func_id = 133;
4879pub const BPF_FUNC_ringbuf_query: bpf_func_id = 134;
4880pub const BPF_FUNC_csum_level: bpf_func_id = 135;
4881pub const BPF_FUNC_skc_to_tcp6_sock: bpf_func_id = 136;
4882pub const BPF_FUNC_skc_to_tcp_sock: bpf_func_id = 137;
4883pub const BPF_FUNC_skc_to_tcp_timewait_sock: bpf_func_id = 138;
4884pub const BPF_FUNC_skc_to_tcp_request_sock: bpf_func_id = 139;
4885pub const BPF_FUNC_skc_to_udp6_sock: bpf_func_id = 140;
4886pub const BPF_FUNC_get_task_stack: bpf_func_id = 141;
4887pub const BPF_FUNC_load_hdr_opt: bpf_func_id = 142;
4888pub const BPF_FUNC_store_hdr_opt: bpf_func_id = 143;
4889pub const BPF_FUNC_reserve_hdr_opt: bpf_func_id = 144;
4890pub const BPF_FUNC_inode_storage_get: bpf_func_id = 145;
4891pub const BPF_FUNC_inode_storage_delete: bpf_func_id = 146;
4892pub const BPF_FUNC_d_path: bpf_func_id = 147;
4893pub const BPF_FUNC_copy_from_user: bpf_func_id = 148;
4894pub const BPF_FUNC_snprintf_btf: bpf_func_id = 149;
4895pub const BPF_FUNC_seq_printf_btf: bpf_func_id = 150;
4896pub const BPF_FUNC_skb_cgroup_classid: bpf_func_id = 151;
4897pub const BPF_FUNC_redirect_neigh: bpf_func_id = 152;
4898pub const BPF_FUNC_per_cpu_ptr: bpf_func_id = 153;
4899pub const BPF_FUNC_this_cpu_ptr: bpf_func_id = 154;
4900pub const BPF_FUNC_redirect_peer: bpf_func_id = 155;
4901pub const BPF_FUNC_task_storage_get: bpf_func_id = 156;
4902pub const BPF_FUNC_task_storage_delete: bpf_func_id = 157;
4903pub const BPF_FUNC_get_current_task_btf: bpf_func_id = 158;
4904pub const BPF_FUNC_bprm_opts_set: bpf_func_id = 159;
4905pub const BPF_FUNC_ktime_get_coarse_ns: bpf_func_id = 160;
4906pub const BPF_FUNC_ima_inode_hash: bpf_func_id = 161;
4907pub const BPF_FUNC_sock_from_file: bpf_func_id = 162;
4908pub const BPF_FUNC_check_mtu: bpf_func_id = 163;
4909pub const BPF_FUNC_for_each_map_elem: bpf_func_id = 164;
4910pub const BPF_FUNC_snprintf: bpf_func_id = 165;
4911pub const BPF_FUNC_sys_bpf: bpf_func_id = 166;
4912pub const BPF_FUNC_btf_find_by_name_kind: bpf_func_id = 167;
4913pub const BPF_FUNC_sys_close: bpf_func_id = 168;
4914pub const BPF_FUNC_timer_init: bpf_func_id = 169;
4915pub const BPF_FUNC_timer_set_callback: bpf_func_id = 170;
4916pub const BPF_FUNC_timer_start: bpf_func_id = 171;
4917pub const BPF_FUNC_timer_cancel: bpf_func_id = 172;
4918pub const BPF_FUNC_get_func_ip: bpf_func_id = 173;
4919pub const BPF_FUNC_get_attach_cookie: bpf_func_id = 174;
4920pub const BPF_FUNC_task_pt_regs: bpf_func_id = 175;
4921pub const BPF_FUNC_get_branch_snapshot: bpf_func_id = 176;
4922pub const BPF_FUNC_trace_vprintk: bpf_func_id = 177;
4923pub const BPF_FUNC_skc_to_unix_sock: bpf_func_id = 178;
4924pub const BPF_FUNC_kallsyms_lookup_name: bpf_func_id = 179;
4925pub const BPF_FUNC_find_vma: bpf_func_id = 180;
4926pub const BPF_FUNC_loop: bpf_func_id = 181;
4927pub const BPF_FUNC_strncmp: bpf_func_id = 182;
4928pub const BPF_FUNC_get_func_arg: bpf_func_id = 183;
4929pub const BPF_FUNC_get_func_ret: bpf_func_id = 184;
4930pub const BPF_FUNC_get_func_arg_cnt: bpf_func_id = 185;
4931pub const BPF_FUNC_get_retval: bpf_func_id = 186;
4932pub const BPF_FUNC_set_retval: bpf_func_id = 187;
4933pub const BPF_FUNC_xdp_get_buff_len: bpf_func_id = 188;
4934pub const BPF_FUNC_xdp_load_bytes: bpf_func_id = 189;
4935pub const BPF_FUNC_xdp_store_bytes: bpf_func_id = 190;
4936pub const BPF_FUNC_copy_from_user_task: bpf_func_id = 191;
4937pub const BPF_FUNC_skb_set_tstamp: bpf_func_id = 192;
4938pub const BPF_FUNC_ima_file_hash: bpf_func_id = 193;
4939pub const BPF_FUNC_kptr_xchg: bpf_func_id = 194;
4940pub const BPF_FUNC_map_lookup_percpu_elem: bpf_func_id = 195;
4941pub const BPF_FUNC_skc_to_mptcp_sock: bpf_func_id = 196;
4942pub const BPF_FUNC_dynptr_from_mem: bpf_func_id = 197;
4943pub const BPF_FUNC_ringbuf_reserve_dynptr: bpf_func_id = 198;
4944pub const BPF_FUNC_ringbuf_submit_dynptr: bpf_func_id = 199;
4945pub const BPF_FUNC_ringbuf_discard_dynptr: bpf_func_id = 200;
4946pub const BPF_FUNC_dynptr_read: bpf_func_id = 201;
4947pub const BPF_FUNC_dynptr_write: bpf_func_id = 202;
4948pub const BPF_FUNC_dynptr_data: bpf_func_id = 203;
4949pub const BPF_FUNC_tcp_raw_gen_syncookie_ipv4: bpf_func_id = 204;
4950pub const BPF_FUNC_tcp_raw_gen_syncookie_ipv6: bpf_func_id = 205;
4951pub const BPF_FUNC_tcp_raw_check_syncookie_ipv4: bpf_func_id = 206;
4952pub const BPF_FUNC_tcp_raw_check_syncookie_ipv6: bpf_func_id = 207;
4953pub const BPF_FUNC_ktime_get_tai_ns: bpf_func_id = 208;
4954pub const BPF_FUNC_user_ringbuf_drain: bpf_func_id = 209;
4955pub const BPF_FUNC_cgrp_storage_get: bpf_func_id = 210;
4956pub const BPF_FUNC_cgrp_storage_delete: bpf_func_id = 211;
4957pub const __BPF_FUNC_MAX_ID: bpf_func_id = 212;
4958pub type bpf_func_id = ::std::os::raw::c_uint;
4959pub const BPF_F_RECOMPUTE_CSUM: _bindgen_ty_67 = 1;
4960pub const BPF_F_INVALIDATE_HASH: _bindgen_ty_67 = 2;
4961pub type _bindgen_ty_67 = ::std::os::raw::c_uint;
4962pub const BPF_F_HDR_FIELD_MASK: _bindgen_ty_68 = 15;
4963pub type _bindgen_ty_68 = ::std::os::raw::c_uint;
4964pub const BPF_F_PSEUDO_HDR: _bindgen_ty_69 = 16;
4965pub const BPF_F_MARK_MANGLED_0: _bindgen_ty_69 = 32;
4966pub const BPF_F_MARK_ENFORCE: _bindgen_ty_69 = 64;
4967pub const BPF_F_IPV6: _bindgen_ty_69 = 128;
4968pub type _bindgen_ty_69 = ::std::os::raw::c_uint;
4969pub const BPF_F_TUNINFO_IPV6: _bindgen_ty_70 = 1;
4970pub type _bindgen_ty_70 = ::std::os::raw::c_uint;
4971pub const BPF_F_SKIP_FIELD_MASK: _bindgen_ty_71 = 255;
4972pub const BPF_F_USER_STACK: _bindgen_ty_71 = 256;
4973pub const BPF_F_FAST_STACK_CMP: _bindgen_ty_71 = 512;
4974pub const BPF_F_REUSE_STACKID: _bindgen_ty_71 = 1024;
4975pub const BPF_F_USER_BUILD_ID: _bindgen_ty_71 = 2048;
4976pub type _bindgen_ty_71 = ::std::os::raw::c_uint;
4977pub const BPF_F_ZERO_CSUM_TX: _bindgen_ty_72 = 2;
4978pub const BPF_F_DONT_FRAGMENT: _bindgen_ty_72 = 4;
4979pub const BPF_F_SEQ_NUMBER: _bindgen_ty_72 = 8;
4980pub const BPF_F_NO_TUNNEL_KEY: _bindgen_ty_72 = 16;
4981pub type _bindgen_ty_72 = ::std::os::raw::c_uint;
4982pub const BPF_F_TUNINFO_FLAGS: _bindgen_ty_73 = 16;
4983pub type _bindgen_ty_73 = ::std::os::raw::c_uint;
4984pub const BPF_F_INDEX_MASK: _bindgen_ty_74 = 4294967295;
4985pub const BPF_F_CURRENT_CPU: _bindgen_ty_74 = 4294967295;
4986pub const BPF_F_CTXLEN_MASK: _bindgen_ty_74 = 4503595332403200;
4987pub type _bindgen_ty_74 = ::std::os::raw::c_ulong;
4988pub const BPF_F_CURRENT_NETNS: _bindgen_ty_75 = -1;
4989pub type _bindgen_ty_75 = ::std::os::raw::c_int;
4990pub const BPF_CSUM_LEVEL_QUERY: _bindgen_ty_76 = 0;
4991pub const BPF_CSUM_LEVEL_INC: _bindgen_ty_76 = 1;
4992pub const BPF_CSUM_LEVEL_DEC: _bindgen_ty_76 = 2;
4993pub const BPF_CSUM_LEVEL_RESET: _bindgen_ty_76 = 3;
4994pub type _bindgen_ty_76 = ::std::os::raw::c_uint;
4995pub const BPF_F_ADJ_ROOM_FIXED_GSO: _bindgen_ty_77 = 1;
4996pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: _bindgen_ty_77 = 2;
4997pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: _bindgen_ty_77 = 4;
4998pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: _bindgen_ty_77 = 8;
4999pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: _bindgen_ty_77 = 16;
5000pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: _bindgen_ty_77 = 32;
5001pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: _bindgen_ty_77 = 64;
5002pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV4: _bindgen_ty_77 = 128;
5003pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV6: _bindgen_ty_77 = 256;
5004pub type _bindgen_ty_77 = ::std::os::raw::c_uint;
5005pub const BPF_ADJ_ROOM_ENCAP_L2_MASK: _bindgen_ty_78 = 255;
5006pub const BPF_ADJ_ROOM_ENCAP_L2_SHIFT: _bindgen_ty_78 = 56;
5007pub type _bindgen_ty_78 = ::std::os::raw::c_uint;
5008pub const BPF_F_SYSCTL_BASE_NAME: _bindgen_ty_79 = 1;
5009pub type _bindgen_ty_79 = ::std::os::raw::c_uint;
5010pub const BPF_LOCAL_STORAGE_GET_F_CREATE: _bindgen_ty_80 = 1;
5011pub const BPF_SK_STORAGE_GET_F_CREATE: _bindgen_ty_80 = 1;
5012pub type _bindgen_ty_80 = ::std::os::raw::c_uint;
5013pub const BPF_F_GET_BRANCH_RECORDS_SIZE: _bindgen_ty_81 = 1;
5014pub type _bindgen_ty_81 = ::std::os::raw::c_uint;
5015pub const BPF_RB_NO_WAKEUP: _bindgen_ty_82 = 1;
5016pub const BPF_RB_FORCE_WAKEUP: _bindgen_ty_82 = 2;
5017pub type _bindgen_ty_82 = ::std::os::raw::c_uint;
5018pub const BPF_RB_AVAIL_DATA: _bindgen_ty_83 = 0;
5019pub const BPF_RB_RING_SIZE: _bindgen_ty_83 = 1;
5020pub const BPF_RB_CONS_POS: _bindgen_ty_83 = 2;
5021pub const BPF_RB_PROD_POS: _bindgen_ty_83 = 3;
5022pub type _bindgen_ty_83 = ::std::os::raw::c_uint;
5023pub const BPF_RINGBUF_BUSY_BIT: _bindgen_ty_84 = 2147483648;
5024pub const BPF_RINGBUF_DISCARD_BIT: _bindgen_ty_84 = 1073741824;
5025pub const BPF_RINGBUF_HDR_SZ: _bindgen_ty_84 = 8;
5026pub type _bindgen_ty_84 = ::std::os::raw::c_uint;
5027pub const BPF_SK_LOOKUP_F_REPLACE: _bindgen_ty_85 = 1;
5028pub const BPF_SK_LOOKUP_F_NO_REUSEPORT: _bindgen_ty_85 = 2;
5029pub type _bindgen_ty_85 = ::std::os::raw::c_uint;
5030pub const BPF_ADJ_ROOM_NET: bpf_adj_room_mode = 0;
5031pub const BPF_ADJ_ROOM_MAC: bpf_adj_room_mode = 1;
5032pub type bpf_adj_room_mode = ::std::os::raw::c_uint;
5033pub const BPF_HDR_START_MAC: bpf_hdr_start_off = 0;
5034pub const BPF_HDR_START_NET: bpf_hdr_start_off = 1;
5035pub type bpf_hdr_start_off = ::std::os::raw::c_uint;
5036pub const BPF_LWT_ENCAP_SEG6: bpf_lwt_encap_mode = 0;
5037pub const BPF_LWT_ENCAP_SEG6_INLINE: bpf_lwt_encap_mode = 1;
5038pub const BPF_LWT_ENCAP_IP: bpf_lwt_encap_mode = 2;
5039pub type bpf_lwt_encap_mode = ::std::os::raw::c_uint;
5040pub const BPF_F_BPRM_SECUREEXEC: _bindgen_ty_86 = 1;
5041pub type _bindgen_ty_86 = ::std::os::raw::c_uint;
5042pub const BPF_F_INGRESS: _bindgen_ty_87 = 1;
5043pub const BPF_F_BROADCAST: _bindgen_ty_87 = 8;
5044pub const BPF_F_EXCLUDE_INGRESS: _bindgen_ty_87 = 16;
5045pub type _bindgen_ty_87 = ::std::os::raw::c_uint;
5046pub const BPF_SKB_TSTAMP_UNSPEC: _bindgen_ty_88 = 0;
5047pub const BPF_SKB_TSTAMP_DELIVERY_MONO: _bindgen_ty_88 = 1;
5048pub const BPF_SKB_CLOCK_REALTIME: _bindgen_ty_88 = 0;
5049pub const BPF_SKB_CLOCK_MONOTONIC: _bindgen_ty_88 = 1;
5050pub const BPF_SKB_CLOCK_TAI: _bindgen_ty_88 = 2;
5051pub type _bindgen_ty_88 = ::std::os::raw::c_uint;
5052#[repr(C)]
5053#[derive(Copy, Clone)]
5054pub struct bpf_tunnel_key {
5055    pub tunnel_id: __u32,
5056    pub __bindgen_anon_1: bpf_tunnel_key__bindgen_ty_1,
5057    pub tunnel_tos: __u8,
5058    pub tunnel_ttl: __u8,
5059    pub __bindgen_anon_2: bpf_tunnel_key__bindgen_ty_2,
5060    pub tunnel_label: __u32,
5061    pub __bindgen_anon_3: bpf_tunnel_key__bindgen_ty_3,
5062}
5063#[repr(C)]
5064#[derive(Copy, Clone)]
5065pub union bpf_tunnel_key__bindgen_ty_1 {
5066    pub remote_ipv4: __u32,
5067    pub remote_ipv6: [__u32; 4usize],
5068}
5069impl Default for bpf_tunnel_key__bindgen_ty_1 {
5070    fn default() -> Self {
5071        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5072        unsafe {
5073            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5074            s.assume_init()
5075        }
5076    }
5077}
5078#[repr(C)]
5079#[derive(Copy, Clone)]
5080pub union bpf_tunnel_key__bindgen_ty_2 {
5081    pub tunnel_ext: __u16,
5082    pub tunnel_flags: __be16,
5083}
5084impl Default for bpf_tunnel_key__bindgen_ty_2 {
5085    fn default() -> Self {
5086        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5087        unsafe {
5088            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5089            s.assume_init()
5090        }
5091    }
5092}
5093#[repr(C)]
5094#[derive(Copy, Clone)]
5095pub union bpf_tunnel_key__bindgen_ty_3 {
5096    pub local_ipv4: __u32,
5097    pub local_ipv6: [__u32; 4usize],
5098}
5099impl Default for bpf_tunnel_key__bindgen_ty_3 {
5100    fn default() -> Self {
5101        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5102        unsafe {
5103            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5104            s.assume_init()
5105        }
5106    }
5107}
5108impl Default for bpf_tunnel_key {
5109    fn default() -> Self {
5110        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5111        unsafe {
5112            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5113            s.assume_init()
5114        }
5115    }
5116}
5117#[repr(C)]
5118#[derive(Copy, Clone)]
5119pub struct bpf_xfrm_state {
5120    pub reqid: __u32,
5121    pub spi: __u32,
5122    pub family: __u16,
5123    pub ext: __u16,
5124    pub __bindgen_anon_1: bpf_xfrm_state__bindgen_ty_1,
5125}
5126#[repr(C)]
5127#[derive(Copy, Clone)]
5128pub union bpf_xfrm_state__bindgen_ty_1 {
5129    pub remote_ipv4: __u32,
5130    pub remote_ipv6: [__u32; 4usize],
5131}
5132impl Default for bpf_xfrm_state__bindgen_ty_1 {
5133    fn default() -> Self {
5134        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5135        unsafe {
5136            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5137            s.assume_init()
5138        }
5139    }
5140}
5141impl Default for bpf_xfrm_state {
5142    fn default() -> Self {
5143        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5144        unsafe {
5145            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5146            s.assume_init()
5147        }
5148    }
5149}
5150pub const BPF_OK: bpf_ret_code = 0;
5151pub const BPF_DROP: bpf_ret_code = 2;
5152pub const BPF_REDIRECT: bpf_ret_code = 7;
5153pub const BPF_LWT_REROUTE: bpf_ret_code = 128;
5154pub const BPF_FLOW_DISSECTOR_CONTINUE: bpf_ret_code = 129;
5155pub type bpf_ret_code = ::std::os::raw::c_uint;
5156#[repr(C)]
5157#[derive(Debug, Default, Copy, Clone)]
5158pub struct bpf_sock {
5159    pub bound_dev_if: __u32,
5160    pub family: __u32,
5161    pub type_: __u32,
5162    pub protocol: __u32,
5163    pub mark: __u32,
5164    pub priority: __u32,
5165    pub src_ip4: __u32,
5166    pub src_ip6: [__u32; 4usize],
5167    pub src_port: __u32,
5168    pub dst_port: __be16,
5169    pub _bitfield_align_1: [u8; 0],
5170    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
5171    pub dst_ip4: __u32,
5172    pub dst_ip6: [__u32; 4usize],
5173    pub state: __u32,
5174    pub rx_queue_mapping: __s32,
5175}
5176impl bpf_sock {
5177    #[inline]
5178    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 2usize]> {
5179        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
5180        __bindgen_bitfield_unit
5181    }
5182}
5183#[repr(C)]
5184#[derive(Debug, Default, Copy, Clone)]
5185pub struct bpf_tcp_sock {
5186    pub snd_cwnd: __u32,
5187    pub srtt_us: __u32,
5188    pub rtt_min: __u32,
5189    pub snd_ssthresh: __u32,
5190    pub rcv_nxt: __u32,
5191    pub snd_nxt: __u32,
5192    pub snd_una: __u32,
5193    pub mss_cache: __u32,
5194    pub ecn_flags: __u32,
5195    pub rate_delivered: __u32,
5196    pub rate_interval_us: __u32,
5197    pub packets_out: __u32,
5198    pub retrans_out: __u32,
5199    pub total_retrans: __u32,
5200    pub segs_in: __u32,
5201    pub data_segs_in: __u32,
5202    pub segs_out: __u32,
5203    pub data_segs_out: __u32,
5204    pub lost_out: __u32,
5205    pub sacked_out: __u32,
5206    pub bytes_received: __u64,
5207    pub bytes_acked: __u64,
5208    pub dsack_dups: __u32,
5209    pub delivered: __u32,
5210    pub delivered_ce: __u32,
5211    pub icsk_retransmits: __u32,
5212}
5213#[repr(C)]
5214#[derive(Copy, Clone)]
5215pub struct bpf_sock_tuple {
5216    pub __bindgen_anon_1: bpf_sock_tuple__bindgen_ty_1,
5217}
5218#[repr(C)]
5219#[derive(Copy, Clone)]
5220pub union bpf_sock_tuple__bindgen_ty_1 {
5221    pub ipv4: bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1,
5222    pub ipv6: bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2,
5223}
5224#[repr(C)]
5225#[derive(Debug, Default, Copy, Clone)]
5226pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1 {
5227    pub saddr: __be32,
5228    pub daddr: __be32,
5229    pub sport: __be16,
5230    pub dport: __be16,
5231}
5232#[repr(C)]
5233#[derive(Debug, Default, Copy, Clone)]
5234pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2 {
5235    pub saddr: [__be32; 4usize],
5236    pub daddr: [__be32; 4usize],
5237    pub sport: __be16,
5238    pub dport: __be16,
5239}
5240impl Default for bpf_sock_tuple__bindgen_ty_1 {
5241    fn default() -> Self {
5242        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5243        unsafe {
5244            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5245            s.assume_init()
5246        }
5247    }
5248}
5249impl Default for bpf_sock_tuple {
5250    fn default() -> Self {
5251        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5252        unsafe {
5253            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5254            s.assume_init()
5255        }
5256    }
5257}
5258#[repr(C)]
5259#[derive(Debug, Default, Copy, Clone)]
5260pub struct bpf_xdp_sock {
5261    pub queue_id: __u32,
5262}
5263pub const XDP_ABORTED: xdp_action = 0;
5264pub const XDP_DROP: xdp_action = 1;
5265pub const XDP_PASS: xdp_action = 2;
5266pub const XDP_TX: xdp_action = 3;
5267pub const XDP_REDIRECT: xdp_action = 4;
5268pub type xdp_action = ::std::os::raw::c_uint;
5269#[repr(C)]
5270#[derive(Debug, Default, Copy, Clone)]
5271pub struct xdp_md {
5272    pub data: __u32,
5273    pub data_end: __u32,
5274    pub data_meta: __u32,
5275    pub ingress_ifindex: __u32,
5276    pub rx_queue_index: __u32,
5277    pub egress_ifindex: __u32,
5278}
5279#[repr(C)]
5280#[derive(Copy, Clone)]
5281pub struct bpf_devmap_val {
5282    pub ifindex: __u32,
5283    pub bpf_prog: bpf_devmap_val__bindgen_ty_1,
5284}
5285#[repr(C)]
5286#[derive(Copy, Clone)]
5287pub union bpf_devmap_val__bindgen_ty_1 {
5288    pub fd: ::std::os::raw::c_int,
5289    pub id: __u32,
5290}
5291impl Default for bpf_devmap_val__bindgen_ty_1 {
5292    fn default() -> Self {
5293        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5294        unsafe {
5295            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5296            s.assume_init()
5297        }
5298    }
5299}
5300impl Default for bpf_devmap_val {
5301    fn default() -> Self {
5302        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5303        unsafe {
5304            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5305            s.assume_init()
5306        }
5307    }
5308}
5309#[repr(C)]
5310#[derive(Copy, Clone)]
5311pub struct bpf_cpumap_val {
5312    pub qsize: __u32,
5313    pub bpf_prog: bpf_cpumap_val__bindgen_ty_1,
5314}
5315#[repr(C)]
5316#[derive(Copy, Clone)]
5317pub union bpf_cpumap_val__bindgen_ty_1 {
5318    pub fd: ::std::os::raw::c_int,
5319    pub id: __u32,
5320}
5321impl Default for bpf_cpumap_val__bindgen_ty_1 {
5322    fn default() -> Self {
5323        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5324        unsafe {
5325            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5326            s.assume_init()
5327        }
5328    }
5329}
5330impl Default for bpf_cpumap_val {
5331    fn default() -> Self {
5332        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5333        unsafe {
5334            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5335            s.assume_init()
5336        }
5337    }
5338}
5339#[repr(C)]
5340#[derive(Debug, Default, Copy, Clone)]
5341pub struct bpf_prog_info {
5342    pub type_: __u32,
5343    pub id: __u32,
5344    pub tag: [__u8; 8usize],
5345    pub jited_prog_len: __u32,
5346    pub xlated_prog_len: __u32,
5347    pub jited_prog_insns: __u64,
5348    pub xlated_prog_insns: __u64,
5349    pub load_time: __u64,
5350    pub created_by_uid: __u32,
5351    pub nr_map_ids: __u32,
5352    pub map_ids: __u64,
5353    pub name: [::std::os::raw::c_char; 16usize],
5354    pub ifindex: __u32,
5355    pub _bitfield_align_1: [u8; 0],
5356    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
5357    pub netns_dev: __u64,
5358    pub netns_ino: __u64,
5359    pub nr_jited_ksyms: __u32,
5360    pub nr_jited_func_lens: __u32,
5361    pub jited_ksyms: __u64,
5362    pub jited_func_lens: __u64,
5363    pub btf_id: __u32,
5364    pub func_info_rec_size: __u32,
5365    pub func_info: __u64,
5366    pub nr_func_info: __u32,
5367    pub nr_line_info: __u32,
5368    pub line_info: __u64,
5369    pub jited_line_info: __u64,
5370    pub nr_jited_line_info: __u32,
5371    pub line_info_rec_size: __u32,
5372    pub jited_line_info_rec_size: __u32,
5373    pub nr_prog_tags: __u32,
5374    pub prog_tags: __u64,
5375    pub run_time_ns: __u64,
5376    pub run_cnt: __u64,
5377    pub recursion_misses: __u64,
5378    pub verified_insns: __u32,
5379    pub attach_btf_obj_id: __u32,
5380    pub attach_btf_id: __u32,
5381    pub __bindgen_padding_0: [u8; 4usize],
5382}
5383impl bpf_prog_info {
5384    #[inline]
5385    pub fn gpl_compatible(&self) -> __u32 {
5386        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
5387    }
5388    #[inline]
5389    pub fn set_gpl_compatible(&mut self, val: __u32) {
5390        unsafe {
5391            let val: u32 = ::std::mem::transmute(val);
5392            self._bitfield_1.set(0usize, 1u8, val as u64)
5393        }
5394    }
5395    #[inline]
5396    pub unsafe fn gpl_compatible_raw(this: *const Self) -> __u32 {
5397        unsafe {
5398            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
5399                ::std::ptr::addr_of!((*this)._bitfield_1),
5400                0usize,
5401                1u8,
5402            ) as u32)
5403        }
5404    }
5405    #[inline]
5406    pub unsafe fn set_gpl_compatible_raw(this: *mut Self, val: __u32) {
5407        unsafe {
5408            let val: u32 = ::std::mem::transmute(val);
5409            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
5410                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
5411                0usize,
5412                1u8,
5413                val as u64,
5414            )
5415        }
5416    }
5417    #[inline]
5418    pub fn new_bitfield_1(gpl_compatible: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
5419        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
5420        __bindgen_bitfield_unit.set(0usize, 1u8, {
5421            let gpl_compatible: u32 = unsafe { ::std::mem::transmute(gpl_compatible) };
5422            gpl_compatible as u64
5423        });
5424        __bindgen_bitfield_unit
5425    }
5426}
5427#[repr(C)]
5428#[derive(Debug, Default, Copy, Clone)]
5429pub struct bpf_map_info {
5430    pub type_: __u32,
5431    pub id: __u32,
5432    pub key_size: __u32,
5433    pub value_size: __u32,
5434    pub max_entries: __u32,
5435    pub map_flags: __u32,
5436    pub name: [::std::os::raw::c_char; 16usize],
5437    pub ifindex: __u32,
5438    pub btf_vmlinux_value_type_id: __u32,
5439    pub netns_dev: __u64,
5440    pub netns_ino: __u64,
5441    pub btf_id: __u32,
5442    pub btf_key_type_id: __u32,
5443    pub btf_value_type_id: __u32,
5444    pub btf_vmlinux_id: __u32,
5445    pub map_extra: __u64,
5446}
5447#[repr(C)]
5448#[derive(Debug, Default, Copy, Clone)]
5449pub struct bpf_btf_info {
5450    pub btf: __u64,
5451    pub btf_size: __u32,
5452    pub id: __u32,
5453    pub name: __u64,
5454    pub name_len: __u32,
5455    pub kernel_btf: __u32,
5456}
5457#[repr(C)]
5458#[derive(Copy, Clone)]
5459pub struct bpf_link_info {
5460    pub type_: __u32,
5461    pub id: __u32,
5462    pub prog_id: __u32,
5463    pub __bindgen_padding_0: [u8; 4usize],
5464    pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1,
5465}
5466#[repr(C)]
5467#[derive(Copy, Clone)]
5468pub union bpf_link_info__bindgen_ty_1 {
5469    pub raw_tracepoint: bpf_link_info__bindgen_ty_1__bindgen_ty_1,
5470    pub tracing: bpf_link_info__bindgen_ty_1__bindgen_ty_2,
5471    pub cgroup: bpf_link_info__bindgen_ty_1__bindgen_ty_3,
5472    pub iter: bpf_link_info__bindgen_ty_1__bindgen_ty_4,
5473    pub netns: bpf_link_info__bindgen_ty_1__bindgen_ty_5,
5474    pub xdp: bpf_link_info__bindgen_ty_1__bindgen_ty_6,
5475    pub struct_ops: bpf_link_info__bindgen_ty_1__bindgen_ty_7,
5476    pub netfilter: bpf_link_info__bindgen_ty_1__bindgen_ty_8,
5477    pub kprobe_multi: bpf_link_info__bindgen_ty_1__bindgen_ty_9,
5478    pub uprobe_multi: bpf_link_info__bindgen_ty_1__bindgen_ty_10,
5479    pub perf_event: bpf_link_info__bindgen_ty_1__bindgen_ty_11,
5480    pub tcx: bpf_link_info__bindgen_ty_1__bindgen_ty_12,
5481    pub netkit: bpf_link_info__bindgen_ty_1__bindgen_ty_13,
5482    pub sockmap: bpf_link_info__bindgen_ty_1__bindgen_ty_14,
5483}
5484#[repr(C)]
5485#[derive(Debug, Default, Copy, Clone)]
5486pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_1 {
5487    pub tp_name: __u64,
5488    pub tp_name_len: __u32,
5489    pub _bitfield_align_1: [u8; 0],
5490    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
5491    pub cookie: __u64,
5492}
5493impl bpf_link_info__bindgen_ty_1__bindgen_ty_1 {
5494    #[inline]
5495    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
5496        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
5497        __bindgen_bitfield_unit
5498    }
5499}
5500#[repr(C)]
5501#[derive(Debug, Default, Copy, Clone)]
5502pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_2 {
5503    pub attach_type: __u32,
5504    pub target_obj_id: __u32,
5505    pub target_btf_id: __u32,
5506    pub _bitfield_align_1: [u8; 0],
5507    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
5508    pub cookie: __u64,
5509}
5510impl bpf_link_info__bindgen_ty_1__bindgen_ty_2 {
5511    #[inline]
5512    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
5513        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
5514        __bindgen_bitfield_unit
5515    }
5516}
5517#[repr(C)]
5518#[derive(Debug, Default, Copy, Clone)]
5519pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_3 {
5520    pub cgroup_id: __u64,
5521    pub attach_type: __u32,
5522    pub __bindgen_padding_0: [u8; 4usize],
5523}
5524#[repr(C)]
5525#[derive(Copy, Clone)]
5526pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4 {
5527    pub target_name: __u64,
5528    pub target_name_len: __u32,
5529    pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1,
5530    pub __bindgen_anon_2: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2,
5531}
5532#[repr(C)]
5533#[derive(Copy, Clone)]
5534pub union bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1 {
5535    pub map: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1,
5536}
5537#[repr(C)]
5538#[derive(Debug, Default, Copy, Clone)]
5539pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1 {
5540    pub map_id: __u32,
5541}
5542impl Default for bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1 {
5543    fn default() -> Self {
5544        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5545        unsafe {
5546            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5547            s.assume_init()
5548        }
5549    }
5550}
5551#[repr(C)]
5552#[derive(Copy, Clone)]
5553pub union bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2 {
5554    pub cgroup: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_1,
5555    pub task: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_2,
5556}
5557#[repr(C)]
5558#[derive(Debug, Default, Copy, Clone)]
5559pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_1 {
5560    pub cgroup_id: __u64,
5561    pub order: __u32,
5562    pub __bindgen_padding_0: [u8; 4usize],
5563}
5564#[repr(C)]
5565#[derive(Debug, Default, Copy, Clone)]
5566pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_2 {
5567    pub tid: __u32,
5568    pub pid: __u32,
5569}
5570impl Default for bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2 {
5571    fn default() -> Self {
5572        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5573        unsafe {
5574            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5575            s.assume_init()
5576        }
5577    }
5578}
5579impl Default for bpf_link_info__bindgen_ty_1__bindgen_ty_4 {
5580    fn default() -> Self {
5581        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5582        unsafe {
5583            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5584            s.assume_init()
5585        }
5586    }
5587}
5588#[repr(C)]
5589#[derive(Debug, Default, Copy, Clone)]
5590pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_5 {
5591    pub netns_ino: __u32,
5592    pub attach_type: __u32,
5593}
5594#[repr(C)]
5595#[derive(Debug, Default, Copy, Clone)]
5596pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_6 {
5597    pub ifindex: __u32,
5598}
5599#[repr(C)]
5600#[derive(Debug, Default, Copy, Clone)]
5601pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_7 {
5602    pub map_id: __u32,
5603}
5604#[repr(C)]
5605#[derive(Debug, Default, Copy, Clone)]
5606pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_8 {
5607    pub pf: __u32,
5608    pub hooknum: __u32,
5609    pub priority: __s32,
5610    pub flags: __u32,
5611}
5612#[repr(C)]
5613#[derive(Debug, Default, Copy, Clone)]
5614pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_9 {
5615    pub addrs: __u64,
5616    pub count: __u32,
5617    pub flags: __u32,
5618    pub missed: __u64,
5619    pub cookies: __u64,
5620}
5621#[repr(C)]
5622#[derive(Debug, Default, Copy, Clone)]
5623pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_10 {
5624    pub path: __u64,
5625    pub offsets: __u64,
5626    pub ref_ctr_offsets: __u64,
5627    pub cookies: __u64,
5628    pub path_size: __u32,
5629    pub count: __u32,
5630    pub flags: __u32,
5631    pub pid: __u32,
5632}
5633#[repr(C)]
5634#[derive(Copy, Clone)]
5635pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11 {
5636    pub type_: __u32,
5637    pub _bitfield_align_1: [u8; 0],
5638    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
5639    pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1,
5640}
5641#[repr(C)]
5642#[derive(Copy, Clone)]
5643pub union bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1 {
5644    pub uprobe: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_1,
5645    pub kprobe: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_2,
5646    pub tracepoint: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3,
5647    pub event: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4,
5648}
5649#[repr(C)]
5650#[derive(Debug, Default, Copy, Clone)]
5651pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_1 {
5652    pub file_name: __u64,
5653    pub name_len: __u32,
5654    pub offset: __u32,
5655    pub cookie: __u64,
5656    pub ref_ctr_offset: __u64,
5657}
5658#[repr(C)]
5659#[derive(Debug, Default, Copy, Clone)]
5660pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_2 {
5661    pub func_name: __u64,
5662    pub name_len: __u32,
5663    pub offset: __u32,
5664    pub addr: __u64,
5665    pub missed: __u64,
5666    pub cookie: __u64,
5667}
5668#[repr(C)]
5669#[derive(Debug, Default, Copy, Clone)]
5670pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3 {
5671    pub tp_name: __u64,
5672    pub name_len: __u32,
5673    pub _bitfield_align_1: [u8; 0],
5674    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
5675    pub cookie: __u64,
5676}
5677impl bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3 {
5678    #[inline]
5679    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
5680        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
5681        __bindgen_bitfield_unit
5682    }
5683}
5684#[repr(C)]
5685#[derive(Debug, Default, Copy, Clone)]
5686pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4 {
5687    pub config: __u64,
5688    pub type_: __u32,
5689    pub _bitfield_align_1: [u8; 0],
5690    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
5691    pub cookie: __u64,
5692}
5693impl bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4 {
5694    #[inline]
5695    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
5696        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
5697        __bindgen_bitfield_unit
5698    }
5699}
5700impl Default for bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1 {
5701    fn default() -> Self {
5702        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5703        unsafe {
5704            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5705            s.assume_init()
5706        }
5707    }
5708}
5709impl Default for bpf_link_info__bindgen_ty_1__bindgen_ty_11 {
5710    fn default() -> Self {
5711        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5712        unsafe {
5713            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5714            s.assume_init()
5715        }
5716    }
5717}
5718impl bpf_link_info__bindgen_ty_1__bindgen_ty_11 {
5719    #[inline]
5720    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
5721        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
5722        __bindgen_bitfield_unit
5723    }
5724}
5725#[repr(C)]
5726#[derive(Debug, Default, Copy, Clone)]
5727pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_12 {
5728    pub ifindex: __u32,
5729    pub attach_type: __u32,
5730}
5731#[repr(C)]
5732#[derive(Debug, Default, Copy, Clone)]
5733pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_13 {
5734    pub ifindex: __u32,
5735    pub attach_type: __u32,
5736}
5737#[repr(C)]
5738#[derive(Debug, Default, Copy, Clone)]
5739pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_14 {
5740    pub map_id: __u32,
5741    pub attach_type: __u32,
5742}
5743impl Default for bpf_link_info__bindgen_ty_1 {
5744    fn default() -> Self {
5745        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5746        unsafe {
5747            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5748            s.assume_init()
5749        }
5750    }
5751}
5752impl Default for bpf_link_info {
5753    fn default() -> Self {
5754        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5755        unsafe {
5756            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5757            s.assume_init()
5758        }
5759    }
5760}
5761#[repr(C)]
5762#[derive(Copy, Clone)]
5763pub struct bpf_sock_addr {
5764    pub user_family: __u32,
5765    pub user_ip4: __u32,
5766    pub user_ip6: [__u32; 4usize],
5767    pub user_port: __u32,
5768    pub family: __u32,
5769    pub type_: __u32,
5770    pub protocol: __u32,
5771    pub msg_src_ip4: __u32,
5772    pub msg_src_ip6: [__u32; 4usize],
5773    pub __bindgen_padding_0: [u8; 4usize],
5774    pub __bindgen_anon_1: bpf_sock_addr__bindgen_ty_1,
5775}
5776#[repr(C)]
5777#[derive(Copy, Clone)]
5778pub union bpf_sock_addr__bindgen_ty_1 {
5779    pub sk: *mut bpf_sock,
5780    pub _bitfield_align_1: [u8; 0],
5781    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
5782}
5783impl Default for bpf_sock_addr__bindgen_ty_1 {
5784    fn default() -> Self {
5785        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5786        unsafe {
5787            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5788            s.assume_init()
5789        }
5790    }
5791}
5792impl bpf_sock_addr__bindgen_ty_1 {
5793    #[inline]
5794    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
5795        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
5796        __bindgen_bitfield_unit
5797    }
5798}
5799impl Default for bpf_sock_addr {
5800    fn default() -> Self {
5801        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5802        unsafe {
5803            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5804            s.assume_init()
5805        }
5806    }
5807}
5808#[repr(C)]
5809#[derive(Copy, Clone)]
5810pub struct bpf_sock_ops {
5811    pub op: __u32,
5812    pub __bindgen_anon_1: bpf_sock_ops__bindgen_ty_1,
5813    pub family: __u32,
5814    pub remote_ip4: __u32,
5815    pub local_ip4: __u32,
5816    pub remote_ip6: [__u32; 4usize],
5817    pub local_ip6: [__u32; 4usize],
5818    pub remote_port: __u32,
5819    pub local_port: __u32,
5820    pub is_fullsock: __u32,
5821    pub snd_cwnd: __u32,
5822    pub srtt_us: __u32,
5823    pub bpf_sock_ops_cb_flags: __u32,
5824    pub state: __u32,
5825    pub rtt_min: __u32,
5826    pub snd_ssthresh: __u32,
5827    pub rcv_nxt: __u32,
5828    pub snd_nxt: __u32,
5829    pub snd_una: __u32,
5830    pub mss_cache: __u32,
5831    pub ecn_flags: __u32,
5832    pub rate_delivered: __u32,
5833    pub rate_interval_us: __u32,
5834    pub packets_out: __u32,
5835    pub retrans_out: __u32,
5836    pub total_retrans: __u32,
5837    pub segs_in: __u32,
5838    pub data_segs_in: __u32,
5839    pub segs_out: __u32,
5840    pub data_segs_out: __u32,
5841    pub lost_out: __u32,
5842    pub sacked_out: __u32,
5843    pub sk_txhash: __u32,
5844    pub bytes_received: __u64,
5845    pub bytes_acked: __u64,
5846    pub __bindgen_anon_2: bpf_sock_ops__bindgen_ty_2,
5847    pub __bindgen_anon_3: bpf_sock_ops__bindgen_ty_3,
5848    pub __bindgen_anon_4: bpf_sock_ops__bindgen_ty_4,
5849    pub skb_len: __u32,
5850    pub skb_tcp_flags: __u32,
5851    pub skb_hwtstamp: __u64,
5852}
5853#[repr(C)]
5854#[derive(Copy, Clone)]
5855pub union bpf_sock_ops__bindgen_ty_1 {
5856    pub args: [__u32; 4usize],
5857    pub reply: __u32,
5858    pub replylong: [__u32; 4usize],
5859}
5860impl Default for bpf_sock_ops__bindgen_ty_1 {
5861    fn default() -> Self {
5862        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5863        unsafe {
5864            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5865            s.assume_init()
5866        }
5867    }
5868}
5869#[repr(C)]
5870#[derive(Copy, Clone)]
5871pub union bpf_sock_ops__bindgen_ty_2 {
5872    pub sk: *mut bpf_sock,
5873    pub _bitfield_align_1: [u8; 0],
5874    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
5875}
5876impl Default for bpf_sock_ops__bindgen_ty_2 {
5877    fn default() -> Self {
5878        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5879        unsafe {
5880            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5881            s.assume_init()
5882        }
5883    }
5884}
5885impl bpf_sock_ops__bindgen_ty_2 {
5886    #[inline]
5887    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
5888        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
5889        __bindgen_bitfield_unit
5890    }
5891}
5892#[repr(C)]
5893#[derive(Copy, Clone)]
5894pub union bpf_sock_ops__bindgen_ty_3 {
5895    pub skb_data: *mut ::std::os::raw::c_void,
5896    pub _bitfield_align_1: [u8; 0],
5897    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
5898}
5899impl Default for bpf_sock_ops__bindgen_ty_3 {
5900    fn default() -> Self {
5901        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5902        unsafe {
5903            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5904            s.assume_init()
5905        }
5906    }
5907}
5908impl bpf_sock_ops__bindgen_ty_3 {
5909    #[inline]
5910    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
5911        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
5912        __bindgen_bitfield_unit
5913    }
5914}
5915#[repr(C)]
5916#[derive(Copy, Clone)]
5917pub union bpf_sock_ops__bindgen_ty_4 {
5918    pub skb_data_end: *mut ::std::os::raw::c_void,
5919    pub _bitfield_align_1: [u8; 0],
5920    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
5921}
5922impl Default for bpf_sock_ops__bindgen_ty_4 {
5923    fn default() -> Self {
5924        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5925        unsafe {
5926            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5927            s.assume_init()
5928        }
5929    }
5930}
5931impl bpf_sock_ops__bindgen_ty_4 {
5932    #[inline]
5933    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
5934        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
5935        __bindgen_bitfield_unit
5936    }
5937}
5938impl Default for bpf_sock_ops {
5939    fn default() -> Self {
5940        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5941        unsafe {
5942            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5943            s.assume_init()
5944        }
5945    }
5946}
5947pub const BPF_SOCK_OPS_RTO_CB_FLAG: _bindgen_ty_89 = 1;
5948pub const BPF_SOCK_OPS_RETRANS_CB_FLAG: _bindgen_ty_89 = 2;
5949pub const BPF_SOCK_OPS_STATE_CB_FLAG: _bindgen_ty_89 = 4;
5950pub const BPF_SOCK_OPS_RTT_CB_FLAG: _bindgen_ty_89 = 8;
5951pub const BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG: _bindgen_ty_89 = 16;
5952pub const BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG: _bindgen_ty_89 = 32;
5953pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG: _bindgen_ty_89 = 64;
5954pub const BPF_SOCK_OPS_ALL_CB_FLAGS: _bindgen_ty_89 = 127;
5955pub type _bindgen_ty_89 = ::std::os::raw::c_uint;
5956pub const BPF_SOCK_OPS_VOID: _bindgen_ty_91 = 0;
5957pub const BPF_SOCK_OPS_TIMEOUT_INIT: _bindgen_ty_91 = 1;
5958pub const BPF_SOCK_OPS_RWND_INIT: _bindgen_ty_91 = 2;
5959pub const BPF_SOCK_OPS_TCP_CONNECT_CB: _bindgen_ty_91 = 3;
5960pub const BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB: _bindgen_ty_91 = 4;
5961pub const BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB: _bindgen_ty_91 = 5;
5962pub const BPF_SOCK_OPS_NEEDS_ECN: _bindgen_ty_91 = 6;
5963pub const BPF_SOCK_OPS_BASE_RTT: _bindgen_ty_91 = 7;
5964pub const BPF_SOCK_OPS_RTO_CB: _bindgen_ty_91 = 8;
5965pub const BPF_SOCK_OPS_RETRANS_CB: _bindgen_ty_91 = 9;
5966pub const BPF_SOCK_OPS_STATE_CB: _bindgen_ty_91 = 10;
5967pub const BPF_SOCK_OPS_TCP_LISTEN_CB: _bindgen_ty_91 = 11;
5968pub const BPF_SOCK_OPS_RTT_CB: _bindgen_ty_91 = 12;
5969pub const BPF_SOCK_OPS_PARSE_HDR_OPT_CB: _bindgen_ty_91 = 13;
5970pub const BPF_SOCK_OPS_HDR_OPT_LEN_CB: _bindgen_ty_91 = 14;
5971pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB: _bindgen_ty_91 = 15;
5972pub const BPF_SOCK_OPS_TSTAMP_SCHED_CB: _bindgen_ty_91 = 16;
5973pub const BPF_SOCK_OPS_TSTAMP_SND_SW_CB: _bindgen_ty_91 = 17;
5974pub const BPF_SOCK_OPS_TSTAMP_SND_HW_CB: _bindgen_ty_91 = 18;
5975pub const BPF_SOCK_OPS_TSTAMP_ACK_CB: _bindgen_ty_91 = 19;
5976pub const BPF_SOCK_OPS_TSTAMP_SENDMSG_CB: _bindgen_ty_91 = 20;
5977pub type _bindgen_ty_91 = ::std::os::raw::c_uint;
5978pub const BPF_TCP_ESTABLISHED: _bindgen_ty_92 = 1;
5979pub const BPF_TCP_SYN_SENT: _bindgen_ty_92 = 2;
5980pub const BPF_TCP_SYN_RECV: _bindgen_ty_92 = 3;
5981pub const BPF_TCP_FIN_WAIT1: _bindgen_ty_92 = 4;
5982pub const BPF_TCP_FIN_WAIT2: _bindgen_ty_92 = 5;
5983pub const BPF_TCP_TIME_WAIT: _bindgen_ty_92 = 6;
5984pub const BPF_TCP_CLOSE: _bindgen_ty_92 = 7;
5985pub const BPF_TCP_CLOSE_WAIT: _bindgen_ty_92 = 8;
5986pub const BPF_TCP_LAST_ACK: _bindgen_ty_92 = 9;
5987pub const BPF_TCP_LISTEN: _bindgen_ty_92 = 10;
5988pub const BPF_TCP_CLOSING: _bindgen_ty_92 = 11;
5989pub const BPF_TCP_NEW_SYN_RECV: _bindgen_ty_92 = 12;
5990pub const BPF_TCP_BOUND_INACTIVE: _bindgen_ty_92 = 13;
5991pub const BPF_TCP_MAX_STATES: _bindgen_ty_92 = 14;
5992pub type _bindgen_ty_92 = ::std::os::raw::c_uint;
5993pub const BPF_LOAD_HDR_OPT_TCP_SYN: _bindgen_ty_94 = 1;
5994pub type _bindgen_ty_94 = ::std::os::raw::c_uint;
5995pub const BPF_WRITE_HDR_TCP_CURRENT_MSS: _bindgen_ty_95 = 1;
5996pub const BPF_WRITE_HDR_TCP_SYNACK_COOKIE: _bindgen_ty_95 = 2;
5997pub type _bindgen_ty_95 = ::std::os::raw::c_uint;
5998#[repr(C)]
5999#[derive(Debug, Default, Copy, Clone)]
6000pub struct bpf_perf_event_value {
6001    pub counter: __u64,
6002    pub enabled: __u64,
6003    pub running: __u64,
6004}
6005pub const BPF_DEVCG_ACC_MKNOD: _bindgen_ty_96 = 1;
6006pub const BPF_DEVCG_ACC_READ: _bindgen_ty_96 = 2;
6007pub const BPF_DEVCG_ACC_WRITE: _bindgen_ty_96 = 4;
6008pub type _bindgen_ty_96 = ::std::os::raw::c_uint;
6009pub const BPF_DEVCG_DEV_BLOCK: _bindgen_ty_97 = 1;
6010pub const BPF_DEVCG_DEV_CHAR: _bindgen_ty_97 = 2;
6011pub type _bindgen_ty_97 = ::std::os::raw::c_uint;
6012#[repr(C)]
6013#[derive(Debug, Default, Copy, Clone)]
6014pub struct bpf_cgroup_dev_ctx {
6015    pub access_type: __u32,
6016    pub major: __u32,
6017    pub minor: __u32,
6018}
6019#[repr(C)]
6020#[derive(Debug, Default)]
6021pub struct bpf_raw_tracepoint_args {
6022    pub args: __IncompleteArrayField<__u64>,
6023}
6024pub const BPF_FIB_LOOKUP_DIRECT: _bindgen_ty_98 = 1;
6025pub const BPF_FIB_LOOKUP_OUTPUT: _bindgen_ty_98 = 2;
6026pub const BPF_FIB_LOOKUP_SKIP_NEIGH: _bindgen_ty_98 = 4;
6027pub const BPF_FIB_LOOKUP_TBID: _bindgen_ty_98 = 8;
6028pub const BPF_FIB_LOOKUP_SRC: _bindgen_ty_98 = 16;
6029pub const BPF_FIB_LOOKUP_MARK: _bindgen_ty_98 = 32;
6030pub type _bindgen_ty_98 = ::std::os::raw::c_uint;
6031pub const BPF_FIB_LKUP_RET_SUCCESS: _bindgen_ty_99 = 0;
6032pub const BPF_FIB_LKUP_RET_BLACKHOLE: _bindgen_ty_99 = 1;
6033pub const BPF_FIB_LKUP_RET_UNREACHABLE: _bindgen_ty_99 = 2;
6034pub const BPF_FIB_LKUP_RET_PROHIBIT: _bindgen_ty_99 = 3;
6035pub const BPF_FIB_LKUP_RET_NOT_FWDED: _bindgen_ty_99 = 4;
6036pub const BPF_FIB_LKUP_RET_FWD_DISABLED: _bindgen_ty_99 = 5;
6037pub const BPF_FIB_LKUP_RET_UNSUPP_LWT: _bindgen_ty_99 = 6;
6038pub const BPF_FIB_LKUP_RET_NO_NEIGH: _bindgen_ty_99 = 7;
6039pub const BPF_FIB_LKUP_RET_FRAG_NEEDED: _bindgen_ty_99 = 8;
6040pub const BPF_FIB_LKUP_RET_NO_SRC_ADDR: _bindgen_ty_99 = 9;
6041pub type _bindgen_ty_99 = ::std::os::raw::c_uint;
6042#[repr(C)]
6043#[derive(Copy, Clone)]
6044pub struct bpf_fib_lookup {
6045    pub family: __u8,
6046    pub l4_protocol: __u8,
6047    pub sport: __be16,
6048    pub dport: __be16,
6049    pub __bindgen_anon_1: bpf_fib_lookup__bindgen_ty_1,
6050    pub ifindex: __u32,
6051    pub __bindgen_anon_2: bpf_fib_lookup__bindgen_ty_2,
6052    pub __bindgen_anon_3: bpf_fib_lookup__bindgen_ty_3,
6053    pub __bindgen_anon_4: bpf_fib_lookup__bindgen_ty_4,
6054    pub __bindgen_anon_5: bpf_fib_lookup__bindgen_ty_5,
6055    pub __bindgen_anon_6: bpf_fib_lookup__bindgen_ty_6,
6056}
6057#[repr(C, packed(2))]
6058#[derive(Copy, Clone)]
6059pub union bpf_fib_lookup__bindgen_ty_1 {
6060    pub tot_len: __u16,
6061    pub mtu_result: __u16,
6062}
6063impl Default for bpf_fib_lookup__bindgen_ty_1 {
6064    fn default() -> Self {
6065        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6066        unsafe {
6067            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6068            s.assume_init()
6069        }
6070    }
6071}
6072#[repr(C)]
6073#[derive(Copy, Clone)]
6074pub union bpf_fib_lookup__bindgen_ty_2 {
6075    pub tos: __u8,
6076    pub flowinfo: __be32,
6077    pub rt_metric: __u32,
6078}
6079impl Default for bpf_fib_lookup__bindgen_ty_2 {
6080    fn default() -> Self {
6081        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6082        unsafe {
6083            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6084            s.assume_init()
6085        }
6086    }
6087}
6088#[repr(C)]
6089#[derive(Copy, Clone)]
6090pub union bpf_fib_lookup__bindgen_ty_3 {
6091    pub ipv4_src: __be32,
6092    pub ipv6_src: [__u32; 4usize],
6093}
6094impl Default for bpf_fib_lookup__bindgen_ty_3 {
6095    fn default() -> Self {
6096        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6097        unsafe {
6098            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6099            s.assume_init()
6100        }
6101    }
6102}
6103#[repr(C)]
6104#[derive(Copy, Clone)]
6105pub union bpf_fib_lookup__bindgen_ty_4 {
6106    pub ipv4_dst: __be32,
6107    pub ipv6_dst: [__u32; 4usize],
6108}
6109impl Default for bpf_fib_lookup__bindgen_ty_4 {
6110    fn default() -> Self {
6111        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6112        unsafe {
6113            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6114            s.assume_init()
6115        }
6116    }
6117}
6118#[repr(C)]
6119#[derive(Copy, Clone)]
6120pub union bpf_fib_lookup__bindgen_ty_5 {
6121    pub __bindgen_anon_1: bpf_fib_lookup__bindgen_ty_5__bindgen_ty_1,
6122    pub tbid: __u32,
6123}
6124#[repr(C)]
6125#[derive(Debug, Default, Copy, Clone)]
6126pub struct bpf_fib_lookup__bindgen_ty_5__bindgen_ty_1 {
6127    pub h_vlan_proto: __be16,
6128    pub h_vlan_TCI: __be16,
6129}
6130impl Default for bpf_fib_lookup__bindgen_ty_5 {
6131    fn default() -> Self {
6132        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6133        unsafe {
6134            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6135            s.assume_init()
6136        }
6137    }
6138}
6139#[repr(C)]
6140#[derive(Copy, Clone)]
6141pub union bpf_fib_lookup__bindgen_ty_6 {
6142    pub __bindgen_anon_1: bpf_fib_lookup__bindgen_ty_6__bindgen_ty_1,
6143    pub __bindgen_anon_2: bpf_fib_lookup__bindgen_ty_6__bindgen_ty_2,
6144}
6145#[repr(C)]
6146#[derive(Debug, Default, Copy, Clone)]
6147pub struct bpf_fib_lookup__bindgen_ty_6__bindgen_ty_1 {
6148    pub mark: __u32,
6149}
6150#[repr(C)]
6151#[derive(Debug, Default, Copy, Clone)]
6152pub struct bpf_fib_lookup__bindgen_ty_6__bindgen_ty_2 {
6153    pub smac: [__u8; 6usize],
6154    pub dmac: [__u8; 6usize],
6155}
6156impl Default for bpf_fib_lookup__bindgen_ty_6 {
6157    fn default() -> Self {
6158        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6159        unsafe {
6160            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6161            s.assume_init()
6162        }
6163    }
6164}
6165impl Default for bpf_fib_lookup {
6166    fn default() -> Self {
6167        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6168        unsafe {
6169            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6170            s.assume_init()
6171        }
6172    }
6173}
6174#[repr(C)]
6175#[derive(Copy, Clone)]
6176pub struct bpf_redir_neigh {
6177    pub nh_family: __u32,
6178    pub __bindgen_anon_1: bpf_redir_neigh__bindgen_ty_1,
6179}
6180#[repr(C)]
6181#[derive(Copy, Clone)]
6182pub union bpf_redir_neigh__bindgen_ty_1 {
6183    pub ipv4_nh: __be32,
6184    pub ipv6_nh: [__u32; 4usize],
6185}
6186impl Default for bpf_redir_neigh__bindgen_ty_1 {
6187    fn default() -> Self {
6188        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6189        unsafe {
6190            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6191            s.assume_init()
6192        }
6193    }
6194}
6195impl Default for bpf_redir_neigh {
6196    fn default() -> Self {
6197        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6198        unsafe {
6199            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6200            s.assume_init()
6201        }
6202    }
6203}
6204pub const BPF_MTU_CHK_SEGS: bpf_check_mtu_flags = 1;
6205pub type bpf_check_mtu_flags = ::std::os::raw::c_uint;
6206pub const BPF_MTU_CHK_RET_SUCCESS: bpf_check_mtu_ret = 0;
6207pub const BPF_MTU_CHK_RET_FRAG_NEEDED: bpf_check_mtu_ret = 1;
6208pub const BPF_MTU_CHK_RET_SEGS_TOOBIG: bpf_check_mtu_ret = 2;
6209pub type bpf_check_mtu_ret = ::std::os::raw::c_uint;
6210pub const BPF_FD_TYPE_RAW_TRACEPOINT: bpf_task_fd_type = 0;
6211pub const BPF_FD_TYPE_TRACEPOINT: bpf_task_fd_type = 1;
6212pub const BPF_FD_TYPE_KPROBE: bpf_task_fd_type = 2;
6213pub const BPF_FD_TYPE_KRETPROBE: bpf_task_fd_type = 3;
6214pub const BPF_FD_TYPE_UPROBE: bpf_task_fd_type = 4;
6215pub const BPF_FD_TYPE_URETPROBE: bpf_task_fd_type = 5;
6216pub type bpf_task_fd_type = ::std::os::raw::c_uint;
6217pub const BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG: _bindgen_ty_100 = 1;
6218pub const BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL: _bindgen_ty_100 = 2;
6219pub const BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP: _bindgen_ty_100 = 4;
6220pub type _bindgen_ty_100 = ::std::os::raw::c_uint;
6221#[repr(C)]
6222#[derive(Copy, Clone)]
6223pub struct bpf_flow_keys {
6224    pub nhoff: __u16,
6225    pub thoff: __u16,
6226    pub addr_proto: __u16,
6227    pub is_frag: __u8,
6228    pub is_first_frag: __u8,
6229    pub is_encap: __u8,
6230    pub ip_proto: __u8,
6231    pub n_proto: __be16,
6232    pub sport: __be16,
6233    pub dport: __be16,
6234    pub __bindgen_anon_1: bpf_flow_keys__bindgen_ty_1,
6235    pub flags: __u32,
6236    pub flow_label: __be32,
6237}
6238#[repr(C)]
6239#[derive(Copy, Clone)]
6240pub union bpf_flow_keys__bindgen_ty_1 {
6241    pub __bindgen_anon_1: bpf_flow_keys__bindgen_ty_1__bindgen_ty_1,
6242    pub __bindgen_anon_2: bpf_flow_keys__bindgen_ty_1__bindgen_ty_2,
6243}
6244#[repr(C)]
6245#[derive(Debug, Default, Copy, Clone)]
6246pub struct bpf_flow_keys__bindgen_ty_1__bindgen_ty_1 {
6247    pub ipv4_src: __be32,
6248    pub ipv4_dst: __be32,
6249}
6250#[repr(C)]
6251#[derive(Debug, Default, Copy, Clone)]
6252pub struct bpf_flow_keys__bindgen_ty_1__bindgen_ty_2 {
6253    pub ipv6_src: [__u32; 4usize],
6254    pub ipv6_dst: [__u32; 4usize],
6255}
6256impl Default for bpf_flow_keys__bindgen_ty_1 {
6257    fn default() -> Self {
6258        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6259        unsafe {
6260            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6261            s.assume_init()
6262        }
6263    }
6264}
6265impl Default for bpf_flow_keys {
6266    fn default() -> Self {
6267        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6268        unsafe {
6269            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6270            s.assume_init()
6271        }
6272    }
6273}
6274#[repr(C)]
6275#[derive(Debug, Default, Copy, Clone)]
6276pub struct bpf_func_info {
6277    pub insn_off: __u32,
6278    pub type_id: __u32,
6279}
6280#[repr(C)]
6281#[derive(Debug, Default, Copy, Clone)]
6282pub struct bpf_line_info {
6283    pub insn_off: __u32,
6284    pub file_name_off: __u32,
6285    pub line_off: __u32,
6286    pub line_col: __u32,
6287}
6288#[repr(C)]
6289#[derive(Debug, Default, Copy, Clone)]
6290pub struct bpf_spin_lock {
6291    pub val: __u32,
6292}
6293#[repr(C)]
6294#[derive(Debug, Default, Copy, Clone)]
6295pub struct bpf_timer {
6296    pub __opaque: [__u64; 2usize],
6297}
6298#[repr(C)]
6299#[derive(Debug, Default, Copy, Clone)]
6300pub struct bpf_wq {
6301    pub __opaque: [__u64; 2usize],
6302}
6303#[repr(C)]
6304#[derive(Debug, Default, Copy, Clone)]
6305pub struct bpf_dynptr {
6306    pub __opaque: [__u64; 2usize],
6307}
6308#[repr(C)]
6309#[derive(Debug, Default, Copy, Clone)]
6310pub struct bpf_list_head {
6311    pub __opaque: [__u64; 2usize],
6312}
6313#[repr(C)]
6314#[derive(Debug, Default, Copy, Clone)]
6315pub struct bpf_list_node {
6316    pub __opaque: [__u64; 3usize],
6317}
6318#[repr(C)]
6319#[derive(Debug, Default, Copy, Clone)]
6320pub struct bpf_rb_root {
6321    pub __opaque: [__u64; 2usize],
6322}
6323#[repr(C)]
6324#[derive(Debug, Default, Copy, Clone)]
6325pub struct bpf_rb_node {
6326    pub __opaque: [__u64; 4usize],
6327}
6328#[repr(C)]
6329#[derive(Debug, Default, Copy, Clone)]
6330pub struct bpf_refcount {
6331    pub __opaque: [__u32; 1usize],
6332}
6333#[repr(C)]
6334#[derive(Debug, Default, Copy, Clone)]
6335pub struct bpf_sysctl {
6336    pub write: __u32,
6337    pub file_pos: __u32,
6338}
6339#[repr(C)]
6340#[derive(Copy, Clone)]
6341pub struct bpf_sockopt {
6342    pub __bindgen_anon_1: bpf_sockopt__bindgen_ty_1,
6343    pub __bindgen_anon_2: bpf_sockopt__bindgen_ty_2,
6344    pub __bindgen_anon_3: bpf_sockopt__bindgen_ty_3,
6345    pub level: __s32,
6346    pub optname: __s32,
6347    pub optlen: __s32,
6348    pub retval: __s32,
6349}
6350#[repr(C)]
6351#[derive(Copy, Clone)]
6352pub union bpf_sockopt__bindgen_ty_1 {
6353    pub sk: *mut bpf_sock,
6354    pub _bitfield_align_1: [u8; 0],
6355    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
6356}
6357impl Default for bpf_sockopt__bindgen_ty_1 {
6358    fn default() -> Self {
6359        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6360        unsafe {
6361            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6362            s.assume_init()
6363        }
6364    }
6365}
6366impl bpf_sockopt__bindgen_ty_1 {
6367    #[inline]
6368    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
6369        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
6370        __bindgen_bitfield_unit
6371    }
6372}
6373#[repr(C)]
6374#[derive(Copy, Clone)]
6375pub union bpf_sockopt__bindgen_ty_2 {
6376    pub optval: *mut ::std::os::raw::c_void,
6377    pub _bitfield_align_1: [u8; 0],
6378    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
6379}
6380impl Default for bpf_sockopt__bindgen_ty_2 {
6381    fn default() -> Self {
6382        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6383        unsafe {
6384            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6385            s.assume_init()
6386        }
6387    }
6388}
6389impl bpf_sockopt__bindgen_ty_2 {
6390    #[inline]
6391    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
6392        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
6393        __bindgen_bitfield_unit
6394    }
6395}
6396#[repr(C)]
6397#[derive(Copy, Clone)]
6398pub union bpf_sockopt__bindgen_ty_3 {
6399    pub optval_end: *mut ::std::os::raw::c_void,
6400    pub _bitfield_align_1: [u8; 0],
6401    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
6402}
6403impl Default for bpf_sockopt__bindgen_ty_3 {
6404    fn default() -> Self {
6405        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6406        unsafe {
6407            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6408            s.assume_init()
6409        }
6410    }
6411}
6412impl bpf_sockopt__bindgen_ty_3 {
6413    #[inline]
6414    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
6415        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
6416        __bindgen_bitfield_unit
6417    }
6418}
6419impl Default for bpf_sockopt {
6420    fn default() -> Self {
6421        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6422        unsafe {
6423            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6424            s.assume_init()
6425        }
6426    }
6427}
6428#[repr(C)]
6429#[derive(Debug, Default, Copy, Clone)]
6430pub struct bpf_pidns_info {
6431    pub pid: __u32,
6432    pub tgid: __u32,
6433}
6434#[repr(C)]
6435#[derive(Copy, Clone)]
6436pub struct bpf_sk_lookup {
6437    pub __bindgen_anon_1: bpf_sk_lookup__bindgen_ty_1,
6438    pub family: __u32,
6439    pub protocol: __u32,
6440    pub remote_ip4: __u32,
6441    pub remote_ip6: [__u32; 4usize],
6442    pub remote_port: __be16,
6443    pub _bitfield_align_1: [u8; 0],
6444    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
6445    pub local_ip4: __u32,
6446    pub local_ip6: [__u32; 4usize],
6447    pub local_port: __u32,
6448    pub ingress_ifindex: __u32,
6449    pub __bindgen_padding_0: [u8; 4usize],
6450}
6451#[repr(C)]
6452#[derive(Copy, Clone)]
6453pub union bpf_sk_lookup__bindgen_ty_1 {
6454    pub __bindgen_anon_1: bpf_sk_lookup__bindgen_ty_1__bindgen_ty_1,
6455    pub cookie: __u64,
6456}
6457#[repr(C)]
6458#[derive(Copy, Clone)]
6459pub union bpf_sk_lookup__bindgen_ty_1__bindgen_ty_1 {
6460    pub sk: *mut bpf_sock,
6461    pub _bitfield_align_1: [u8; 0],
6462    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
6463}
6464impl Default for bpf_sk_lookup__bindgen_ty_1__bindgen_ty_1 {
6465    fn default() -> Self {
6466        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6467        unsafe {
6468            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6469            s.assume_init()
6470        }
6471    }
6472}
6473impl bpf_sk_lookup__bindgen_ty_1__bindgen_ty_1 {
6474    #[inline]
6475    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
6476        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
6477        __bindgen_bitfield_unit
6478    }
6479}
6480impl Default for bpf_sk_lookup__bindgen_ty_1 {
6481    fn default() -> Self {
6482        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6483        unsafe {
6484            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6485            s.assume_init()
6486        }
6487    }
6488}
6489impl Default for bpf_sk_lookup {
6490    fn default() -> Self {
6491        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6492        unsafe {
6493            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6494            s.assume_init()
6495        }
6496    }
6497}
6498impl bpf_sk_lookup {
6499    #[inline]
6500    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 2usize]> {
6501        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
6502        __bindgen_bitfield_unit
6503    }
6504}
6505#[repr(C)]
6506#[derive(Debug, Copy, Clone)]
6507pub struct btf_ptr {
6508    pub ptr: *mut ::std::os::raw::c_void,
6509    pub type_id: __u32,
6510    pub flags: __u32,
6511}
6512impl Default for btf_ptr {
6513    fn default() -> Self {
6514        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6515        unsafe {
6516            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6517            s.assume_init()
6518        }
6519    }
6520}
6521pub const BTF_F_COMPACT: _bindgen_ty_101 = 1;
6522pub const BTF_F_NONAME: _bindgen_ty_101 = 2;
6523pub const BTF_F_PTR_RAW: _bindgen_ty_101 = 4;
6524pub const BTF_F_ZERO: _bindgen_ty_101 = 8;
6525pub type _bindgen_ty_101 = ::std::os::raw::c_uint;
6526pub const BPF_CORE_FIELD_BYTE_OFFSET: bpf_core_relo_kind = 0;
6527pub const BPF_CORE_FIELD_BYTE_SIZE: bpf_core_relo_kind = 1;
6528pub const BPF_CORE_FIELD_EXISTS: bpf_core_relo_kind = 2;
6529pub const BPF_CORE_FIELD_SIGNED: bpf_core_relo_kind = 3;
6530pub const BPF_CORE_FIELD_LSHIFT_U64: bpf_core_relo_kind = 4;
6531pub const BPF_CORE_FIELD_RSHIFT_U64: bpf_core_relo_kind = 5;
6532pub const BPF_CORE_TYPE_ID_LOCAL: bpf_core_relo_kind = 6;
6533pub const BPF_CORE_TYPE_ID_TARGET: bpf_core_relo_kind = 7;
6534pub const BPF_CORE_TYPE_EXISTS: bpf_core_relo_kind = 8;
6535pub const BPF_CORE_TYPE_SIZE: bpf_core_relo_kind = 9;
6536pub const BPF_CORE_ENUMVAL_EXISTS: bpf_core_relo_kind = 10;
6537pub const BPF_CORE_ENUMVAL_VALUE: bpf_core_relo_kind = 11;
6538pub const BPF_CORE_TYPE_MATCHES: bpf_core_relo_kind = 12;
6539pub type bpf_core_relo_kind = ::std::os::raw::c_uint;
6540#[repr(C)]
6541#[derive(Debug, Copy, Clone)]
6542pub struct bpf_core_relo {
6543    pub insn_off: __u32,
6544    pub type_id: __u32,
6545    pub access_str_off: __u32,
6546    pub kind: bpf_core_relo_kind,
6547}
6548impl Default for bpf_core_relo {
6549    fn default() -> Self {
6550        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6551        unsafe {
6552            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6553            s.assume_init()
6554        }
6555    }
6556}
6557pub const BPF_F_TIMER_ABS: _bindgen_ty_102 = 1;
6558pub const BPF_F_TIMER_CPU_PIN: _bindgen_ty_102 = 2;
6559pub type _bindgen_ty_102 = ::std::os::raw::c_uint;
6560#[repr(C)]
6561#[derive(Debug, Default, Copy, Clone)]
6562pub struct bpf_iter_num {
6563    pub __opaque: [__u64; 1usize],
6564}
6565pub const BPF_F_PAD_ZEROS: bpf_kfunc_flags = 1;
6566pub type bpf_kfunc_flags = ::std::os::raw::c_uint;
6567pub const LIBBPF_STRICT_ALL: libbpf_strict_mode = 4294967295;
6568pub const LIBBPF_STRICT_NONE: libbpf_strict_mode = 0;
6569pub const LIBBPF_STRICT_CLEAN_PTRS: libbpf_strict_mode = 1;
6570pub const LIBBPF_STRICT_DIRECT_ERRS: libbpf_strict_mode = 2;
6571pub const LIBBPF_STRICT_SEC_NAME: libbpf_strict_mode = 4;
6572pub const LIBBPF_STRICT_NO_OBJECT_LIST: libbpf_strict_mode = 8;
6573pub const LIBBPF_STRICT_AUTO_RLIMIT_MEMLOCK: libbpf_strict_mode = 16;
6574pub const LIBBPF_STRICT_MAP_DEFINITIONS: libbpf_strict_mode = 32;
6575pub const __LIBBPF_STRICT_LAST: libbpf_strict_mode = 33;
6576pub type libbpf_strict_mode = ::std::os::raw::c_uint;
6577unsafe extern "C" {
6578    pub fn libbpf_set_strict_mode(mode: libbpf_strict_mode) -> ::std::os::raw::c_int;
6579}
6580unsafe extern "C" {
6581    pub fn libbpf_get_error(ptr: *const ::std::os::raw::c_void) -> ::std::os::raw::c_long;
6582}
6583#[repr(C)]
6584#[derive(Debug, Copy, Clone)]
6585pub struct bpf_program {
6586    _unused: [u8; 0],
6587}
6588#[repr(C)]
6589#[derive(Debug, Copy, Clone)]
6590pub struct bpf_map {
6591    _unused: [u8; 0],
6592}
6593#[repr(C)]
6594#[derive(Debug, Copy, Clone)]
6595pub struct btf {
6596    _unused: [u8; 0],
6597}
6598#[repr(C)]
6599#[derive(Debug, Copy, Clone)]
6600pub struct btf_ext {
6601    _unused: [u8; 0],
6602}
6603unsafe extern "C" {
6604    pub fn libbpf_find_kernel_btf() -> *mut btf;
6605}
6606unsafe extern "C" {
6607    pub fn bpf_program__get_type(prog: *const bpf_program) -> bpf_prog_type;
6608}
6609unsafe extern "C" {
6610    pub fn bpf_program__get_expected_attach_type(prog: *const bpf_program) -> bpf_attach_type;
6611}
6612unsafe extern "C" {
6613    pub fn bpf_map__get_pin_path(map: *const bpf_map) -> *const ::std::os::raw::c_char;
6614}
6615unsafe extern "C" {
6616    pub fn btf__get_raw_data(btf: *const btf, size: *mut __u32) -> *const ::std::os::raw::c_void;
6617}
6618unsafe extern "C" {
6619    pub fn btf_ext__get_raw_data(
6620        btf_ext: *const btf_ext,
6621        size: *mut __u32,
6622    ) -> *const ::std::os::raw::c_void;
6623}
6624unsafe extern "C" {
6625    pub fn libbpf_set_memlock_rlim(memlock_bytes: size_t) -> ::std::os::raw::c_int;
6626}
6627#[repr(C)]
6628#[derive(Debug, Default, Copy, Clone)]
6629pub struct bpf_map_create_opts {
6630    pub sz: size_t,
6631    pub btf_fd: __u32,
6632    pub btf_key_type_id: __u32,
6633    pub btf_value_type_id: __u32,
6634    pub btf_vmlinux_value_type_id: __u32,
6635    pub inner_map_fd: __u32,
6636    pub map_flags: __u32,
6637    pub map_extra: __u64,
6638    pub numa_node: __u32,
6639    pub map_ifindex: __u32,
6640    pub value_type_btf_obj_fd: __s32,
6641    pub token_fd: __u32,
6642}
6643unsafe extern "C" {
6644    pub fn bpf_map_create(
6645        map_type: bpf_map_type,
6646        map_name: *const ::std::os::raw::c_char,
6647        key_size: __u32,
6648        value_size: __u32,
6649        max_entries: __u32,
6650        opts: *const bpf_map_create_opts,
6651    ) -> ::std::os::raw::c_int;
6652}
6653#[repr(C)]
6654#[derive(Debug, Copy, Clone)]
6655pub struct bpf_prog_load_opts {
6656    pub sz: size_t,
6657    pub attempts: ::std::os::raw::c_int,
6658    pub expected_attach_type: bpf_attach_type,
6659    pub prog_btf_fd: __u32,
6660    pub prog_flags: __u32,
6661    pub prog_ifindex: __u32,
6662    pub kern_version: __u32,
6663    pub attach_btf_id: __u32,
6664    pub attach_prog_fd: __u32,
6665    pub attach_btf_obj_fd: __u32,
6666    pub __bindgen_padding_0: [u8; 4usize],
6667    pub fd_array: *const ::std::os::raw::c_int,
6668    pub func_info: *const ::std::os::raw::c_void,
6669    pub func_info_cnt: __u32,
6670    pub func_info_rec_size: __u32,
6671    pub line_info: *const ::std::os::raw::c_void,
6672    pub line_info_cnt: __u32,
6673    pub line_info_rec_size: __u32,
6674    pub log_level: __u32,
6675    pub log_size: __u32,
6676    pub log_buf: *mut ::std::os::raw::c_char,
6677    pub log_true_size: __u32,
6678    pub token_fd: __u32,
6679    pub fd_array_cnt: __u32,
6680    pub __bindgen_padding_1: [u8; 4usize],
6681}
6682impl Default for bpf_prog_load_opts {
6683    fn default() -> Self {
6684        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6685        unsafe {
6686            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6687            s.assume_init()
6688        }
6689    }
6690}
6691unsafe extern "C" {
6692    pub fn bpf_prog_load(
6693        prog_type: bpf_prog_type,
6694        prog_name: *const ::std::os::raw::c_char,
6695        license: *const ::std::os::raw::c_char,
6696        insns: *const bpf_insn,
6697        insn_cnt: size_t,
6698        opts: *mut bpf_prog_load_opts,
6699    ) -> ::std::os::raw::c_int;
6700}
6701#[repr(C)]
6702#[derive(Debug, Copy, Clone)]
6703pub struct bpf_btf_load_opts {
6704    pub sz: size_t,
6705    pub log_buf: *mut ::std::os::raw::c_char,
6706    pub log_level: __u32,
6707    pub log_size: __u32,
6708    pub log_true_size: __u32,
6709    pub btf_flags: __u32,
6710    pub token_fd: __u32,
6711    pub __bindgen_padding_0: [u8; 4usize],
6712}
6713impl Default for bpf_btf_load_opts {
6714    fn default() -> Self {
6715        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6716        unsafe {
6717            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6718            s.assume_init()
6719        }
6720    }
6721}
6722unsafe extern "C" {
6723    pub fn bpf_btf_load(
6724        btf_data: *const ::std::os::raw::c_void,
6725        btf_size: size_t,
6726        opts: *mut bpf_btf_load_opts,
6727    ) -> ::std::os::raw::c_int;
6728}
6729unsafe extern "C" {
6730    pub fn bpf_map_update_elem(
6731        fd: ::std::os::raw::c_int,
6732        key: *const ::std::os::raw::c_void,
6733        value: *const ::std::os::raw::c_void,
6734        flags: __u64,
6735    ) -> ::std::os::raw::c_int;
6736}
6737unsafe extern "C" {
6738    pub fn bpf_map_lookup_elem(
6739        fd: ::std::os::raw::c_int,
6740        key: *const ::std::os::raw::c_void,
6741        value: *mut ::std::os::raw::c_void,
6742    ) -> ::std::os::raw::c_int;
6743}
6744unsafe extern "C" {
6745    pub fn bpf_map_lookup_elem_flags(
6746        fd: ::std::os::raw::c_int,
6747        key: *const ::std::os::raw::c_void,
6748        value: *mut ::std::os::raw::c_void,
6749        flags: __u64,
6750    ) -> ::std::os::raw::c_int;
6751}
6752unsafe extern "C" {
6753    pub fn bpf_map_lookup_and_delete_elem(
6754        fd: ::std::os::raw::c_int,
6755        key: *const ::std::os::raw::c_void,
6756        value: *mut ::std::os::raw::c_void,
6757    ) -> ::std::os::raw::c_int;
6758}
6759unsafe extern "C" {
6760    pub fn bpf_map_lookup_and_delete_elem_flags(
6761        fd: ::std::os::raw::c_int,
6762        key: *const ::std::os::raw::c_void,
6763        value: *mut ::std::os::raw::c_void,
6764        flags: __u64,
6765    ) -> ::std::os::raw::c_int;
6766}
6767unsafe extern "C" {
6768    pub fn bpf_map_delete_elem(
6769        fd: ::std::os::raw::c_int,
6770        key: *const ::std::os::raw::c_void,
6771    ) -> ::std::os::raw::c_int;
6772}
6773unsafe extern "C" {
6774    pub fn bpf_map_delete_elem_flags(
6775        fd: ::std::os::raw::c_int,
6776        key: *const ::std::os::raw::c_void,
6777        flags: __u64,
6778    ) -> ::std::os::raw::c_int;
6779}
6780unsafe extern "C" {
6781    pub fn bpf_map_get_next_key(
6782        fd: ::std::os::raw::c_int,
6783        key: *const ::std::os::raw::c_void,
6784        next_key: *mut ::std::os::raw::c_void,
6785    ) -> ::std::os::raw::c_int;
6786}
6787unsafe extern "C" {
6788    pub fn bpf_map_freeze(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
6789}
6790#[repr(C)]
6791#[derive(Debug, Default, Copy, Clone)]
6792pub struct bpf_map_batch_opts {
6793    pub sz: size_t,
6794    pub elem_flags: __u64,
6795    pub flags: __u64,
6796}
6797unsafe extern "C" {
6798    pub fn bpf_map_delete_batch(
6799        fd: ::std::os::raw::c_int,
6800        keys: *const ::std::os::raw::c_void,
6801        count: *mut __u32,
6802        opts: *const bpf_map_batch_opts,
6803    ) -> ::std::os::raw::c_int;
6804}
6805unsafe extern "C" {
6806    pub fn bpf_map_lookup_batch(
6807        fd: ::std::os::raw::c_int,
6808        in_batch: *mut ::std::os::raw::c_void,
6809        out_batch: *mut ::std::os::raw::c_void,
6810        keys: *mut ::std::os::raw::c_void,
6811        values: *mut ::std::os::raw::c_void,
6812        count: *mut __u32,
6813        opts: *const bpf_map_batch_opts,
6814    ) -> ::std::os::raw::c_int;
6815}
6816unsafe extern "C" {
6817    pub fn bpf_map_lookup_and_delete_batch(
6818        fd: ::std::os::raw::c_int,
6819        in_batch: *mut ::std::os::raw::c_void,
6820        out_batch: *mut ::std::os::raw::c_void,
6821        keys: *mut ::std::os::raw::c_void,
6822        values: *mut ::std::os::raw::c_void,
6823        count: *mut __u32,
6824        opts: *const bpf_map_batch_opts,
6825    ) -> ::std::os::raw::c_int;
6826}
6827unsafe extern "C" {
6828    pub fn bpf_map_update_batch(
6829        fd: ::std::os::raw::c_int,
6830        keys: *const ::std::os::raw::c_void,
6831        values: *const ::std::os::raw::c_void,
6832        count: *mut __u32,
6833        opts: *const bpf_map_batch_opts,
6834    ) -> ::std::os::raw::c_int;
6835}
6836#[repr(C)]
6837#[derive(Debug, Default, Copy, Clone)]
6838pub struct bpf_obj_pin_opts {
6839    pub sz: size_t,
6840    pub file_flags: __u32,
6841    pub path_fd: ::std::os::raw::c_int,
6842}
6843unsafe extern "C" {
6844    pub fn bpf_obj_pin(
6845        fd: ::std::os::raw::c_int,
6846        pathname: *const ::std::os::raw::c_char,
6847    ) -> ::std::os::raw::c_int;
6848}
6849unsafe extern "C" {
6850    pub fn bpf_obj_pin_opts(
6851        fd: ::std::os::raw::c_int,
6852        pathname: *const ::std::os::raw::c_char,
6853        opts: *const bpf_obj_pin_opts,
6854    ) -> ::std::os::raw::c_int;
6855}
6856#[repr(C)]
6857#[derive(Debug, Default, Copy, Clone)]
6858pub struct bpf_obj_get_opts {
6859    pub sz: size_t,
6860    pub file_flags: __u32,
6861    pub path_fd: ::std::os::raw::c_int,
6862}
6863unsafe extern "C" {
6864    pub fn bpf_obj_get(pathname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
6865}
6866unsafe extern "C" {
6867    pub fn bpf_obj_get_opts(
6868        pathname: *const ::std::os::raw::c_char,
6869        opts: *const bpf_obj_get_opts,
6870    ) -> ::std::os::raw::c_int;
6871}
6872unsafe extern "C" {
6873    pub fn bpf_prog_attach(
6874        prog_fd: ::std::os::raw::c_int,
6875        attachable_fd: ::std::os::raw::c_int,
6876        type_: bpf_attach_type,
6877        flags: ::std::os::raw::c_uint,
6878    ) -> ::std::os::raw::c_int;
6879}
6880unsafe extern "C" {
6881    pub fn bpf_prog_detach(
6882        attachable_fd: ::std::os::raw::c_int,
6883        type_: bpf_attach_type,
6884    ) -> ::std::os::raw::c_int;
6885}
6886unsafe extern "C" {
6887    pub fn bpf_prog_detach2(
6888        prog_fd: ::std::os::raw::c_int,
6889        attachable_fd: ::std::os::raw::c_int,
6890        type_: bpf_attach_type,
6891    ) -> ::std::os::raw::c_int;
6892}
6893#[repr(C)]
6894#[derive(Copy, Clone)]
6895pub struct bpf_prog_attach_opts {
6896    pub sz: size_t,
6897    pub flags: __u32,
6898    pub __bindgen_anon_1: bpf_prog_attach_opts__bindgen_ty_1,
6899    pub relative_fd: ::std::os::raw::c_int,
6900    pub relative_id: __u32,
6901    pub expected_revision: __u64,
6902}
6903#[repr(C)]
6904#[derive(Copy, Clone)]
6905pub union bpf_prog_attach_opts__bindgen_ty_1 {
6906    pub replace_prog_fd: ::std::os::raw::c_int,
6907    pub replace_fd: ::std::os::raw::c_int,
6908}
6909impl Default for bpf_prog_attach_opts__bindgen_ty_1 {
6910    fn default() -> Self {
6911        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6912        unsafe {
6913            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6914            s.assume_init()
6915        }
6916    }
6917}
6918impl Default for bpf_prog_attach_opts {
6919    fn default() -> Self {
6920        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6921        unsafe {
6922            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6923            s.assume_init()
6924        }
6925    }
6926}
6927#[repr(C)]
6928#[derive(Debug, Default, Copy, Clone)]
6929pub struct bpf_prog_detach_opts {
6930    pub sz: size_t,
6931    pub flags: __u32,
6932    pub relative_fd: ::std::os::raw::c_int,
6933    pub relative_id: __u32,
6934    pub __bindgen_padding_0: [u8; 4usize],
6935    pub expected_revision: __u64,
6936}
6937unsafe extern "C" {
6938    pub fn bpf_prog_attach_opts(
6939        prog_fd: ::std::os::raw::c_int,
6940        target: ::std::os::raw::c_int,
6941        type_: bpf_attach_type,
6942        opts: *const bpf_prog_attach_opts,
6943    ) -> ::std::os::raw::c_int;
6944}
6945unsafe extern "C" {
6946    pub fn bpf_prog_detach_opts(
6947        prog_fd: ::std::os::raw::c_int,
6948        target: ::std::os::raw::c_int,
6949        type_: bpf_attach_type,
6950        opts: *const bpf_prog_detach_opts,
6951    ) -> ::std::os::raw::c_int;
6952}
6953#[repr(C)]
6954#[derive(Copy, Clone)]
6955pub struct bpf_link_create_opts {
6956    pub sz: size_t,
6957    pub flags: __u32,
6958    pub __bindgen_padding_0: [u8; 4usize],
6959    pub iter_info: *mut bpf_iter_link_info,
6960    pub iter_info_len: __u32,
6961    pub target_btf_id: __u32,
6962    pub __bindgen_anon_1: bpf_link_create_opts__bindgen_ty_1,
6963}
6964#[repr(C)]
6965#[derive(Copy, Clone)]
6966pub union bpf_link_create_opts__bindgen_ty_1 {
6967    pub perf_event: bpf_link_create_opts__bindgen_ty_1__bindgen_ty_1,
6968    pub kprobe_multi: bpf_link_create_opts__bindgen_ty_1__bindgen_ty_2,
6969    pub uprobe_multi: bpf_link_create_opts__bindgen_ty_1__bindgen_ty_3,
6970    pub tracing: bpf_link_create_opts__bindgen_ty_1__bindgen_ty_4,
6971    pub netfilter: bpf_link_create_opts__bindgen_ty_1__bindgen_ty_5,
6972    pub tcx: bpf_link_create_opts__bindgen_ty_1__bindgen_ty_6,
6973    pub netkit: bpf_link_create_opts__bindgen_ty_1__bindgen_ty_7,
6974    pub cgroup: bpf_link_create_opts__bindgen_ty_1__bindgen_ty_8,
6975}
6976#[repr(C)]
6977#[derive(Debug, Default, Copy, Clone)]
6978pub struct bpf_link_create_opts__bindgen_ty_1__bindgen_ty_1 {
6979    pub bpf_cookie: __u64,
6980}
6981#[repr(C)]
6982#[derive(Debug, Copy, Clone)]
6983pub struct bpf_link_create_opts__bindgen_ty_1__bindgen_ty_2 {
6984    pub flags: __u32,
6985    pub cnt: __u32,
6986    pub syms: *mut *const ::std::os::raw::c_char,
6987    pub addrs: *const ::std::os::raw::c_ulong,
6988    pub cookies: *const __u64,
6989}
6990impl Default for bpf_link_create_opts__bindgen_ty_1__bindgen_ty_2 {
6991    fn default() -> Self {
6992        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6993        unsafe {
6994            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6995            s.assume_init()
6996        }
6997    }
6998}
6999#[repr(C)]
7000#[derive(Debug, Copy, Clone)]
7001pub struct bpf_link_create_opts__bindgen_ty_1__bindgen_ty_3 {
7002    pub flags: __u32,
7003    pub cnt: __u32,
7004    pub path: *const ::std::os::raw::c_char,
7005    pub offsets: *const ::std::os::raw::c_ulong,
7006    pub ref_ctr_offsets: *const ::std::os::raw::c_ulong,
7007    pub cookies: *const __u64,
7008    pub pid: __u32,
7009    pub __bindgen_padding_0: [u8; 4usize],
7010}
7011impl Default for bpf_link_create_opts__bindgen_ty_1__bindgen_ty_3 {
7012    fn default() -> Self {
7013        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7014        unsafe {
7015            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7016            s.assume_init()
7017        }
7018    }
7019}
7020#[repr(C)]
7021#[derive(Debug, Default, Copy, Clone)]
7022pub struct bpf_link_create_opts__bindgen_ty_1__bindgen_ty_4 {
7023    pub cookie: __u64,
7024}
7025#[repr(C)]
7026#[derive(Debug, Default, Copy, Clone)]
7027pub struct bpf_link_create_opts__bindgen_ty_1__bindgen_ty_5 {
7028    pub pf: __u32,
7029    pub hooknum: __u32,
7030    pub priority: __s32,
7031    pub flags: __u32,
7032}
7033#[repr(C)]
7034#[derive(Debug, Default, Copy, Clone)]
7035pub struct bpf_link_create_opts__bindgen_ty_1__bindgen_ty_6 {
7036    pub relative_fd: __u32,
7037    pub relative_id: __u32,
7038    pub expected_revision: __u64,
7039}
7040#[repr(C)]
7041#[derive(Debug, Default, Copy, Clone)]
7042pub struct bpf_link_create_opts__bindgen_ty_1__bindgen_ty_7 {
7043    pub relative_fd: __u32,
7044    pub relative_id: __u32,
7045    pub expected_revision: __u64,
7046}
7047#[repr(C)]
7048#[derive(Debug, Default, Copy, Clone)]
7049pub struct bpf_link_create_opts__bindgen_ty_1__bindgen_ty_8 {
7050    pub relative_fd: __u32,
7051    pub relative_id: __u32,
7052    pub expected_revision: __u64,
7053}
7054impl Default for bpf_link_create_opts__bindgen_ty_1 {
7055    fn default() -> Self {
7056        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7057        unsafe {
7058            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7059            s.assume_init()
7060        }
7061    }
7062}
7063impl Default for bpf_link_create_opts {
7064    fn default() -> Self {
7065        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7066        unsafe {
7067            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7068            s.assume_init()
7069        }
7070    }
7071}
7072unsafe extern "C" {
7073    pub fn bpf_link_create(
7074        prog_fd: ::std::os::raw::c_int,
7075        target_fd: ::std::os::raw::c_int,
7076        attach_type: bpf_attach_type,
7077        opts: *const bpf_link_create_opts,
7078    ) -> ::std::os::raw::c_int;
7079}
7080unsafe extern "C" {
7081    pub fn bpf_link_detach(link_fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
7082}
7083#[repr(C)]
7084#[derive(Debug, Default, Copy, Clone)]
7085pub struct bpf_link_update_opts {
7086    pub sz: size_t,
7087    pub flags: __u32,
7088    pub old_prog_fd: __u32,
7089    pub old_map_fd: __u32,
7090    pub __bindgen_padding_0: [u8; 4usize],
7091}
7092unsafe extern "C" {
7093    pub fn bpf_link_update(
7094        link_fd: ::std::os::raw::c_int,
7095        new_prog_fd: ::std::os::raw::c_int,
7096        opts: *const bpf_link_update_opts,
7097    ) -> ::std::os::raw::c_int;
7098}
7099unsafe extern "C" {
7100    pub fn bpf_iter_create(link_fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
7101}
7102#[repr(C)]
7103#[derive(Debug, Copy, Clone)]
7104pub struct bpf_prog_test_run_attr {
7105    pub prog_fd: ::std::os::raw::c_int,
7106    pub repeat: ::std::os::raw::c_int,
7107    pub data_in: *const ::std::os::raw::c_void,
7108    pub data_size_in: __u32,
7109    pub __bindgen_padding_0: [u8; 4usize],
7110    pub data_out: *mut ::std::os::raw::c_void,
7111    pub data_size_out: __u32,
7112    pub retval: __u32,
7113    pub duration: __u32,
7114    pub __bindgen_padding_1: [u8; 4usize],
7115    pub ctx_in: *const ::std::os::raw::c_void,
7116    pub ctx_size_in: __u32,
7117    pub __bindgen_padding_2: [u8; 4usize],
7118    pub ctx_out: *mut ::std::os::raw::c_void,
7119    pub ctx_size_out: __u32,
7120    pub __bindgen_padding_3: [u8; 4usize],
7121}
7122impl Default for bpf_prog_test_run_attr {
7123    fn default() -> Self {
7124        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7125        unsafe {
7126            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7127            s.assume_init()
7128        }
7129    }
7130}
7131unsafe extern "C" {
7132    pub fn bpf_prog_get_next_id(start_id: __u32, next_id: *mut __u32) -> ::std::os::raw::c_int;
7133}
7134unsafe extern "C" {
7135    pub fn bpf_map_get_next_id(start_id: __u32, next_id: *mut __u32) -> ::std::os::raw::c_int;
7136}
7137unsafe extern "C" {
7138    pub fn bpf_btf_get_next_id(start_id: __u32, next_id: *mut __u32) -> ::std::os::raw::c_int;
7139}
7140unsafe extern "C" {
7141    pub fn bpf_link_get_next_id(start_id: __u32, next_id: *mut __u32) -> ::std::os::raw::c_int;
7142}
7143#[repr(C)]
7144#[derive(Debug, Default, Copy, Clone)]
7145pub struct bpf_get_fd_by_id_opts {
7146    pub sz: size_t,
7147    pub open_flags: __u32,
7148    pub token_fd: __u32,
7149}
7150unsafe extern "C" {
7151    pub fn bpf_prog_get_fd_by_id(id: __u32) -> ::std::os::raw::c_int;
7152}
7153unsafe extern "C" {
7154    pub fn bpf_prog_get_fd_by_id_opts(
7155        id: __u32,
7156        opts: *const bpf_get_fd_by_id_opts,
7157    ) -> ::std::os::raw::c_int;
7158}
7159unsafe extern "C" {
7160    pub fn bpf_map_get_fd_by_id(id: __u32) -> ::std::os::raw::c_int;
7161}
7162unsafe extern "C" {
7163    pub fn bpf_map_get_fd_by_id_opts(
7164        id: __u32,
7165        opts: *const bpf_get_fd_by_id_opts,
7166    ) -> ::std::os::raw::c_int;
7167}
7168unsafe extern "C" {
7169    pub fn bpf_btf_get_fd_by_id(id: __u32) -> ::std::os::raw::c_int;
7170}
7171unsafe extern "C" {
7172    pub fn bpf_btf_get_fd_by_id_opts(
7173        id: __u32,
7174        opts: *const bpf_get_fd_by_id_opts,
7175    ) -> ::std::os::raw::c_int;
7176}
7177unsafe extern "C" {
7178    pub fn bpf_link_get_fd_by_id(id: __u32) -> ::std::os::raw::c_int;
7179}
7180unsafe extern "C" {
7181    pub fn bpf_link_get_fd_by_id_opts(
7182        id: __u32,
7183        opts: *const bpf_get_fd_by_id_opts,
7184    ) -> ::std::os::raw::c_int;
7185}
7186unsafe extern "C" {
7187    pub fn bpf_obj_get_info_by_fd(
7188        bpf_fd: ::std::os::raw::c_int,
7189        info: *mut ::std::os::raw::c_void,
7190        info_len: *mut __u32,
7191    ) -> ::std::os::raw::c_int;
7192}
7193unsafe extern "C" {
7194    pub fn bpf_prog_get_info_by_fd(
7195        prog_fd: ::std::os::raw::c_int,
7196        info: *mut bpf_prog_info,
7197        info_len: *mut __u32,
7198    ) -> ::std::os::raw::c_int;
7199}
7200unsafe extern "C" {
7201    pub fn bpf_map_get_info_by_fd(
7202        map_fd: ::std::os::raw::c_int,
7203        info: *mut bpf_map_info,
7204        info_len: *mut __u32,
7205    ) -> ::std::os::raw::c_int;
7206}
7207unsafe extern "C" {
7208    pub fn bpf_btf_get_info_by_fd(
7209        btf_fd: ::std::os::raw::c_int,
7210        info: *mut bpf_btf_info,
7211        info_len: *mut __u32,
7212    ) -> ::std::os::raw::c_int;
7213}
7214unsafe extern "C" {
7215    pub fn bpf_link_get_info_by_fd(
7216        link_fd: ::std::os::raw::c_int,
7217        info: *mut bpf_link_info,
7218        info_len: *mut __u32,
7219    ) -> ::std::os::raw::c_int;
7220}
7221#[repr(C)]
7222#[derive(Copy, Clone)]
7223pub struct bpf_prog_query_opts {
7224    pub sz: size_t,
7225    pub query_flags: __u32,
7226    pub attach_flags: __u32,
7227    pub prog_ids: *mut __u32,
7228    pub __bindgen_anon_1: bpf_prog_query_opts__bindgen_ty_1,
7229    pub __bindgen_padding_0: [u8; 4usize],
7230    pub prog_attach_flags: *mut __u32,
7231    pub link_ids: *mut __u32,
7232    pub link_attach_flags: *mut __u32,
7233    pub revision: __u64,
7234}
7235#[repr(C)]
7236#[derive(Copy, Clone)]
7237pub union bpf_prog_query_opts__bindgen_ty_1 {
7238    pub prog_cnt: __u32,
7239    pub count: __u32,
7240}
7241impl Default for bpf_prog_query_opts__bindgen_ty_1 {
7242    fn default() -> Self {
7243        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7244        unsafe {
7245            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7246            s.assume_init()
7247        }
7248    }
7249}
7250impl Default for bpf_prog_query_opts {
7251    fn default() -> Self {
7252        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7253        unsafe {
7254            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7255            s.assume_init()
7256        }
7257    }
7258}
7259unsafe extern "C" {
7260    pub fn bpf_prog_query_opts(
7261        target: ::std::os::raw::c_int,
7262        type_: bpf_attach_type,
7263        opts: *mut bpf_prog_query_opts,
7264    ) -> ::std::os::raw::c_int;
7265}
7266unsafe extern "C" {
7267    pub fn bpf_prog_query(
7268        target_fd: ::std::os::raw::c_int,
7269        type_: bpf_attach_type,
7270        query_flags: __u32,
7271        attach_flags: *mut __u32,
7272        prog_ids: *mut __u32,
7273        prog_cnt: *mut __u32,
7274    ) -> ::std::os::raw::c_int;
7275}
7276#[repr(C)]
7277#[derive(Debug, Copy, Clone)]
7278pub struct bpf_raw_tp_opts {
7279    pub sz: size_t,
7280    pub tp_name: *const ::std::os::raw::c_char,
7281    pub cookie: __u64,
7282}
7283impl Default for bpf_raw_tp_opts {
7284    fn default() -> Self {
7285        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7286        unsafe {
7287            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7288            s.assume_init()
7289        }
7290    }
7291}
7292unsafe extern "C" {
7293    pub fn bpf_raw_tracepoint_open_opts(
7294        prog_fd: ::std::os::raw::c_int,
7295        opts: *mut bpf_raw_tp_opts,
7296    ) -> ::std::os::raw::c_int;
7297}
7298unsafe extern "C" {
7299    pub fn bpf_raw_tracepoint_open(
7300        name: *const ::std::os::raw::c_char,
7301        prog_fd: ::std::os::raw::c_int,
7302    ) -> ::std::os::raw::c_int;
7303}
7304unsafe extern "C" {
7305    pub fn bpf_task_fd_query(
7306        pid: ::std::os::raw::c_int,
7307        fd: ::std::os::raw::c_int,
7308        flags: __u32,
7309        buf: *mut ::std::os::raw::c_char,
7310        buf_len: *mut __u32,
7311        prog_id: *mut __u32,
7312        fd_type: *mut __u32,
7313        probe_offset: *mut __u64,
7314        probe_addr: *mut __u64,
7315    ) -> ::std::os::raw::c_int;
7316}
7317unsafe extern "C" {
7318    pub fn bpf_enable_stats(type_: bpf_stats_type) -> ::std::os::raw::c_int;
7319}
7320#[repr(C)]
7321#[derive(Debug, Default, Copy, Clone)]
7322pub struct bpf_prog_bind_opts {
7323    pub sz: size_t,
7324    pub flags: __u32,
7325    pub __bindgen_padding_0: [u8; 4usize],
7326}
7327unsafe extern "C" {
7328    pub fn bpf_prog_bind_map(
7329        prog_fd: ::std::os::raw::c_int,
7330        map_fd: ::std::os::raw::c_int,
7331        opts: *const bpf_prog_bind_opts,
7332    ) -> ::std::os::raw::c_int;
7333}
7334#[repr(C)]
7335#[derive(Debug, Copy, Clone)]
7336pub struct bpf_test_run_opts {
7337    pub sz: size_t,
7338    pub data_in: *const ::std::os::raw::c_void,
7339    pub data_out: *mut ::std::os::raw::c_void,
7340    pub data_size_in: __u32,
7341    pub data_size_out: __u32,
7342    pub ctx_in: *const ::std::os::raw::c_void,
7343    pub ctx_out: *mut ::std::os::raw::c_void,
7344    pub ctx_size_in: __u32,
7345    pub ctx_size_out: __u32,
7346    pub retval: __u32,
7347    pub repeat: ::std::os::raw::c_int,
7348    pub duration: __u32,
7349    pub flags: __u32,
7350    pub cpu: __u32,
7351    pub batch_size: __u32,
7352}
7353impl Default for bpf_test_run_opts {
7354    fn default() -> Self {
7355        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7356        unsafe {
7357            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7358            s.assume_init()
7359        }
7360    }
7361}
7362unsafe extern "C" {
7363    pub fn bpf_prog_test_run_opts(
7364        prog_fd: ::std::os::raw::c_int,
7365        opts: *mut bpf_test_run_opts,
7366    ) -> ::std::os::raw::c_int;
7367}
7368#[repr(C)]
7369#[derive(Debug, Default, Copy, Clone)]
7370pub struct bpf_token_create_opts {
7371    pub sz: size_t,
7372    pub flags: __u32,
7373    pub __bindgen_padding_0: [u8; 4usize],
7374}
7375unsafe extern "C" {
7376    pub fn bpf_token_create(
7377        bpffs_fd: ::std::os::raw::c_int,
7378        opts: *mut bpf_token_create_opts,
7379    ) -> ::std::os::raw::c_int;
7380}
7381#[repr(C)]
7382#[derive(Debug, Default, Copy, Clone)]
7383pub struct bpf_prog_stream_read_opts {
7384    pub sz: size_t,
7385}
7386unsafe extern "C" {
7387    pub fn bpf_prog_stream_read(
7388        prog_fd: ::std::os::raw::c_int,
7389        stream_id: __u32,
7390        buf: *mut ::std::os::raw::c_void,
7391        buf_len: __u32,
7392        opts: *mut bpf_prog_stream_read_opts,
7393    ) -> ::std::os::raw::c_int;
7394}
7395pub type __gnuc_va_list = __builtin_va_list;
7396pub type va_list = __builtin_va_list;
7397#[repr(C)]
7398#[derive(Debug, Default, Copy, Clone)]
7399pub struct btf_header {
7400    pub magic: __u16,
7401    pub version: __u8,
7402    pub flags: __u8,
7403    pub hdr_len: __u32,
7404    pub type_off: __u32,
7405    pub type_len: __u32,
7406    pub str_off: __u32,
7407    pub str_len: __u32,
7408}
7409#[repr(C)]
7410#[derive(Copy, Clone)]
7411pub struct btf_type {
7412    pub name_off: __u32,
7413    pub info: __u32,
7414    pub __bindgen_anon_1: btf_type__bindgen_ty_1,
7415}
7416#[repr(C)]
7417#[derive(Copy, Clone)]
7418pub union btf_type__bindgen_ty_1 {
7419    pub size: __u32,
7420    pub type_: __u32,
7421}
7422impl Default for btf_type__bindgen_ty_1 {
7423    fn default() -> Self {
7424        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7425        unsafe {
7426            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7427            s.assume_init()
7428        }
7429    }
7430}
7431impl Default for btf_type {
7432    fn default() -> Self {
7433        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7434        unsafe {
7435            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7436            s.assume_init()
7437        }
7438    }
7439}
7440pub const BTF_KIND_UNKN: _bindgen_ty_103 = 0;
7441pub const BTF_KIND_INT: _bindgen_ty_103 = 1;
7442pub const BTF_KIND_PTR: _bindgen_ty_103 = 2;
7443pub const BTF_KIND_ARRAY: _bindgen_ty_103 = 3;
7444pub const BTF_KIND_STRUCT: _bindgen_ty_103 = 4;
7445pub const BTF_KIND_UNION: _bindgen_ty_103 = 5;
7446pub const BTF_KIND_ENUM: _bindgen_ty_103 = 6;
7447pub const BTF_KIND_FWD: _bindgen_ty_103 = 7;
7448pub const BTF_KIND_TYPEDEF: _bindgen_ty_103 = 8;
7449pub const BTF_KIND_VOLATILE: _bindgen_ty_103 = 9;
7450pub const BTF_KIND_CONST: _bindgen_ty_103 = 10;
7451pub const BTF_KIND_RESTRICT: _bindgen_ty_103 = 11;
7452pub const BTF_KIND_FUNC: _bindgen_ty_103 = 12;
7453pub const BTF_KIND_FUNC_PROTO: _bindgen_ty_103 = 13;
7454pub const BTF_KIND_VAR: _bindgen_ty_103 = 14;
7455pub const BTF_KIND_DATASEC: _bindgen_ty_103 = 15;
7456pub const BTF_KIND_FLOAT: _bindgen_ty_103 = 16;
7457pub const BTF_KIND_DECL_TAG: _bindgen_ty_103 = 17;
7458pub const BTF_KIND_TYPE_TAG: _bindgen_ty_103 = 18;
7459pub const BTF_KIND_ENUM64: _bindgen_ty_103 = 19;
7460pub const NR_BTF_KINDS: _bindgen_ty_103 = 20;
7461pub const BTF_KIND_MAX: _bindgen_ty_103 = 19;
7462pub type _bindgen_ty_103 = ::std::os::raw::c_uint;
7463#[repr(C)]
7464#[derive(Debug, Default, Copy, Clone)]
7465pub struct btf_enum {
7466    pub name_off: __u32,
7467    pub val: __s32,
7468}
7469#[repr(C)]
7470#[derive(Debug, Default, Copy, Clone)]
7471pub struct btf_array {
7472    pub type_: __u32,
7473    pub index_type: __u32,
7474    pub nelems: __u32,
7475}
7476#[repr(C)]
7477#[derive(Debug, Default, Copy, Clone)]
7478pub struct btf_member {
7479    pub name_off: __u32,
7480    pub type_: __u32,
7481    pub offset: __u32,
7482}
7483#[repr(C)]
7484#[derive(Debug, Default, Copy, Clone)]
7485pub struct btf_param {
7486    pub name_off: __u32,
7487    pub type_: __u32,
7488}
7489pub const BTF_VAR_STATIC: _bindgen_ty_104 = 0;
7490pub const BTF_VAR_GLOBAL_ALLOCATED: _bindgen_ty_104 = 1;
7491pub const BTF_VAR_GLOBAL_EXTERN: _bindgen_ty_104 = 2;
7492pub type _bindgen_ty_104 = ::std::os::raw::c_uint;
7493pub const BTF_FUNC_STATIC: btf_func_linkage = 0;
7494pub const BTF_FUNC_GLOBAL: btf_func_linkage = 1;
7495pub const BTF_FUNC_EXTERN: btf_func_linkage = 2;
7496pub type btf_func_linkage = ::std::os::raw::c_uint;
7497#[repr(C)]
7498#[derive(Debug, Default, Copy, Clone)]
7499pub struct btf_var {
7500    pub linkage: __u32,
7501}
7502#[repr(C)]
7503#[derive(Debug, Default, Copy, Clone)]
7504pub struct btf_var_secinfo {
7505    pub type_: __u32,
7506    pub offset: __u32,
7507    pub size: __u32,
7508}
7509#[repr(C)]
7510#[derive(Debug, Default, Copy, Clone)]
7511pub struct btf_decl_tag {
7512    pub component_idx: __s32,
7513}
7514#[repr(C)]
7515#[derive(Debug, Default, Copy, Clone)]
7516pub struct btf_enum64 {
7517    pub name_off: __u32,
7518    pub val_lo32: __u32,
7519    pub val_hi32: __u32,
7520}
7521#[repr(C)]
7522#[derive(Debug, Copy, Clone)]
7523pub struct bpf_object {
7524    _unused: [u8; 0],
7525}
7526pub const BTF_LITTLE_ENDIAN: btf_endianness = 0;
7527pub const BTF_BIG_ENDIAN: btf_endianness = 1;
7528pub type btf_endianness = ::std::os::raw::c_uint;
7529unsafe extern "C" {
7530    pub fn btf__free(btf: *mut btf);
7531}
7532unsafe extern "C" {
7533    pub fn btf__new(data: *const ::std::os::raw::c_void, size: __u32) -> *mut btf;
7534}
7535unsafe extern "C" {
7536    pub fn btf__new_split(
7537        data: *const ::std::os::raw::c_void,
7538        size: __u32,
7539        base_btf: *mut btf,
7540    ) -> *mut btf;
7541}
7542unsafe extern "C" {
7543    pub fn btf__new_empty() -> *mut btf;
7544}
7545unsafe extern "C" {
7546    pub fn btf__new_empty_split(base_btf: *mut btf) -> *mut btf;
7547}
7548unsafe extern "C" {
7549    pub fn btf__distill_base(
7550        src_btf: *const btf,
7551        new_base_btf: *mut *mut btf,
7552        new_split_btf: *mut *mut btf,
7553    ) -> ::std::os::raw::c_int;
7554}
7555unsafe extern "C" {
7556    pub fn btf__parse(path: *const ::std::os::raw::c_char, btf_ext: *mut *mut btf_ext) -> *mut btf;
7557}
7558unsafe extern "C" {
7559    pub fn btf__parse_split(path: *const ::std::os::raw::c_char, base_btf: *mut btf) -> *mut btf;
7560}
7561unsafe extern "C" {
7562    pub fn btf__parse_elf(
7563        path: *const ::std::os::raw::c_char,
7564        btf_ext: *mut *mut btf_ext,
7565    ) -> *mut btf;
7566}
7567unsafe extern "C" {
7568    pub fn btf__parse_elf_split(
7569        path: *const ::std::os::raw::c_char,
7570        base_btf: *mut btf,
7571    ) -> *mut btf;
7572}
7573unsafe extern "C" {
7574    pub fn btf__parse_raw(path: *const ::std::os::raw::c_char) -> *mut btf;
7575}
7576unsafe extern "C" {
7577    pub fn btf__parse_raw_split(
7578        path: *const ::std::os::raw::c_char,
7579        base_btf: *mut btf,
7580    ) -> *mut btf;
7581}
7582unsafe extern "C" {
7583    pub fn btf__load_vmlinux_btf() -> *mut btf;
7584}
7585unsafe extern "C" {
7586    pub fn btf__load_module_btf(
7587        module_name: *const ::std::os::raw::c_char,
7588        vmlinux_btf: *mut btf,
7589    ) -> *mut btf;
7590}
7591unsafe extern "C" {
7592    pub fn btf__load_from_kernel_by_id(id: __u32) -> *mut btf;
7593}
7594unsafe extern "C" {
7595    pub fn btf__load_from_kernel_by_id_split(id: __u32, base_btf: *mut btf) -> *mut btf;
7596}
7597unsafe extern "C" {
7598    pub fn btf__load_into_kernel(btf: *mut btf) -> ::std::os::raw::c_int;
7599}
7600unsafe extern "C" {
7601    pub fn btf__find_by_name(btf: *const btf, type_name: *const ::std::os::raw::c_char) -> __s32;
7602}
7603unsafe extern "C" {
7604    pub fn btf__find_by_name_kind(
7605        btf: *const btf,
7606        type_name: *const ::std::os::raw::c_char,
7607        kind: __u32,
7608    ) -> __s32;
7609}
7610unsafe extern "C" {
7611    pub fn btf__type_cnt(btf: *const btf) -> __u32;
7612}
7613unsafe extern "C" {
7614    pub fn btf__base_btf(btf: *const btf) -> *const btf;
7615}
7616unsafe extern "C" {
7617    pub fn btf__type_by_id(btf: *const btf, id: __u32) -> *const btf_type;
7618}
7619unsafe extern "C" {
7620    pub fn btf__pointer_size(btf: *const btf) -> size_t;
7621}
7622unsafe extern "C" {
7623    pub fn btf__set_pointer_size(btf: *mut btf, ptr_sz: size_t) -> ::std::os::raw::c_int;
7624}
7625unsafe extern "C" {
7626    pub fn btf__endianness(btf: *const btf) -> btf_endianness;
7627}
7628unsafe extern "C" {
7629    pub fn btf__set_endianness(btf: *mut btf, endian: btf_endianness) -> ::std::os::raw::c_int;
7630}
7631unsafe extern "C" {
7632    pub fn btf__resolve_size(btf: *const btf, type_id: __u32) -> __s64;
7633}
7634unsafe extern "C" {
7635    pub fn btf__resolve_type(btf: *const btf, type_id: __u32) -> ::std::os::raw::c_int;
7636}
7637unsafe extern "C" {
7638    pub fn btf__align_of(btf: *const btf, id: __u32) -> ::std::os::raw::c_int;
7639}
7640unsafe extern "C" {
7641    pub fn btf__fd(btf: *const btf) -> ::std::os::raw::c_int;
7642}
7643unsafe extern "C" {
7644    pub fn btf__set_fd(btf: *mut btf, fd: ::std::os::raw::c_int);
7645}
7646unsafe extern "C" {
7647    pub fn btf__raw_data(btf: *const btf, size: *mut __u32) -> *const ::std::os::raw::c_void;
7648}
7649unsafe extern "C" {
7650    pub fn btf__name_by_offset(btf: *const btf, offset: __u32) -> *const ::std::os::raw::c_char;
7651}
7652unsafe extern "C" {
7653    pub fn btf__str_by_offset(btf: *const btf, offset: __u32) -> *const ::std::os::raw::c_char;
7654}
7655unsafe extern "C" {
7656    pub fn btf_ext__new(data: *const __u8, size: __u32) -> *mut btf_ext;
7657}
7658unsafe extern "C" {
7659    pub fn btf_ext__free(btf_ext: *mut btf_ext);
7660}
7661unsafe extern "C" {
7662    pub fn btf_ext__raw_data(
7663        btf_ext: *const btf_ext,
7664        size: *mut __u32,
7665    ) -> *const ::std::os::raw::c_void;
7666}
7667unsafe extern "C" {
7668    pub fn btf_ext__endianness(btf_ext: *const btf_ext) -> btf_endianness;
7669}
7670unsafe extern "C" {
7671    pub fn btf_ext__set_endianness(
7672        btf_ext: *mut btf_ext,
7673        endian: btf_endianness,
7674    ) -> ::std::os::raw::c_int;
7675}
7676unsafe extern "C" {
7677    pub fn btf__find_str(btf: *mut btf, s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
7678}
7679unsafe extern "C" {
7680    pub fn btf__add_str(btf: *mut btf, s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
7681}
7682unsafe extern "C" {
7683    pub fn btf__add_type(
7684        btf: *mut btf,
7685        src_btf: *const btf,
7686        src_type: *const btf_type,
7687    ) -> ::std::os::raw::c_int;
7688}
7689unsafe extern "C" {
7690    pub fn btf__add_btf(btf: *mut btf, src_btf: *const btf) -> ::std::os::raw::c_int;
7691}
7692unsafe extern "C" {
7693    pub fn btf__add_int(
7694        btf: *mut btf,
7695        name: *const ::std::os::raw::c_char,
7696        byte_sz: size_t,
7697        encoding: ::std::os::raw::c_int,
7698    ) -> ::std::os::raw::c_int;
7699}
7700unsafe extern "C" {
7701    pub fn btf__add_float(
7702        btf: *mut btf,
7703        name: *const ::std::os::raw::c_char,
7704        byte_sz: size_t,
7705    ) -> ::std::os::raw::c_int;
7706}
7707unsafe extern "C" {
7708    pub fn btf__add_ptr(btf: *mut btf, ref_type_id: ::std::os::raw::c_int)
7709        -> ::std::os::raw::c_int;
7710}
7711unsafe extern "C" {
7712    pub fn btf__add_array(
7713        btf: *mut btf,
7714        index_type_id: ::std::os::raw::c_int,
7715        elem_type_id: ::std::os::raw::c_int,
7716        nr_elems: __u32,
7717    ) -> ::std::os::raw::c_int;
7718}
7719unsafe extern "C" {
7720    pub fn btf__add_struct(
7721        btf: *mut btf,
7722        name: *const ::std::os::raw::c_char,
7723        sz: __u32,
7724    ) -> ::std::os::raw::c_int;
7725}
7726unsafe extern "C" {
7727    pub fn btf__add_union(
7728        btf: *mut btf,
7729        name: *const ::std::os::raw::c_char,
7730        sz: __u32,
7731    ) -> ::std::os::raw::c_int;
7732}
7733unsafe extern "C" {
7734    pub fn btf__add_field(
7735        btf: *mut btf,
7736        name: *const ::std::os::raw::c_char,
7737        field_type_id: ::std::os::raw::c_int,
7738        bit_offset: __u32,
7739        bit_size: __u32,
7740    ) -> ::std::os::raw::c_int;
7741}
7742unsafe extern "C" {
7743    pub fn btf__add_enum(
7744        btf: *mut btf,
7745        name: *const ::std::os::raw::c_char,
7746        bytes_sz: __u32,
7747    ) -> ::std::os::raw::c_int;
7748}
7749unsafe extern "C" {
7750    pub fn btf__add_enum_value(
7751        btf: *mut btf,
7752        name: *const ::std::os::raw::c_char,
7753        value: __s64,
7754    ) -> ::std::os::raw::c_int;
7755}
7756unsafe extern "C" {
7757    pub fn btf__add_enum64(
7758        btf: *mut btf,
7759        name: *const ::std::os::raw::c_char,
7760        bytes_sz: __u32,
7761        is_signed: bool,
7762    ) -> ::std::os::raw::c_int;
7763}
7764unsafe extern "C" {
7765    pub fn btf__add_enum64_value(
7766        btf: *mut btf,
7767        name: *const ::std::os::raw::c_char,
7768        value: __u64,
7769    ) -> ::std::os::raw::c_int;
7770}
7771pub const BTF_FWD_STRUCT: btf_fwd_kind = 0;
7772pub const BTF_FWD_UNION: btf_fwd_kind = 1;
7773pub const BTF_FWD_ENUM: btf_fwd_kind = 2;
7774pub type btf_fwd_kind = ::std::os::raw::c_uint;
7775unsafe extern "C" {
7776    pub fn btf__add_fwd(
7777        btf: *mut btf,
7778        name: *const ::std::os::raw::c_char,
7779        fwd_kind: btf_fwd_kind,
7780    ) -> ::std::os::raw::c_int;
7781}
7782unsafe extern "C" {
7783    pub fn btf__add_typedef(
7784        btf: *mut btf,
7785        name: *const ::std::os::raw::c_char,
7786        ref_type_id: ::std::os::raw::c_int,
7787    ) -> ::std::os::raw::c_int;
7788}
7789unsafe extern "C" {
7790    pub fn btf__add_volatile(
7791        btf: *mut btf,
7792        ref_type_id: ::std::os::raw::c_int,
7793    ) -> ::std::os::raw::c_int;
7794}
7795unsafe extern "C" {
7796    pub fn btf__add_const(
7797        btf: *mut btf,
7798        ref_type_id: ::std::os::raw::c_int,
7799    ) -> ::std::os::raw::c_int;
7800}
7801unsafe extern "C" {
7802    pub fn btf__add_restrict(
7803        btf: *mut btf,
7804        ref_type_id: ::std::os::raw::c_int,
7805    ) -> ::std::os::raw::c_int;
7806}
7807unsafe extern "C" {
7808    pub fn btf__add_type_tag(
7809        btf: *mut btf,
7810        value: *const ::std::os::raw::c_char,
7811        ref_type_id: ::std::os::raw::c_int,
7812    ) -> ::std::os::raw::c_int;
7813}
7814unsafe extern "C" {
7815    pub fn btf__add_type_attr(
7816        btf: *mut btf,
7817        value: *const ::std::os::raw::c_char,
7818        ref_type_id: ::std::os::raw::c_int,
7819    ) -> ::std::os::raw::c_int;
7820}
7821unsafe extern "C" {
7822    pub fn btf__add_func(
7823        btf: *mut btf,
7824        name: *const ::std::os::raw::c_char,
7825        linkage: btf_func_linkage,
7826        proto_type_id: ::std::os::raw::c_int,
7827    ) -> ::std::os::raw::c_int;
7828}
7829unsafe extern "C" {
7830    pub fn btf__add_func_proto(
7831        btf: *mut btf,
7832        ret_type_id: ::std::os::raw::c_int,
7833    ) -> ::std::os::raw::c_int;
7834}
7835unsafe extern "C" {
7836    pub fn btf__add_func_param(
7837        btf: *mut btf,
7838        name: *const ::std::os::raw::c_char,
7839        type_id: ::std::os::raw::c_int,
7840    ) -> ::std::os::raw::c_int;
7841}
7842unsafe extern "C" {
7843    pub fn btf__add_var(
7844        btf: *mut btf,
7845        name: *const ::std::os::raw::c_char,
7846        linkage: ::std::os::raw::c_int,
7847        type_id: ::std::os::raw::c_int,
7848    ) -> ::std::os::raw::c_int;
7849}
7850unsafe extern "C" {
7851    pub fn btf__add_datasec(
7852        btf: *mut btf,
7853        name: *const ::std::os::raw::c_char,
7854        byte_sz: __u32,
7855    ) -> ::std::os::raw::c_int;
7856}
7857unsafe extern "C" {
7858    pub fn btf__add_datasec_var_info(
7859        btf: *mut btf,
7860        var_type_id: ::std::os::raw::c_int,
7861        offset: __u32,
7862        byte_sz: __u32,
7863    ) -> ::std::os::raw::c_int;
7864}
7865unsafe extern "C" {
7866    pub fn btf__add_decl_tag(
7867        btf: *mut btf,
7868        value: *const ::std::os::raw::c_char,
7869        ref_type_id: ::std::os::raw::c_int,
7870        component_idx: ::std::os::raw::c_int,
7871    ) -> ::std::os::raw::c_int;
7872}
7873unsafe extern "C" {
7874    pub fn btf__add_decl_attr(
7875        btf: *mut btf,
7876        value: *const ::std::os::raw::c_char,
7877        ref_type_id: ::std::os::raw::c_int,
7878        component_idx: ::std::os::raw::c_int,
7879    ) -> ::std::os::raw::c_int;
7880}
7881#[repr(C)]
7882#[derive(Debug, Copy, Clone)]
7883pub struct btf_dedup_opts {
7884    pub sz: size_t,
7885    pub btf_ext: *mut btf_ext,
7886    pub force_collisions: bool,
7887    pub __bindgen_padding_0: [u8; 7usize],
7888}
7889impl Default for btf_dedup_opts {
7890    fn default() -> Self {
7891        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7892        unsafe {
7893            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7894            s.assume_init()
7895        }
7896    }
7897}
7898unsafe extern "C" {
7899    pub fn btf__dedup(btf: *mut btf, opts: *const btf_dedup_opts) -> ::std::os::raw::c_int;
7900}
7901unsafe extern "C" {
7902    pub fn btf__relocate(btf: *mut btf, base_btf: *const btf) -> ::std::os::raw::c_int;
7903}
7904#[repr(C)]
7905#[derive(Debug, Copy, Clone)]
7906pub struct btf_dump {
7907    _unused: [u8; 0],
7908}
7909#[repr(C)]
7910#[derive(Debug, Default, Copy, Clone)]
7911pub struct btf_dump_opts {
7912    pub sz: size_t,
7913}
7914pub type btf_dump_printf_fn_t = ::std::option::Option<
7915    unsafe extern "C" fn(
7916        ctx: *mut ::std::os::raw::c_void,
7917        fmt: *const ::std::os::raw::c_char,
7918        args: *mut __va_list_tag,
7919    ),
7920>;
7921unsafe extern "C" {
7922    pub fn btf_dump__new(
7923        btf: *const btf,
7924        printf_fn: btf_dump_printf_fn_t,
7925        ctx: *mut ::std::os::raw::c_void,
7926        opts: *const btf_dump_opts,
7927    ) -> *mut btf_dump;
7928}
7929unsafe extern "C" {
7930    pub fn btf_dump__free(d: *mut btf_dump);
7931}
7932unsafe extern "C" {
7933    pub fn btf_dump__dump_type(d: *mut btf_dump, id: __u32) -> ::std::os::raw::c_int;
7934}
7935#[repr(C)]
7936#[derive(Debug, Copy, Clone)]
7937pub struct btf_dump_emit_type_decl_opts {
7938    pub sz: size_t,
7939    pub field_name: *const ::std::os::raw::c_char,
7940    pub indent_level: ::std::os::raw::c_int,
7941    pub strip_mods: bool,
7942    pub __bindgen_padding_0: [u8; 3usize],
7943}
7944impl Default for btf_dump_emit_type_decl_opts {
7945    fn default() -> Self {
7946        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7947        unsafe {
7948            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7949            s.assume_init()
7950        }
7951    }
7952}
7953unsafe extern "C" {
7954    pub fn btf_dump__emit_type_decl(
7955        d: *mut btf_dump,
7956        id: __u32,
7957        opts: *const btf_dump_emit_type_decl_opts,
7958    ) -> ::std::os::raw::c_int;
7959}
7960#[repr(C)]
7961#[derive(Debug, Copy, Clone)]
7962pub struct btf_dump_type_data_opts {
7963    pub sz: size_t,
7964    pub indent_str: *const ::std::os::raw::c_char,
7965    pub indent_level: ::std::os::raw::c_int,
7966    pub compact: bool,
7967    pub skip_names: bool,
7968    pub emit_zeroes: bool,
7969    pub emit_strings: bool,
7970}
7971impl Default for btf_dump_type_data_opts {
7972    fn default() -> Self {
7973        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7974        unsafe {
7975            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7976            s.assume_init()
7977        }
7978    }
7979}
7980unsafe extern "C" {
7981    pub fn btf_dump__dump_type_data(
7982        d: *mut btf_dump,
7983        id: __u32,
7984        data: *const ::std::os::raw::c_void,
7985        data_sz: size_t,
7986        opts: *const btf_dump_type_data_opts,
7987    ) -> ::std::os::raw::c_int;
7988}
7989unsafe extern "C" {
7990    pub fn vdprintf(
7991        __fd: ::std::os::raw::c_int,
7992        __fmt: *const ::std::os::raw::c_char,
7993        __arg: *mut __va_list_tag,
7994    ) -> ::std::os::raw::c_int;
7995}
7996pub type pid_t = __pid_t;
7997unsafe extern "C" {
7998    pub fn libbpf_major_version() -> __u32;
7999}
8000unsafe extern "C" {
8001    pub fn libbpf_minor_version() -> __u32;
8002}
8003unsafe extern "C" {
8004    pub fn libbpf_version_string() -> *const ::std::os::raw::c_char;
8005}
8006unsafe extern "C" {
8007    pub fn libbpf_strerror(
8008        err: ::std::os::raw::c_int,
8009        buf: *mut ::std::os::raw::c_char,
8010        size: size_t,
8011    ) -> ::std::os::raw::c_int;
8012}
8013unsafe extern "C" {
8014    pub fn libbpf_bpf_attach_type_str(t: bpf_attach_type) -> *const ::std::os::raw::c_char;
8015}
8016unsafe extern "C" {
8017    pub fn libbpf_bpf_link_type_str(t: bpf_link_type) -> *const ::std::os::raw::c_char;
8018}
8019unsafe extern "C" {
8020    pub fn libbpf_bpf_map_type_str(t: bpf_map_type) -> *const ::std::os::raw::c_char;
8021}
8022unsafe extern "C" {
8023    pub fn libbpf_bpf_prog_type_str(t: bpf_prog_type) -> *const ::std::os::raw::c_char;
8024}
8025pub const LIBBPF_WARN: libbpf_print_level = 0;
8026pub const LIBBPF_INFO: libbpf_print_level = 1;
8027pub const LIBBPF_DEBUG: libbpf_print_level = 2;
8028pub type libbpf_print_level = ::std::os::raw::c_uint;
8029pub type libbpf_print_fn_t = ::std::option::Option<
8030    unsafe extern "C" fn(
8031        level: libbpf_print_level,
8032        arg1: *const ::std::os::raw::c_char,
8033        ap: *mut __va_list_tag,
8034    ) -> ::std::os::raw::c_int,
8035>;
8036unsafe extern "C" {
8037    pub fn libbpf_set_print(fn_: libbpf_print_fn_t) -> libbpf_print_fn_t;
8038}
8039#[repr(C)]
8040#[derive(Debug, Copy, Clone)]
8041pub struct bpf_object_open_opts {
8042    pub sz: size_t,
8043    pub object_name: *const ::std::os::raw::c_char,
8044    pub relaxed_maps: bool,
8045    pub __bindgen_padding_0: [u8; 7usize],
8046    pub pin_root_path: *const ::std::os::raw::c_char,
8047    pub _bitfield_align_1: [u8; 0],
8048    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
8049    pub __bindgen_padding_1: [u8; 4usize],
8050    pub kconfig: *const ::std::os::raw::c_char,
8051    pub btf_custom_path: *const ::std::os::raw::c_char,
8052    pub kernel_log_buf: *mut ::std::os::raw::c_char,
8053    pub kernel_log_size: size_t,
8054    pub kernel_log_level: __u32,
8055    pub __bindgen_padding_2: [u8; 4usize],
8056    pub bpf_token_path: *const ::std::os::raw::c_char,
8057}
8058impl Default for bpf_object_open_opts {
8059    fn default() -> Self {
8060        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8061        unsafe {
8062            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8063            s.assume_init()
8064        }
8065    }
8066}
8067impl bpf_object_open_opts {
8068    #[inline]
8069    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
8070        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
8071        __bindgen_bitfield_unit
8072    }
8073}
8074unsafe extern "C" {
8075    pub fn bpf_object__open(path: *const ::std::os::raw::c_char) -> *mut bpf_object;
8076}
8077unsafe extern "C" {
8078    pub fn bpf_object__open_file(
8079        path: *const ::std::os::raw::c_char,
8080        opts: *const bpf_object_open_opts,
8081    ) -> *mut bpf_object;
8082}
8083unsafe extern "C" {
8084    pub fn bpf_object__open_mem(
8085        obj_buf: *const ::std::os::raw::c_void,
8086        obj_buf_sz: size_t,
8087        opts: *const bpf_object_open_opts,
8088    ) -> *mut bpf_object;
8089}
8090unsafe extern "C" {
8091    pub fn bpf_object__prepare(obj: *mut bpf_object) -> ::std::os::raw::c_int;
8092}
8093unsafe extern "C" {
8094    pub fn bpf_object__load(obj: *mut bpf_object) -> ::std::os::raw::c_int;
8095}
8096unsafe extern "C" {
8097    pub fn bpf_object__close(obj: *mut bpf_object);
8098}
8099unsafe extern "C" {
8100    pub fn bpf_object__pin_maps(
8101        obj: *mut bpf_object,
8102        path: *const ::std::os::raw::c_char,
8103    ) -> ::std::os::raw::c_int;
8104}
8105unsafe extern "C" {
8106    pub fn bpf_object__unpin_maps(
8107        obj: *mut bpf_object,
8108        path: *const ::std::os::raw::c_char,
8109    ) -> ::std::os::raw::c_int;
8110}
8111unsafe extern "C" {
8112    pub fn bpf_object__pin_programs(
8113        obj: *mut bpf_object,
8114        path: *const ::std::os::raw::c_char,
8115    ) -> ::std::os::raw::c_int;
8116}
8117unsafe extern "C" {
8118    pub fn bpf_object__unpin_programs(
8119        obj: *mut bpf_object,
8120        path: *const ::std::os::raw::c_char,
8121    ) -> ::std::os::raw::c_int;
8122}
8123unsafe extern "C" {
8124    pub fn bpf_object__pin(
8125        object: *mut bpf_object,
8126        path: *const ::std::os::raw::c_char,
8127    ) -> ::std::os::raw::c_int;
8128}
8129unsafe extern "C" {
8130    pub fn bpf_object__unpin(
8131        object: *mut bpf_object,
8132        path: *const ::std::os::raw::c_char,
8133    ) -> ::std::os::raw::c_int;
8134}
8135unsafe extern "C" {
8136    pub fn bpf_object__name(obj: *const bpf_object) -> *const ::std::os::raw::c_char;
8137}
8138unsafe extern "C" {
8139    pub fn bpf_object__kversion(obj: *const bpf_object) -> ::std::os::raw::c_uint;
8140}
8141unsafe extern "C" {
8142    pub fn bpf_object__set_kversion(
8143        obj: *mut bpf_object,
8144        kern_version: __u32,
8145    ) -> ::std::os::raw::c_int;
8146}
8147unsafe extern "C" {
8148    pub fn bpf_object__token_fd(obj: *const bpf_object) -> ::std::os::raw::c_int;
8149}
8150unsafe extern "C" {
8151    pub fn bpf_object__btf(obj: *const bpf_object) -> *mut btf;
8152}
8153unsafe extern "C" {
8154    pub fn bpf_object__btf_fd(obj: *const bpf_object) -> ::std::os::raw::c_int;
8155}
8156unsafe extern "C" {
8157    pub fn bpf_object__find_program_by_name(
8158        obj: *const bpf_object,
8159        name: *const ::std::os::raw::c_char,
8160    ) -> *mut bpf_program;
8161}
8162unsafe extern "C" {
8163    pub fn libbpf_prog_type_by_name(
8164        name: *const ::std::os::raw::c_char,
8165        prog_type: *mut bpf_prog_type,
8166        expected_attach_type: *mut bpf_attach_type,
8167    ) -> ::std::os::raw::c_int;
8168}
8169unsafe extern "C" {
8170    pub fn libbpf_attach_type_by_name(
8171        name: *const ::std::os::raw::c_char,
8172        attach_type: *mut bpf_attach_type,
8173    ) -> ::std::os::raw::c_int;
8174}
8175unsafe extern "C" {
8176    pub fn libbpf_find_vmlinux_btf_id(
8177        name: *const ::std::os::raw::c_char,
8178        attach_type: bpf_attach_type,
8179    ) -> ::std::os::raw::c_int;
8180}
8181unsafe extern "C" {
8182    pub fn bpf_object__next_program(
8183        obj: *const bpf_object,
8184        prog: *mut bpf_program,
8185    ) -> *mut bpf_program;
8186}
8187unsafe extern "C" {
8188    pub fn bpf_object__prev_program(
8189        obj: *const bpf_object,
8190        prog: *mut bpf_program,
8191    ) -> *mut bpf_program;
8192}
8193unsafe extern "C" {
8194    pub fn bpf_program__set_ifindex(prog: *mut bpf_program, ifindex: __u32);
8195}
8196unsafe extern "C" {
8197    pub fn bpf_program__name(prog: *const bpf_program) -> *const ::std::os::raw::c_char;
8198}
8199unsafe extern "C" {
8200    pub fn bpf_program__section_name(prog: *const bpf_program) -> *const ::std::os::raw::c_char;
8201}
8202unsafe extern "C" {
8203    pub fn bpf_program__autoload(prog: *const bpf_program) -> bool;
8204}
8205unsafe extern "C" {
8206    pub fn bpf_program__set_autoload(
8207        prog: *mut bpf_program,
8208        autoload: bool,
8209    ) -> ::std::os::raw::c_int;
8210}
8211unsafe extern "C" {
8212    pub fn bpf_program__autoattach(prog: *const bpf_program) -> bool;
8213}
8214unsafe extern "C" {
8215    pub fn bpf_program__set_autoattach(prog: *mut bpf_program, autoattach: bool);
8216}
8217unsafe extern "C" {
8218    pub fn bpf_program__insns(prog: *const bpf_program) -> *const bpf_insn;
8219}
8220unsafe extern "C" {
8221    pub fn bpf_program__set_insns(
8222        prog: *mut bpf_program,
8223        new_insns: *mut bpf_insn,
8224        new_insn_cnt: size_t,
8225    ) -> ::std::os::raw::c_int;
8226}
8227unsafe extern "C" {
8228    pub fn bpf_program__insn_cnt(prog: *const bpf_program) -> size_t;
8229}
8230unsafe extern "C" {
8231    pub fn bpf_program__fd(prog: *const bpf_program) -> ::std::os::raw::c_int;
8232}
8233unsafe extern "C" {
8234    pub fn bpf_program__pin(
8235        prog: *mut bpf_program,
8236        path: *const ::std::os::raw::c_char,
8237    ) -> ::std::os::raw::c_int;
8238}
8239unsafe extern "C" {
8240    pub fn bpf_program__unpin(
8241        prog: *mut bpf_program,
8242        path: *const ::std::os::raw::c_char,
8243    ) -> ::std::os::raw::c_int;
8244}
8245unsafe extern "C" {
8246    pub fn bpf_program__unload(prog: *mut bpf_program);
8247}
8248#[repr(C)]
8249#[derive(Debug, Copy, Clone)]
8250pub struct bpf_link {
8251    _unused: [u8; 0],
8252}
8253unsafe extern "C" {
8254    pub fn bpf_link__open(path: *const ::std::os::raw::c_char) -> *mut bpf_link;
8255}
8256unsafe extern "C" {
8257    pub fn bpf_link__fd(link: *const bpf_link) -> ::std::os::raw::c_int;
8258}
8259unsafe extern "C" {
8260    pub fn bpf_link__pin_path(link: *const bpf_link) -> *const ::std::os::raw::c_char;
8261}
8262unsafe extern "C" {
8263    pub fn bpf_link__pin(
8264        link: *mut bpf_link,
8265        path: *const ::std::os::raw::c_char,
8266    ) -> ::std::os::raw::c_int;
8267}
8268unsafe extern "C" {
8269    pub fn bpf_link__unpin(link: *mut bpf_link) -> ::std::os::raw::c_int;
8270}
8271unsafe extern "C" {
8272    pub fn bpf_link__update_program(
8273        link: *mut bpf_link,
8274        prog: *mut bpf_program,
8275    ) -> ::std::os::raw::c_int;
8276}
8277unsafe extern "C" {
8278    pub fn bpf_link__disconnect(link: *mut bpf_link);
8279}
8280unsafe extern "C" {
8281    pub fn bpf_link__detach(link: *mut bpf_link) -> ::std::os::raw::c_int;
8282}
8283unsafe extern "C" {
8284    pub fn bpf_link__destroy(link: *mut bpf_link) -> ::std::os::raw::c_int;
8285}
8286unsafe extern "C" {
8287    pub fn bpf_program__attach(prog: *const bpf_program) -> *mut bpf_link;
8288}
8289#[repr(C)]
8290#[derive(Debug, Default, Copy, Clone)]
8291pub struct bpf_perf_event_opts {
8292    pub sz: size_t,
8293    pub bpf_cookie: __u64,
8294    pub force_ioctl_attach: bool,
8295    pub __bindgen_padding_0: [u8; 7usize],
8296}
8297unsafe extern "C" {
8298    pub fn bpf_program__attach_perf_event(
8299        prog: *const bpf_program,
8300        pfd: ::std::os::raw::c_int,
8301    ) -> *mut bpf_link;
8302}
8303unsafe extern "C" {
8304    pub fn bpf_program__attach_perf_event_opts(
8305        prog: *const bpf_program,
8306        pfd: ::std::os::raw::c_int,
8307        opts: *const bpf_perf_event_opts,
8308    ) -> *mut bpf_link;
8309}
8310pub const PROBE_ATTACH_MODE_DEFAULT: probe_attach_mode = 0;
8311pub const PROBE_ATTACH_MODE_LEGACY: probe_attach_mode = 1;
8312pub const PROBE_ATTACH_MODE_PERF: probe_attach_mode = 2;
8313pub const PROBE_ATTACH_MODE_LINK: probe_attach_mode = 3;
8314pub type probe_attach_mode = ::std::os::raw::c_uint;
8315#[repr(C)]
8316#[derive(Debug, Copy, Clone)]
8317pub struct bpf_kprobe_opts {
8318    pub sz: size_t,
8319    pub bpf_cookie: __u64,
8320    pub offset: size_t,
8321    pub retprobe: bool,
8322    pub __bindgen_padding_0: [u8; 3usize],
8323    pub attach_mode: probe_attach_mode,
8324}
8325impl Default for bpf_kprobe_opts {
8326    fn default() -> Self {
8327        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8328        unsafe {
8329            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8330            s.assume_init()
8331        }
8332    }
8333}
8334unsafe extern "C" {
8335    pub fn bpf_program__attach_kprobe(
8336        prog: *const bpf_program,
8337        retprobe: bool,
8338        func_name: *const ::std::os::raw::c_char,
8339    ) -> *mut bpf_link;
8340}
8341unsafe extern "C" {
8342    pub fn bpf_program__attach_kprobe_opts(
8343        prog: *const bpf_program,
8344        func_name: *const ::std::os::raw::c_char,
8345        opts: *const bpf_kprobe_opts,
8346    ) -> *mut bpf_link;
8347}
8348#[repr(C)]
8349#[derive(Debug, Copy, Clone)]
8350pub struct bpf_kprobe_multi_opts {
8351    pub sz: size_t,
8352    pub syms: *mut *const ::std::os::raw::c_char,
8353    pub addrs: *const ::std::os::raw::c_ulong,
8354    pub cookies: *const __u64,
8355    pub cnt: size_t,
8356    pub retprobe: bool,
8357    pub session: bool,
8358    pub unique_match: bool,
8359    pub __bindgen_padding_0: [u8; 5usize],
8360}
8361impl Default for bpf_kprobe_multi_opts {
8362    fn default() -> Self {
8363        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8364        unsafe {
8365            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8366            s.assume_init()
8367        }
8368    }
8369}
8370unsafe extern "C" {
8371    pub fn bpf_program__attach_kprobe_multi_opts(
8372        prog: *const bpf_program,
8373        pattern: *const ::std::os::raw::c_char,
8374        opts: *const bpf_kprobe_multi_opts,
8375    ) -> *mut bpf_link;
8376}
8377#[repr(C)]
8378#[derive(Debug, Copy, Clone)]
8379pub struct bpf_uprobe_multi_opts {
8380    pub sz: size_t,
8381    pub syms: *mut *const ::std::os::raw::c_char,
8382    pub offsets: *const ::std::os::raw::c_ulong,
8383    pub ref_ctr_offsets: *const ::std::os::raw::c_ulong,
8384    pub cookies: *const __u64,
8385    pub cnt: size_t,
8386    pub retprobe: bool,
8387    pub session: bool,
8388    pub __bindgen_padding_0: [u8; 6usize],
8389}
8390impl Default for bpf_uprobe_multi_opts {
8391    fn default() -> Self {
8392        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8393        unsafe {
8394            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8395            s.assume_init()
8396        }
8397    }
8398}
8399unsafe extern "C" {
8400    pub fn bpf_program__attach_uprobe_multi(
8401        prog: *const bpf_program,
8402        pid: pid_t,
8403        binary_path: *const ::std::os::raw::c_char,
8404        func_pattern: *const ::std::os::raw::c_char,
8405        opts: *const bpf_uprobe_multi_opts,
8406    ) -> *mut bpf_link;
8407}
8408#[repr(C)]
8409#[derive(Debug, Default, Copy, Clone)]
8410pub struct bpf_ksyscall_opts {
8411    pub sz: size_t,
8412    pub bpf_cookie: __u64,
8413    pub retprobe: bool,
8414    pub __bindgen_padding_0: [u8; 7usize],
8415}
8416unsafe extern "C" {
8417    pub fn bpf_program__attach_ksyscall(
8418        prog: *const bpf_program,
8419        syscall_name: *const ::std::os::raw::c_char,
8420        opts: *const bpf_ksyscall_opts,
8421    ) -> *mut bpf_link;
8422}
8423#[repr(C)]
8424#[derive(Debug, Copy, Clone)]
8425pub struct bpf_uprobe_opts {
8426    pub sz: size_t,
8427    pub ref_ctr_offset: size_t,
8428    pub bpf_cookie: __u64,
8429    pub retprobe: bool,
8430    pub __bindgen_padding_0: [u8; 7usize],
8431    pub func_name: *const ::std::os::raw::c_char,
8432    pub attach_mode: probe_attach_mode,
8433    pub __bindgen_padding_1: [u8; 4usize],
8434}
8435impl Default for bpf_uprobe_opts {
8436    fn default() -> Self {
8437        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8438        unsafe {
8439            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8440            s.assume_init()
8441        }
8442    }
8443}
8444unsafe extern "C" {
8445    pub fn bpf_program__attach_uprobe(
8446        prog: *const bpf_program,
8447        retprobe: bool,
8448        pid: pid_t,
8449        binary_path: *const ::std::os::raw::c_char,
8450        func_offset: size_t,
8451    ) -> *mut bpf_link;
8452}
8453unsafe extern "C" {
8454    pub fn bpf_program__attach_uprobe_opts(
8455        prog: *const bpf_program,
8456        pid: pid_t,
8457        binary_path: *const ::std::os::raw::c_char,
8458        func_offset: size_t,
8459        opts: *const bpf_uprobe_opts,
8460    ) -> *mut bpf_link;
8461}
8462#[repr(C)]
8463#[derive(Debug, Default, Copy, Clone)]
8464pub struct bpf_usdt_opts {
8465    pub sz: size_t,
8466    pub usdt_cookie: __u64,
8467}
8468unsafe extern "C" {
8469    pub fn bpf_program__attach_usdt(
8470        prog: *const bpf_program,
8471        pid: pid_t,
8472        binary_path: *const ::std::os::raw::c_char,
8473        usdt_provider: *const ::std::os::raw::c_char,
8474        usdt_name: *const ::std::os::raw::c_char,
8475        opts: *const bpf_usdt_opts,
8476    ) -> *mut bpf_link;
8477}
8478#[repr(C)]
8479#[derive(Debug, Default, Copy, Clone)]
8480pub struct bpf_tracepoint_opts {
8481    pub sz: size_t,
8482    pub bpf_cookie: __u64,
8483}
8484unsafe extern "C" {
8485    pub fn bpf_program__attach_tracepoint(
8486        prog: *const bpf_program,
8487        tp_category: *const ::std::os::raw::c_char,
8488        tp_name: *const ::std::os::raw::c_char,
8489    ) -> *mut bpf_link;
8490}
8491unsafe extern "C" {
8492    pub fn bpf_program__attach_tracepoint_opts(
8493        prog: *const bpf_program,
8494        tp_category: *const ::std::os::raw::c_char,
8495        tp_name: *const ::std::os::raw::c_char,
8496        opts: *const bpf_tracepoint_opts,
8497    ) -> *mut bpf_link;
8498}
8499#[repr(C)]
8500#[derive(Debug, Default, Copy, Clone)]
8501pub struct bpf_raw_tracepoint_opts {
8502    pub sz: size_t,
8503    pub cookie: __u64,
8504}
8505unsafe extern "C" {
8506    pub fn bpf_program__attach_raw_tracepoint(
8507        prog: *const bpf_program,
8508        tp_name: *const ::std::os::raw::c_char,
8509    ) -> *mut bpf_link;
8510}
8511unsafe extern "C" {
8512    pub fn bpf_program__attach_raw_tracepoint_opts(
8513        prog: *const bpf_program,
8514        tp_name: *const ::std::os::raw::c_char,
8515        opts: *mut bpf_raw_tracepoint_opts,
8516    ) -> *mut bpf_link;
8517}
8518#[repr(C)]
8519#[derive(Debug, Default, Copy, Clone)]
8520pub struct bpf_trace_opts {
8521    pub sz: size_t,
8522    pub cookie: __u64,
8523}
8524unsafe extern "C" {
8525    pub fn bpf_program__attach_trace(prog: *const bpf_program) -> *mut bpf_link;
8526}
8527unsafe extern "C" {
8528    pub fn bpf_program__attach_trace_opts(
8529        prog: *const bpf_program,
8530        opts: *const bpf_trace_opts,
8531    ) -> *mut bpf_link;
8532}
8533unsafe extern "C" {
8534    pub fn bpf_program__attach_lsm(prog: *const bpf_program) -> *mut bpf_link;
8535}
8536unsafe extern "C" {
8537    pub fn bpf_program__attach_cgroup(
8538        prog: *const bpf_program,
8539        cgroup_fd: ::std::os::raw::c_int,
8540    ) -> *mut bpf_link;
8541}
8542unsafe extern "C" {
8543    pub fn bpf_program__attach_netns(
8544        prog: *const bpf_program,
8545        netns_fd: ::std::os::raw::c_int,
8546    ) -> *mut bpf_link;
8547}
8548unsafe extern "C" {
8549    pub fn bpf_program__attach_sockmap(
8550        prog: *const bpf_program,
8551        map_fd: ::std::os::raw::c_int,
8552    ) -> *mut bpf_link;
8553}
8554unsafe extern "C" {
8555    pub fn bpf_program__attach_xdp(
8556        prog: *const bpf_program,
8557        ifindex: ::std::os::raw::c_int,
8558    ) -> *mut bpf_link;
8559}
8560unsafe extern "C" {
8561    pub fn bpf_program__attach_freplace(
8562        prog: *const bpf_program,
8563        target_fd: ::std::os::raw::c_int,
8564        attach_func_name: *const ::std::os::raw::c_char,
8565    ) -> *mut bpf_link;
8566}
8567#[repr(C)]
8568#[derive(Debug, Default, Copy, Clone)]
8569pub struct bpf_netfilter_opts {
8570    pub sz: size_t,
8571    pub pf: __u32,
8572    pub hooknum: __u32,
8573    pub priority: __s32,
8574    pub flags: __u32,
8575}
8576unsafe extern "C" {
8577    pub fn bpf_program__attach_netfilter(
8578        prog: *const bpf_program,
8579        opts: *const bpf_netfilter_opts,
8580    ) -> *mut bpf_link;
8581}
8582#[repr(C)]
8583#[derive(Debug, Default, Copy, Clone)]
8584pub struct bpf_tcx_opts {
8585    pub sz: size_t,
8586    pub flags: __u32,
8587    pub relative_fd: __u32,
8588    pub relative_id: __u32,
8589    pub __bindgen_padding_0: [u8; 4usize],
8590    pub expected_revision: __u64,
8591}
8592unsafe extern "C" {
8593    pub fn bpf_program__attach_tcx(
8594        prog: *const bpf_program,
8595        ifindex: ::std::os::raw::c_int,
8596        opts: *const bpf_tcx_opts,
8597    ) -> *mut bpf_link;
8598}
8599#[repr(C)]
8600#[derive(Debug, Default, Copy, Clone)]
8601pub struct bpf_netkit_opts {
8602    pub sz: size_t,
8603    pub flags: __u32,
8604    pub relative_fd: __u32,
8605    pub relative_id: __u32,
8606    pub __bindgen_padding_0: [u8; 4usize],
8607    pub expected_revision: __u64,
8608}
8609unsafe extern "C" {
8610    pub fn bpf_program__attach_netkit(
8611        prog: *const bpf_program,
8612        ifindex: ::std::os::raw::c_int,
8613        opts: *const bpf_netkit_opts,
8614    ) -> *mut bpf_link;
8615}
8616#[repr(C)]
8617#[derive(Debug, Default, Copy, Clone)]
8618pub struct bpf_cgroup_opts {
8619    pub sz: size_t,
8620    pub flags: __u32,
8621    pub relative_fd: __u32,
8622    pub relative_id: __u32,
8623    pub __bindgen_padding_0: [u8; 4usize],
8624    pub expected_revision: __u64,
8625}
8626unsafe extern "C" {
8627    pub fn bpf_program__attach_cgroup_opts(
8628        prog: *const bpf_program,
8629        cgroup_fd: ::std::os::raw::c_int,
8630        opts: *const bpf_cgroup_opts,
8631    ) -> *mut bpf_link;
8632}
8633unsafe extern "C" {
8634    pub fn bpf_map__attach_struct_ops(map: *const bpf_map) -> *mut bpf_link;
8635}
8636unsafe extern "C" {
8637    pub fn bpf_link__update_map(link: *mut bpf_link, map: *const bpf_map) -> ::std::os::raw::c_int;
8638}
8639#[repr(C)]
8640#[derive(Debug, Copy, Clone)]
8641pub struct bpf_iter_attach_opts {
8642    pub sz: size_t,
8643    pub link_info: *mut bpf_iter_link_info,
8644    pub link_info_len: __u32,
8645    pub __bindgen_padding_0: [u8; 4usize],
8646}
8647impl Default for bpf_iter_attach_opts {
8648    fn default() -> Self {
8649        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8650        unsafe {
8651            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8652            s.assume_init()
8653        }
8654    }
8655}
8656unsafe extern "C" {
8657    pub fn bpf_program__attach_iter(
8658        prog: *const bpf_program,
8659        opts: *const bpf_iter_attach_opts,
8660    ) -> *mut bpf_link;
8661}
8662unsafe extern "C" {
8663    pub fn bpf_program__type(prog: *const bpf_program) -> bpf_prog_type;
8664}
8665unsafe extern "C" {
8666    pub fn bpf_program__set_type(
8667        prog: *mut bpf_program,
8668        type_: bpf_prog_type,
8669    ) -> ::std::os::raw::c_int;
8670}
8671unsafe extern "C" {
8672    pub fn bpf_program__expected_attach_type(prog: *const bpf_program) -> bpf_attach_type;
8673}
8674unsafe extern "C" {
8675    pub fn bpf_program__set_expected_attach_type(
8676        prog: *mut bpf_program,
8677        type_: bpf_attach_type,
8678    ) -> ::std::os::raw::c_int;
8679}
8680unsafe extern "C" {
8681    pub fn bpf_program__flags(prog: *const bpf_program) -> __u32;
8682}
8683unsafe extern "C" {
8684    pub fn bpf_program__set_flags(prog: *mut bpf_program, flags: __u32) -> ::std::os::raw::c_int;
8685}
8686unsafe extern "C" {
8687    pub fn bpf_program__log_level(prog: *const bpf_program) -> __u32;
8688}
8689unsafe extern "C" {
8690    pub fn bpf_program__set_log_level(
8691        prog: *mut bpf_program,
8692        log_level: __u32,
8693    ) -> ::std::os::raw::c_int;
8694}
8695unsafe extern "C" {
8696    pub fn bpf_program__log_buf(
8697        prog: *const bpf_program,
8698        log_size: *mut size_t,
8699    ) -> *const ::std::os::raw::c_char;
8700}
8701unsafe extern "C" {
8702    pub fn bpf_program__set_log_buf(
8703        prog: *mut bpf_program,
8704        log_buf: *mut ::std::os::raw::c_char,
8705        log_size: size_t,
8706    ) -> ::std::os::raw::c_int;
8707}
8708unsafe extern "C" {
8709    pub fn bpf_program__func_info(prog: *const bpf_program) -> *mut bpf_func_info;
8710}
8711unsafe extern "C" {
8712    pub fn bpf_program__func_info_cnt(prog: *const bpf_program) -> __u32;
8713}
8714unsafe extern "C" {
8715    pub fn bpf_program__line_info(prog: *const bpf_program) -> *mut bpf_line_info;
8716}
8717unsafe extern "C" {
8718    pub fn bpf_program__line_info_cnt(prog: *const bpf_program) -> __u32;
8719}
8720unsafe extern "C" {
8721    pub fn bpf_program__set_attach_target(
8722        prog: *mut bpf_program,
8723        attach_prog_fd: ::std::os::raw::c_int,
8724        attach_func_name: *const ::std::os::raw::c_char,
8725    ) -> ::std::os::raw::c_int;
8726}
8727unsafe extern "C" {
8728    pub fn bpf_object__find_map_by_name(
8729        obj: *const bpf_object,
8730        name: *const ::std::os::raw::c_char,
8731    ) -> *mut bpf_map;
8732}
8733unsafe extern "C" {
8734    pub fn bpf_object__find_map_fd_by_name(
8735        obj: *const bpf_object,
8736        name: *const ::std::os::raw::c_char,
8737    ) -> ::std::os::raw::c_int;
8738}
8739unsafe extern "C" {
8740    pub fn bpf_object__next_map(obj: *const bpf_object, map: *const bpf_map) -> *mut bpf_map;
8741}
8742unsafe extern "C" {
8743    pub fn bpf_object__prev_map(obj: *const bpf_object, map: *const bpf_map) -> *mut bpf_map;
8744}
8745unsafe extern "C" {
8746    pub fn bpf_map__set_autocreate(map: *mut bpf_map, autocreate: bool) -> ::std::os::raw::c_int;
8747}
8748unsafe extern "C" {
8749    pub fn bpf_map__autocreate(map: *const bpf_map) -> bool;
8750}
8751unsafe extern "C" {
8752    pub fn bpf_map__set_autoattach(map: *mut bpf_map, autoattach: bool) -> ::std::os::raw::c_int;
8753}
8754unsafe extern "C" {
8755    pub fn bpf_map__autoattach(map: *const bpf_map) -> bool;
8756}
8757unsafe extern "C" {
8758    pub fn bpf_map__fd(map: *const bpf_map) -> ::std::os::raw::c_int;
8759}
8760unsafe extern "C" {
8761    pub fn bpf_map__reuse_fd(map: *mut bpf_map, fd: ::std::os::raw::c_int)
8762        -> ::std::os::raw::c_int;
8763}
8764unsafe extern "C" {
8765    pub fn bpf_map__name(map: *const bpf_map) -> *const ::std::os::raw::c_char;
8766}
8767unsafe extern "C" {
8768    pub fn bpf_map__type(map: *const bpf_map) -> bpf_map_type;
8769}
8770unsafe extern "C" {
8771    pub fn bpf_map__set_type(map: *mut bpf_map, type_: bpf_map_type) -> ::std::os::raw::c_int;
8772}
8773unsafe extern "C" {
8774    pub fn bpf_map__max_entries(map: *const bpf_map) -> __u32;
8775}
8776unsafe extern "C" {
8777    pub fn bpf_map__set_max_entries(map: *mut bpf_map, max_entries: __u32)
8778        -> ::std::os::raw::c_int;
8779}
8780unsafe extern "C" {
8781    pub fn bpf_map__map_flags(map: *const bpf_map) -> __u32;
8782}
8783unsafe extern "C" {
8784    pub fn bpf_map__set_map_flags(map: *mut bpf_map, flags: __u32) -> ::std::os::raw::c_int;
8785}
8786unsafe extern "C" {
8787    pub fn bpf_map__numa_node(map: *const bpf_map) -> __u32;
8788}
8789unsafe extern "C" {
8790    pub fn bpf_map__set_numa_node(map: *mut bpf_map, numa_node: __u32) -> ::std::os::raw::c_int;
8791}
8792unsafe extern "C" {
8793    pub fn bpf_map__key_size(map: *const bpf_map) -> __u32;
8794}
8795unsafe extern "C" {
8796    pub fn bpf_map__set_key_size(map: *mut bpf_map, size: __u32) -> ::std::os::raw::c_int;
8797}
8798unsafe extern "C" {
8799    pub fn bpf_map__value_size(map: *const bpf_map) -> __u32;
8800}
8801unsafe extern "C" {
8802    pub fn bpf_map__set_value_size(map: *mut bpf_map, size: __u32) -> ::std::os::raw::c_int;
8803}
8804unsafe extern "C" {
8805    pub fn bpf_map__btf_key_type_id(map: *const bpf_map) -> __u32;
8806}
8807unsafe extern "C" {
8808    pub fn bpf_map__btf_value_type_id(map: *const bpf_map) -> __u32;
8809}
8810unsafe extern "C" {
8811    pub fn bpf_map__ifindex(map: *const bpf_map) -> __u32;
8812}
8813unsafe extern "C" {
8814    pub fn bpf_map__set_ifindex(map: *mut bpf_map, ifindex: __u32) -> ::std::os::raw::c_int;
8815}
8816unsafe extern "C" {
8817    pub fn bpf_map__map_extra(map: *const bpf_map) -> __u64;
8818}
8819unsafe extern "C" {
8820    pub fn bpf_map__set_map_extra(map: *mut bpf_map, map_extra: __u64) -> ::std::os::raw::c_int;
8821}
8822unsafe extern "C" {
8823    pub fn bpf_map__set_initial_value(
8824        map: *mut bpf_map,
8825        data: *const ::std::os::raw::c_void,
8826        size: size_t,
8827    ) -> ::std::os::raw::c_int;
8828}
8829unsafe extern "C" {
8830    pub fn bpf_map__initial_value(
8831        map: *const bpf_map,
8832        psize: *mut size_t,
8833    ) -> *mut ::std::os::raw::c_void;
8834}
8835unsafe extern "C" {
8836    pub fn bpf_map__is_internal(map: *const bpf_map) -> bool;
8837}
8838unsafe extern "C" {
8839    pub fn bpf_map__set_pin_path(
8840        map: *mut bpf_map,
8841        path: *const ::std::os::raw::c_char,
8842    ) -> ::std::os::raw::c_int;
8843}
8844unsafe extern "C" {
8845    pub fn bpf_map__pin_path(map: *const bpf_map) -> *const ::std::os::raw::c_char;
8846}
8847unsafe extern "C" {
8848    pub fn bpf_map__is_pinned(map: *const bpf_map) -> bool;
8849}
8850unsafe extern "C" {
8851    pub fn bpf_map__pin(
8852        map: *mut bpf_map,
8853        path: *const ::std::os::raw::c_char,
8854    ) -> ::std::os::raw::c_int;
8855}
8856unsafe extern "C" {
8857    pub fn bpf_map__unpin(
8858        map: *mut bpf_map,
8859        path: *const ::std::os::raw::c_char,
8860    ) -> ::std::os::raw::c_int;
8861}
8862unsafe extern "C" {
8863    pub fn bpf_map__set_inner_map_fd(
8864        map: *mut bpf_map,
8865        fd: ::std::os::raw::c_int,
8866    ) -> ::std::os::raw::c_int;
8867}
8868unsafe extern "C" {
8869    pub fn bpf_map__inner_map(map: *mut bpf_map) -> *mut bpf_map;
8870}
8871unsafe extern "C" {
8872    pub fn bpf_map__lookup_elem(
8873        map: *const bpf_map,
8874        key: *const ::std::os::raw::c_void,
8875        key_sz: size_t,
8876        value: *mut ::std::os::raw::c_void,
8877        value_sz: size_t,
8878        flags: __u64,
8879    ) -> ::std::os::raw::c_int;
8880}
8881unsafe extern "C" {
8882    pub fn bpf_map__update_elem(
8883        map: *const bpf_map,
8884        key: *const ::std::os::raw::c_void,
8885        key_sz: size_t,
8886        value: *const ::std::os::raw::c_void,
8887        value_sz: size_t,
8888        flags: __u64,
8889    ) -> ::std::os::raw::c_int;
8890}
8891unsafe extern "C" {
8892    pub fn bpf_map__delete_elem(
8893        map: *const bpf_map,
8894        key: *const ::std::os::raw::c_void,
8895        key_sz: size_t,
8896        flags: __u64,
8897    ) -> ::std::os::raw::c_int;
8898}
8899unsafe extern "C" {
8900    pub fn bpf_map__lookup_and_delete_elem(
8901        map: *const bpf_map,
8902        key: *const ::std::os::raw::c_void,
8903        key_sz: size_t,
8904        value: *mut ::std::os::raw::c_void,
8905        value_sz: size_t,
8906        flags: __u64,
8907    ) -> ::std::os::raw::c_int;
8908}
8909unsafe extern "C" {
8910    pub fn bpf_map__get_next_key(
8911        map: *const bpf_map,
8912        cur_key: *const ::std::os::raw::c_void,
8913        next_key: *mut ::std::os::raw::c_void,
8914        key_sz: size_t,
8915    ) -> ::std::os::raw::c_int;
8916}
8917#[repr(C)]
8918#[derive(Debug, Default, Copy, Clone)]
8919pub struct bpf_xdp_set_link_opts {
8920    pub sz: size_t,
8921    pub old_fd: ::std::os::raw::c_int,
8922    pub __bindgen_padding_0: [u8; 4usize],
8923}
8924#[repr(C)]
8925#[derive(Debug, Default, Copy, Clone)]
8926pub struct bpf_xdp_attach_opts {
8927    pub sz: size_t,
8928    pub old_prog_fd: ::std::os::raw::c_int,
8929    pub __bindgen_padding_0: [u8; 4usize],
8930}
8931#[repr(C)]
8932#[derive(Debug, Default, Copy, Clone)]
8933pub struct bpf_xdp_query_opts {
8934    pub sz: size_t,
8935    pub prog_id: __u32,
8936    pub drv_prog_id: __u32,
8937    pub hw_prog_id: __u32,
8938    pub skb_prog_id: __u32,
8939    pub attach_mode: __u8,
8940    pub __bindgen_padding_0: [u8; 7usize],
8941    pub feature_flags: __u64,
8942    pub xdp_zc_max_segs: __u32,
8943    pub __bindgen_padding_1: [u8; 4usize],
8944}
8945unsafe extern "C" {
8946    pub fn bpf_xdp_attach(
8947        ifindex: ::std::os::raw::c_int,
8948        prog_fd: ::std::os::raw::c_int,
8949        flags: __u32,
8950        opts: *const bpf_xdp_attach_opts,
8951    ) -> ::std::os::raw::c_int;
8952}
8953unsafe extern "C" {
8954    pub fn bpf_xdp_detach(
8955        ifindex: ::std::os::raw::c_int,
8956        flags: __u32,
8957        opts: *const bpf_xdp_attach_opts,
8958    ) -> ::std::os::raw::c_int;
8959}
8960unsafe extern "C" {
8961    pub fn bpf_xdp_query(
8962        ifindex: ::std::os::raw::c_int,
8963        flags: ::std::os::raw::c_int,
8964        opts: *mut bpf_xdp_query_opts,
8965    ) -> ::std::os::raw::c_int;
8966}
8967unsafe extern "C" {
8968    pub fn bpf_xdp_query_id(
8969        ifindex: ::std::os::raw::c_int,
8970        flags: ::std::os::raw::c_int,
8971        prog_id: *mut __u32,
8972    ) -> ::std::os::raw::c_int;
8973}
8974pub const BPF_TC_INGRESS: bpf_tc_attach_point = 1;
8975pub const BPF_TC_EGRESS: bpf_tc_attach_point = 2;
8976pub const BPF_TC_CUSTOM: bpf_tc_attach_point = 4;
8977pub const BPF_TC_QDISC: bpf_tc_attach_point = 8;
8978pub type bpf_tc_attach_point = ::std::os::raw::c_uint;
8979pub const BPF_TC_F_REPLACE: bpf_tc_flags = 1;
8980pub type bpf_tc_flags = ::std::os::raw::c_uint;
8981#[repr(C)]
8982#[derive(Debug, Copy, Clone)]
8983pub struct bpf_tc_hook {
8984    pub sz: size_t,
8985    pub ifindex: ::std::os::raw::c_int,
8986    pub attach_point: bpf_tc_attach_point,
8987    pub parent: __u32,
8988    pub handle: __u32,
8989    pub qdisc: *const ::std::os::raw::c_char,
8990}
8991impl Default for bpf_tc_hook {
8992    fn default() -> Self {
8993        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8994        unsafe {
8995            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8996            s.assume_init()
8997        }
8998    }
8999}
9000#[repr(C)]
9001#[derive(Debug, Default, Copy, Clone)]
9002pub struct bpf_tc_opts {
9003    pub sz: size_t,
9004    pub prog_fd: ::std::os::raw::c_int,
9005    pub flags: __u32,
9006    pub prog_id: __u32,
9007    pub handle: __u32,
9008    pub priority: __u32,
9009    pub __bindgen_padding_0: [u8; 4usize],
9010}
9011unsafe extern "C" {
9012    pub fn bpf_tc_hook_create(hook: *mut bpf_tc_hook) -> ::std::os::raw::c_int;
9013}
9014unsafe extern "C" {
9015    pub fn bpf_tc_hook_destroy(hook: *mut bpf_tc_hook) -> ::std::os::raw::c_int;
9016}
9017unsafe extern "C" {
9018    pub fn bpf_tc_attach(hook: *const bpf_tc_hook, opts: *mut bpf_tc_opts)
9019        -> ::std::os::raw::c_int;
9020}
9021unsafe extern "C" {
9022    pub fn bpf_tc_detach(
9023        hook: *const bpf_tc_hook,
9024        opts: *const bpf_tc_opts,
9025    ) -> ::std::os::raw::c_int;
9026}
9027unsafe extern "C" {
9028    pub fn bpf_tc_query(hook: *const bpf_tc_hook, opts: *mut bpf_tc_opts) -> ::std::os::raw::c_int;
9029}
9030#[repr(C)]
9031#[derive(Debug, Copy, Clone)]
9032pub struct ring_buffer {
9033    _unused: [u8; 0],
9034}
9035#[repr(C)]
9036#[derive(Debug, Copy, Clone)]
9037pub struct ring {
9038    _unused: [u8; 0],
9039}
9040#[repr(C)]
9041#[derive(Debug, Copy, Clone)]
9042pub struct user_ring_buffer {
9043    _unused: [u8; 0],
9044}
9045pub type ring_buffer_sample_fn = ::std::option::Option<
9046    unsafe extern "C" fn(
9047        ctx: *mut ::std::os::raw::c_void,
9048        data: *mut ::std::os::raw::c_void,
9049        size: size_t,
9050    ) -> ::std::os::raw::c_int,
9051>;
9052#[repr(C)]
9053#[derive(Debug, Default, Copy, Clone)]
9054pub struct ring_buffer_opts {
9055    pub sz: size_t,
9056}
9057unsafe extern "C" {
9058    pub fn ring_buffer__new(
9059        map_fd: ::std::os::raw::c_int,
9060        sample_cb: ring_buffer_sample_fn,
9061        ctx: *mut ::std::os::raw::c_void,
9062        opts: *const ring_buffer_opts,
9063    ) -> *mut ring_buffer;
9064}
9065unsafe extern "C" {
9066    pub fn ring_buffer__free(rb: *mut ring_buffer);
9067}
9068unsafe extern "C" {
9069    pub fn ring_buffer__add(
9070        rb: *mut ring_buffer,
9071        map_fd: ::std::os::raw::c_int,
9072        sample_cb: ring_buffer_sample_fn,
9073        ctx: *mut ::std::os::raw::c_void,
9074    ) -> ::std::os::raw::c_int;
9075}
9076unsafe extern "C" {
9077    pub fn ring_buffer__poll(
9078        rb: *mut ring_buffer,
9079        timeout_ms: ::std::os::raw::c_int,
9080    ) -> ::std::os::raw::c_int;
9081}
9082unsafe extern "C" {
9083    pub fn ring_buffer__consume(rb: *mut ring_buffer) -> ::std::os::raw::c_int;
9084}
9085unsafe extern "C" {
9086    pub fn ring_buffer__consume_n(rb: *mut ring_buffer, n: size_t) -> ::std::os::raw::c_int;
9087}
9088unsafe extern "C" {
9089    pub fn ring_buffer__epoll_fd(rb: *const ring_buffer) -> ::std::os::raw::c_int;
9090}
9091unsafe extern "C" {
9092    pub fn ring_buffer__ring(rb: *mut ring_buffer, idx: ::std::os::raw::c_uint) -> *mut ring;
9093}
9094unsafe extern "C" {
9095    pub fn ring__consumer_pos(r: *const ring) -> ::std::os::raw::c_ulong;
9096}
9097unsafe extern "C" {
9098    pub fn ring__producer_pos(r: *const ring) -> ::std::os::raw::c_ulong;
9099}
9100unsafe extern "C" {
9101    pub fn ring__avail_data_size(r: *const ring) -> size_t;
9102}
9103unsafe extern "C" {
9104    pub fn ring__size(r: *const ring) -> size_t;
9105}
9106unsafe extern "C" {
9107    pub fn ring__map_fd(r: *const ring) -> ::std::os::raw::c_int;
9108}
9109unsafe extern "C" {
9110    pub fn ring__consume(r: *mut ring) -> ::std::os::raw::c_int;
9111}
9112unsafe extern "C" {
9113    pub fn ring__consume_n(r: *mut ring, n: size_t) -> ::std::os::raw::c_int;
9114}
9115#[repr(C)]
9116#[derive(Debug, Default, Copy, Clone)]
9117pub struct user_ring_buffer_opts {
9118    pub sz: size_t,
9119}
9120unsafe extern "C" {
9121    pub fn user_ring_buffer__new(
9122        map_fd: ::std::os::raw::c_int,
9123        opts: *const user_ring_buffer_opts,
9124    ) -> *mut user_ring_buffer;
9125}
9126unsafe extern "C" {
9127    pub fn user_ring_buffer__reserve(
9128        rb: *mut user_ring_buffer,
9129        size: __u32,
9130    ) -> *mut ::std::os::raw::c_void;
9131}
9132unsafe extern "C" {
9133    pub fn user_ring_buffer__reserve_blocking(
9134        rb: *mut user_ring_buffer,
9135        size: __u32,
9136        timeout_ms: ::std::os::raw::c_int,
9137    ) -> *mut ::std::os::raw::c_void;
9138}
9139unsafe extern "C" {
9140    pub fn user_ring_buffer__submit(rb: *mut user_ring_buffer, sample: *mut ::std::os::raw::c_void);
9141}
9142unsafe extern "C" {
9143    pub fn user_ring_buffer__discard(
9144        rb: *mut user_ring_buffer,
9145        sample: *mut ::std::os::raw::c_void,
9146    );
9147}
9148unsafe extern "C" {
9149    pub fn user_ring_buffer__free(rb: *mut user_ring_buffer);
9150}
9151#[repr(C)]
9152#[derive(Debug, Copy, Clone)]
9153pub struct perf_buffer {
9154    _unused: [u8; 0],
9155}
9156pub type perf_buffer_sample_fn = ::std::option::Option<
9157    unsafe extern "C" fn(
9158        ctx: *mut ::std::os::raw::c_void,
9159        cpu: ::std::os::raw::c_int,
9160        data: *mut ::std::os::raw::c_void,
9161        size: __u32,
9162    ),
9163>;
9164pub type perf_buffer_lost_fn = ::std::option::Option<
9165    unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, cpu: ::std::os::raw::c_int, cnt: __u64),
9166>;
9167#[repr(C)]
9168#[derive(Debug, Default, Copy, Clone)]
9169pub struct perf_buffer_opts {
9170    pub sz: size_t,
9171    pub sample_period: __u32,
9172    pub __bindgen_padding_0: [u8; 4usize],
9173}
9174unsafe extern "C" {
9175    pub fn perf_buffer__new(
9176        map_fd: ::std::os::raw::c_int,
9177        page_cnt: size_t,
9178        sample_cb: perf_buffer_sample_fn,
9179        lost_cb: perf_buffer_lost_fn,
9180        ctx: *mut ::std::os::raw::c_void,
9181        opts: *const perf_buffer_opts,
9182    ) -> *mut perf_buffer;
9183}
9184pub const LIBBPF_PERF_EVENT_DONE: bpf_perf_event_ret = 0;
9185pub const LIBBPF_PERF_EVENT_ERROR: bpf_perf_event_ret = -1;
9186pub const LIBBPF_PERF_EVENT_CONT: bpf_perf_event_ret = -2;
9187pub type bpf_perf_event_ret = ::std::os::raw::c_int;
9188pub type perf_buffer_event_fn = ::std::option::Option<
9189    unsafe extern "C" fn(
9190        ctx: *mut ::std::os::raw::c_void,
9191        cpu: ::std::os::raw::c_int,
9192        event: *mut perf_event_header,
9193    ) -> bpf_perf_event_ret,
9194>;
9195#[repr(C)]
9196#[derive(Debug, Copy, Clone)]
9197pub struct perf_buffer_raw_opts {
9198    pub sz: size_t,
9199    pub cpu_cnt: ::std::os::raw::c_int,
9200    pub __bindgen_padding_0: [u8; 4usize],
9201    pub cpus: *mut ::std::os::raw::c_int,
9202    pub map_keys: *mut ::std::os::raw::c_int,
9203}
9204impl Default for perf_buffer_raw_opts {
9205    fn default() -> Self {
9206        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9207        unsafe {
9208            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9209            s.assume_init()
9210        }
9211    }
9212}
9213unsafe extern "C" {
9214    pub fn perf_buffer__new_raw(
9215        map_fd: ::std::os::raw::c_int,
9216        page_cnt: size_t,
9217        attr: *mut perf_event_attr,
9218        event_cb: perf_buffer_event_fn,
9219        ctx: *mut ::std::os::raw::c_void,
9220        opts: *const perf_buffer_raw_opts,
9221    ) -> *mut perf_buffer;
9222}
9223unsafe extern "C" {
9224    pub fn perf_buffer__free(pb: *mut perf_buffer);
9225}
9226unsafe extern "C" {
9227    pub fn perf_buffer__epoll_fd(pb: *const perf_buffer) -> ::std::os::raw::c_int;
9228}
9229unsafe extern "C" {
9230    pub fn perf_buffer__poll(
9231        pb: *mut perf_buffer,
9232        timeout_ms: ::std::os::raw::c_int,
9233    ) -> ::std::os::raw::c_int;
9234}
9235unsafe extern "C" {
9236    pub fn perf_buffer__consume(pb: *mut perf_buffer) -> ::std::os::raw::c_int;
9237}
9238unsafe extern "C" {
9239    pub fn perf_buffer__consume_buffer(
9240        pb: *mut perf_buffer,
9241        buf_idx: size_t,
9242    ) -> ::std::os::raw::c_int;
9243}
9244unsafe extern "C" {
9245    pub fn perf_buffer__buffer_cnt(pb: *const perf_buffer) -> size_t;
9246}
9247unsafe extern "C" {
9248    pub fn perf_buffer__buffer_fd(pb: *const perf_buffer, buf_idx: size_t)
9249        -> ::std::os::raw::c_int;
9250}
9251unsafe extern "C" {
9252    pub fn perf_buffer__buffer(
9253        pb: *mut perf_buffer,
9254        buf_idx: ::std::os::raw::c_int,
9255        buf: *mut *mut ::std::os::raw::c_void,
9256        buf_size: *mut size_t,
9257    ) -> ::std::os::raw::c_int;
9258}
9259#[repr(C)]
9260#[derive(Debug, Copy, Clone)]
9261pub struct bpf_prog_linfo {
9262    _unused: [u8; 0],
9263}
9264unsafe extern "C" {
9265    pub fn bpf_prog_linfo__free(prog_linfo: *mut bpf_prog_linfo);
9266}
9267unsafe extern "C" {
9268    pub fn bpf_prog_linfo__new(info: *const bpf_prog_info) -> *mut bpf_prog_linfo;
9269}
9270unsafe extern "C" {
9271    pub fn bpf_prog_linfo__lfind_addr_func(
9272        prog_linfo: *const bpf_prog_linfo,
9273        addr: __u64,
9274        func_idx: __u32,
9275        nr_skip: __u32,
9276    ) -> *const bpf_line_info;
9277}
9278unsafe extern "C" {
9279    pub fn bpf_prog_linfo__lfind(
9280        prog_linfo: *const bpf_prog_linfo,
9281        insn_off: __u32,
9282        nr_skip: __u32,
9283    ) -> *const bpf_line_info;
9284}
9285unsafe extern "C" {
9286    pub fn libbpf_probe_bpf_prog_type(
9287        prog_type: bpf_prog_type,
9288        opts: *const ::std::os::raw::c_void,
9289    ) -> ::std::os::raw::c_int;
9290}
9291unsafe extern "C" {
9292    pub fn libbpf_probe_bpf_map_type(
9293        map_type: bpf_map_type,
9294        opts: *const ::std::os::raw::c_void,
9295    ) -> ::std::os::raw::c_int;
9296}
9297unsafe extern "C" {
9298    pub fn libbpf_probe_bpf_helper(
9299        prog_type: bpf_prog_type,
9300        helper_id: bpf_func_id,
9301        opts: *const ::std::os::raw::c_void,
9302    ) -> ::std::os::raw::c_int;
9303}
9304unsafe extern "C" {
9305    pub fn libbpf_num_possible_cpus() -> ::std::os::raw::c_int;
9306}
9307#[repr(C)]
9308#[derive(Debug, Copy, Clone)]
9309pub struct bpf_map_skeleton {
9310    pub name: *const ::std::os::raw::c_char,
9311    pub map: *mut *mut bpf_map,
9312    pub mmaped: *mut *mut ::std::os::raw::c_void,
9313    pub link: *mut *mut bpf_link,
9314}
9315impl Default for bpf_map_skeleton {
9316    fn default() -> Self {
9317        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9318        unsafe {
9319            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9320            s.assume_init()
9321        }
9322    }
9323}
9324#[repr(C)]
9325#[derive(Debug, Copy, Clone)]
9326pub struct bpf_prog_skeleton {
9327    pub name: *const ::std::os::raw::c_char,
9328    pub prog: *mut *mut bpf_program,
9329    pub link: *mut *mut bpf_link,
9330}
9331impl Default for bpf_prog_skeleton {
9332    fn default() -> Self {
9333        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9334        unsafe {
9335            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9336            s.assume_init()
9337        }
9338    }
9339}
9340#[repr(C)]
9341#[derive(Debug, Copy, Clone)]
9342pub struct bpf_object_skeleton {
9343    pub sz: size_t,
9344    pub name: *const ::std::os::raw::c_char,
9345    pub data: *const ::std::os::raw::c_void,
9346    pub data_sz: size_t,
9347    pub obj: *mut *mut bpf_object,
9348    pub map_cnt: ::std::os::raw::c_int,
9349    pub map_skel_sz: ::std::os::raw::c_int,
9350    pub maps: *mut bpf_map_skeleton,
9351    pub prog_cnt: ::std::os::raw::c_int,
9352    pub prog_skel_sz: ::std::os::raw::c_int,
9353    pub progs: *mut bpf_prog_skeleton,
9354}
9355impl Default for bpf_object_skeleton {
9356    fn default() -> Self {
9357        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9358        unsafe {
9359            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9360            s.assume_init()
9361        }
9362    }
9363}
9364unsafe extern "C" {
9365    pub fn bpf_object__open_skeleton(
9366        s: *mut bpf_object_skeleton,
9367        opts: *const bpf_object_open_opts,
9368    ) -> ::std::os::raw::c_int;
9369}
9370unsafe extern "C" {
9371    pub fn bpf_object__load_skeleton(s: *mut bpf_object_skeleton) -> ::std::os::raw::c_int;
9372}
9373unsafe extern "C" {
9374    pub fn bpf_object__attach_skeleton(s: *mut bpf_object_skeleton) -> ::std::os::raw::c_int;
9375}
9376unsafe extern "C" {
9377    pub fn bpf_object__detach_skeleton(s: *mut bpf_object_skeleton);
9378}
9379unsafe extern "C" {
9380    pub fn bpf_object__destroy_skeleton(s: *mut bpf_object_skeleton);
9381}
9382#[repr(C)]
9383#[derive(Debug, Copy, Clone)]
9384pub struct bpf_var_skeleton {
9385    pub name: *const ::std::os::raw::c_char,
9386    pub map: *mut *mut bpf_map,
9387    pub addr: *mut *mut ::std::os::raw::c_void,
9388}
9389impl Default for bpf_var_skeleton {
9390    fn default() -> Self {
9391        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9392        unsafe {
9393            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9394            s.assume_init()
9395        }
9396    }
9397}
9398#[repr(C)]
9399#[derive(Debug, Copy, Clone)]
9400pub struct bpf_object_subskeleton {
9401    pub sz: size_t,
9402    pub obj: *const bpf_object,
9403    pub map_cnt: ::std::os::raw::c_int,
9404    pub map_skel_sz: ::std::os::raw::c_int,
9405    pub maps: *mut bpf_map_skeleton,
9406    pub prog_cnt: ::std::os::raw::c_int,
9407    pub prog_skel_sz: ::std::os::raw::c_int,
9408    pub progs: *mut bpf_prog_skeleton,
9409    pub var_cnt: ::std::os::raw::c_int,
9410    pub var_skel_sz: ::std::os::raw::c_int,
9411    pub vars: *mut bpf_var_skeleton,
9412}
9413impl Default for bpf_object_subskeleton {
9414    fn default() -> Self {
9415        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9416        unsafe {
9417            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9418            s.assume_init()
9419        }
9420    }
9421}
9422unsafe extern "C" {
9423    pub fn bpf_object__open_subskeleton(s: *mut bpf_object_subskeleton) -> ::std::os::raw::c_int;
9424}
9425unsafe extern "C" {
9426    pub fn bpf_object__destroy_subskeleton(s: *mut bpf_object_subskeleton);
9427}
9428#[repr(C)]
9429#[derive(Debug, Copy, Clone)]
9430pub struct gen_loader_opts {
9431    pub sz: size_t,
9432    pub data: *const ::std::os::raw::c_char,
9433    pub insns: *const ::std::os::raw::c_char,
9434    pub data_sz: __u32,
9435    pub insns_sz: __u32,
9436}
9437impl Default for gen_loader_opts {
9438    fn default() -> Self {
9439        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9440        unsafe {
9441            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9442            s.assume_init()
9443        }
9444    }
9445}
9446unsafe extern "C" {
9447    pub fn bpf_object__gen_loader(
9448        obj: *mut bpf_object,
9449        opts: *mut gen_loader_opts,
9450    ) -> ::std::os::raw::c_int;
9451}
9452#[repr(C)]
9453#[derive(Debug, Default, Copy, Clone)]
9454pub struct bpf_linker_opts {
9455    pub sz: size_t,
9456}
9457#[repr(C)]
9458#[derive(Debug, Default, Copy, Clone)]
9459pub struct bpf_linker_file_opts {
9460    pub sz: size_t,
9461}
9462#[repr(C)]
9463#[derive(Debug, Copy, Clone)]
9464pub struct bpf_linker {
9465    _unused: [u8; 0],
9466}
9467unsafe extern "C" {
9468    pub fn bpf_linker__new(
9469        filename: *const ::std::os::raw::c_char,
9470        opts: *mut bpf_linker_opts,
9471    ) -> *mut bpf_linker;
9472}
9473unsafe extern "C" {
9474    pub fn bpf_linker__new_fd(
9475        fd: ::std::os::raw::c_int,
9476        opts: *mut bpf_linker_opts,
9477    ) -> *mut bpf_linker;
9478}
9479unsafe extern "C" {
9480    pub fn bpf_linker__add_file(
9481        linker: *mut bpf_linker,
9482        filename: *const ::std::os::raw::c_char,
9483        opts: *const bpf_linker_file_opts,
9484    ) -> ::std::os::raw::c_int;
9485}
9486unsafe extern "C" {
9487    pub fn bpf_linker__add_fd(
9488        linker: *mut bpf_linker,
9489        fd: ::std::os::raw::c_int,
9490        opts: *const bpf_linker_file_opts,
9491    ) -> ::std::os::raw::c_int;
9492}
9493unsafe extern "C" {
9494    pub fn bpf_linker__add_buf(
9495        linker: *mut bpf_linker,
9496        buf: *mut ::std::os::raw::c_void,
9497        buf_sz: size_t,
9498        opts: *const bpf_linker_file_opts,
9499    ) -> ::std::os::raw::c_int;
9500}
9501unsafe extern "C" {
9502    pub fn bpf_linker__finalize(linker: *mut bpf_linker) -> ::std::os::raw::c_int;
9503}
9504unsafe extern "C" {
9505    pub fn bpf_linker__free(linker: *mut bpf_linker);
9506}
9507pub type libbpf_prog_setup_fn_t = ::std::option::Option<
9508    unsafe extern "C" fn(
9509        prog: *mut bpf_program,
9510        cookie: ::std::os::raw::c_long,
9511    ) -> ::std::os::raw::c_int,
9512>;
9513pub type libbpf_prog_prepare_load_fn_t = ::std::option::Option<
9514    unsafe extern "C" fn(
9515        prog: *mut bpf_program,
9516        opts: *mut bpf_prog_load_opts,
9517        cookie: ::std::os::raw::c_long,
9518    ) -> ::std::os::raw::c_int,
9519>;
9520pub type libbpf_prog_attach_fn_t = ::std::option::Option<
9521    unsafe extern "C" fn(
9522        prog: *const bpf_program,
9523        cookie: ::std::os::raw::c_long,
9524        link: *mut *mut bpf_link,
9525    ) -> ::std::os::raw::c_int,
9526>;
9527#[repr(C)]
9528#[derive(Debug, Default, Copy, Clone)]
9529pub struct libbpf_prog_handler_opts {
9530    pub sz: size_t,
9531    pub cookie: ::std::os::raw::c_long,
9532    pub prog_setup_fn: libbpf_prog_setup_fn_t,
9533    pub prog_prepare_load_fn: libbpf_prog_prepare_load_fn_t,
9534    pub prog_attach_fn: libbpf_prog_attach_fn_t,
9535}
9536unsafe extern "C" {
9537    pub fn libbpf_register_prog_handler(
9538        sec: *const ::std::os::raw::c_char,
9539        prog_type: bpf_prog_type,
9540        exp_attach_type: bpf_attach_type,
9541        opts: *const libbpf_prog_handler_opts,
9542    ) -> ::std::os::raw::c_int;
9543}
9544unsafe extern "C" {
9545    pub fn libbpf_unregister_prog_handler(
9546        handler_id: ::std::os::raw::c_int,
9547    ) -> ::std::os::raw::c_int;
9548}
9549pub type __builtin_va_list = [__va_list_tag; 1usize];
9550#[repr(C)]
9551#[derive(Debug, Copy, Clone)]
9552pub struct __va_list_tag {
9553    pub gp_offset: ::std::os::raw::c_uint,
9554    pub fp_offset: ::std::os::raw::c_uint,
9555    pub overflow_arg_area: *mut ::std::os::raw::c_void,
9556    pub reg_save_area: *mut ::std::os::raw::c_void,
9557}
9558impl Default for __va_list_tag {
9559    fn default() -> Self {
9560        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9561        unsafe {
9562            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9563            s.assume_init()
9564        }
9565    }
9566}