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