perf_event_open_sys/
bindings_x86_64.rs

1//! Types and constants used with `perf_event_open`.
2//!
3//! This module contains types and constants for use with the
4//! [`perf_event_open`][man] system call. These are automatically generated from
5//! the header files `<linux/perf_event.h>` and `<linux/hw_breakpoint.h>` by the
6//! Rust [`bindgen`][bindgen] tool.
7//!
8//! It's not always obvious how `bindgen` will choose to reflect a given C
9//! construct into Rust. The best approach I've found is simply to search
10//! [the source code][src] for the C identifier name and see what `bindgen` did
11//! with it.
12//!
13//! [man]: https://www.mankier.com/2/perf_event_open
14//! [bindgen]: https://github.com/rust-lang/rust-bindgen
15//! [src]: ../../src/perf_event_open_sys/bindings.rs.html
16
17#![allow(dead_code)]
18#![allow(non_upper_case_globals)]
19#![allow(non_camel_case_types)]
20#![allow(non_snake_case)]
21#![allow(deref_nullptr)] // `bindgen_test_layout` tests use bogus code
22#![allow(clippy::all)]
23
24/* automatically generated by rust-bindgen 0.69.4 */
25
26#[repr(C)]
27#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
28pub struct __BindgenBitfieldUnit<Storage> {
29    storage: Storage,
30}
31impl<Storage> __BindgenBitfieldUnit<Storage> {
32    #[inline]
33    pub const fn new(storage: Storage) -> Self {
34        Self { storage }
35    }
36}
37impl<Storage> __BindgenBitfieldUnit<Storage>
38where
39    Storage: AsRef<[u8]> + AsMut<[u8]>,
40{
41    #[inline]
42    pub fn get_bit(&self, index: usize) -> bool {
43        debug_assert!(index / 8 < self.storage.as_ref().len());
44        let byte_index = index / 8;
45        let byte = self.storage.as_ref()[byte_index];
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        byte & mask == mask
53    }
54    #[inline]
55    pub fn set_bit(&mut self, index: usize, val: bool) {
56        debug_assert!(index / 8 < self.storage.as_ref().len());
57        let byte_index = index / 8;
58        let byte = &mut self.storage.as_mut()[byte_index];
59        let bit_index = if cfg!(target_endian = "big") {
60            7 - (index % 8)
61        } else {
62            index % 8
63        };
64        let mask = 1 << bit_index;
65        if val {
66            *byte |= mask;
67        } else {
68            *byte &= !mask;
69        }
70    }
71    #[inline]
72    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
73        debug_assert!(bit_width <= 64);
74        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
75        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
76        let mut val = 0;
77        for i in 0..(bit_width as usize) {
78            if self.get_bit(i + bit_offset) {
79                let index = if cfg!(target_endian = "big") {
80                    bit_width as usize - 1 - i
81                } else {
82                    i
83                };
84                val |= 1 << index;
85            }
86        }
87        val
88    }
89    #[inline]
90    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
91        debug_assert!(bit_width <= 64);
92        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
93        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
94        for i in 0..(bit_width as usize) {
95            let mask = 1 << i;
96            let val_bit_is_set = val & mask == mask;
97            let index = if cfg!(target_endian = "big") {
98                bit_width as usize - 1 - i
99            } else {
100                i
101            };
102            self.set_bit(index + bit_offset, val_bit_is_set);
103        }
104    }
105}
106#[repr(C)]
107#[derive(Default)]
108pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
109impl<T> __IncompleteArrayField<T> {
110    #[inline]
111    pub const fn new() -> Self {
112        __IncompleteArrayField(::std::marker::PhantomData, [])
113    }
114    #[inline]
115    pub fn as_ptr(&self) -> *const T {
116        self as *const _ as *const T
117    }
118    #[inline]
119    pub fn as_mut_ptr(&mut self) -> *mut T {
120        self as *mut _ as *mut T
121    }
122    #[inline]
123    pub unsafe fn as_slice(&self, len: usize) -> &[T] {
124        ::std::slice::from_raw_parts(self.as_ptr(), len)
125    }
126    #[inline]
127    pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
128        ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
129    }
130}
131impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
132    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
133        fmt.write_str("__IncompleteArrayField")
134    }
135}
136pub const __BITS_PER_LONG: u32 = 64;
137pub const __BITS_PER_LONG_LONG: u32 = 64;
138pub const __FD_SETSIZE: u32 = 1024;
139pub const _IOC_NRBITS: u32 = 8;
140pub const _IOC_TYPEBITS: u32 = 8;
141pub const _IOC_SIZEBITS: u32 = 14;
142pub const _IOC_DIRBITS: u32 = 2;
143pub const _IOC_NRMASK: u32 = 255;
144pub const _IOC_TYPEMASK: u32 = 255;
145pub const _IOC_SIZEMASK: u32 = 16383;
146pub const _IOC_DIRMASK: u32 = 3;
147pub const _IOC_NRSHIFT: u32 = 0;
148pub const _IOC_TYPESHIFT: u32 = 8;
149pub const _IOC_SIZESHIFT: u32 = 16;
150pub const _IOC_DIRSHIFT: u32 = 30;
151pub const _IOC_NONE: u32 = 0;
152pub const _IOC_WRITE: u32 = 1;
153pub const _IOC_READ: u32 = 2;
154pub const IOC_IN: u32 = 1073741824;
155pub const IOC_OUT: u32 = 2147483648;
156pub const IOC_INOUT: u32 = 3221225472;
157pub const IOCSIZE_MASK: u32 = 1073676288;
158pub const IOCSIZE_SHIFT: u32 = 16;
159pub const __LITTLE_ENDIAN: u32 = 1234;
160pub const PERF_PMU_TYPE_SHIFT: u32 = 32;
161pub const PERF_HW_EVENT_MASK: u32 = 4294967295;
162pub const PERF_ATTR_SIZE_VER0: u32 = 64;
163pub const PERF_ATTR_SIZE_VER1: u32 = 72;
164pub const PERF_ATTR_SIZE_VER2: u32 = 80;
165pub const PERF_ATTR_SIZE_VER3: u32 = 96;
166pub const PERF_ATTR_SIZE_VER4: u32 = 104;
167pub const PERF_ATTR_SIZE_VER5: u32 = 112;
168pub const PERF_ATTR_SIZE_VER6: u32 = 120;
169pub const PERF_ATTR_SIZE_VER7: u32 = 128;
170pub const PERF_ATTR_SIZE_VER8: u32 = 136;
171pub const PERF_RECORD_MISC_CPUMODE_MASK: u32 = 7;
172pub const PERF_RECORD_MISC_CPUMODE_UNKNOWN: u32 = 0;
173pub const PERF_RECORD_MISC_KERNEL: u32 = 1;
174pub const PERF_RECORD_MISC_USER: u32 = 2;
175pub const PERF_RECORD_MISC_HYPERVISOR: u32 = 3;
176pub const PERF_RECORD_MISC_GUEST_KERNEL: u32 = 4;
177pub const PERF_RECORD_MISC_GUEST_USER: u32 = 5;
178pub const PERF_RECORD_MISC_PROC_MAP_PARSE_TIMEOUT: u32 = 4096;
179pub const PERF_RECORD_MISC_MMAP_DATA: u32 = 8192;
180pub const PERF_RECORD_MISC_COMM_EXEC: u32 = 8192;
181pub const PERF_RECORD_MISC_FORK_EXEC: u32 = 8192;
182pub const PERF_RECORD_MISC_SWITCH_OUT: u32 = 8192;
183pub const PERF_RECORD_MISC_EXACT_IP: u32 = 16384;
184pub const PERF_RECORD_MISC_SWITCH_OUT_PREEMPT: u32 = 16384;
185pub const PERF_RECORD_MISC_MMAP_BUILD_ID: u32 = 16384;
186pub const PERF_RECORD_MISC_EXT_RESERVED: u32 = 32768;
187pub const PERF_RECORD_KSYMBOL_FLAGS_UNREGISTER: u32 = 1;
188pub const PERF_MAX_STACK_DEPTH: u32 = 127;
189pub const PERF_MAX_CONTEXTS_PER_STACK: u32 = 8;
190pub const PERF_AUX_FLAG_TRUNCATED: u32 = 1;
191pub const PERF_AUX_FLAG_OVERWRITE: u32 = 2;
192pub const PERF_AUX_FLAG_PARTIAL: u32 = 4;
193pub const PERF_AUX_FLAG_COLLISION: u32 = 8;
194pub const PERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK: u32 = 65280;
195pub const PERF_AUX_FLAG_CORESIGHT_FORMAT_CORESIGHT: u32 = 0;
196pub const PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW: u32 = 256;
197pub const PERF_FLAG_FD_NO_GROUP: u32 = 1;
198pub const PERF_FLAG_FD_OUTPUT: u32 = 2;
199pub const PERF_FLAG_PID_CGROUP: u32 = 4;
200pub const PERF_FLAG_FD_CLOEXEC: u32 = 8;
201pub const PERF_MEM_OP_NA: u32 = 1;
202pub const PERF_MEM_OP_LOAD: u32 = 2;
203pub const PERF_MEM_OP_STORE: u32 = 4;
204pub const PERF_MEM_OP_PFETCH: u32 = 8;
205pub const PERF_MEM_OP_EXEC: u32 = 16;
206pub const PERF_MEM_OP_SHIFT: u32 = 0;
207pub const PERF_MEM_LVL_NA: u32 = 1;
208pub const PERF_MEM_LVL_HIT: u32 = 2;
209pub const PERF_MEM_LVL_MISS: u32 = 4;
210pub const PERF_MEM_LVL_L1: u32 = 8;
211pub const PERF_MEM_LVL_LFB: u32 = 16;
212pub const PERF_MEM_LVL_L2: u32 = 32;
213pub const PERF_MEM_LVL_L3: u32 = 64;
214pub const PERF_MEM_LVL_LOC_RAM: u32 = 128;
215pub const PERF_MEM_LVL_REM_RAM1: u32 = 256;
216pub const PERF_MEM_LVL_REM_RAM2: u32 = 512;
217pub const PERF_MEM_LVL_REM_CCE1: u32 = 1024;
218pub const PERF_MEM_LVL_REM_CCE2: u32 = 2048;
219pub const PERF_MEM_LVL_IO: u32 = 4096;
220pub const PERF_MEM_LVL_UNC: u32 = 8192;
221pub const PERF_MEM_LVL_SHIFT: u32 = 5;
222pub const PERF_MEM_REMOTE_REMOTE: u32 = 1;
223pub const PERF_MEM_REMOTE_SHIFT: u32 = 37;
224pub const PERF_MEM_LVLNUM_L1: u32 = 1;
225pub const PERF_MEM_LVLNUM_L2: u32 = 2;
226pub const PERF_MEM_LVLNUM_L3: u32 = 3;
227pub const PERF_MEM_LVLNUM_L4: u32 = 4;
228pub const PERF_MEM_LVLNUM_UNC: u32 = 8;
229pub const PERF_MEM_LVLNUM_CXL: u32 = 9;
230pub const PERF_MEM_LVLNUM_IO: u32 = 10;
231pub const PERF_MEM_LVLNUM_ANY_CACHE: u32 = 11;
232pub const PERF_MEM_LVLNUM_LFB: u32 = 12;
233pub const PERF_MEM_LVLNUM_RAM: u32 = 13;
234pub const PERF_MEM_LVLNUM_PMEM: u32 = 14;
235pub const PERF_MEM_LVLNUM_NA: u32 = 15;
236pub const PERF_MEM_LVLNUM_SHIFT: u32 = 33;
237pub const PERF_MEM_SNOOP_NA: u32 = 1;
238pub const PERF_MEM_SNOOP_NONE: u32 = 2;
239pub const PERF_MEM_SNOOP_HIT: u32 = 4;
240pub const PERF_MEM_SNOOP_MISS: u32 = 8;
241pub const PERF_MEM_SNOOP_HITM: u32 = 16;
242pub const PERF_MEM_SNOOP_SHIFT: u32 = 19;
243pub const PERF_MEM_SNOOPX_FWD: u32 = 1;
244pub const PERF_MEM_SNOOPX_PEER: u32 = 2;
245pub const PERF_MEM_SNOOPX_SHIFT: u32 = 38;
246pub const PERF_MEM_LOCK_NA: u32 = 1;
247pub const PERF_MEM_LOCK_LOCKED: u32 = 2;
248pub const PERF_MEM_LOCK_SHIFT: u32 = 24;
249pub const PERF_MEM_TLB_NA: u32 = 1;
250pub const PERF_MEM_TLB_HIT: u32 = 2;
251pub const PERF_MEM_TLB_MISS: u32 = 4;
252pub const PERF_MEM_TLB_L1: u32 = 8;
253pub const PERF_MEM_TLB_L2: u32 = 16;
254pub const PERF_MEM_TLB_WK: u32 = 32;
255pub const PERF_MEM_TLB_OS: u32 = 64;
256pub const PERF_MEM_TLB_SHIFT: u32 = 26;
257pub const PERF_MEM_BLK_NA: u32 = 1;
258pub const PERF_MEM_BLK_DATA: u32 = 2;
259pub const PERF_MEM_BLK_ADDR: u32 = 4;
260pub const PERF_MEM_BLK_SHIFT: u32 = 40;
261pub const PERF_MEM_HOPS_0: u32 = 1;
262pub const PERF_MEM_HOPS_1: u32 = 2;
263pub const PERF_MEM_HOPS_2: u32 = 3;
264pub const PERF_MEM_HOPS_3: u32 = 4;
265pub const PERF_MEM_HOPS_SHIFT: u32 = 43;
266pub const PERF_BRANCH_ENTRY_INFO_BITS_MAX: u32 = 33;
267pub const __X32_SYSCALL_BIT: u32 = 1073741824;
268pub const __NR_read: u32 = 0;
269pub const __NR_write: u32 = 1;
270pub const __NR_open: u32 = 2;
271pub const __NR_close: u32 = 3;
272pub const __NR_stat: u32 = 4;
273pub const __NR_fstat: u32 = 5;
274pub const __NR_lstat: u32 = 6;
275pub const __NR_poll: u32 = 7;
276pub const __NR_lseek: u32 = 8;
277pub const __NR_mmap: u32 = 9;
278pub const __NR_mprotect: u32 = 10;
279pub const __NR_munmap: u32 = 11;
280pub const __NR_brk: u32 = 12;
281pub const __NR_rt_sigaction: u32 = 13;
282pub const __NR_rt_sigprocmask: u32 = 14;
283pub const __NR_rt_sigreturn: u32 = 15;
284pub const __NR_ioctl: u32 = 16;
285pub const __NR_pread64: u32 = 17;
286pub const __NR_pwrite64: u32 = 18;
287pub const __NR_readv: u32 = 19;
288pub const __NR_writev: u32 = 20;
289pub const __NR_access: u32 = 21;
290pub const __NR_pipe: u32 = 22;
291pub const __NR_select: u32 = 23;
292pub const __NR_sched_yield: u32 = 24;
293pub const __NR_mremap: u32 = 25;
294pub const __NR_msync: u32 = 26;
295pub const __NR_mincore: u32 = 27;
296pub const __NR_madvise: u32 = 28;
297pub const __NR_shmget: u32 = 29;
298pub const __NR_shmat: u32 = 30;
299pub const __NR_shmctl: u32 = 31;
300pub const __NR_dup: u32 = 32;
301pub const __NR_dup2: u32 = 33;
302pub const __NR_pause: u32 = 34;
303pub const __NR_nanosleep: u32 = 35;
304pub const __NR_getitimer: u32 = 36;
305pub const __NR_alarm: u32 = 37;
306pub const __NR_setitimer: u32 = 38;
307pub const __NR_getpid: u32 = 39;
308pub const __NR_sendfile: u32 = 40;
309pub const __NR_socket: u32 = 41;
310pub const __NR_connect: u32 = 42;
311pub const __NR_accept: u32 = 43;
312pub const __NR_sendto: u32 = 44;
313pub const __NR_recvfrom: u32 = 45;
314pub const __NR_sendmsg: u32 = 46;
315pub const __NR_recvmsg: u32 = 47;
316pub const __NR_shutdown: u32 = 48;
317pub const __NR_bind: u32 = 49;
318pub const __NR_listen: u32 = 50;
319pub const __NR_getsockname: u32 = 51;
320pub const __NR_getpeername: u32 = 52;
321pub const __NR_socketpair: u32 = 53;
322pub const __NR_setsockopt: u32 = 54;
323pub const __NR_getsockopt: u32 = 55;
324pub const __NR_clone: u32 = 56;
325pub const __NR_fork: u32 = 57;
326pub const __NR_vfork: u32 = 58;
327pub const __NR_execve: u32 = 59;
328pub const __NR_exit: u32 = 60;
329pub const __NR_wait4: u32 = 61;
330pub const __NR_kill: u32 = 62;
331pub const __NR_uname: u32 = 63;
332pub const __NR_semget: u32 = 64;
333pub const __NR_semop: u32 = 65;
334pub const __NR_semctl: u32 = 66;
335pub const __NR_shmdt: u32 = 67;
336pub const __NR_msgget: u32 = 68;
337pub const __NR_msgsnd: u32 = 69;
338pub const __NR_msgrcv: u32 = 70;
339pub const __NR_msgctl: u32 = 71;
340pub const __NR_fcntl: u32 = 72;
341pub const __NR_flock: u32 = 73;
342pub const __NR_fsync: u32 = 74;
343pub const __NR_fdatasync: u32 = 75;
344pub const __NR_truncate: u32 = 76;
345pub const __NR_ftruncate: u32 = 77;
346pub const __NR_getdents: u32 = 78;
347pub const __NR_getcwd: u32 = 79;
348pub const __NR_chdir: u32 = 80;
349pub const __NR_fchdir: u32 = 81;
350pub const __NR_rename: u32 = 82;
351pub const __NR_mkdir: u32 = 83;
352pub const __NR_rmdir: u32 = 84;
353pub const __NR_creat: u32 = 85;
354pub const __NR_link: u32 = 86;
355pub const __NR_unlink: u32 = 87;
356pub const __NR_symlink: u32 = 88;
357pub const __NR_readlink: u32 = 89;
358pub const __NR_chmod: u32 = 90;
359pub const __NR_fchmod: u32 = 91;
360pub const __NR_chown: u32 = 92;
361pub const __NR_fchown: u32 = 93;
362pub const __NR_lchown: u32 = 94;
363pub const __NR_umask: u32 = 95;
364pub const __NR_gettimeofday: u32 = 96;
365pub const __NR_getrlimit: u32 = 97;
366pub const __NR_getrusage: u32 = 98;
367pub const __NR_sysinfo: u32 = 99;
368pub const __NR_times: u32 = 100;
369pub const __NR_ptrace: u32 = 101;
370pub const __NR_getuid: u32 = 102;
371pub const __NR_syslog: u32 = 103;
372pub const __NR_getgid: u32 = 104;
373pub const __NR_setuid: u32 = 105;
374pub const __NR_setgid: u32 = 106;
375pub const __NR_geteuid: u32 = 107;
376pub const __NR_getegid: u32 = 108;
377pub const __NR_setpgid: u32 = 109;
378pub const __NR_getppid: u32 = 110;
379pub const __NR_getpgrp: u32 = 111;
380pub const __NR_setsid: u32 = 112;
381pub const __NR_setreuid: u32 = 113;
382pub const __NR_setregid: u32 = 114;
383pub const __NR_getgroups: u32 = 115;
384pub const __NR_setgroups: u32 = 116;
385pub const __NR_setresuid: u32 = 117;
386pub const __NR_getresuid: u32 = 118;
387pub const __NR_setresgid: u32 = 119;
388pub const __NR_getresgid: u32 = 120;
389pub const __NR_getpgid: u32 = 121;
390pub const __NR_setfsuid: u32 = 122;
391pub const __NR_setfsgid: u32 = 123;
392pub const __NR_getsid: u32 = 124;
393pub const __NR_capget: u32 = 125;
394pub const __NR_capset: u32 = 126;
395pub const __NR_rt_sigpending: u32 = 127;
396pub const __NR_rt_sigtimedwait: u32 = 128;
397pub const __NR_rt_sigqueueinfo: u32 = 129;
398pub const __NR_rt_sigsuspend: u32 = 130;
399pub const __NR_sigaltstack: u32 = 131;
400pub const __NR_utime: u32 = 132;
401pub const __NR_mknod: u32 = 133;
402pub const __NR_uselib: u32 = 134;
403pub const __NR_personality: u32 = 135;
404pub const __NR_ustat: u32 = 136;
405pub const __NR_statfs: u32 = 137;
406pub const __NR_fstatfs: u32 = 138;
407pub const __NR_sysfs: u32 = 139;
408pub const __NR_getpriority: u32 = 140;
409pub const __NR_setpriority: u32 = 141;
410pub const __NR_sched_setparam: u32 = 142;
411pub const __NR_sched_getparam: u32 = 143;
412pub const __NR_sched_setscheduler: u32 = 144;
413pub const __NR_sched_getscheduler: u32 = 145;
414pub const __NR_sched_get_priority_max: u32 = 146;
415pub const __NR_sched_get_priority_min: u32 = 147;
416pub const __NR_sched_rr_get_interval: u32 = 148;
417pub const __NR_mlock: u32 = 149;
418pub const __NR_munlock: u32 = 150;
419pub const __NR_mlockall: u32 = 151;
420pub const __NR_munlockall: u32 = 152;
421pub const __NR_vhangup: u32 = 153;
422pub const __NR_modify_ldt: u32 = 154;
423pub const __NR_pivot_root: u32 = 155;
424pub const __NR__sysctl: u32 = 156;
425pub const __NR_prctl: u32 = 157;
426pub const __NR_arch_prctl: u32 = 158;
427pub const __NR_adjtimex: u32 = 159;
428pub const __NR_setrlimit: u32 = 160;
429pub const __NR_chroot: u32 = 161;
430pub const __NR_sync: u32 = 162;
431pub const __NR_acct: u32 = 163;
432pub const __NR_settimeofday: u32 = 164;
433pub const __NR_mount: u32 = 165;
434pub const __NR_umount2: u32 = 166;
435pub const __NR_swapon: u32 = 167;
436pub const __NR_swapoff: u32 = 168;
437pub const __NR_reboot: u32 = 169;
438pub const __NR_sethostname: u32 = 170;
439pub const __NR_setdomainname: u32 = 171;
440pub const __NR_iopl: u32 = 172;
441pub const __NR_ioperm: u32 = 173;
442pub const __NR_create_module: u32 = 174;
443pub const __NR_init_module: u32 = 175;
444pub const __NR_delete_module: u32 = 176;
445pub const __NR_get_kernel_syms: u32 = 177;
446pub const __NR_query_module: u32 = 178;
447pub const __NR_quotactl: u32 = 179;
448pub const __NR_nfsservctl: u32 = 180;
449pub const __NR_getpmsg: u32 = 181;
450pub const __NR_putpmsg: u32 = 182;
451pub const __NR_afs_syscall: u32 = 183;
452pub const __NR_tuxcall: u32 = 184;
453pub const __NR_security: u32 = 185;
454pub const __NR_gettid: u32 = 186;
455pub const __NR_readahead: u32 = 187;
456pub const __NR_setxattr: u32 = 188;
457pub const __NR_lsetxattr: u32 = 189;
458pub const __NR_fsetxattr: u32 = 190;
459pub const __NR_getxattr: u32 = 191;
460pub const __NR_lgetxattr: u32 = 192;
461pub const __NR_fgetxattr: u32 = 193;
462pub const __NR_listxattr: u32 = 194;
463pub const __NR_llistxattr: u32 = 195;
464pub const __NR_flistxattr: u32 = 196;
465pub const __NR_removexattr: u32 = 197;
466pub const __NR_lremovexattr: u32 = 198;
467pub const __NR_fremovexattr: u32 = 199;
468pub const __NR_tkill: u32 = 200;
469pub const __NR_time: u32 = 201;
470pub const __NR_futex: u32 = 202;
471pub const __NR_sched_setaffinity: u32 = 203;
472pub const __NR_sched_getaffinity: u32 = 204;
473pub const __NR_set_thread_area: u32 = 205;
474pub const __NR_io_setup: u32 = 206;
475pub const __NR_io_destroy: u32 = 207;
476pub const __NR_io_getevents: u32 = 208;
477pub const __NR_io_submit: u32 = 209;
478pub const __NR_io_cancel: u32 = 210;
479pub const __NR_get_thread_area: u32 = 211;
480pub const __NR_lookup_dcookie: u32 = 212;
481pub const __NR_epoll_create: u32 = 213;
482pub const __NR_epoll_ctl_old: u32 = 214;
483pub const __NR_epoll_wait_old: u32 = 215;
484pub const __NR_remap_file_pages: u32 = 216;
485pub const __NR_getdents64: u32 = 217;
486pub const __NR_set_tid_address: u32 = 218;
487pub const __NR_restart_syscall: u32 = 219;
488pub const __NR_semtimedop: u32 = 220;
489pub const __NR_fadvise64: u32 = 221;
490pub const __NR_timer_create: u32 = 222;
491pub const __NR_timer_settime: u32 = 223;
492pub const __NR_timer_gettime: u32 = 224;
493pub const __NR_timer_getoverrun: u32 = 225;
494pub const __NR_timer_delete: u32 = 226;
495pub const __NR_clock_settime: u32 = 227;
496pub const __NR_clock_gettime: u32 = 228;
497pub const __NR_clock_getres: u32 = 229;
498pub const __NR_clock_nanosleep: u32 = 230;
499pub const __NR_exit_group: u32 = 231;
500pub const __NR_epoll_wait: u32 = 232;
501pub const __NR_epoll_ctl: u32 = 233;
502pub const __NR_tgkill: u32 = 234;
503pub const __NR_utimes: u32 = 235;
504pub const __NR_vserver: u32 = 236;
505pub const __NR_mbind: u32 = 237;
506pub const __NR_set_mempolicy: u32 = 238;
507pub const __NR_get_mempolicy: u32 = 239;
508pub const __NR_mq_open: u32 = 240;
509pub const __NR_mq_unlink: u32 = 241;
510pub const __NR_mq_timedsend: u32 = 242;
511pub const __NR_mq_timedreceive: u32 = 243;
512pub const __NR_mq_notify: u32 = 244;
513pub const __NR_mq_getsetattr: u32 = 245;
514pub const __NR_kexec_load: u32 = 246;
515pub const __NR_waitid: u32 = 247;
516pub const __NR_add_key: u32 = 248;
517pub const __NR_request_key: u32 = 249;
518pub const __NR_keyctl: u32 = 250;
519pub const __NR_ioprio_set: u32 = 251;
520pub const __NR_ioprio_get: u32 = 252;
521pub const __NR_inotify_init: u32 = 253;
522pub const __NR_inotify_add_watch: u32 = 254;
523pub const __NR_inotify_rm_watch: u32 = 255;
524pub const __NR_migrate_pages: u32 = 256;
525pub const __NR_openat: u32 = 257;
526pub const __NR_mkdirat: u32 = 258;
527pub const __NR_mknodat: u32 = 259;
528pub const __NR_fchownat: u32 = 260;
529pub const __NR_futimesat: u32 = 261;
530pub const __NR_newfstatat: u32 = 262;
531pub const __NR_unlinkat: u32 = 263;
532pub const __NR_renameat: u32 = 264;
533pub const __NR_linkat: u32 = 265;
534pub const __NR_symlinkat: u32 = 266;
535pub const __NR_readlinkat: u32 = 267;
536pub const __NR_fchmodat: u32 = 268;
537pub const __NR_faccessat: u32 = 269;
538pub const __NR_pselect6: u32 = 270;
539pub const __NR_ppoll: u32 = 271;
540pub const __NR_unshare: u32 = 272;
541pub const __NR_set_robust_list: u32 = 273;
542pub const __NR_get_robust_list: u32 = 274;
543pub const __NR_splice: u32 = 275;
544pub const __NR_tee: u32 = 276;
545pub const __NR_sync_file_range: u32 = 277;
546pub const __NR_vmsplice: u32 = 278;
547pub const __NR_move_pages: u32 = 279;
548pub const __NR_utimensat: u32 = 280;
549pub const __NR_epoll_pwait: u32 = 281;
550pub const __NR_signalfd: u32 = 282;
551pub const __NR_timerfd_create: u32 = 283;
552pub const __NR_eventfd: u32 = 284;
553pub const __NR_fallocate: u32 = 285;
554pub const __NR_timerfd_settime: u32 = 286;
555pub const __NR_timerfd_gettime: u32 = 287;
556pub const __NR_accept4: u32 = 288;
557pub const __NR_signalfd4: u32 = 289;
558pub const __NR_eventfd2: u32 = 290;
559pub const __NR_epoll_create1: u32 = 291;
560pub const __NR_dup3: u32 = 292;
561pub const __NR_pipe2: u32 = 293;
562pub const __NR_inotify_init1: u32 = 294;
563pub const __NR_preadv: u32 = 295;
564pub const __NR_pwritev: u32 = 296;
565pub const __NR_rt_tgsigqueueinfo: u32 = 297;
566pub const __NR_perf_event_open: u32 = 298;
567pub const __NR_recvmmsg: u32 = 299;
568pub const __NR_fanotify_init: u32 = 300;
569pub const __NR_fanotify_mark: u32 = 301;
570pub const __NR_prlimit64: u32 = 302;
571pub const __NR_name_to_handle_at: u32 = 303;
572pub const __NR_open_by_handle_at: u32 = 304;
573pub const __NR_clock_adjtime: u32 = 305;
574pub const __NR_syncfs: u32 = 306;
575pub const __NR_sendmmsg: u32 = 307;
576pub const __NR_setns: u32 = 308;
577pub const __NR_getcpu: u32 = 309;
578pub const __NR_process_vm_readv: u32 = 310;
579pub const __NR_process_vm_writev: u32 = 311;
580pub const __NR_kcmp: u32 = 312;
581pub const __NR_finit_module: u32 = 313;
582pub const __NR_sched_setattr: u32 = 314;
583pub const __NR_sched_getattr: u32 = 315;
584pub const __NR_renameat2: u32 = 316;
585pub const __NR_seccomp: u32 = 317;
586pub const __NR_getrandom: u32 = 318;
587pub const __NR_memfd_create: u32 = 319;
588pub const __NR_kexec_file_load: u32 = 320;
589pub const __NR_bpf: u32 = 321;
590pub const __NR_execveat: u32 = 322;
591pub const __NR_userfaultfd: u32 = 323;
592pub const __NR_membarrier: u32 = 324;
593pub const __NR_mlock2: u32 = 325;
594pub const __NR_copy_file_range: u32 = 326;
595pub const __NR_preadv2: u32 = 327;
596pub const __NR_pwritev2: u32 = 328;
597pub const __NR_pkey_mprotect: u32 = 329;
598pub const __NR_pkey_alloc: u32 = 330;
599pub const __NR_pkey_free: u32 = 331;
600pub const __NR_statx: u32 = 332;
601pub const __NR_io_pgetevents: u32 = 333;
602pub const __NR_rseq: u32 = 334;
603pub const __NR_pidfd_send_signal: u32 = 424;
604pub const __NR_io_uring_setup: u32 = 425;
605pub const __NR_io_uring_enter: u32 = 426;
606pub const __NR_io_uring_register: u32 = 427;
607pub const __NR_open_tree: u32 = 428;
608pub const __NR_move_mount: u32 = 429;
609pub const __NR_fsopen: u32 = 430;
610pub const __NR_fsconfig: u32 = 431;
611pub const __NR_fsmount: u32 = 432;
612pub const __NR_fspick: u32 = 433;
613pub const __NR_pidfd_open: u32 = 434;
614pub const __NR_clone3: u32 = 435;
615pub const __NR_close_range: u32 = 436;
616pub const __NR_openat2: u32 = 437;
617pub const __NR_pidfd_getfd: u32 = 438;
618pub const __NR_faccessat2: u32 = 439;
619pub const __NR_process_madvise: u32 = 440;
620pub const __NR_epoll_pwait2: u32 = 441;
621pub const __NR_mount_setattr: u32 = 442;
622pub const __NR_quotactl_fd: u32 = 443;
623pub const __NR_landlock_create_ruleset: u32 = 444;
624pub const __NR_landlock_add_rule: u32 = 445;
625pub const __NR_landlock_restrict_self: u32 = 446;
626pub const __NR_memfd_secret: u32 = 447;
627pub const __NR_process_mrelease: u32 = 448;
628pub const __NR_futex_waitv: u32 = 449;
629pub const __NR_set_mempolicy_home_node: u32 = 450;
630pub const __NR_cachestat: u32 = 451;
631pub const __NR_fchmodat2: u32 = 452;
632pub const __NR_map_shadow_stack: u32 = 453;
633pub const __NR_futex_wake: u32 = 454;
634pub const __NR_futex_wait: u32 = 455;
635pub const __NR_futex_requeue: u32 = 456;
636pub const __NR_statmount: u32 = 457;
637pub const __NR_listmount: u32 = 458;
638pub const __NR_lsm_get_self_attr: u32 = 459;
639pub const __NR_lsm_set_self_attr: u32 = 460;
640pub const __NR_lsm_list_modules: u32 = 461;
641pub type __s8 = ::std::os::raw::c_schar;
642pub type __u8 = ::std::os::raw::c_uchar;
643pub type __s16 = ::std::os::raw::c_short;
644pub type __u16 = ::std::os::raw::c_ushort;
645pub type __s32 = ::std::os::raw::c_int;
646pub type __u32 = ::std::os::raw::c_uint;
647pub type __s64 = ::std::os::raw::c_longlong;
648pub type __u64 = ::std::os::raw::c_ulonglong;
649#[repr(C)]
650#[derive(Debug, Default, Copy, Clone)]
651pub struct __kernel_fd_set {
652    pub fds_bits: [::std::os::raw::c_ulong; 16usize],
653}
654#[test]
655fn bindgen_test_layout___kernel_fd_set() {
656    const UNINIT: ::std::mem::MaybeUninit<__kernel_fd_set> = ::std::mem::MaybeUninit::uninit();
657    let ptr = UNINIT.as_ptr();
658    assert_eq!(
659        ::std::mem::size_of::<__kernel_fd_set>(),
660        128usize,
661        concat!("Size of: ", stringify!(__kernel_fd_set))
662    );
663    assert_eq!(
664        ::std::mem::align_of::<__kernel_fd_set>(),
665        8usize,
666        concat!("Alignment of ", stringify!(__kernel_fd_set))
667    );
668    assert_eq!(
669        unsafe { ::std::ptr::addr_of!((*ptr).fds_bits) as usize - ptr as usize },
670        0usize,
671        concat!(
672            "Offset of field: ",
673            stringify!(__kernel_fd_set),
674            "::",
675            stringify!(fds_bits)
676        )
677    );
678}
679pub type __kernel_sighandler_t =
680    ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>;
681pub type __kernel_key_t = ::std::os::raw::c_int;
682pub type __kernel_mqd_t = ::std::os::raw::c_int;
683pub type __kernel_old_uid_t = ::std::os::raw::c_ushort;
684pub type __kernel_old_gid_t = ::std::os::raw::c_ushort;
685pub type __kernel_old_dev_t = ::std::os::raw::c_ulong;
686pub type __kernel_long_t = ::std::os::raw::c_long;
687pub type __kernel_ulong_t = ::std::os::raw::c_ulong;
688pub type __kernel_ino_t = __kernel_ulong_t;
689pub type __kernel_mode_t = ::std::os::raw::c_uint;
690pub type __kernel_pid_t = ::std::os::raw::c_int;
691pub type __kernel_ipc_pid_t = ::std::os::raw::c_int;
692pub type __kernel_uid_t = ::std::os::raw::c_uint;
693pub type __kernel_gid_t = ::std::os::raw::c_uint;
694pub type __kernel_suseconds_t = __kernel_long_t;
695pub type __kernel_daddr_t = ::std::os::raw::c_int;
696pub type __kernel_uid32_t = ::std::os::raw::c_uint;
697pub type __kernel_gid32_t = ::std::os::raw::c_uint;
698pub type __kernel_size_t = __kernel_ulong_t;
699pub type __kernel_ssize_t = __kernel_long_t;
700pub type __kernel_ptrdiff_t = __kernel_long_t;
701#[repr(C)]
702#[derive(Debug, Default, Copy, Clone)]
703pub struct __kernel_fsid_t {
704    pub val: [::std::os::raw::c_int; 2usize],
705}
706#[test]
707fn bindgen_test_layout___kernel_fsid_t() {
708    const UNINIT: ::std::mem::MaybeUninit<__kernel_fsid_t> = ::std::mem::MaybeUninit::uninit();
709    let ptr = UNINIT.as_ptr();
710    assert_eq!(
711        ::std::mem::size_of::<__kernel_fsid_t>(),
712        8usize,
713        concat!("Size of: ", stringify!(__kernel_fsid_t))
714    );
715    assert_eq!(
716        ::std::mem::align_of::<__kernel_fsid_t>(),
717        4usize,
718        concat!("Alignment of ", stringify!(__kernel_fsid_t))
719    );
720    assert_eq!(
721        unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize },
722        0usize,
723        concat!(
724            "Offset of field: ",
725            stringify!(__kernel_fsid_t),
726            "::",
727            stringify!(val)
728        )
729    );
730}
731pub type __kernel_off_t = __kernel_long_t;
732pub type __kernel_loff_t = ::std::os::raw::c_longlong;
733pub type __kernel_old_time_t = __kernel_long_t;
734pub type __kernel_time_t = __kernel_long_t;
735pub type __kernel_time64_t = ::std::os::raw::c_longlong;
736pub type __kernel_clock_t = __kernel_long_t;
737pub type __kernel_timer_t = ::std::os::raw::c_int;
738pub type __kernel_clockid_t = ::std::os::raw::c_int;
739pub type __kernel_caddr_t = *mut ::std::os::raw::c_char;
740pub type __kernel_uid16_t = ::std::os::raw::c_ushort;
741pub type __kernel_gid16_t = ::std::os::raw::c_ushort;
742pub type __s128 = i128;
743pub type __u128 = u128;
744pub type __le16 = __u16;
745pub type __be16 = __u16;
746pub type __le32 = __u32;
747pub type __be32 = __u32;
748pub type __le64 = __u64;
749pub type __be64 = __u64;
750pub type __sum16 = __u16;
751pub type __wsum = __u32;
752pub type __poll_t = ::std::os::raw::c_uint;
753pub const PERF_TYPE_HARDWARE: perf_type_id = 0;
754pub const PERF_TYPE_SOFTWARE: perf_type_id = 1;
755pub const PERF_TYPE_TRACEPOINT: perf_type_id = 2;
756pub const PERF_TYPE_HW_CACHE: perf_type_id = 3;
757pub const PERF_TYPE_RAW: perf_type_id = 4;
758pub const PERF_TYPE_BREAKPOINT: perf_type_id = 5;
759pub const PERF_TYPE_MAX: perf_type_id = 6;
760pub type perf_type_id = ::std::os::raw::c_uint;
761pub const PERF_COUNT_HW_CPU_CYCLES: perf_hw_id = 0;
762pub const PERF_COUNT_HW_INSTRUCTIONS: perf_hw_id = 1;
763pub const PERF_COUNT_HW_CACHE_REFERENCES: perf_hw_id = 2;
764pub const PERF_COUNT_HW_CACHE_MISSES: perf_hw_id = 3;
765pub const PERF_COUNT_HW_BRANCH_INSTRUCTIONS: perf_hw_id = 4;
766pub const PERF_COUNT_HW_BRANCH_MISSES: perf_hw_id = 5;
767pub const PERF_COUNT_HW_BUS_CYCLES: perf_hw_id = 6;
768pub const PERF_COUNT_HW_STALLED_CYCLES_FRONTEND: perf_hw_id = 7;
769pub const PERF_COUNT_HW_STALLED_CYCLES_BACKEND: perf_hw_id = 8;
770pub const PERF_COUNT_HW_REF_CPU_CYCLES: perf_hw_id = 9;
771pub const PERF_COUNT_HW_MAX: perf_hw_id = 10;
772pub type perf_hw_id = ::std::os::raw::c_uint;
773pub const PERF_COUNT_HW_CACHE_L1D: perf_hw_cache_id = 0;
774pub const PERF_COUNT_HW_CACHE_L1I: perf_hw_cache_id = 1;
775pub const PERF_COUNT_HW_CACHE_LL: perf_hw_cache_id = 2;
776pub const PERF_COUNT_HW_CACHE_DTLB: perf_hw_cache_id = 3;
777pub const PERF_COUNT_HW_CACHE_ITLB: perf_hw_cache_id = 4;
778pub const PERF_COUNT_HW_CACHE_BPU: perf_hw_cache_id = 5;
779pub const PERF_COUNT_HW_CACHE_NODE: perf_hw_cache_id = 6;
780pub const PERF_COUNT_HW_CACHE_MAX: perf_hw_cache_id = 7;
781pub type perf_hw_cache_id = ::std::os::raw::c_uint;
782pub const PERF_COUNT_HW_CACHE_OP_READ: perf_hw_cache_op_id = 0;
783pub const PERF_COUNT_HW_CACHE_OP_WRITE: perf_hw_cache_op_id = 1;
784pub const PERF_COUNT_HW_CACHE_OP_PREFETCH: perf_hw_cache_op_id = 2;
785pub const PERF_COUNT_HW_CACHE_OP_MAX: perf_hw_cache_op_id = 3;
786pub type perf_hw_cache_op_id = ::std::os::raw::c_uint;
787pub const PERF_COUNT_HW_CACHE_RESULT_ACCESS: perf_hw_cache_op_result_id = 0;
788pub const PERF_COUNT_HW_CACHE_RESULT_MISS: perf_hw_cache_op_result_id = 1;
789pub const PERF_COUNT_HW_CACHE_RESULT_MAX: perf_hw_cache_op_result_id = 2;
790pub type perf_hw_cache_op_result_id = ::std::os::raw::c_uint;
791pub const PERF_COUNT_SW_CPU_CLOCK: perf_sw_ids = 0;
792pub const PERF_COUNT_SW_TASK_CLOCK: perf_sw_ids = 1;
793pub const PERF_COUNT_SW_PAGE_FAULTS: perf_sw_ids = 2;
794pub const PERF_COUNT_SW_CONTEXT_SWITCHES: perf_sw_ids = 3;
795pub const PERF_COUNT_SW_CPU_MIGRATIONS: perf_sw_ids = 4;
796pub const PERF_COUNT_SW_PAGE_FAULTS_MIN: perf_sw_ids = 5;
797pub const PERF_COUNT_SW_PAGE_FAULTS_MAJ: perf_sw_ids = 6;
798pub const PERF_COUNT_SW_ALIGNMENT_FAULTS: perf_sw_ids = 7;
799pub const PERF_COUNT_SW_EMULATION_FAULTS: perf_sw_ids = 8;
800pub const PERF_COUNT_SW_DUMMY: perf_sw_ids = 9;
801pub const PERF_COUNT_SW_BPF_OUTPUT: perf_sw_ids = 10;
802pub const PERF_COUNT_SW_CGROUP_SWITCHES: perf_sw_ids = 11;
803pub const PERF_COUNT_SW_MAX: perf_sw_ids = 12;
804pub type perf_sw_ids = ::std::os::raw::c_uint;
805pub const PERF_SAMPLE_IP: perf_event_sample_format = 1;
806pub const PERF_SAMPLE_TID: perf_event_sample_format = 2;
807pub const PERF_SAMPLE_TIME: perf_event_sample_format = 4;
808pub const PERF_SAMPLE_ADDR: perf_event_sample_format = 8;
809pub const PERF_SAMPLE_READ: perf_event_sample_format = 16;
810pub const PERF_SAMPLE_CALLCHAIN: perf_event_sample_format = 32;
811pub const PERF_SAMPLE_ID: perf_event_sample_format = 64;
812pub const PERF_SAMPLE_CPU: perf_event_sample_format = 128;
813pub const PERF_SAMPLE_PERIOD: perf_event_sample_format = 256;
814pub const PERF_SAMPLE_STREAM_ID: perf_event_sample_format = 512;
815pub const PERF_SAMPLE_RAW: perf_event_sample_format = 1024;
816pub const PERF_SAMPLE_BRANCH_STACK: perf_event_sample_format = 2048;
817pub const PERF_SAMPLE_REGS_USER: perf_event_sample_format = 4096;
818pub const PERF_SAMPLE_STACK_USER: perf_event_sample_format = 8192;
819pub const PERF_SAMPLE_WEIGHT: perf_event_sample_format = 16384;
820pub const PERF_SAMPLE_DATA_SRC: perf_event_sample_format = 32768;
821pub const PERF_SAMPLE_IDENTIFIER: perf_event_sample_format = 65536;
822pub const PERF_SAMPLE_TRANSACTION: perf_event_sample_format = 131072;
823pub const PERF_SAMPLE_REGS_INTR: perf_event_sample_format = 262144;
824pub const PERF_SAMPLE_PHYS_ADDR: perf_event_sample_format = 524288;
825pub const PERF_SAMPLE_AUX: perf_event_sample_format = 1048576;
826pub const PERF_SAMPLE_CGROUP: perf_event_sample_format = 2097152;
827pub const PERF_SAMPLE_DATA_PAGE_SIZE: perf_event_sample_format = 4194304;
828pub const PERF_SAMPLE_CODE_PAGE_SIZE: perf_event_sample_format = 8388608;
829pub const PERF_SAMPLE_WEIGHT_STRUCT: perf_event_sample_format = 16777216;
830pub const PERF_SAMPLE_MAX: perf_event_sample_format = 33554432;
831pub type perf_event_sample_format = ::std::os::raw::c_uint;
832pub const PERF_SAMPLE_BRANCH_USER_SHIFT: perf_branch_sample_type_shift = 0;
833pub const PERF_SAMPLE_BRANCH_KERNEL_SHIFT: perf_branch_sample_type_shift = 1;
834pub const PERF_SAMPLE_BRANCH_HV_SHIFT: perf_branch_sample_type_shift = 2;
835pub const PERF_SAMPLE_BRANCH_ANY_SHIFT: perf_branch_sample_type_shift = 3;
836pub const PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT: perf_branch_sample_type_shift = 4;
837pub const PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT: perf_branch_sample_type_shift = 5;
838pub const PERF_SAMPLE_BRANCH_IND_CALL_SHIFT: perf_branch_sample_type_shift = 6;
839pub const PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT: perf_branch_sample_type_shift = 7;
840pub const PERF_SAMPLE_BRANCH_IN_TX_SHIFT: perf_branch_sample_type_shift = 8;
841pub const PERF_SAMPLE_BRANCH_NO_TX_SHIFT: perf_branch_sample_type_shift = 9;
842pub const PERF_SAMPLE_BRANCH_COND_SHIFT: perf_branch_sample_type_shift = 10;
843pub const PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT: perf_branch_sample_type_shift = 11;
844pub const PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT: perf_branch_sample_type_shift = 12;
845pub const PERF_SAMPLE_BRANCH_CALL_SHIFT: perf_branch_sample_type_shift = 13;
846pub const PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT: perf_branch_sample_type_shift = 14;
847pub const PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT: perf_branch_sample_type_shift = 15;
848pub const PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT: perf_branch_sample_type_shift = 16;
849pub const PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT: perf_branch_sample_type_shift = 17;
850pub const PERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT: perf_branch_sample_type_shift = 18;
851pub const PERF_SAMPLE_BRANCH_COUNTERS_SHIFT: perf_branch_sample_type_shift = 19;
852pub const PERF_SAMPLE_BRANCH_MAX_SHIFT: perf_branch_sample_type_shift = 20;
853pub type perf_branch_sample_type_shift = ::std::os::raw::c_uint;
854pub const PERF_SAMPLE_BRANCH_USER: perf_branch_sample_type = 1;
855pub const PERF_SAMPLE_BRANCH_KERNEL: perf_branch_sample_type = 2;
856pub const PERF_SAMPLE_BRANCH_HV: perf_branch_sample_type = 4;
857pub const PERF_SAMPLE_BRANCH_ANY: perf_branch_sample_type = 8;
858pub const PERF_SAMPLE_BRANCH_ANY_CALL: perf_branch_sample_type = 16;
859pub const PERF_SAMPLE_BRANCH_ANY_RETURN: perf_branch_sample_type = 32;
860pub const PERF_SAMPLE_BRANCH_IND_CALL: perf_branch_sample_type = 64;
861pub const PERF_SAMPLE_BRANCH_ABORT_TX: perf_branch_sample_type = 128;
862pub const PERF_SAMPLE_BRANCH_IN_TX: perf_branch_sample_type = 256;
863pub const PERF_SAMPLE_BRANCH_NO_TX: perf_branch_sample_type = 512;
864pub const PERF_SAMPLE_BRANCH_COND: perf_branch_sample_type = 1024;
865pub const PERF_SAMPLE_BRANCH_CALL_STACK: perf_branch_sample_type = 2048;
866pub const PERF_SAMPLE_BRANCH_IND_JUMP: perf_branch_sample_type = 4096;
867pub const PERF_SAMPLE_BRANCH_CALL: perf_branch_sample_type = 8192;
868pub const PERF_SAMPLE_BRANCH_NO_FLAGS: perf_branch_sample_type = 16384;
869pub const PERF_SAMPLE_BRANCH_NO_CYCLES: perf_branch_sample_type = 32768;
870pub const PERF_SAMPLE_BRANCH_TYPE_SAVE: perf_branch_sample_type = 65536;
871pub const PERF_SAMPLE_BRANCH_HW_INDEX: perf_branch_sample_type = 131072;
872pub const PERF_SAMPLE_BRANCH_PRIV_SAVE: perf_branch_sample_type = 262144;
873pub const PERF_SAMPLE_BRANCH_COUNTERS: perf_branch_sample_type = 524288;
874pub const PERF_SAMPLE_BRANCH_MAX: perf_branch_sample_type = 1048576;
875pub type perf_branch_sample_type = ::std::os::raw::c_uint;
876pub const PERF_BR_UNKNOWN: _bindgen_ty_1 = 0;
877pub const PERF_BR_COND: _bindgen_ty_1 = 1;
878pub const PERF_BR_UNCOND: _bindgen_ty_1 = 2;
879pub const PERF_BR_IND: _bindgen_ty_1 = 3;
880pub const PERF_BR_CALL: _bindgen_ty_1 = 4;
881pub const PERF_BR_IND_CALL: _bindgen_ty_1 = 5;
882pub const PERF_BR_RET: _bindgen_ty_1 = 6;
883pub const PERF_BR_SYSCALL: _bindgen_ty_1 = 7;
884pub const PERF_BR_SYSRET: _bindgen_ty_1 = 8;
885pub const PERF_BR_COND_CALL: _bindgen_ty_1 = 9;
886pub const PERF_BR_COND_RET: _bindgen_ty_1 = 10;
887pub const PERF_BR_ERET: _bindgen_ty_1 = 11;
888pub const PERF_BR_IRQ: _bindgen_ty_1 = 12;
889pub const PERF_BR_SERROR: _bindgen_ty_1 = 13;
890pub const PERF_BR_NO_TX: _bindgen_ty_1 = 14;
891pub const PERF_BR_EXTEND_ABI: _bindgen_ty_1 = 15;
892pub const PERF_BR_MAX: _bindgen_ty_1 = 16;
893pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
894pub const PERF_BR_SPEC_NA: _bindgen_ty_2 = 0;
895pub const PERF_BR_SPEC_WRONG_PATH: _bindgen_ty_2 = 1;
896pub const PERF_BR_NON_SPEC_CORRECT_PATH: _bindgen_ty_2 = 2;
897pub const PERF_BR_SPEC_CORRECT_PATH: _bindgen_ty_2 = 3;
898pub const PERF_BR_SPEC_MAX: _bindgen_ty_2 = 4;
899pub type _bindgen_ty_2 = ::std::os::raw::c_uint;
900pub const PERF_BR_NEW_FAULT_ALGN: _bindgen_ty_3 = 0;
901pub const PERF_BR_NEW_FAULT_DATA: _bindgen_ty_3 = 1;
902pub const PERF_BR_NEW_FAULT_INST: _bindgen_ty_3 = 2;
903pub const PERF_BR_NEW_ARCH_1: _bindgen_ty_3 = 3;
904pub const PERF_BR_NEW_ARCH_2: _bindgen_ty_3 = 4;
905pub const PERF_BR_NEW_ARCH_3: _bindgen_ty_3 = 5;
906pub const PERF_BR_NEW_ARCH_4: _bindgen_ty_3 = 6;
907pub const PERF_BR_NEW_ARCH_5: _bindgen_ty_3 = 7;
908pub const PERF_BR_NEW_MAX: _bindgen_ty_3 = 8;
909pub type _bindgen_ty_3 = ::std::os::raw::c_uint;
910pub const PERF_BR_PRIV_UNKNOWN: _bindgen_ty_4 = 0;
911pub const PERF_BR_PRIV_USER: _bindgen_ty_4 = 1;
912pub const PERF_BR_PRIV_KERNEL: _bindgen_ty_4 = 2;
913pub const PERF_BR_PRIV_HV: _bindgen_ty_4 = 3;
914pub type _bindgen_ty_4 = ::std::os::raw::c_uint;
915pub const PERF_SAMPLE_REGS_ABI_NONE: perf_sample_regs_abi = 0;
916pub const PERF_SAMPLE_REGS_ABI_32: perf_sample_regs_abi = 1;
917pub const PERF_SAMPLE_REGS_ABI_64: perf_sample_regs_abi = 2;
918pub type perf_sample_regs_abi = ::std::os::raw::c_uint;
919pub const PERF_TXN_ELISION: _bindgen_ty_5 = 1;
920pub const PERF_TXN_TRANSACTION: _bindgen_ty_5 = 2;
921pub const PERF_TXN_SYNC: _bindgen_ty_5 = 4;
922pub const PERF_TXN_ASYNC: _bindgen_ty_5 = 8;
923pub const PERF_TXN_RETRY: _bindgen_ty_5 = 16;
924pub const PERF_TXN_CONFLICT: _bindgen_ty_5 = 32;
925pub const PERF_TXN_CAPACITY_WRITE: _bindgen_ty_5 = 64;
926pub const PERF_TXN_CAPACITY_READ: _bindgen_ty_5 = 128;
927pub const PERF_TXN_MAX: _bindgen_ty_5 = 256;
928pub const PERF_TXN_ABORT_MASK: _bindgen_ty_5 = 18446744069414584320;
929pub const PERF_TXN_ABORT_SHIFT: _bindgen_ty_5 = 32;
930pub type _bindgen_ty_5 = ::std::os::raw::c_ulong;
931pub const PERF_FORMAT_TOTAL_TIME_ENABLED: perf_event_read_format = 1;
932pub const PERF_FORMAT_TOTAL_TIME_RUNNING: perf_event_read_format = 2;
933pub const PERF_FORMAT_ID: perf_event_read_format = 4;
934pub const PERF_FORMAT_GROUP: perf_event_read_format = 8;
935pub const PERF_FORMAT_LOST: perf_event_read_format = 16;
936pub const PERF_FORMAT_MAX: perf_event_read_format = 32;
937pub type perf_event_read_format = ::std::os::raw::c_uint;
938#[repr(C)]
939#[derive(Copy, Clone)]
940#[non_exhaustive]
941pub struct perf_event_attr {
942    pub type_: __u32,
943    pub size: __u32,
944    pub config: __u64,
945    pub __bindgen_anon_1: perf_event_attr__bindgen_ty_1,
946    pub sample_type: __u64,
947    pub read_format: __u64,
948    pub _bitfield_align_1: [u32; 0],
949    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
950    pub __bindgen_anon_2: perf_event_attr__bindgen_ty_2,
951    pub bp_type: __u32,
952    pub __bindgen_anon_3: perf_event_attr__bindgen_ty_3,
953    pub __bindgen_anon_4: perf_event_attr__bindgen_ty_4,
954    pub branch_sample_type: __u64,
955    pub sample_regs_user: __u64,
956    pub sample_stack_user: __u32,
957    pub clockid: __s32,
958    pub sample_regs_intr: __u64,
959    pub aux_watermark: __u32,
960    pub sample_max_stack: __u16,
961    pub __reserved_2: __u16,
962    pub aux_sample_size: __u32,
963    pub __reserved_3: __u32,
964    pub sig_data: __u64,
965    pub config3: __u64,
966}
967#[repr(C)]
968#[derive(Copy, Clone)]
969pub union perf_event_attr__bindgen_ty_1 {
970    pub sample_period: __u64,
971    pub sample_freq: __u64,
972}
973#[test]
974fn bindgen_test_layout_perf_event_attr__bindgen_ty_1() {
975    const UNINIT: ::std::mem::MaybeUninit<perf_event_attr__bindgen_ty_1> =
976        ::std::mem::MaybeUninit::uninit();
977    let ptr = UNINIT.as_ptr();
978    assert_eq!(
979        ::std::mem::size_of::<perf_event_attr__bindgen_ty_1>(),
980        8usize,
981        concat!("Size of: ", stringify!(perf_event_attr__bindgen_ty_1))
982    );
983    assert_eq!(
984        ::std::mem::align_of::<perf_event_attr__bindgen_ty_1>(),
985        8usize,
986        concat!("Alignment of ", stringify!(perf_event_attr__bindgen_ty_1))
987    );
988    assert_eq!(
989        unsafe { ::std::ptr::addr_of!((*ptr).sample_period) as usize - ptr as usize },
990        0usize,
991        concat!(
992            "Offset of field: ",
993            stringify!(perf_event_attr__bindgen_ty_1),
994            "::",
995            stringify!(sample_period)
996        )
997    );
998    assert_eq!(
999        unsafe { ::std::ptr::addr_of!((*ptr).sample_freq) as usize - ptr as usize },
1000        0usize,
1001        concat!(
1002            "Offset of field: ",
1003            stringify!(perf_event_attr__bindgen_ty_1),
1004            "::",
1005            stringify!(sample_freq)
1006        )
1007    );
1008}
1009impl Default for perf_event_attr__bindgen_ty_1 {
1010    fn default() -> Self {
1011        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1012        unsafe {
1013            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1014            s.assume_init()
1015        }
1016    }
1017}
1018impl ::std::fmt::Debug for perf_event_attr__bindgen_ty_1 {
1019    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1020        write!(f, "perf_event_attr__bindgen_ty_1 {{ union }}")
1021    }
1022}
1023#[repr(C)]
1024#[derive(Copy, Clone)]
1025pub union perf_event_attr__bindgen_ty_2 {
1026    pub wakeup_events: __u32,
1027    pub wakeup_watermark: __u32,
1028}
1029#[test]
1030fn bindgen_test_layout_perf_event_attr__bindgen_ty_2() {
1031    const UNINIT: ::std::mem::MaybeUninit<perf_event_attr__bindgen_ty_2> =
1032        ::std::mem::MaybeUninit::uninit();
1033    let ptr = UNINIT.as_ptr();
1034    assert_eq!(
1035        ::std::mem::size_of::<perf_event_attr__bindgen_ty_2>(),
1036        4usize,
1037        concat!("Size of: ", stringify!(perf_event_attr__bindgen_ty_2))
1038    );
1039    assert_eq!(
1040        ::std::mem::align_of::<perf_event_attr__bindgen_ty_2>(),
1041        4usize,
1042        concat!("Alignment of ", stringify!(perf_event_attr__bindgen_ty_2))
1043    );
1044    assert_eq!(
1045        unsafe { ::std::ptr::addr_of!((*ptr).wakeup_events) as usize - ptr as usize },
1046        0usize,
1047        concat!(
1048            "Offset of field: ",
1049            stringify!(perf_event_attr__bindgen_ty_2),
1050            "::",
1051            stringify!(wakeup_events)
1052        )
1053    );
1054    assert_eq!(
1055        unsafe { ::std::ptr::addr_of!((*ptr).wakeup_watermark) as usize - ptr as usize },
1056        0usize,
1057        concat!(
1058            "Offset of field: ",
1059            stringify!(perf_event_attr__bindgen_ty_2),
1060            "::",
1061            stringify!(wakeup_watermark)
1062        )
1063    );
1064}
1065impl Default for perf_event_attr__bindgen_ty_2 {
1066    fn default() -> Self {
1067        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1068        unsafe {
1069            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1070            s.assume_init()
1071        }
1072    }
1073}
1074impl ::std::fmt::Debug for perf_event_attr__bindgen_ty_2 {
1075    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1076        write!(f, "perf_event_attr__bindgen_ty_2 {{ union }}")
1077    }
1078}
1079#[repr(C)]
1080#[derive(Copy, Clone)]
1081pub union perf_event_attr__bindgen_ty_3 {
1082    pub bp_addr: __u64,
1083    pub kprobe_func: __u64,
1084    pub uprobe_path: __u64,
1085    pub config1: __u64,
1086}
1087#[test]
1088fn bindgen_test_layout_perf_event_attr__bindgen_ty_3() {
1089    const UNINIT: ::std::mem::MaybeUninit<perf_event_attr__bindgen_ty_3> =
1090        ::std::mem::MaybeUninit::uninit();
1091    let ptr = UNINIT.as_ptr();
1092    assert_eq!(
1093        ::std::mem::size_of::<perf_event_attr__bindgen_ty_3>(),
1094        8usize,
1095        concat!("Size of: ", stringify!(perf_event_attr__bindgen_ty_3))
1096    );
1097    assert_eq!(
1098        ::std::mem::align_of::<perf_event_attr__bindgen_ty_3>(),
1099        8usize,
1100        concat!("Alignment of ", stringify!(perf_event_attr__bindgen_ty_3))
1101    );
1102    assert_eq!(
1103        unsafe { ::std::ptr::addr_of!((*ptr).bp_addr) as usize - ptr as usize },
1104        0usize,
1105        concat!(
1106            "Offset of field: ",
1107            stringify!(perf_event_attr__bindgen_ty_3),
1108            "::",
1109            stringify!(bp_addr)
1110        )
1111    );
1112    assert_eq!(
1113        unsafe { ::std::ptr::addr_of!((*ptr).kprobe_func) as usize - ptr as usize },
1114        0usize,
1115        concat!(
1116            "Offset of field: ",
1117            stringify!(perf_event_attr__bindgen_ty_3),
1118            "::",
1119            stringify!(kprobe_func)
1120        )
1121    );
1122    assert_eq!(
1123        unsafe { ::std::ptr::addr_of!((*ptr).uprobe_path) as usize - ptr as usize },
1124        0usize,
1125        concat!(
1126            "Offset of field: ",
1127            stringify!(perf_event_attr__bindgen_ty_3),
1128            "::",
1129            stringify!(uprobe_path)
1130        )
1131    );
1132    assert_eq!(
1133        unsafe { ::std::ptr::addr_of!((*ptr).config1) as usize - ptr as usize },
1134        0usize,
1135        concat!(
1136            "Offset of field: ",
1137            stringify!(perf_event_attr__bindgen_ty_3),
1138            "::",
1139            stringify!(config1)
1140        )
1141    );
1142}
1143impl Default for perf_event_attr__bindgen_ty_3 {
1144    fn default() -> Self {
1145        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1146        unsafe {
1147            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1148            s.assume_init()
1149        }
1150    }
1151}
1152impl ::std::fmt::Debug for perf_event_attr__bindgen_ty_3 {
1153    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1154        write!(f, "perf_event_attr__bindgen_ty_3 {{ union }}")
1155    }
1156}
1157#[repr(C)]
1158#[derive(Copy, Clone)]
1159pub union perf_event_attr__bindgen_ty_4 {
1160    pub bp_len: __u64,
1161    pub kprobe_addr: __u64,
1162    pub probe_offset: __u64,
1163    pub config2: __u64,
1164}
1165#[test]
1166fn bindgen_test_layout_perf_event_attr__bindgen_ty_4() {
1167    const UNINIT: ::std::mem::MaybeUninit<perf_event_attr__bindgen_ty_4> =
1168        ::std::mem::MaybeUninit::uninit();
1169    let ptr = UNINIT.as_ptr();
1170    assert_eq!(
1171        ::std::mem::size_of::<perf_event_attr__bindgen_ty_4>(),
1172        8usize,
1173        concat!("Size of: ", stringify!(perf_event_attr__bindgen_ty_4))
1174    );
1175    assert_eq!(
1176        ::std::mem::align_of::<perf_event_attr__bindgen_ty_4>(),
1177        8usize,
1178        concat!("Alignment of ", stringify!(perf_event_attr__bindgen_ty_4))
1179    );
1180    assert_eq!(
1181        unsafe { ::std::ptr::addr_of!((*ptr).bp_len) as usize - ptr as usize },
1182        0usize,
1183        concat!(
1184            "Offset of field: ",
1185            stringify!(perf_event_attr__bindgen_ty_4),
1186            "::",
1187            stringify!(bp_len)
1188        )
1189    );
1190    assert_eq!(
1191        unsafe { ::std::ptr::addr_of!((*ptr).kprobe_addr) as usize - ptr as usize },
1192        0usize,
1193        concat!(
1194            "Offset of field: ",
1195            stringify!(perf_event_attr__bindgen_ty_4),
1196            "::",
1197            stringify!(kprobe_addr)
1198        )
1199    );
1200    assert_eq!(
1201        unsafe { ::std::ptr::addr_of!((*ptr).probe_offset) as usize - ptr as usize },
1202        0usize,
1203        concat!(
1204            "Offset of field: ",
1205            stringify!(perf_event_attr__bindgen_ty_4),
1206            "::",
1207            stringify!(probe_offset)
1208        )
1209    );
1210    assert_eq!(
1211        unsafe { ::std::ptr::addr_of!((*ptr).config2) as usize - ptr as usize },
1212        0usize,
1213        concat!(
1214            "Offset of field: ",
1215            stringify!(perf_event_attr__bindgen_ty_4),
1216            "::",
1217            stringify!(config2)
1218        )
1219    );
1220}
1221impl Default for perf_event_attr__bindgen_ty_4 {
1222    fn default() -> Self {
1223        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1224        unsafe {
1225            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1226            s.assume_init()
1227        }
1228    }
1229}
1230impl ::std::fmt::Debug for perf_event_attr__bindgen_ty_4 {
1231    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1232        write!(f, "perf_event_attr__bindgen_ty_4 {{ union }}")
1233    }
1234}
1235#[test]
1236fn bindgen_test_layout_perf_event_attr() {
1237    const UNINIT: ::std::mem::MaybeUninit<perf_event_attr> = ::std::mem::MaybeUninit::uninit();
1238    let ptr = UNINIT.as_ptr();
1239    assert_eq!(
1240        ::std::mem::size_of::<perf_event_attr>(),
1241        136usize,
1242        concat!("Size of: ", stringify!(perf_event_attr))
1243    );
1244    assert_eq!(
1245        ::std::mem::align_of::<perf_event_attr>(),
1246        8usize,
1247        concat!("Alignment of ", stringify!(perf_event_attr))
1248    );
1249    assert_eq!(
1250        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
1251        0usize,
1252        concat!(
1253            "Offset of field: ",
1254            stringify!(perf_event_attr),
1255            "::",
1256            stringify!(type_)
1257        )
1258    );
1259    assert_eq!(
1260        unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize },
1261        4usize,
1262        concat!(
1263            "Offset of field: ",
1264            stringify!(perf_event_attr),
1265            "::",
1266            stringify!(size)
1267        )
1268    );
1269    assert_eq!(
1270        unsafe { ::std::ptr::addr_of!((*ptr).config) as usize - ptr as usize },
1271        8usize,
1272        concat!(
1273            "Offset of field: ",
1274            stringify!(perf_event_attr),
1275            "::",
1276            stringify!(config)
1277        )
1278    );
1279    assert_eq!(
1280        unsafe { ::std::ptr::addr_of!((*ptr).sample_type) as usize - ptr as usize },
1281        24usize,
1282        concat!(
1283            "Offset of field: ",
1284            stringify!(perf_event_attr),
1285            "::",
1286            stringify!(sample_type)
1287        )
1288    );
1289    assert_eq!(
1290        unsafe { ::std::ptr::addr_of!((*ptr).read_format) as usize - ptr as usize },
1291        32usize,
1292        concat!(
1293            "Offset of field: ",
1294            stringify!(perf_event_attr),
1295            "::",
1296            stringify!(read_format)
1297        )
1298    );
1299    assert_eq!(
1300        unsafe { ::std::ptr::addr_of!((*ptr).bp_type) as usize - ptr as usize },
1301        52usize,
1302        concat!(
1303            "Offset of field: ",
1304            stringify!(perf_event_attr),
1305            "::",
1306            stringify!(bp_type)
1307        )
1308    );
1309    assert_eq!(
1310        unsafe { ::std::ptr::addr_of!((*ptr).branch_sample_type) as usize - ptr as usize },
1311        72usize,
1312        concat!(
1313            "Offset of field: ",
1314            stringify!(perf_event_attr),
1315            "::",
1316            stringify!(branch_sample_type)
1317        )
1318    );
1319    assert_eq!(
1320        unsafe { ::std::ptr::addr_of!((*ptr).sample_regs_user) as usize - ptr as usize },
1321        80usize,
1322        concat!(
1323            "Offset of field: ",
1324            stringify!(perf_event_attr),
1325            "::",
1326            stringify!(sample_regs_user)
1327        )
1328    );
1329    assert_eq!(
1330        unsafe { ::std::ptr::addr_of!((*ptr).sample_stack_user) as usize - ptr as usize },
1331        88usize,
1332        concat!(
1333            "Offset of field: ",
1334            stringify!(perf_event_attr),
1335            "::",
1336            stringify!(sample_stack_user)
1337        )
1338    );
1339    assert_eq!(
1340        unsafe { ::std::ptr::addr_of!((*ptr).clockid) as usize - ptr as usize },
1341        92usize,
1342        concat!(
1343            "Offset of field: ",
1344            stringify!(perf_event_attr),
1345            "::",
1346            stringify!(clockid)
1347        )
1348    );
1349    assert_eq!(
1350        unsafe { ::std::ptr::addr_of!((*ptr).sample_regs_intr) as usize - ptr as usize },
1351        96usize,
1352        concat!(
1353            "Offset of field: ",
1354            stringify!(perf_event_attr),
1355            "::",
1356            stringify!(sample_regs_intr)
1357        )
1358    );
1359    assert_eq!(
1360        unsafe { ::std::ptr::addr_of!((*ptr).aux_watermark) as usize - ptr as usize },
1361        104usize,
1362        concat!(
1363            "Offset of field: ",
1364            stringify!(perf_event_attr),
1365            "::",
1366            stringify!(aux_watermark)
1367        )
1368    );
1369    assert_eq!(
1370        unsafe { ::std::ptr::addr_of!((*ptr).sample_max_stack) as usize - ptr as usize },
1371        108usize,
1372        concat!(
1373            "Offset of field: ",
1374            stringify!(perf_event_attr),
1375            "::",
1376            stringify!(sample_max_stack)
1377        )
1378    );
1379    assert_eq!(
1380        unsafe { ::std::ptr::addr_of!((*ptr).__reserved_2) as usize - ptr as usize },
1381        110usize,
1382        concat!(
1383            "Offset of field: ",
1384            stringify!(perf_event_attr),
1385            "::",
1386            stringify!(__reserved_2)
1387        )
1388    );
1389    assert_eq!(
1390        unsafe { ::std::ptr::addr_of!((*ptr).aux_sample_size) as usize - ptr as usize },
1391        112usize,
1392        concat!(
1393            "Offset of field: ",
1394            stringify!(perf_event_attr),
1395            "::",
1396            stringify!(aux_sample_size)
1397        )
1398    );
1399    assert_eq!(
1400        unsafe { ::std::ptr::addr_of!((*ptr).__reserved_3) as usize - ptr as usize },
1401        116usize,
1402        concat!(
1403            "Offset of field: ",
1404            stringify!(perf_event_attr),
1405            "::",
1406            stringify!(__reserved_3)
1407        )
1408    );
1409    assert_eq!(
1410        unsafe { ::std::ptr::addr_of!((*ptr).sig_data) as usize - ptr as usize },
1411        120usize,
1412        concat!(
1413            "Offset of field: ",
1414            stringify!(perf_event_attr),
1415            "::",
1416            stringify!(sig_data)
1417        )
1418    );
1419    assert_eq!(
1420        unsafe { ::std::ptr::addr_of!((*ptr).config3) as usize - ptr as usize },
1421        128usize,
1422        concat!(
1423            "Offset of field: ",
1424            stringify!(perf_event_attr),
1425            "::",
1426            stringify!(config3)
1427        )
1428    );
1429}
1430impl Default for perf_event_attr {
1431    fn default() -> Self {
1432        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1433        unsafe {
1434            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1435            s.assume_init()
1436        }
1437    }
1438}
1439impl ::std::fmt::Debug for perf_event_attr {
1440    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1441        write ! (f , "perf_event_attr {{ type: {:?}, size: {:?}, config: {:?}, __bindgen_anon_1: {:?}, sample_type: {:?}, read_format: {:?}, disabled : {:?}, inherit : {:?}, pinned : {:?}, exclusive : {:?}, exclude_user : {:?}, exclude_kernel : {:?}, exclude_hv : {:?}, exclude_idle : {:?}, mmap : {:?}, comm : {:?}, freq : {:?}, inherit_stat : {:?}, enable_on_exec : {:?}, task : {:?}, watermark : {:?}, precise_ip : {:?}, mmap_data : {:?}, sample_id_all : {:?}, exclude_host : {:?}, exclude_guest : {:?}, exclude_callchain_kernel : {:?}, exclude_callchain_user : {:?}, mmap2 : {:?}, comm_exec : {:?}, use_clockid : {:?}, context_switch : {:?}, write_backward : {:?}, namespaces : {:?}, ksymbol : {:?}, bpf_event : {:?}, aux_output : {:?}, cgroup : {:?}, text_poke : {:?}, build_id : {:?}, inherit_thread : {:?}, remove_on_exec : {:?}, sigtrap : {:?}, __reserved_1 : {:?}, __bindgen_anon_2: {:?}, bp_type: {:?}, __bindgen_anon_3: {:?}, __bindgen_anon_4: {:?}, branch_sample_type: {:?}, sample_regs_user: {:?}, sample_stack_user: {:?}, clockid: {:?}, sample_regs_intr: {:?}, aux_watermark: {:?}, sample_max_stack: {:?}, __reserved_2: {:?}, aux_sample_size: {:?}, __reserved_3: {:?}, sig_data: {:?}, config3: {:?} }}" , self . type_ , self . size , self . config , self . __bindgen_anon_1 , self . sample_type , self . read_format , self . disabled () , self . inherit () , self . pinned () , self . exclusive () , self . exclude_user () , self . exclude_kernel () , self . exclude_hv () , self . exclude_idle () , self . mmap () , self . comm () , self . freq () , self . inherit_stat () , self . enable_on_exec () , self . task () , self . watermark () , self . precise_ip () , self . mmap_data () , self . sample_id_all () , self . exclude_host () , self . exclude_guest () , self . exclude_callchain_kernel () , self . exclude_callchain_user () , self . mmap2 () , self . comm_exec () , self . use_clockid () , self . context_switch () , self . write_backward () , self . namespaces () , self . ksymbol () , self . bpf_event () , self . aux_output () , self . cgroup () , self . text_poke () , self . build_id () , self . inherit_thread () , self . remove_on_exec () , self . sigtrap () , self . __reserved_1 () , self . __bindgen_anon_2 , self . bp_type , self . __bindgen_anon_3 , self . __bindgen_anon_4 , self . branch_sample_type , self . sample_regs_user , self . sample_stack_user , self . clockid , self . sample_regs_intr , self . aux_watermark , self . sample_max_stack , self . __reserved_2 , self . aux_sample_size , self . __reserved_3 , self . sig_data , self . config3)
1442    }
1443}
1444impl perf_event_attr {
1445    #[inline]
1446    pub fn disabled(&self) -> __u64 {
1447        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u64) }
1448    }
1449    #[inline]
1450    pub fn set_disabled(&mut self, val: __u64) {
1451        unsafe {
1452            let val: u64 = ::std::mem::transmute(val);
1453            self._bitfield_1.set(0usize, 1u8, val as u64)
1454        }
1455    }
1456    #[inline]
1457    pub fn inherit(&self) -> __u64 {
1458        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u64) }
1459    }
1460    #[inline]
1461    pub fn set_inherit(&mut self, val: __u64) {
1462        unsafe {
1463            let val: u64 = ::std::mem::transmute(val);
1464            self._bitfield_1.set(1usize, 1u8, val as u64)
1465        }
1466    }
1467    #[inline]
1468    pub fn pinned(&self) -> __u64 {
1469        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u64) }
1470    }
1471    #[inline]
1472    pub fn set_pinned(&mut self, val: __u64) {
1473        unsafe {
1474            let val: u64 = ::std::mem::transmute(val);
1475            self._bitfield_1.set(2usize, 1u8, val as u64)
1476        }
1477    }
1478    #[inline]
1479    pub fn exclusive(&self) -> __u64 {
1480        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u64) }
1481    }
1482    #[inline]
1483    pub fn set_exclusive(&mut self, val: __u64) {
1484        unsafe {
1485            let val: u64 = ::std::mem::transmute(val);
1486            self._bitfield_1.set(3usize, 1u8, val as u64)
1487        }
1488    }
1489    #[inline]
1490    pub fn exclude_user(&self) -> __u64 {
1491        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u64) }
1492    }
1493    #[inline]
1494    pub fn set_exclude_user(&mut self, val: __u64) {
1495        unsafe {
1496            let val: u64 = ::std::mem::transmute(val);
1497            self._bitfield_1.set(4usize, 1u8, val as u64)
1498        }
1499    }
1500    #[inline]
1501    pub fn exclude_kernel(&self) -> __u64 {
1502        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u64) }
1503    }
1504    #[inline]
1505    pub fn set_exclude_kernel(&mut self, val: __u64) {
1506        unsafe {
1507            let val: u64 = ::std::mem::transmute(val);
1508            self._bitfield_1.set(5usize, 1u8, val as u64)
1509        }
1510    }
1511    #[inline]
1512    pub fn exclude_hv(&self) -> __u64 {
1513        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u64) }
1514    }
1515    #[inline]
1516    pub fn set_exclude_hv(&mut self, val: __u64) {
1517        unsafe {
1518            let val: u64 = ::std::mem::transmute(val);
1519            self._bitfield_1.set(6usize, 1u8, val as u64)
1520        }
1521    }
1522    #[inline]
1523    pub fn exclude_idle(&self) -> __u64 {
1524        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u64) }
1525    }
1526    #[inline]
1527    pub fn set_exclude_idle(&mut self, val: __u64) {
1528        unsafe {
1529            let val: u64 = ::std::mem::transmute(val);
1530            self._bitfield_1.set(7usize, 1u8, val as u64)
1531        }
1532    }
1533    #[inline]
1534    pub fn mmap(&self) -> __u64 {
1535        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u64) }
1536    }
1537    #[inline]
1538    pub fn set_mmap(&mut self, val: __u64) {
1539        unsafe {
1540            let val: u64 = ::std::mem::transmute(val);
1541            self._bitfield_1.set(8usize, 1u8, val as u64)
1542        }
1543    }
1544    #[inline]
1545    pub fn comm(&self) -> __u64 {
1546        unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u64) }
1547    }
1548    #[inline]
1549    pub fn set_comm(&mut self, val: __u64) {
1550        unsafe {
1551            let val: u64 = ::std::mem::transmute(val);
1552            self._bitfield_1.set(9usize, 1u8, val as u64)
1553        }
1554    }
1555    #[inline]
1556    pub fn freq(&self) -> __u64 {
1557        unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u64) }
1558    }
1559    #[inline]
1560    pub fn set_freq(&mut self, val: __u64) {
1561        unsafe {
1562            let val: u64 = ::std::mem::transmute(val);
1563            self._bitfield_1.set(10usize, 1u8, val as u64)
1564        }
1565    }
1566    #[inline]
1567    pub fn inherit_stat(&self) -> __u64 {
1568        unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u64) }
1569    }
1570    #[inline]
1571    pub fn set_inherit_stat(&mut self, val: __u64) {
1572        unsafe {
1573            let val: u64 = ::std::mem::transmute(val);
1574            self._bitfield_1.set(11usize, 1u8, val as u64)
1575        }
1576    }
1577    #[inline]
1578    pub fn enable_on_exec(&self) -> __u64 {
1579        unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u64) }
1580    }
1581    #[inline]
1582    pub fn set_enable_on_exec(&mut self, val: __u64) {
1583        unsafe {
1584            let val: u64 = ::std::mem::transmute(val);
1585            self._bitfield_1.set(12usize, 1u8, val as u64)
1586        }
1587    }
1588    #[inline]
1589    pub fn task(&self) -> __u64 {
1590        unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u64) }
1591    }
1592    #[inline]
1593    pub fn set_task(&mut self, val: __u64) {
1594        unsafe {
1595            let val: u64 = ::std::mem::transmute(val);
1596            self._bitfield_1.set(13usize, 1u8, val as u64)
1597        }
1598    }
1599    #[inline]
1600    pub fn watermark(&self) -> __u64 {
1601        unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u64) }
1602    }
1603    #[inline]
1604    pub fn set_watermark(&mut self, val: __u64) {
1605        unsafe {
1606            let val: u64 = ::std::mem::transmute(val);
1607            self._bitfield_1.set(14usize, 1u8, val as u64)
1608        }
1609    }
1610    #[inline]
1611    pub fn precise_ip(&self) -> __u64 {
1612        unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 2u8) as u64) }
1613    }
1614    #[inline]
1615    pub fn set_precise_ip(&mut self, val: __u64) {
1616        unsafe {
1617            let val: u64 = ::std::mem::transmute(val);
1618            self._bitfield_1.set(15usize, 2u8, val as u64)
1619        }
1620    }
1621    #[inline]
1622    pub fn mmap_data(&self) -> __u64 {
1623        unsafe { ::std::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u64) }
1624    }
1625    #[inline]
1626    pub fn set_mmap_data(&mut self, val: __u64) {
1627        unsafe {
1628            let val: u64 = ::std::mem::transmute(val);
1629            self._bitfield_1.set(17usize, 1u8, val as u64)
1630        }
1631    }
1632    #[inline]
1633    pub fn sample_id_all(&self) -> __u64 {
1634        unsafe { ::std::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u64) }
1635    }
1636    #[inline]
1637    pub fn set_sample_id_all(&mut self, val: __u64) {
1638        unsafe {
1639            let val: u64 = ::std::mem::transmute(val);
1640            self._bitfield_1.set(18usize, 1u8, val as u64)
1641        }
1642    }
1643    #[inline]
1644    pub fn exclude_host(&self) -> __u64 {
1645        unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u64) }
1646    }
1647    #[inline]
1648    pub fn set_exclude_host(&mut self, val: __u64) {
1649        unsafe {
1650            let val: u64 = ::std::mem::transmute(val);
1651            self._bitfield_1.set(19usize, 1u8, val as u64)
1652        }
1653    }
1654    #[inline]
1655    pub fn exclude_guest(&self) -> __u64 {
1656        unsafe { ::std::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u64) }
1657    }
1658    #[inline]
1659    pub fn set_exclude_guest(&mut self, val: __u64) {
1660        unsafe {
1661            let val: u64 = ::std::mem::transmute(val);
1662            self._bitfield_1.set(20usize, 1u8, val as u64)
1663        }
1664    }
1665    #[inline]
1666    pub fn exclude_callchain_kernel(&self) -> __u64 {
1667        unsafe { ::std::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u64) }
1668    }
1669    #[inline]
1670    pub fn set_exclude_callchain_kernel(&mut self, val: __u64) {
1671        unsafe {
1672            let val: u64 = ::std::mem::transmute(val);
1673            self._bitfield_1.set(21usize, 1u8, val as u64)
1674        }
1675    }
1676    #[inline]
1677    pub fn exclude_callchain_user(&self) -> __u64 {
1678        unsafe { ::std::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u64) }
1679    }
1680    #[inline]
1681    pub fn set_exclude_callchain_user(&mut self, val: __u64) {
1682        unsafe {
1683            let val: u64 = ::std::mem::transmute(val);
1684            self._bitfield_1.set(22usize, 1u8, val as u64)
1685        }
1686    }
1687    #[inline]
1688    pub fn mmap2(&self) -> __u64 {
1689        unsafe { ::std::mem::transmute(self._bitfield_1.get(23usize, 1u8) as u64) }
1690    }
1691    #[inline]
1692    pub fn set_mmap2(&mut self, val: __u64) {
1693        unsafe {
1694            let val: u64 = ::std::mem::transmute(val);
1695            self._bitfield_1.set(23usize, 1u8, val as u64)
1696        }
1697    }
1698    #[inline]
1699    pub fn comm_exec(&self) -> __u64 {
1700        unsafe { ::std::mem::transmute(self._bitfield_1.get(24usize, 1u8) as u64) }
1701    }
1702    #[inline]
1703    pub fn set_comm_exec(&mut self, val: __u64) {
1704        unsafe {
1705            let val: u64 = ::std::mem::transmute(val);
1706            self._bitfield_1.set(24usize, 1u8, val as u64)
1707        }
1708    }
1709    #[inline]
1710    pub fn use_clockid(&self) -> __u64 {
1711        unsafe { ::std::mem::transmute(self._bitfield_1.get(25usize, 1u8) as u64) }
1712    }
1713    #[inline]
1714    pub fn set_use_clockid(&mut self, val: __u64) {
1715        unsafe {
1716            let val: u64 = ::std::mem::transmute(val);
1717            self._bitfield_1.set(25usize, 1u8, val as u64)
1718        }
1719    }
1720    #[inline]
1721    pub fn context_switch(&self) -> __u64 {
1722        unsafe { ::std::mem::transmute(self._bitfield_1.get(26usize, 1u8) as u64) }
1723    }
1724    #[inline]
1725    pub fn set_context_switch(&mut self, val: __u64) {
1726        unsafe {
1727            let val: u64 = ::std::mem::transmute(val);
1728            self._bitfield_1.set(26usize, 1u8, val as u64)
1729        }
1730    }
1731    #[inline]
1732    pub fn write_backward(&self) -> __u64 {
1733        unsafe { ::std::mem::transmute(self._bitfield_1.get(27usize, 1u8) as u64) }
1734    }
1735    #[inline]
1736    pub fn set_write_backward(&mut self, val: __u64) {
1737        unsafe {
1738            let val: u64 = ::std::mem::transmute(val);
1739            self._bitfield_1.set(27usize, 1u8, val as u64)
1740        }
1741    }
1742    #[inline]
1743    pub fn namespaces(&self) -> __u64 {
1744        unsafe { ::std::mem::transmute(self._bitfield_1.get(28usize, 1u8) as u64) }
1745    }
1746    #[inline]
1747    pub fn set_namespaces(&mut self, val: __u64) {
1748        unsafe {
1749            let val: u64 = ::std::mem::transmute(val);
1750            self._bitfield_1.set(28usize, 1u8, val as u64)
1751        }
1752    }
1753    #[inline]
1754    pub fn ksymbol(&self) -> __u64 {
1755        unsafe { ::std::mem::transmute(self._bitfield_1.get(29usize, 1u8) as u64) }
1756    }
1757    #[inline]
1758    pub fn set_ksymbol(&mut self, val: __u64) {
1759        unsafe {
1760            let val: u64 = ::std::mem::transmute(val);
1761            self._bitfield_1.set(29usize, 1u8, val as u64)
1762        }
1763    }
1764    #[inline]
1765    pub fn bpf_event(&self) -> __u64 {
1766        unsafe { ::std::mem::transmute(self._bitfield_1.get(30usize, 1u8) as u64) }
1767    }
1768    #[inline]
1769    pub fn set_bpf_event(&mut self, val: __u64) {
1770        unsafe {
1771            let val: u64 = ::std::mem::transmute(val);
1772            self._bitfield_1.set(30usize, 1u8, val as u64)
1773        }
1774    }
1775    #[inline]
1776    pub fn aux_output(&self) -> __u64 {
1777        unsafe { ::std::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u64) }
1778    }
1779    #[inline]
1780    pub fn set_aux_output(&mut self, val: __u64) {
1781        unsafe {
1782            let val: u64 = ::std::mem::transmute(val);
1783            self._bitfield_1.set(31usize, 1u8, val as u64)
1784        }
1785    }
1786    #[inline]
1787    pub fn cgroup(&self) -> __u64 {
1788        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 1u8) as u64) }
1789    }
1790    #[inline]
1791    pub fn set_cgroup(&mut self, val: __u64) {
1792        unsafe {
1793            let val: u64 = ::std::mem::transmute(val);
1794            self._bitfield_1.set(32usize, 1u8, val as u64)
1795        }
1796    }
1797    #[inline]
1798    pub fn text_poke(&self) -> __u64 {
1799        unsafe { ::std::mem::transmute(self._bitfield_1.get(33usize, 1u8) as u64) }
1800    }
1801    #[inline]
1802    pub fn set_text_poke(&mut self, val: __u64) {
1803        unsafe {
1804            let val: u64 = ::std::mem::transmute(val);
1805            self._bitfield_1.set(33usize, 1u8, val as u64)
1806        }
1807    }
1808    #[inline]
1809    pub fn build_id(&self) -> __u64 {
1810        unsafe { ::std::mem::transmute(self._bitfield_1.get(34usize, 1u8) as u64) }
1811    }
1812    #[inline]
1813    pub fn set_build_id(&mut self, val: __u64) {
1814        unsafe {
1815            let val: u64 = ::std::mem::transmute(val);
1816            self._bitfield_1.set(34usize, 1u8, val as u64)
1817        }
1818    }
1819    #[inline]
1820    pub fn inherit_thread(&self) -> __u64 {
1821        unsafe { ::std::mem::transmute(self._bitfield_1.get(35usize, 1u8) as u64) }
1822    }
1823    #[inline]
1824    pub fn set_inherit_thread(&mut self, val: __u64) {
1825        unsafe {
1826            let val: u64 = ::std::mem::transmute(val);
1827            self._bitfield_1.set(35usize, 1u8, val as u64)
1828        }
1829    }
1830    #[inline]
1831    pub fn remove_on_exec(&self) -> __u64 {
1832        unsafe { ::std::mem::transmute(self._bitfield_1.get(36usize, 1u8) as u64) }
1833    }
1834    #[inline]
1835    pub fn set_remove_on_exec(&mut self, val: __u64) {
1836        unsafe {
1837            let val: u64 = ::std::mem::transmute(val);
1838            self._bitfield_1.set(36usize, 1u8, val as u64)
1839        }
1840    }
1841    #[inline]
1842    pub fn sigtrap(&self) -> __u64 {
1843        unsafe { ::std::mem::transmute(self._bitfield_1.get(37usize, 1u8) as u64) }
1844    }
1845    #[inline]
1846    pub fn set_sigtrap(&mut self, val: __u64) {
1847        unsafe {
1848            let val: u64 = ::std::mem::transmute(val);
1849            self._bitfield_1.set(37usize, 1u8, val as u64)
1850        }
1851    }
1852    #[inline]
1853    pub fn __reserved_1(&self) -> __u64 {
1854        unsafe { ::std::mem::transmute(self._bitfield_1.get(38usize, 26u8) as u64) }
1855    }
1856    #[inline]
1857    pub fn set___reserved_1(&mut self, val: __u64) {
1858        unsafe {
1859            let val: u64 = ::std::mem::transmute(val);
1860            self._bitfield_1.set(38usize, 26u8, val as u64)
1861        }
1862    }
1863    #[inline]
1864    #[allow(dead_code)]
1865    pub(crate) fn new_bitfield_1(
1866        disabled: __u64,
1867        inherit: __u64,
1868        pinned: __u64,
1869        exclusive: __u64,
1870        exclude_user: __u64,
1871        exclude_kernel: __u64,
1872        exclude_hv: __u64,
1873        exclude_idle: __u64,
1874        mmap: __u64,
1875        comm: __u64,
1876        freq: __u64,
1877        inherit_stat: __u64,
1878        enable_on_exec: __u64,
1879        task: __u64,
1880        watermark: __u64,
1881        precise_ip: __u64,
1882        mmap_data: __u64,
1883        sample_id_all: __u64,
1884        exclude_host: __u64,
1885        exclude_guest: __u64,
1886        exclude_callchain_kernel: __u64,
1887        exclude_callchain_user: __u64,
1888        mmap2: __u64,
1889        comm_exec: __u64,
1890        use_clockid: __u64,
1891        context_switch: __u64,
1892        write_backward: __u64,
1893        namespaces: __u64,
1894        ksymbol: __u64,
1895        bpf_event: __u64,
1896        aux_output: __u64,
1897        cgroup: __u64,
1898        text_poke: __u64,
1899        build_id: __u64,
1900        inherit_thread: __u64,
1901        remove_on_exec: __u64,
1902        sigtrap: __u64,
1903        __reserved_1: __u64,
1904    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
1905        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
1906        __bindgen_bitfield_unit.set(0usize, 1u8, {
1907            let disabled: u64 = unsafe { ::std::mem::transmute(disabled) };
1908            disabled as u64
1909        });
1910        __bindgen_bitfield_unit.set(1usize, 1u8, {
1911            let inherit: u64 = unsafe { ::std::mem::transmute(inherit) };
1912            inherit as u64
1913        });
1914        __bindgen_bitfield_unit.set(2usize, 1u8, {
1915            let pinned: u64 = unsafe { ::std::mem::transmute(pinned) };
1916            pinned as u64
1917        });
1918        __bindgen_bitfield_unit.set(3usize, 1u8, {
1919            let exclusive: u64 = unsafe { ::std::mem::transmute(exclusive) };
1920            exclusive as u64
1921        });
1922        __bindgen_bitfield_unit.set(4usize, 1u8, {
1923            let exclude_user: u64 = unsafe { ::std::mem::transmute(exclude_user) };
1924            exclude_user as u64
1925        });
1926        __bindgen_bitfield_unit.set(5usize, 1u8, {
1927            let exclude_kernel: u64 = unsafe { ::std::mem::transmute(exclude_kernel) };
1928            exclude_kernel as u64
1929        });
1930        __bindgen_bitfield_unit.set(6usize, 1u8, {
1931            let exclude_hv: u64 = unsafe { ::std::mem::transmute(exclude_hv) };
1932            exclude_hv as u64
1933        });
1934        __bindgen_bitfield_unit.set(7usize, 1u8, {
1935            let exclude_idle: u64 = unsafe { ::std::mem::transmute(exclude_idle) };
1936            exclude_idle as u64
1937        });
1938        __bindgen_bitfield_unit.set(8usize, 1u8, {
1939            let mmap: u64 = unsafe { ::std::mem::transmute(mmap) };
1940            mmap as u64
1941        });
1942        __bindgen_bitfield_unit.set(9usize, 1u8, {
1943            let comm: u64 = unsafe { ::std::mem::transmute(comm) };
1944            comm as u64
1945        });
1946        __bindgen_bitfield_unit.set(10usize, 1u8, {
1947            let freq: u64 = unsafe { ::std::mem::transmute(freq) };
1948            freq as u64
1949        });
1950        __bindgen_bitfield_unit.set(11usize, 1u8, {
1951            let inherit_stat: u64 = unsafe { ::std::mem::transmute(inherit_stat) };
1952            inherit_stat as u64
1953        });
1954        __bindgen_bitfield_unit.set(12usize, 1u8, {
1955            let enable_on_exec: u64 = unsafe { ::std::mem::transmute(enable_on_exec) };
1956            enable_on_exec as u64
1957        });
1958        __bindgen_bitfield_unit.set(13usize, 1u8, {
1959            let task: u64 = unsafe { ::std::mem::transmute(task) };
1960            task as u64
1961        });
1962        __bindgen_bitfield_unit.set(14usize, 1u8, {
1963            let watermark: u64 = unsafe { ::std::mem::transmute(watermark) };
1964            watermark as u64
1965        });
1966        __bindgen_bitfield_unit.set(15usize, 2u8, {
1967            let precise_ip: u64 = unsafe { ::std::mem::transmute(precise_ip) };
1968            precise_ip as u64
1969        });
1970        __bindgen_bitfield_unit.set(17usize, 1u8, {
1971            let mmap_data: u64 = unsafe { ::std::mem::transmute(mmap_data) };
1972            mmap_data as u64
1973        });
1974        __bindgen_bitfield_unit.set(18usize, 1u8, {
1975            let sample_id_all: u64 = unsafe { ::std::mem::transmute(sample_id_all) };
1976            sample_id_all as u64
1977        });
1978        __bindgen_bitfield_unit.set(19usize, 1u8, {
1979            let exclude_host: u64 = unsafe { ::std::mem::transmute(exclude_host) };
1980            exclude_host as u64
1981        });
1982        __bindgen_bitfield_unit.set(20usize, 1u8, {
1983            let exclude_guest: u64 = unsafe { ::std::mem::transmute(exclude_guest) };
1984            exclude_guest as u64
1985        });
1986        __bindgen_bitfield_unit.set(21usize, 1u8, {
1987            let exclude_callchain_kernel: u64 =
1988                unsafe { ::std::mem::transmute(exclude_callchain_kernel) };
1989            exclude_callchain_kernel as u64
1990        });
1991        __bindgen_bitfield_unit.set(22usize, 1u8, {
1992            let exclude_callchain_user: u64 =
1993                unsafe { ::std::mem::transmute(exclude_callchain_user) };
1994            exclude_callchain_user as u64
1995        });
1996        __bindgen_bitfield_unit.set(23usize, 1u8, {
1997            let mmap2: u64 = unsafe { ::std::mem::transmute(mmap2) };
1998            mmap2 as u64
1999        });
2000        __bindgen_bitfield_unit.set(24usize, 1u8, {
2001            let comm_exec: u64 = unsafe { ::std::mem::transmute(comm_exec) };
2002            comm_exec as u64
2003        });
2004        __bindgen_bitfield_unit.set(25usize, 1u8, {
2005            let use_clockid: u64 = unsafe { ::std::mem::transmute(use_clockid) };
2006            use_clockid as u64
2007        });
2008        __bindgen_bitfield_unit.set(26usize, 1u8, {
2009            let context_switch: u64 = unsafe { ::std::mem::transmute(context_switch) };
2010            context_switch as u64
2011        });
2012        __bindgen_bitfield_unit.set(27usize, 1u8, {
2013            let write_backward: u64 = unsafe { ::std::mem::transmute(write_backward) };
2014            write_backward as u64
2015        });
2016        __bindgen_bitfield_unit.set(28usize, 1u8, {
2017            let namespaces: u64 = unsafe { ::std::mem::transmute(namespaces) };
2018            namespaces as u64
2019        });
2020        __bindgen_bitfield_unit.set(29usize, 1u8, {
2021            let ksymbol: u64 = unsafe { ::std::mem::transmute(ksymbol) };
2022            ksymbol as u64
2023        });
2024        __bindgen_bitfield_unit.set(30usize, 1u8, {
2025            let bpf_event: u64 = unsafe { ::std::mem::transmute(bpf_event) };
2026            bpf_event as u64
2027        });
2028        __bindgen_bitfield_unit.set(31usize, 1u8, {
2029            let aux_output: u64 = unsafe { ::std::mem::transmute(aux_output) };
2030            aux_output as u64
2031        });
2032        __bindgen_bitfield_unit.set(32usize, 1u8, {
2033            let cgroup: u64 = unsafe { ::std::mem::transmute(cgroup) };
2034            cgroup as u64
2035        });
2036        __bindgen_bitfield_unit.set(33usize, 1u8, {
2037            let text_poke: u64 = unsafe { ::std::mem::transmute(text_poke) };
2038            text_poke as u64
2039        });
2040        __bindgen_bitfield_unit.set(34usize, 1u8, {
2041            let build_id: u64 = unsafe { ::std::mem::transmute(build_id) };
2042            build_id as u64
2043        });
2044        __bindgen_bitfield_unit.set(35usize, 1u8, {
2045            let inherit_thread: u64 = unsafe { ::std::mem::transmute(inherit_thread) };
2046            inherit_thread as u64
2047        });
2048        __bindgen_bitfield_unit.set(36usize, 1u8, {
2049            let remove_on_exec: u64 = unsafe { ::std::mem::transmute(remove_on_exec) };
2050            remove_on_exec as u64
2051        });
2052        __bindgen_bitfield_unit.set(37usize, 1u8, {
2053            let sigtrap: u64 = unsafe { ::std::mem::transmute(sigtrap) };
2054            sigtrap as u64
2055        });
2056        __bindgen_bitfield_unit.set(38usize, 26u8, {
2057            let __reserved_1: u64 = unsafe { ::std::mem::transmute(__reserved_1) };
2058            __reserved_1 as u64
2059        });
2060        __bindgen_bitfield_unit
2061    }
2062}
2063#[repr(C)]
2064#[derive(Debug, Default)]
2065pub struct perf_event_query_bpf {
2066    pub ids_len: __u32,
2067    pub prog_cnt: __u32,
2068    pub ids: __IncompleteArrayField<__u32>,
2069}
2070#[test]
2071fn bindgen_test_layout_perf_event_query_bpf() {
2072    const UNINIT: ::std::mem::MaybeUninit<perf_event_query_bpf> = ::std::mem::MaybeUninit::uninit();
2073    let ptr = UNINIT.as_ptr();
2074    assert_eq!(
2075        ::std::mem::size_of::<perf_event_query_bpf>(),
2076        8usize,
2077        concat!("Size of: ", stringify!(perf_event_query_bpf))
2078    );
2079    assert_eq!(
2080        ::std::mem::align_of::<perf_event_query_bpf>(),
2081        4usize,
2082        concat!("Alignment of ", stringify!(perf_event_query_bpf))
2083    );
2084    assert_eq!(
2085        unsafe { ::std::ptr::addr_of!((*ptr).ids_len) as usize - ptr as usize },
2086        0usize,
2087        concat!(
2088            "Offset of field: ",
2089            stringify!(perf_event_query_bpf),
2090            "::",
2091            stringify!(ids_len)
2092        )
2093    );
2094    assert_eq!(
2095        unsafe { ::std::ptr::addr_of!((*ptr).prog_cnt) as usize - ptr as usize },
2096        4usize,
2097        concat!(
2098            "Offset of field: ",
2099            stringify!(perf_event_query_bpf),
2100            "::",
2101            stringify!(prog_cnt)
2102        )
2103    );
2104    assert_eq!(
2105        unsafe { ::std::ptr::addr_of!((*ptr).ids) as usize - ptr as usize },
2106        8usize,
2107        concat!(
2108            "Offset of field: ",
2109            stringify!(perf_event_query_bpf),
2110            "::",
2111            stringify!(ids)
2112        )
2113    );
2114}
2115pub const PERF_IOC_FLAG_GROUP: perf_event_ioc_flags = 1;
2116pub type perf_event_ioc_flags = ::std::os::raw::c_uint;
2117#[repr(C)]
2118#[derive(Copy, Clone)]
2119#[non_exhaustive]
2120pub struct perf_event_mmap_page {
2121    pub version: __u32,
2122    pub compat_version: __u32,
2123    pub lock: __u32,
2124    pub index: __u32,
2125    pub offset: __s64,
2126    pub time_enabled: __u64,
2127    pub time_running: __u64,
2128    pub __bindgen_anon_1: perf_event_mmap_page__bindgen_ty_1,
2129    pub pmc_width: __u16,
2130    pub time_shift: __u16,
2131    pub time_mult: __u32,
2132    pub time_offset: __u64,
2133    pub time_zero: __u64,
2134    pub size: __u32,
2135    pub __reserved_1: __u32,
2136    pub time_cycles: __u64,
2137    pub time_mask: __u64,
2138    pub __reserved: [__u8; 928usize],
2139    pub data_head: __u64,
2140    pub data_tail: __u64,
2141    pub data_offset: __u64,
2142    pub data_size: __u64,
2143    pub aux_head: __u64,
2144    pub aux_tail: __u64,
2145    pub aux_offset: __u64,
2146    pub aux_size: __u64,
2147}
2148#[repr(C)]
2149#[derive(Copy, Clone)]
2150pub union perf_event_mmap_page__bindgen_ty_1 {
2151    pub capabilities: __u64,
2152    pub __bindgen_anon_1: perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1,
2153}
2154#[repr(C)]
2155#[derive(Debug, Default, Copy, Clone)]
2156#[non_exhaustive]
2157pub struct perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 {
2158    pub _bitfield_align_1: [u64; 0],
2159    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
2160}
2161#[test]
2162fn bindgen_test_layout_perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1() {
2163    assert_eq!(
2164        ::std::mem::size_of::<perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1>(),
2165        8usize,
2166        concat!(
2167            "Size of: ",
2168            stringify!(perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1)
2169        )
2170    );
2171    assert_eq!(
2172        ::std::mem::align_of::<perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1>(),
2173        8usize,
2174        concat!(
2175            "Alignment of ",
2176            stringify!(perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1)
2177        )
2178    );
2179}
2180impl perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 {
2181    #[inline]
2182    pub fn cap_bit0(&self) -> __u64 {
2183        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u64) }
2184    }
2185    #[inline]
2186    pub fn set_cap_bit0(&mut self, val: __u64) {
2187        unsafe {
2188            let val: u64 = ::std::mem::transmute(val);
2189            self._bitfield_1.set(0usize, 1u8, val as u64)
2190        }
2191    }
2192    #[inline]
2193    pub fn cap_bit0_is_deprecated(&self) -> __u64 {
2194        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u64) }
2195    }
2196    #[inline]
2197    pub fn set_cap_bit0_is_deprecated(&mut self, val: __u64) {
2198        unsafe {
2199            let val: u64 = ::std::mem::transmute(val);
2200            self._bitfield_1.set(1usize, 1u8, val as u64)
2201        }
2202    }
2203    #[inline]
2204    pub fn cap_user_rdpmc(&self) -> __u64 {
2205        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u64) }
2206    }
2207    #[inline]
2208    pub fn set_cap_user_rdpmc(&mut self, val: __u64) {
2209        unsafe {
2210            let val: u64 = ::std::mem::transmute(val);
2211            self._bitfield_1.set(2usize, 1u8, val as u64)
2212        }
2213    }
2214    #[inline]
2215    pub fn cap_user_time(&self) -> __u64 {
2216        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u64) }
2217    }
2218    #[inline]
2219    pub fn set_cap_user_time(&mut self, val: __u64) {
2220        unsafe {
2221            let val: u64 = ::std::mem::transmute(val);
2222            self._bitfield_1.set(3usize, 1u8, val as u64)
2223        }
2224    }
2225    #[inline]
2226    pub fn cap_user_time_zero(&self) -> __u64 {
2227        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u64) }
2228    }
2229    #[inline]
2230    pub fn set_cap_user_time_zero(&mut self, val: __u64) {
2231        unsafe {
2232            let val: u64 = ::std::mem::transmute(val);
2233            self._bitfield_1.set(4usize, 1u8, val as u64)
2234        }
2235    }
2236    #[inline]
2237    pub fn cap_user_time_short(&self) -> __u64 {
2238        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u64) }
2239    }
2240    #[inline]
2241    pub fn set_cap_user_time_short(&mut self, val: __u64) {
2242        unsafe {
2243            let val: u64 = ::std::mem::transmute(val);
2244            self._bitfield_1.set(5usize, 1u8, val as u64)
2245        }
2246    }
2247    #[inline]
2248    pub fn cap_____res(&self) -> __u64 {
2249        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 58u8) as u64) }
2250    }
2251    #[inline]
2252    pub fn set_cap_____res(&mut self, val: __u64) {
2253        unsafe {
2254            let val: u64 = ::std::mem::transmute(val);
2255            self._bitfield_1.set(6usize, 58u8, val as u64)
2256        }
2257    }
2258    #[inline]
2259    #[allow(dead_code)]
2260    pub(crate) fn new_bitfield_1(
2261        cap_bit0: __u64,
2262        cap_bit0_is_deprecated: __u64,
2263        cap_user_rdpmc: __u64,
2264        cap_user_time: __u64,
2265        cap_user_time_zero: __u64,
2266        cap_user_time_short: __u64,
2267        cap_____res: __u64,
2268    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
2269        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
2270        __bindgen_bitfield_unit.set(0usize, 1u8, {
2271            let cap_bit0: u64 = unsafe { ::std::mem::transmute(cap_bit0) };
2272            cap_bit0 as u64
2273        });
2274        __bindgen_bitfield_unit.set(1usize, 1u8, {
2275            let cap_bit0_is_deprecated: u64 =
2276                unsafe { ::std::mem::transmute(cap_bit0_is_deprecated) };
2277            cap_bit0_is_deprecated as u64
2278        });
2279        __bindgen_bitfield_unit.set(2usize, 1u8, {
2280            let cap_user_rdpmc: u64 = unsafe { ::std::mem::transmute(cap_user_rdpmc) };
2281            cap_user_rdpmc as u64
2282        });
2283        __bindgen_bitfield_unit.set(3usize, 1u8, {
2284            let cap_user_time: u64 = unsafe { ::std::mem::transmute(cap_user_time) };
2285            cap_user_time as u64
2286        });
2287        __bindgen_bitfield_unit.set(4usize, 1u8, {
2288            let cap_user_time_zero: u64 = unsafe { ::std::mem::transmute(cap_user_time_zero) };
2289            cap_user_time_zero as u64
2290        });
2291        __bindgen_bitfield_unit.set(5usize, 1u8, {
2292            let cap_user_time_short: u64 = unsafe { ::std::mem::transmute(cap_user_time_short) };
2293            cap_user_time_short as u64
2294        });
2295        __bindgen_bitfield_unit.set(6usize, 58u8, {
2296            let cap_____res: u64 = unsafe { ::std::mem::transmute(cap_____res) };
2297            cap_____res as u64
2298        });
2299        __bindgen_bitfield_unit
2300    }
2301}
2302#[test]
2303fn bindgen_test_layout_perf_event_mmap_page__bindgen_ty_1() {
2304    const UNINIT: ::std::mem::MaybeUninit<perf_event_mmap_page__bindgen_ty_1> =
2305        ::std::mem::MaybeUninit::uninit();
2306    let ptr = UNINIT.as_ptr();
2307    assert_eq!(
2308        ::std::mem::size_of::<perf_event_mmap_page__bindgen_ty_1>(),
2309        8usize,
2310        concat!("Size of: ", stringify!(perf_event_mmap_page__bindgen_ty_1))
2311    );
2312    assert_eq!(
2313        ::std::mem::align_of::<perf_event_mmap_page__bindgen_ty_1>(),
2314        8usize,
2315        concat!(
2316            "Alignment of ",
2317            stringify!(perf_event_mmap_page__bindgen_ty_1)
2318        )
2319    );
2320    assert_eq!(
2321        unsafe { ::std::ptr::addr_of!((*ptr).capabilities) as usize - ptr as usize },
2322        0usize,
2323        concat!(
2324            "Offset of field: ",
2325            stringify!(perf_event_mmap_page__bindgen_ty_1),
2326            "::",
2327            stringify!(capabilities)
2328        )
2329    );
2330}
2331impl Default for perf_event_mmap_page__bindgen_ty_1 {
2332    fn default() -> Self {
2333        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2334        unsafe {
2335            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2336            s.assume_init()
2337        }
2338    }
2339}
2340impl ::std::fmt::Debug for perf_event_mmap_page__bindgen_ty_1 {
2341    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2342        write!(f, "perf_event_mmap_page__bindgen_ty_1 {{ union }}")
2343    }
2344}
2345#[test]
2346fn bindgen_test_layout_perf_event_mmap_page() {
2347    const UNINIT: ::std::mem::MaybeUninit<perf_event_mmap_page> = ::std::mem::MaybeUninit::uninit();
2348    let ptr = UNINIT.as_ptr();
2349    assert_eq!(
2350        ::std::mem::size_of::<perf_event_mmap_page>(),
2351        1088usize,
2352        concat!("Size of: ", stringify!(perf_event_mmap_page))
2353    );
2354    assert_eq!(
2355        ::std::mem::align_of::<perf_event_mmap_page>(),
2356        8usize,
2357        concat!("Alignment of ", stringify!(perf_event_mmap_page))
2358    );
2359    assert_eq!(
2360        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
2361        0usize,
2362        concat!(
2363            "Offset of field: ",
2364            stringify!(perf_event_mmap_page),
2365            "::",
2366            stringify!(version)
2367        )
2368    );
2369    assert_eq!(
2370        unsafe { ::std::ptr::addr_of!((*ptr).compat_version) as usize - ptr as usize },
2371        4usize,
2372        concat!(
2373            "Offset of field: ",
2374            stringify!(perf_event_mmap_page),
2375            "::",
2376            stringify!(compat_version)
2377        )
2378    );
2379    assert_eq!(
2380        unsafe { ::std::ptr::addr_of!((*ptr).lock) as usize - ptr as usize },
2381        8usize,
2382        concat!(
2383            "Offset of field: ",
2384            stringify!(perf_event_mmap_page),
2385            "::",
2386            stringify!(lock)
2387        )
2388    );
2389    assert_eq!(
2390        unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize },
2391        12usize,
2392        concat!(
2393            "Offset of field: ",
2394            stringify!(perf_event_mmap_page),
2395            "::",
2396            stringify!(index)
2397        )
2398    );
2399    assert_eq!(
2400        unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
2401        16usize,
2402        concat!(
2403            "Offset of field: ",
2404            stringify!(perf_event_mmap_page),
2405            "::",
2406            stringify!(offset)
2407        )
2408    );
2409    assert_eq!(
2410        unsafe { ::std::ptr::addr_of!((*ptr).time_enabled) as usize - ptr as usize },
2411        24usize,
2412        concat!(
2413            "Offset of field: ",
2414            stringify!(perf_event_mmap_page),
2415            "::",
2416            stringify!(time_enabled)
2417        )
2418    );
2419    assert_eq!(
2420        unsafe { ::std::ptr::addr_of!((*ptr).time_running) as usize - ptr as usize },
2421        32usize,
2422        concat!(
2423            "Offset of field: ",
2424            stringify!(perf_event_mmap_page),
2425            "::",
2426            stringify!(time_running)
2427        )
2428    );
2429    assert_eq!(
2430        unsafe { ::std::ptr::addr_of!((*ptr).pmc_width) as usize - ptr as usize },
2431        48usize,
2432        concat!(
2433            "Offset of field: ",
2434            stringify!(perf_event_mmap_page),
2435            "::",
2436            stringify!(pmc_width)
2437        )
2438    );
2439    assert_eq!(
2440        unsafe { ::std::ptr::addr_of!((*ptr).time_shift) as usize - ptr as usize },
2441        50usize,
2442        concat!(
2443            "Offset of field: ",
2444            stringify!(perf_event_mmap_page),
2445            "::",
2446            stringify!(time_shift)
2447        )
2448    );
2449    assert_eq!(
2450        unsafe { ::std::ptr::addr_of!((*ptr).time_mult) as usize - ptr as usize },
2451        52usize,
2452        concat!(
2453            "Offset of field: ",
2454            stringify!(perf_event_mmap_page),
2455            "::",
2456            stringify!(time_mult)
2457        )
2458    );
2459    assert_eq!(
2460        unsafe { ::std::ptr::addr_of!((*ptr).time_offset) as usize - ptr as usize },
2461        56usize,
2462        concat!(
2463            "Offset of field: ",
2464            stringify!(perf_event_mmap_page),
2465            "::",
2466            stringify!(time_offset)
2467        )
2468    );
2469    assert_eq!(
2470        unsafe { ::std::ptr::addr_of!((*ptr).time_zero) as usize - ptr as usize },
2471        64usize,
2472        concat!(
2473            "Offset of field: ",
2474            stringify!(perf_event_mmap_page),
2475            "::",
2476            stringify!(time_zero)
2477        )
2478    );
2479    assert_eq!(
2480        unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize },
2481        72usize,
2482        concat!(
2483            "Offset of field: ",
2484            stringify!(perf_event_mmap_page),
2485            "::",
2486            stringify!(size)
2487        )
2488    );
2489    assert_eq!(
2490        unsafe { ::std::ptr::addr_of!((*ptr).__reserved_1) as usize - ptr as usize },
2491        76usize,
2492        concat!(
2493            "Offset of field: ",
2494            stringify!(perf_event_mmap_page),
2495            "::",
2496            stringify!(__reserved_1)
2497        )
2498    );
2499    assert_eq!(
2500        unsafe { ::std::ptr::addr_of!((*ptr).time_cycles) as usize - ptr as usize },
2501        80usize,
2502        concat!(
2503            "Offset of field: ",
2504            stringify!(perf_event_mmap_page),
2505            "::",
2506            stringify!(time_cycles)
2507        )
2508    );
2509    assert_eq!(
2510        unsafe { ::std::ptr::addr_of!((*ptr).time_mask) as usize - ptr as usize },
2511        88usize,
2512        concat!(
2513            "Offset of field: ",
2514            stringify!(perf_event_mmap_page),
2515            "::",
2516            stringify!(time_mask)
2517        )
2518    );
2519    assert_eq!(
2520        unsafe { ::std::ptr::addr_of!((*ptr).__reserved) as usize - ptr as usize },
2521        96usize,
2522        concat!(
2523            "Offset of field: ",
2524            stringify!(perf_event_mmap_page),
2525            "::",
2526            stringify!(__reserved)
2527        )
2528    );
2529    assert_eq!(
2530        unsafe { ::std::ptr::addr_of!((*ptr).data_head) as usize - ptr as usize },
2531        1024usize,
2532        concat!(
2533            "Offset of field: ",
2534            stringify!(perf_event_mmap_page),
2535            "::",
2536            stringify!(data_head)
2537        )
2538    );
2539    assert_eq!(
2540        unsafe { ::std::ptr::addr_of!((*ptr).data_tail) as usize - ptr as usize },
2541        1032usize,
2542        concat!(
2543            "Offset of field: ",
2544            stringify!(perf_event_mmap_page),
2545            "::",
2546            stringify!(data_tail)
2547        )
2548    );
2549    assert_eq!(
2550        unsafe { ::std::ptr::addr_of!((*ptr).data_offset) as usize - ptr as usize },
2551        1040usize,
2552        concat!(
2553            "Offset of field: ",
2554            stringify!(perf_event_mmap_page),
2555            "::",
2556            stringify!(data_offset)
2557        )
2558    );
2559    assert_eq!(
2560        unsafe { ::std::ptr::addr_of!((*ptr).data_size) as usize - ptr as usize },
2561        1048usize,
2562        concat!(
2563            "Offset of field: ",
2564            stringify!(perf_event_mmap_page),
2565            "::",
2566            stringify!(data_size)
2567        )
2568    );
2569    assert_eq!(
2570        unsafe { ::std::ptr::addr_of!((*ptr).aux_head) as usize - ptr as usize },
2571        1056usize,
2572        concat!(
2573            "Offset of field: ",
2574            stringify!(perf_event_mmap_page),
2575            "::",
2576            stringify!(aux_head)
2577        )
2578    );
2579    assert_eq!(
2580        unsafe { ::std::ptr::addr_of!((*ptr).aux_tail) as usize - ptr as usize },
2581        1064usize,
2582        concat!(
2583            "Offset of field: ",
2584            stringify!(perf_event_mmap_page),
2585            "::",
2586            stringify!(aux_tail)
2587        )
2588    );
2589    assert_eq!(
2590        unsafe { ::std::ptr::addr_of!((*ptr).aux_offset) as usize - ptr as usize },
2591        1072usize,
2592        concat!(
2593            "Offset of field: ",
2594            stringify!(perf_event_mmap_page),
2595            "::",
2596            stringify!(aux_offset)
2597        )
2598    );
2599    assert_eq!(
2600        unsafe { ::std::ptr::addr_of!((*ptr).aux_size) as usize - ptr as usize },
2601        1080usize,
2602        concat!(
2603            "Offset of field: ",
2604            stringify!(perf_event_mmap_page),
2605            "::",
2606            stringify!(aux_size)
2607        )
2608    );
2609}
2610impl Default for perf_event_mmap_page {
2611    fn default() -> Self {
2612        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2613        unsafe {
2614            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2615            s.assume_init()
2616        }
2617    }
2618}
2619impl ::std::fmt::Debug for perf_event_mmap_page {
2620    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2621        write ! (f , "perf_event_mmap_page {{ version: {:?}, compat_version: {:?}, lock: {:?}, index: {:?}, offset: {:?}, time_enabled: {:?}, time_running: {:?}, __bindgen_anon_1: {:?}, pmc_width: {:?}, time_shift: {:?}, time_mult: {:?}, time_offset: {:?}, time_zero: {:?}, size: {:?}, __reserved_1: {:?}, time_cycles: {:?}, time_mask: {:?}, __reserved: {:?}, data_head: {:?}, data_tail: {:?}, data_offset: {:?}, data_size: {:?}, aux_head: {:?}, aux_tail: {:?}, aux_offset: {:?}, aux_size: {:?} }}" , self . version , self . compat_version , self . lock , self . index , self . offset , self . time_enabled , self . time_running , self . __bindgen_anon_1 , self . pmc_width , self . time_shift , self . time_mult , self . time_offset , self . time_zero , self . size , self . __reserved_1 , self . time_cycles , self . time_mask , self . __reserved , self . data_head , self . data_tail , self . data_offset , self . data_size , self . aux_head , self . aux_tail , self . aux_offset , self . aux_size)
2622    }
2623}
2624#[repr(C)]
2625#[derive(Debug, Default, Copy, Clone)]
2626pub struct perf_event_header {
2627    pub type_: __u32,
2628    pub misc: __u16,
2629    pub size: __u16,
2630}
2631#[test]
2632fn bindgen_test_layout_perf_event_header() {
2633    const UNINIT: ::std::mem::MaybeUninit<perf_event_header> = ::std::mem::MaybeUninit::uninit();
2634    let ptr = UNINIT.as_ptr();
2635    assert_eq!(
2636        ::std::mem::size_of::<perf_event_header>(),
2637        8usize,
2638        concat!("Size of: ", stringify!(perf_event_header))
2639    );
2640    assert_eq!(
2641        ::std::mem::align_of::<perf_event_header>(),
2642        4usize,
2643        concat!("Alignment of ", stringify!(perf_event_header))
2644    );
2645    assert_eq!(
2646        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
2647        0usize,
2648        concat!(
2649            "Offset of field: ",
2650            stringify!(perf_event_header),
2651            "::",
2652            stringify!(type_)
2653        )
2654    );
2655    assert_eq!(
2656        unsafe { ::std::ptr::addr_of!((*ptr).misc) as usize - ptr as usize },
2657        4usize,
2658        concat!(
2659            "Offset of field: ",
2660            stringify!(perf_event_header),
2661            "::",
2662            stringify!(misc)
2663        )
2664    );
2665    assert_eq!(
2666        unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize },
2667        6usize,
2668        concat!(
2669            "Offset of field: ",
2670            stringify!(perf_event_header),
2671            "::",
2672            stringify!(size)
2673        )
2674    );
2675}
2676#[repr(C)]
2677#[derive(Debug, Default, Copy, Clone)]
2678pub struct perf_ns_link_info {
2679    pub dev: __u64,
2680    pub ino: __u64,
2681}
2682#[test]
2683fn bindgen_test_layout_perf_ns_link_info() {
2684    const UNINIT: ::std::mem::MaybeUninit<perf_ns_link_info> = ::std::mem::MaybeUninit::uninit();
2685    let ptr = UNINIT.as_ptr();
2686    assert_eq!(
2687        ::std::mem::size_of::<perf_ns_link_info>(),
2688        16usize,
2689        concat!("Size of: ", stringify!(perf_ns_link_info))
2690    );
2691    assert_eq!(
2692        ::std::mem::align_of::<perf_ns_link_info>(),
2693        8usize,
2694        concat!("Alignment of ", stringify!(perf_ns_link_info))
2695    );
2696    assert_eq!(
2697        unsafe { ::std::ptr::addr_of!((*ptr).dev) as usize - ptr as usize },
2698        0usize,
2699        concat!(
2700            "Offset of field: ",
2701            stringify!(perf_ns_link_info),
2702            "::",
2703            stringify!(dev)
2704        )
2705    );
2706    assert_eq!(
2707        unsafe { ::std::ptr::addr_of!((*ptr).ino) as usize - ptr as usize },
2708        8usize,
2709        concat!(
2710            "Offset of field: ",
2711            stringify!(perf_ns_link_info),
2712            "::",
2713            stringify!(ino)
2714        )
2715    );
2716}
2717pub const NET_NS_INDEX: _bindgen_ty_6 = 0;
2718pub const UTS_NS_INDEX: _bindgen_ty_6 = 1;
2719pub const IPC_NS_INDEX: _bindgen_ty_6 = 2;
2720pub const PID_NS_INDEX: _bindgen_ty_6 = 3;
2721pub const USER_NS_INDEX: _bindgen_ty_6 = 4;
2722pub const MNT_NS_INDEX: _bindgen_ty_6 = 5;
2723pub const CGROUP_NS_INDEX: _bindgen_ty_6 = 6;
2724pub const NR_NAMESPACES: _bindgen_ty_6 = 7;
2725pub type _bindgen_ty_6 = ::std::os::raw::c_uint;
2726pub const PERF_RECORD_MMAP: perf_event_type = 1;
2727pub const PERF_RECORD_LOST: perf_event_type = 2;
2728pub const PERF_RECORD_COMM: perf_event_type = 3;
2729pub const PERF_RECORD_EXIT: perf_event_type = 4;
2730pub const PERF_RECORD_THROTTLE: perf_event_type = 5;
2731pub const PERF_RECORD_UNTHROTTLE: perf_event_type = 6;
2732pub const PERF_RECORD_FORK: perf_event_type = 7;
2733pub const PERF_RECORD_READ: perf_event_type = 8;
2734pub const PERF_RECORD_SAMPLE: perf_event_type = 9;
2735pub const PERF_RECORD_MMAP2: perf_event_type = 10;
2736pub const PERF_RECORD_AUX: perf_event_type = 11;
2737pub const PERF_RECORD_ITRACE_START: perf_event_type = 12;
2738pub const PERF_RECORD_LOST_SAMPLES: perf_event_type = 13;
2739pub const PERF_RECORD_SWITCH: perf_event_type = 14;
2740pub const PERF_RECORD_SWITCH_CPU_WIDE: perf_event_type = 15;
2741pub const PERF_RECORD_NAMESPACES: perf_event_type = 16;
2742pub const PERF_RECORD_KSYMBOL: perf_event_type = 17;
2743pub const PERF_RECORD_BPF_EVENT: perf_event_type = 18;
2744pub const PERF_RECORD_CGROUP: perf_event_type = 19;
2745pub const PERF_RECORD_TEXT_POKE: perf_event_type = 20;
2746pub const PERF_RECORD_AUX_OUTPUT_HW_ID: perf_event_type = 21;
2747pub const PERF_RECORD_MAX: perf_event_type = 22;
2748pub type perf_event_type = ::std::os::raw::c_uint;
2749pub const PERF_RECORD_KSYMBOL_TYPE_UNKNOWN: perf_record_ksymbol_type = 0;
2750pub const PERF_RECORD_KSYMBOL_TYPE_BPF: perf_record_ksymbol_type = 1;
2751pub const PERF_RECORD_KSYMBOL_TYPE_OOL: perf_record_ksymbol_type = 2;
2752pub const PERF_RECORD_KSYMBOL_TYPE_MAX: perf_record_ksymbol_type = 3;
2753pub type perf_record_ksymbol_type = ::std::os::raw::c_uint;
2754pub const PERF_BPF_EVENT_UNKNOWN: perf_bpf_event_type = 0;
2755pub const PERF_BPF_EVENT_PROG_LOAD: perf_bpf_event_type = 1;
2756pub const PERF_BPF_EVENT_PROG_UNLOAD: perf_bpf_event_type = 2;
2757pub const PERF_BPF_EVENT_MAX: perf_bpf_event_type = 3;
2758pub type perf_bpf_event_type = ::std::os::raw::c_uint;
2759pub const PERF_CONTEXT_HV: perf_callchain_context = 18446744073709551584;
2760pub const PERF_CONTEXT_KERNEL: perf_callchain_context = 18446744073709551488;
2761pub const PERF_CONTEXT_USER: perf_callchain_context = 18446744073709551104;
2762pub const PERF_CONTEXT_GUEST: perf_callchain_context = 18446744073709549568;
2763pub const PERF_CONTEXT_GUEST_KERNEL: perf_callchain_context = 18446744073709549440;
2764pub const PERF_CONTEXT_GUEST_USER: perf_callchain_context = 18446744073709549056;
2765pub const PERF_CONTEXT_MAX: perf_callchain_context = 18446744073709547521;
2766pub type perf_callchain_context = ::std::os::raw::c_ulong;
2767#[repr(C)]
2768#[derive(Copy, Clone)]
2769pub union perf_mem_data_src {
2770    pub val: __u64,
2771    pub __bindgen_anon_1: perf_mem_data_src__bindgen_ty_1,
2772}
2773#[repr(C)]
2774#[repr(align(8))]
2775#[derive(Debug, Default, Copy, Clone)]
2776pub struct perf_mem_data_src__bindgen_ty_1 {
2777    pub _bitfield_align_1: [u32; 0],
2778    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
2779}
2780#[test]
2781fn bindgen_test_layout_perf_mem_data_src__bindgen_ty_1() {
2782    assert_eq!(
2783        ::std::mem::size_of::<perf_mem_data_src__bindgen_ty_1>(),
2784        8usize,
2785        concat!("Size of: ", stringify!(perf_mem_data_src__bindgen_ty_1))
2786    );
2787    assert_eq!(
2788        ::std::mem::align_of::<perf_mem_data_src__bindgen_ty_1>(),
2789        8usize,
2790        concat!("Alignment of ", stringify!(perf_mem_data_src__bindgen_ty_1))
2791    );
2792}
2793impl perf_mem_data_src__bindgen_ty_1 {
2794    #[inline]
2795    pub fn mem_op(&self) -> __u64 {
2796        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 5u8) as u64) }
2797    }
2798    #[inline]
2799    pub fn set_mem_op(&mut self, val: __u64) {
2800        unsafe {
2801            let val: u64 = ::std::mem::transmute(val);
2802            self._bitfield_1.set(0usize, 5u8, val as u64)
2803        }
2804    }
2805    #[inline]
2806    pub fn mem_lvl(&self) -> __u64 {
2807        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 14u8) as u64) }
2808    }
2809    #[inline]
2810    pub fn set_mem_lvl(&mut self, val: __u64) {
2811        unsafe {
2812            let val: u64 = ::std::mem::transmute(val);
2813            self._bitfield_1.set(5usize, 14u8, val as u64)
2814        }
2815    }
2816    #[inline]
2817    pub fn mem_snoop(&self) -> __u64 {
2818        unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 5u8) as u64) }
2819    }
2820    #[inline]
2821    pub fn set_mem_snoop(&mut self, val: __u64) {
2822        unsafe {
2823            let val: u64 = ::std::mem::transmute(val);
2824            self._bitfield_1.set(19usize, 5u8, val as u64)
2825        }
2826    }
2827    #[inline]
2828    pub fn mem_lock(&self) -> __u64 {
2829        unsafe { ::std::mem::transmute(self._bitfield_1.get(24usize, 2u8) as u64) }
2830    }
2831    #[inline]
2832    pub fn set_mem_lock(&mut self, val: __u64) {
2833        unsafe {
2834            let val: u64 = ::std::mem::transmute(val);
2835            self._bitfield_1.set(24usize, 2u8, val as u64)
2836        }
2837    }
2838    #[inline]
2839    pub fn mem_dtlb(&self) -> __u64 {
2840        unsafe { ::std::mem::transmute(self._bitfield_1.get(26usize, 7u8) as u64) }
2841    }
2842    #[inline]
2843    pub fn set_mem_dtlb(&mut self, val: __u64) {
2844        unsafe {
2845            let val: u64 = ::std::mem::transmute(val);
2846            self._bitfield_1.set(26usize, 7u8, val as u64)
2847        }
2848    }
2849    #[inline]
2850    pub fn mem_lvl_num(&self) -> __u64 {
2851        unsafe { ::std::mem::transmute(self._bitfield_1.get(33usize, 4u8) as u64) }
2852    }
2853    #[inline]
2854    pub fn set_mem_lvl_num(&mut self, val: __u64) {
2855        unsafe {
2856            let val: u64 = ::std::mem::transmute(val);
2857            self._bitfield_1.set(33usize, 4u8, val as u64)
2858        }
2859    }
2860    #[inline]
2861    pub fn mem_remote(&self) -> __u64 {
2862        unsafe { ::std::mem::transmute(self._bitfield_1.get(37usize, 1u8) as u64) }
2863    }
2864    #[inline]
2865    pub fn set_mem_remote(&mut self, val: __u64) {
2866        unsafe {
2867            let val: u64 = ::std::mem::transmute(val);
2868            self._bitfield_1.set(37usize, 1u8, val as u64)
2869        }
2870    }
2871    #[inline]
2872    pub fn mem_snoopx(&self) -> __u64 {
2873        unsafe { ::std::mem::transmute(self._bitfield_1.get(38usize, 2u8) as u64) }
2874    }
2875    #[inline]
2876    pub fn set_mem_snoopx(&mut self, val: __u64) {
2877        unsafe {
2878            let val: u64 = ::std::mem::transmute(val);
2879            self._bitfield_1.set(38usize, 2u8, val as u64)
2880        }
2881    }
2882    #[inline]
2883    pub fn mem_blk(&self) -> __u64 {
2884        unsafe { ::std::mem::transmute(self._bitfield_1.get(40usize, 3u8) as u64) }
2885    }
2886    #[inline]
2887    pub fn set_mem_blk(&mut self, val: __u64) {
2888        unsafe {
2889            let val: u64 = ::std::mem::transmute(val);
2890            self._bitfield_1.set(40usize, 3u8, val as u64)
2891        }
2892    }
2893    #[inline]
2894    pub fn mem_hops(&self) -> __u64 {
2895        unsafe { ::std::mem::transmute(self._bitfield_1.get(43usize, 3u8) as u64) }
2896    }
2897    #[inline]
2898    pub fn set_mem_hops(&mut self, val: __u64) {
2899        unsafe {
2900            let val: u64 = ::std::mem::transmute(val);
2901            self._bitfield_1.set(43usize, 3u8, val as u64)
2902        }
2903    }
2904    #[inline]
2905    pub fn mem_rsvd(&self) -> __u64 {
2906        unsafe { ::std::mem::transmute(self._bitfield_1.get(46usize, 18u8) as u64) }
2907    }
2908    #[inline]
2909    pub fn set_mem_rsvd(&mut self, val: __u64) {
2910        unsafe {
2911            let val: u64 = ::std::mem::transmute(val);
2912            self._bitfield_1.set(46usize, 18u8, val as u64)
2913        }
2914    }
2915    #[inline]
2916    #[allow(dead_code)]
2917    pub(crate) fn new_bitfield_1(
2918        mem_op: __u64,
2919        mem_lvl: __u64,
2920        mem_snoop: __u64,
2921        mem_lock: __u64,
2922        mem_dtlb: __u64,
2923        mem_lvl_num: __u64,
2924        mem_remote: __u64,
2925        mem_snoopx: __u64,
2926        mem_blk: __u64,
2927        mem_hops: __u64,
2928        mem_rsvd: __u64,
2929    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
2930        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
2931        __bindgen_bitfield_unit.set(0usize, 5u8, {
2932            let mem_op: u64 = unsafe { ::std::mem::transmute(mem_op) };
2933            mem_op as u64
2934        });
2935        __bindgen_bitfield_unit.set(5usize, 14u8, {
2936            let mem_lvl: u64 = unsafe { ::std::mem::transmute(mem_lvl) };
2937            mem_lvl as u64
2938        });
2939        __bindgen_bitfield_unit.set(19usize, 5u8, {
2940            let mem_snoop: u64 = unsafe { ::std::mem::transmute(mem_snoop) };
2941            mem_snoop as u64
2942        });
2943        __bindgen_bitfield_unit.set(24usize, 2u8, {
2944            let mem_lock: u64 = unsafe { ::std::mem::transmute(mem_lock) };
2945            mem_lock as u64
2946        });
2947        __bindgen_bitfield_unit.set(26usize, 7u8, {
2948            let mem_dtlb: u64 = unsafe { ::std::mem::transmute(mem_dtlb) };
2949            mem_dtlb as u64
2950        });
2951        __bindgen_bitfield_unit.set(33usize, 4u8, {
2952            let mem_lvl_num: u64 = unsafe { ::std::mem::transmute(mem_lvl_num) };
2953            mem_lvl_num as u64
2954        });
2955        __bindgen_bitfield_unit.set(37usize, 1u8, {
2956            let mem_remote: u64 = unsafe { ::std::mem::transmute(mem_remote) };
2957            mem_remote as u64
2958        });
2959        __bindgen_bitfield_unit.set(38usize, 2u8, {
2960            let mem_snoopx: u64 = unsafe { ::std::mem::transmute(mem_snoopx) };
2961            mem_snoopx as u64
2962        });
2963        __bindgen_bitfield_unit.set(40usize, 3u8, {
2964            let mem_blk: u64 = unsafe { ::std::mem::transmute(mem_blk) };
2965            mem_blk as u64
2966        });
2967        __bindgen_bitfield_unit.set(43usize, 3u8, {
2968            let mem_hops: u64 = unsafe { ::std::mem::transmute(mem_hops) };
2969            mem_hops as u64
2970        });
2971        __bindgen_bitfield_unit.set(46usize, 18u8, {
2972            let mem_rsvd: u64 = unsafe { ::std::mem::transmute(mem_rsvd) };
2973            mem_rsvd as u64
2974        });
2975        __bindgen_bitfield_unit
2976    }
2977}
2978#[test]
2979fn bindgen_test_layout_perf_mem_data_src() {
2980    const UNINIT: ::std::mem::MaybeUninit<perf_mem_data_src> = ::std::mem::MaybeUninit::uninit();
2981    let ptr = UNINIT.as_ptr();
2982    assert_eq!(
2983        ::std::mem::size_of::<perf_mem_data_src>(),
2984        8usize,
2985        concat!("Size of: ", stringify!(perf_mem_data_src))
2986    );
2987    assert_eq!(
2988        ::std::mem::align_of::<perf_mem_data_src>(),
2989        8usize,
2990        concat!("Alignment of ", stringify!(perf_mem_data_src))
2991    );
2992    assert_eq!(
2993        unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize },
2994        0usize,
2995        concat!(
2996            "Offset of field: ",
2997            stringify!(perf_mem_data_src),
2998            "::",
2999            stringify!(val)
3000        )
3001    );
3002}
3003impl Default for perf_mem_data_src {
3004    fn default() -> Self {
3005        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3006        unsafe {
3007            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3008            s.assume_init()
3009        }
3010    }
3011}
3012impl ::std::fmt::Debug for perf_mem_data_src {
3013    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3014        write!(f, "perf_mem_data_src {{ union }}")
3015    }
3016}
3017#[repr(C)]
3018#[derive(Debug, Default, Copy, Clone)]
3019pub struct perf_branch_entry {
3020    pub from: __u64,
3021    pub to: __u64,
3022    pub _bitfield_align_1: [u32; 0],
3023    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
3024}
3025#[test]
3026fn bindgen_test_layout_perf_branch_entry() {
3027    const UNINIT: ::std::mem::MaybeUninit<perf_branch_entry> = ::std::mem::MaybeUninit::uninit();
3028    let ptr = UNINIT.as_ptr();
3029    assert_eq!(
3030        ::std::mem::size_of::<perf_branch_entry>(),
3031        24usize,
3032        concat!("Size of: ", stringify!(perf_branch_entry))
3033    );
3034    assert_eq!(
3035        ::std::mem::align_of::<perf_branch_entry>(),
3036        8usize,
3037        concat!("Alignment of ", stringify!(perf_branch_entry))
3038    );
3039    assert_eq!(
3040        unsafe { ::std::ptr::addr_of!((*ptr).from) as usize - ptr as usize },
3041        0usize,
3042        concat!(
3043            "Offset of field: ",
3044            stringify!(perf_branch_entry),
3045            "::",
3046            stringify!(from)
3047        )
3048    );
3049    assert_eq!(
3050        unsafe { ::std::ptr::addr_of!((*ptr).to) as usize - ptr as usize },
3051        8usize,
3052        concat!(
3053            "Offset of field: ",
3054            stringify!(perf_branch_entry),
3055            "::",
3056            stringify!(to)
3057        )
3058    );
3059}
3060impl perf_branch_entry {
3061    #[inline]
3062    pub fn mispred(&self) -> __u64 {
3063        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u64) }
3064    }
3065    #[inline]
3066    pub fn set_mispred(&mut self, val: __u64) {
3067        unsafe {
3068            let val: u64 = ::std::mem::transmute(val);
3069            self._bitfield_1.set(0usize, 1u8, val as u64)
3070        }
3071    }
3072    #[inline]
3073    pub fn predicted(&self) -> __u64 {
3074        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u64) }
3075    }
3076    #[inline]
3077    pub fn set_predicted(&mut self, val: __u64) {
3078        unsafe {
3079            let val: u64 = ::std::mem::transmute(val);
3080            self._bitfield_1.set(1usize, 1u8, val as u64)
3081        }
3082    }
3083    #[inline]
3084    pub fn in_tx(&self) -> __u64 {
3085        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u64) }
3086    }
3087    #[inline]
3088    pub fn set_in_tx(&mut self, val: __u64) {
3089        unsafe {
3090            let val: u64 = ::std::mem::transmute(val);
3091            self._bitfield_1.set(2usize, 1u8, val as u64)
3092        }
3093    }
3094    #[inline]
3095    pub fn abort(&self) -> __u64 {
3096        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u64) }
3097    }
3098    #[inline]
3099    pub fn set_abort(&mut self, val: __u64) {
3100        unsafe {
3101            let val: u64 = ::std::mem::transmute(val);
3102            self._bitfield_1.set(3usize, 1u8, val as u64)
3103        }
3104    }
3105    #[inline]
3106    pub fn cycles(&self) -> __u64 {
3107        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 16u8) as u64) }
3108    }
3109    #[inline]
3110    pub fn set_cycles(&mut self, val: __u64) {
3111        unsafe {
3112            let val: u64 = ::std::mem::transmute(val);
3113            self._bitfield_1.set(4usize, 16u8, val as u64)
3114        }
3115    }
3116    #[inline]
3117    pub fn type_(&self) -> __u64 {
3118        unsafe { ::std::mem::transmute(self._bitfield_1.get(20usize, 4u8) as u64) }
3119    }
3120    #[inline]
3121    pub fn set_type(&mut self, val: __u64) {
3122        unsafe {
3123            let val: u64 = ::std::mem::transmute(val);
3124            self._bitfield_1.set(20usize, 4u8, val as u64)
3125        }
3126    }
3127    #[inline]
3128    pub fn spec(&self) -> __u64 {
3129        unsafe { ::std::mem::transmute(self._bitfield_1.get(24usize, 2u8) as u64) }
3130    }
3131    #[inline]
3132    pub fn set_spec(&mut self, val: __u64) {
3133        unsafe {
3134            let val: u64 = ::std::mem::transmute(val);
3135            self._bitfield_1.set(24usize, 2u8, val as u64)
3136        }
3137    }
3138    #[inline]
3139    pub fn new_type(&self) -> __u64 {
3140        unsafe { ::std::mem::transmute(self._bitfield_1.get(26usize, 4u8) as u64) }
3141    }
3142    #[inline]
3143    pub fn set_new_type(&mut self, val: __u64) {
3144        unsafe {
3145            let val: u64 = ::std::mem::transmute(val);
3146            self._bitfield_1.set(26usize, 4u8, val as u64)
3147        }
3148    }
3149    #[inline]
3150    pub fn priv_(&self) -> __u64 {
3151        unsafe { ::std::mem::transmute(self._bitfield_1.get(30usize, 3u8) as u64) }
3152    }
3153    #[inline]
3154    pub fn set_priv(&mut self, val: __u64) {
3155        unsafe {
3156            let val: u64 = ::std::mem::transmute(val);
3157            self._bitfield_1.set(30usize, 3u8, val as u64)
3158        }
3159    }
3160    #[inline]
3161    pub fn reserved(&self) -> __u64 {
3162        unsafe { ::std::mem::transmute(self._bitfield_1.get(33usize, 31u8) as u64) }
3163    }
3164    #[inline]
3165    pub fn set_reserved(&mut self, val: __u64) {
3166        unsafe {
3167            let val: u64 = ::std::mem::transmute(val);
3168            self._bitfield_1.set(33usize, 31u8, val as u64)
3169        }
3170    }
3171    #[inline]
3172    #[allow(dead_code)]
3173    pub(crate) fn new_bitfield_1(
3174        mispred: __u64,
3175        predicted: __u64,
3176        in_tx: __u64,
3177        abort: __u64,
3178        cycles: __u64,
3179        type_: __u64,
3180        spec: __u64,
3181        new_type: __u64,
3182        priv_: __u64,
3183        reserved: __u64,
3184    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
3185        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
3186        __bindgen_bitfield_unit.set(0usize, 1u8, {
3187            let mispred: u64 = unsafe { ::std::mem::transmute(mispred) };
3188            mispred as u64
3189        });
3190        __bindgen_bitfield_unit.set(1usize, 1u8, {
3191            let predicted: u64 = unsafe { ::std::mem::transmute(predicted) };
3192            predicted as u64
3193        });
3194        __bindgen_bitfield_unit.set(2usize, 1u8, {
3195            let in_tx: u64 = unsafe { ::std::mem::transmute(in_tx) };
3196            in_tx as u64
3197        });
3198        __bindgen_bitfield_unit.set(3usize, 1u8, {
3199            let abort: u64 = unsafe { ::std::mem::transmute(abort) };
3200            abort as u64
3201        });
3202        __bindgen_bitfield_unit.set(4usize, 16u8, {
3203            let cycles: u64 = unsafe { ::std::mem::transmute(cycles) };
3204            cycles as u64
3205        });
3206        __bindgen_bitfield_unit.set(20usize, 4u8, {
3207            let type_: u64 = unsafe { ::std::mem::transmute(type_) };
3208            type_ as u64
3209        });
3210        __bindgen_bitfield_unit.set(24usize, 2u8, {
3211            let spec: u64 = unsafe { ::std::mem::transmute(spec) };
3212            spec as u64
3213        });
3214        __bindgen_bitfield_unit.set(26usize, 4u8, {
3215            let new_type: u64 = unsafe { ::std::mem::transmute(new_type) };
3216            new_type as u64
3217        });
3218        __bindgen_bitfield_unit.set(30usize, 3u8, {
3219            let priv_: u64 = unsafe { ::std::mem::transmute(priv_) };
3220            priv_ as u64
3221        });
3222        __bindgen_bitfield_unit.set(33usize, 31u8, {
3223            let reserved: u64 = unsafe { ::std::mem::transmute(reserved) };
3224            reserved as u64
3225        });
3226        __bindgen_bitfield_unit
3227    }
3228}
3229#[repr(C)]
3230#[derive(Copy, Clone)]
3231pub union perf_sample_weight {
3232    pub full: __u64,
3233    pub __bindgen_anon_1: perf_sample_weight__bindgen_ty_1,
3234}
3235#[repr(C)]
3236#[derive(Debug, Default, Copy, Clone)]
3237pub struct perf_sample_weight__bindgen_ty_1 {
3238    pub var1_dw: __u32,
3239    pub var2_w: __u16,
3240    pub var3_w: __u16,
3241}
3242#[test]
3243fn bindgen_test_layout_perf_sample_weight__bindgen_ty_1() {
3244    const UNINIT: ::std::mem::MaybeUninit<perf_sample_weight__bindgen_ty_1> =
3245        ::std::mem::MaybeUninit::uninit();
3246    let ptr = UNINIT.as_ptr();
3247    assert_eq!(
3248        ::std::mem::size_of::<perf_sample_weight__bindgen_ty_1>(),
3249        8usize,
3250        concat!("Size of: ", stringify!(perf_sample_weight__bindgen_ty_1))
3251    );
3252    assert_eq!(
3253        ::std::mem::align_of::<perf_sample_weight__bindgen_ty_1>(),
3254        4usize,
3255        concat!(
3256            "Alignment of ",
3257            stringify!(perf_sample_weight__bindgen_ty_1)
3258        )
3259    );
3260    assert_eq!(
3261        unsafe { ::std::ptr::addr_of!((*ptr).var1_dw) as usize - ptr as usize },
3262        0usize,
3263        concat!(
3264            "Offset of field: ",
3265            stringify!(perf_sample_weight__bindgen_ty_1),
3266            "::",
3267            stringify!(var1_dw)
3268        )
3269    );
3270    assert_eq!(
3271        unsafe { ::std::ptr::addr_of!((*ptr).var2_w) as usize - ptr as usize },
3272        4usize,
3273        concat!(
3274            "Offset of field: ",
3275            stringify!(perf_sample_weight__bindgen_ty_1),
3276            "::",
3277            stringify!(var2_w)
3278        )
3279    );
3280    assert_eq!(
3281        unsafe { ::std::ptr::addr_of!((*ptr).var3_w) as usize - ptr as usize },
3282        6usize,
3283        concat!(
3284            "Offset of field: ",
3285            stringify!(perf_sample_weight__bindgen_ty_1),
3286            "::",
3287            stringify!(var3_w)
3288        )
3289    );
3290}
3291#[test]
3292fn bindgen_test_layout_perf_sample_weight() {
3293    const UNINIT: ::std::mem::MaybeUninit<perf_sample_weight> = ::std::mem::MaybeUninit::uninit();
3294    let ptr = UNINIT.as_ptr();
3295    assert_eq!(
3296        ::std::mem::size_of::<perf_sample_weight>(),
3297        8usize,
3298        concat!("Size of: ", stringify!(perf_sample_weight))
3299    );
3300    assert_eq!(
3301        ::std::mem::align_of::<perf_sample_weight>(),
3302        8usize,
3303        concat!("Alignment of ", stringify!(perf_sample_weight))
3304    );
3305    assert_eq!(
3306        unsafe { ::std::ptr::addr_of!((*ptr).full) as usize - ptr as usize },
3307        0usize,
3308        concat!(
3309            "Offset of field: ",
3310            stringify!(perf_sample_weight),
3311            "::",
3312            stringify!(full)
3313        )
3314    );
3315}
3316impl Default for perf_sample_weight {
3317    fn default() -> Self {
3318        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3319        unsafe {
3320            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3321            s.assume_init()
3322        }
3323    }
3324}
3325impl ::std::fmt::Debug for perf_sample_weight {
3326    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3327        write!(f, "perf_sample_weight {{ union }}")
3328    }
3329}
3330pub const HW_BREAKPOINT_LEN_1: _bindgen_ty_7 = 1;
3331pub const HW_BREAKPOINT_LEN_2: _bindgen_ty_7 = 2;
3332pub const HW_BREAKPOINT_LEN_3: _bindgen_ty_7 = 3;
3333pub const HW_BREAKPOINT_LEN_4: _bindgen_ty_7 = 4;
3334pub const HW_BREAKPOINT_LEN_5: _bindgen_ty_7 = 5;
3335pub const HW_BREAKPOINT_LEN_6: _bindgen_ty_7 = 6;
3336pub const HW_BREAKPOINT_LEN_7: _bindgen_ty_7 = 7;
3337pub const HW_BREAKPOINT_LEN_8: _bindgen_ty_7 = 8;
3338pub type _bindgen_ty_7 = ::std::os::raw::c_uint;
3339pub const HW_BREAKPOINT_EMPTY: _bindgen_ty_8 = 0;
3340pub const HW_BREAKPOINT_R: _bindgen_ty_8 = 1;
3341pub const HW_BREAKPOINT_W: _bindgen_ty_8 = 2;
3342pub const HW_BREAKPOINT_RW: _bindgen_ty_8 = 3;
3343pub const HW_BREAKPOINT_X: _bindgen_ty_8 = 4;
3344pub const HW_BREAKPOINT_INVALID: _bindgen_ty_8 = 7;
3345pub type _bindgen_ty_8 = ::std::os::raw::c_uint;
3346pub const PERF_REG_X86_AX: perf_event_x86_regs = 0;
3347pub const PERF_REG_X86_BX: perf_event_x86_regs = 1;
3348pub const PERF_REG_X86_CX: perf_event_x86_regs = 2;
3349pub const PERF_REG_X86_DX: perf_event_x86_regs = 3;
3350pub const PERF_REG_X86_SI: perf_event_x86_regs = 4;
3351pub const PERF_REG_X86_DI: perf_event_x86_regs = 5;
3352pub const PERF_REG_X86_BP: perf_event_x86_regs = 6;
3353pub const PERF_REG_X86_SP: perf_event_x86_regs = 7;
3354pub const PERF_REG_X86_IP: perf_event_x86_regs = 8;
3355pub const PERF_REG_X86_FLAGS: perf_event_x86_regs = 9;
3356pub const PERF_REG_X86_CS: perf_event_x86_regs = 10;
3357pub const PERF_REG_X86_SS: perf_event_x86_regs = 11;
3358pub const PERF_REG_X86_DS: perf_event_x86_regs = 12;
3359pub const PERF_REG_X86_ES: perf_event_x86_regs = 13;
3360pub const PERF_REG_X86_FS: perf_event_x86_regs = 14;
3361pub const PERF_REG_X86_GS: perf_event_x86_regs = 15;
3362pub const PERF_REG_X86_R8: perf_event_x86_regs = 16;
3363pub const PERF_REG_X86_R9: perf_event_x86_regs = 17;
3364pub const PERF_REG_X86_R10: perf_event_x86_regs = 18;
3365pub const PERF_REG_X86_R11: perf_event_x86_regs = 19;
3366pub const PERF_REG_X86_R12: perf_event_x86_regs = 20;
3367pub const PERF_REG_X86_R13: perf_event_x86_regs = 21;
3368pub const PERF_REG_X86_R14: perf_event_x86_regs = 22;
3369pub const PERF_REG_X86_R15: perf_event_x86_regs = 23;
3370pub const PERF_REG_X86_32_MAX: perf_event_x86_regs = 16;
3371pub const PERF_REG_X86_64_MAX: perf_event_x86_regs = 24;
3372pub const PERF_REG_X86_XMM0: perf_event_x86_regs = 32;
3373pub const PERF_REG_X86_XMM1: perf_event_x86_regs = 34;
3374pub const PERF_REG_X86_XMM2: perf_event_x86_regs = 36;
3375pub const PERF_REG_X86_XMM3: perf_event_x86_regs = 38;
3376pub const PERF_REG_X86_XMM4: perf_event_x86_regs = 40;
3377pub const PERF_REG_X86_XMM5: perf_event_x86_regs = 42;
3378pub const PERF_REG_X86_XMM6: perf_event_x86_regs = 44;
3379pub const PERF_REG_X86_XMM7: perf_event_x86_regs = 46;
3380pub const PERF_REG_X86_XMM8: perf_event_x86_regs = 48;
3381pub const PERF_REG_X86_XMM9: perf_event_x86_regs = 50;
3382pub const PERF_REG_X86_XMM10: perf_event_x86_regs = 52;
3383pub const PERF_REG_X86_XMM11: perf_event_x86_regs = 54;
3384pub const PERF_REG_X86_XMM12: perf_event_x86_regs = 56;
3385pub const PERF_REG_X86_XMM13: perf_event_x86_regs = 58;
3386pub const PERF_REG_X86_XMM14: perf_event_x86_regs = 60;
3387pub const PERF_REG_X86_XMM15: perf_event_x86_regs = 62;
3388pub const PERF_REG_X86_XMM_MAX: perf_event_x86_regs = 64;
3389pub type perf_event_x86_regs = ::std::os::raw::c_uint;
3390pub const ENABLE: perf_event_ioctls = 9216;
3391pub const DISABLE: perf_event_ioctls = 9217;
3392pub const REFRESH: perf_event_ioctls = 9218;
3393pub const RESET: perf_event_ioctls = 9219;
3394pub const PERIOD: perf_event_ioctls = 1074275332;
3395pub const SET_OUTPUT: perf_event_ioctls = 9221;
3396pub const SET_FILTER: perf_event_ioctls = 1074275334;
3397pub const ID: perf_event_ioctls = 2148017159;
3398pub const SET_BPF: perf_event_ioctls = 1074013192;
3399pub const PAUSE_OUTPUT: perf_event_ioctls = 1074013193;
3400pub const QUERY_BPF: perf_event_ioctls = 3221758986;
3401pub const MODIFY_ATTRIBUTES: perf_event_ioctls = 1074275339;
3402pub type perf_event_ioctls = ::std::os::raw::c_uint;