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