Skip to main content

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