libbpf_sys/
bindings.rs

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