• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* automatically generated by rust-bindgen 0.68.1 */
2 
3 pub const USERFAULTFD_IOC: u32 = 170;
4 pub const _UFFDIO_REGISTER: u64 = 0;
5 pub const _UFFDIO_UNREGISTER: u64 = 1;
6 pub const _UFFDIO_WAKE: u64 = 2;
7 pub const _UFFDIO_COPY: u64 = 3;
8 pub const _UFFDIO_ZEROPAGE: u64 = 4;
9 pub const _UFFDIO_WRITEPROTECT: u64 = 6;
10 pub const _UFFDIO_CONTINUE: u64 = 7;
11 pub const _UFFDIO_API: u64 = 63;
12 pub const UFFDIO: u8 = 170;
13 pub const UFFD_EVENT_PAGEFAULT: u8 = 18;
14 pub const UFFD_EVENT_FORK: u8 = 19;
15 pub const UFFD_EVENT_REMAP: u8 = 20;
16 pub const UFFD_EVENT_REMOVE: u8 = 21;
17 pub const UFFD_EVENT_UNMAP: u8 = 22;
18 pub const UFFD_PAGEFAULT_FLAG_WRITE: u64 = 1;
19 pub const UFFD_PAGEFAULT_FLAG_WP: u64 = 2;
20 pub const UFFD_PAGEFAULT_FLAG_MINOR: u64 = 4;
21 pub const UFFD_FEATURE_PAGEFAULT_FLAG_WP: u64 = 1;
22 pub const UFFD_FEATURE_EVENT_FORK: u64 = 2;
23 pub const UFFD_FEATURE_EVENT_REMAP: u64 = 4;
24 pub const UFFD_FEATURE_EVENT_REMOVE: u64 = 8;
25 pub const UFFD_FEATURE_MISSING_HUGETLBFS: u64 = 16;
26 pub const UFFD_FEATURE_MISSING_SHMEM: u64 = 32;
27 pub const UFFD_FEATURE_EVENT_UNMAP: u64 = 64;
28 pub const UFFD_FEATURE_SIGBUS: u64 = 128;
29 pub const UFFD_FEATURE_THREAD_ID: u64 = 256;
30 pub const UFFD_FEATURE_MINOR_HUGETLBFS: u64 = 512;
31 pub const UFFD_FEATURE_MINOR_SHMEM: u64 = 1024;
32 pub const UFFD_FEATURE_EXACT_ADDRESS: u64 = 2048;
33 pub const UFFD_FEATURE_WP_HUGETLBFS_SHMEM: u64 = 4096;
34 pub const UFFD_FEATURE_WP_UNPOPULATED: u64 = 8192;
35 pub const UFFD_USER_MODE_ONLY: u32 = 1;
36 pub type __s8 = ::std::os::raw::c_schar;
37 pub type __u8 = ::std::os::raw::c_uchar;
38 pub type __s16 = ::std::os::raw::c_short;
39 pub type __u16 = ::std::os::raw::c_ushort;
40 pub type __s32 = ::std::os::raw::c_int;
41 pub type __u32 = ::std::os::raw::c_uint;
42 pub type __s64 = ::std::os::raw::c_longlong;
43 pub type __u64 = ::std::os::raw::c_ulonglong;
44 #[repr(C)]
45 #[derive(Debug, Copy, Clone)]
46 pub struct __kernel_fd_set {
47     pub fds_bits: [::std::os::raw::c_ulong; 16usize],
48 }
49 #[test]
bindgen_test_layout___kernel_fd_set()50 fn bindgen_test_layout___kernel_fd_set() {
51     const UNINIT: ::std::mem::MaybeUninit<__kernel_fd_set> = ::std::mem::MaybeUninit::uninit();
52     let ptr = UNINIT.as_ptr();
53     assert_eq!(
54         ::std::mem::size_of::<__kernel_fd_set>(),
55         128usize,
56         concat!("Size of: ", stringify!(__kernel_fd_set))
57     );
58     assert_eq!(
59         ::std::mem::align_of::<__kernel_fd_set>(),
60         8usize,
61         concat!("Alignment of ", stringify!(__kernel_fd_set))
62     );
63     assert_eq!(
64         unsafe { ::std::ptr::addr_of!((*ptr).fds_bits) as usize - ptr as usize },
65         0usize,
66         concat!(
67             "Offset of field: ",
68             stringify!(__kernel_fd_set),
69             "::",
70             stringify!(fds_bits)
71         )
72     );
73 }
74 pub type __kernel_sighandler_t =
75     ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>;
76 pub type __kernel_key_t = ::std::os::raw::c_int;
77 pub type __kernel_mqd_t = ::std::os::raw::c_int;
78 pub type __kernel_old_uid_t = ::std::os::raw::c_ushort;
79 pub type __kernel_old_gid_t = ::std::os::raw::c_ushort;
80 pub type __kernel_old_dev_t = ::std::os::raw::c_ulong;
81 pub type __kernel_long_t = ::std::os::raw::c_long;
82 pub type __kernel_ulong_t = ::std::os::raw::c_ulong;
83 pub type __kernel_ino_t = __kernel_ulong_t;
84 pub type __kernel_mode_t = ::std::os::raw::c_uint;
85 pub type __kernel_pid_t = ::std::os::raw::c_int;
86 pub type __kernel_ipc_pid_t = ::std::os::raw::c_int;
87 pub type __kernel_uid_t = ::std::os::raw::c_uint;
88 pub type __kernel_gid_t = ::std::os::raw::c_uint;
89 pub type __kernel_suseconds_t = __kernel_long_t;
90 pub type __kernel_daddr_t = ::std::os::raw::c_int;
91 pub type __kernel_uid32_t = ::std::os::raw::c_uint;
92 pub type __kernel_gid32_t = ::std::os::raw::c_uint;
93 pub type __kernel_size_t = __kernel_ulong_t;
94 pub type __kernel_ssize_t = __kernel_long_t;
95 pub type __kernel_ptrdiff_t = __kernel_long_t;
96 #[repr(C)]
97 #[derive(Debug, Copy, Clone)]
98 pub struct __kernel_fsid_t {
99     pub val: [::std::os::raw::c_int; 2usize],
100 }
101 #[test]
bindgen_test_layout___kernel_fsid_t()102 fn bindgen_test_layout___kernel_fsid_t() {
103     const UNINIT: ::std::mem::MaybeUninit<__kernel_fsid_t> = ::std::mem::MaybeUninit::uninit();
104     let ptr = UNINIT.as_ptr();
105     assert_eq!(
106         ::std::mem::size_of::<__kernel_fsid_t>(),
107         8usize,
108         concat!("Size of: ", stringify!(__kernel_fsid_t))
109     );
110     assert_eq!(
111         ::std::mem::align_of::<__kernel_fsid_t>(),
112         4usize,
113         concat!("Alignment of ", stringify!(__kernel_fsid_t))
114     );
115     assert_eq!(
116         unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize },
117         0usize,
118         concat!(
119             "Offset of field: ",
120             stringify!(__kernel_fsid_t),
121             "::",
122             stringify!(val)
123         )
124     );
125 }
126 pub type __kernel_off_t = __kernel_long_t;
127 pub type __kernel_loff_t = ::std::os::raw::c_longlong;
128 pub type __kernel_old_time_t = __kernel_long_t;
129 pub type __kernel_time_t = __kernel_long_t;
130 pub type __kernel_time64_t = ::std::os::raw::c_longlong;
131 pub type __kernel_clock_t = __kernel_long_t;
132 pub type __kernel_timer_t = ::std::os::raw::c_int;
133 pub type __kernel_clockid_t = ::std::os::raw::c_int;
134 pub type __kernel_caddr_t = *mut ::std::os::raw::c_char;
135 pub type __kernel_uid16_t = ::std::os::raw::c_ushort;
136 pub type __kernel_gid16_t = ::std::os::raw::c_ushort;
137 pub type __s128 = i128;
138 pub type __u128 = u128;
139 pub type __poll_t = ::std::os::raw::c_uint;
140 #[repr(C, packed)]
141 #[derive(Copy, Clone)]
142 pub struct uffd_msg {
143     pub event: __u8,
144     pub reserved1: __u8,
145     pub reserved2: __u16,
146     pub reserved3: __u32,
147     pub arg: uffd_msg__bindgen_ty_1,
148 }
149 #[repr(C)]
150 #[derive(Copy, Clone)]
151 pub union uffd_msg__bindgen_ty_1 {
152     pub pagefault: uffd_msg__bindgen_ty_1__bindgen_ty_1,
153     pub fork: uffd_msg__bindgen_ty_1__bindgen_ty_2,
154     pub remap: uffd_msg__bindgen_ty_1__bindgen_ty_3,
155     pub remove: uffd_msg__bindgen_ty_1__bindgen_ty_4,
156     pub reserved: uffd_msg__bindgen_ty_1__bindgen_ty_5,
157 }
158 #[repr(C)]
159 #[derive(Copy, Clone)]
160 pub struct uffd_msg__bindgen_ty_1__bindgen_ty_1 {
161     pub flags: __u64,
162     pub address: __u64,
163     pub feat: uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
164 }
165 #[repr(C)]
166 #[derive(Copy, Clone)]
167 pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
168     pub ptid: __u32,
169 }
170 #[test]
bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1()171 fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1() {
172     const UNINIT: ::std::mem::MaybeUninit<uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1> =
173         ::std::mem::MaybeUninit::uninit();
174     let ptr = UNINIT.as_ptr();
175     assert_eq!(
176         ::std::mem::size_of::<uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(),
177         4usize,
178         concat!(
179             "Size of: ",
180             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
181         )
182     );
183     assert_eq!(
184         ::std::mem::align_of::<uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(),
185         4usize,
186         concat!(
187             "Alignment of ",
188             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
189         )
190     );
191     assert_eq!(
192         unsafe { ::std::ptr::addr_of!((*ptr).ptid) as usize - ptr as usize },
193         0usize,
194         concat!(
195             "Offset of field: ",
196             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
197             "::",
198             stringify!(ptid)
199         )
200     );
201 }
202 #[test]
bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_1()203 fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_1() {
204     const UNINIT: ::std::mem::MaybeUninit<uffd_msg__bindgen_ty_1__bindgen_ty_1> =
205         ::std::mem::MaybeUninit::uninit();
206     let ptr = UNINIT.as_ptr();
207     assert_eq!(
208         ::std::mem::size_of::<uffd_msg__bindgen_ty_1__bindgen_ty_1>(),
209         24usize,
210         concat!(
211             "Size of: ",
212             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_1)
213         )
214     );
215     assert_eq!(
216         ::std::mem::align_of::<uffd_msg__bindgen_ty_1__bindgen_ty_1>(),
217         8usize,
218         concat!(
219             "Alignment of ",
220             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_1)
221         )
222     );
223     assert_eq!(
224         unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
225         0usize,
226         concat!(
227             "Offset of field: ",
228             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_1),
229             "::",
230             stringify!(flags)
231         )
232     );
233     assert_eq!(
234         unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize },
235         8usize,
236         concat!(
237             "Offset of field: ",
238             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_1),
239             "::",
240             stringify!(address)
241         )
242     );
243     assert_eq!(
244         unsafe { ::std::ptr::addr_of!((*ptr).feat) as usize - ptr as usize },
245         16usize,
246         concat!(
247             "Offset of field: ",
248             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_1),
249             "::",
250             stringify!(feat)
251         )
252     );
253 }
254 #[repr(C)]
255 #[derive(Debug, Copy, Clone)]
256 pub struct uffd_msg__bindgen_ty_1__bindgen_ty_2 {
257     pub ufd: __u32,
258 }
259 #[test]
bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_2()260 fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_2() {
261     const UNINIT: ::std::mem::MaybeUninit<uffd_msg__bindgen_ty_1__bindgen_ty_2> =
262         ::std::mem::MaybeUninit::uninit();
263     let ptr = UNINIT.as_ptr();
264     assert_eq!(
265         ::std::mem::size_of::<uffd_msg__bindgen_ty_1__bindgen_ty_2>(),
266         4usize,
267         concat!(
268             "Size of: ",
269             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_2)
270         )
271     );
272     assert_eq!(
273         ::std::mem::align_of::<uffd_msg__bindgen_ty_1__bindgen_ty_2>(),
274         4usize,
275         concat!(
276             "Alignment of ",
277             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_2)
278         )
279     );
280     assert_eq!(
281         unsafe { ::std::ptr::addr_of!((*ptr).ufd) as usize - ptr as usize },
282         0usize,
283         concat!(
284             "Offset of field: ",
285             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_2),
286             "::",
287             stringify!(ufd)
288         )
289     );
290 }
291 #[repr(C)]
292 #[derive(Debug, Copy, Clone)]
293 pub struct uffd_msg__bindgen_ty_1__bindgen_ty_3 {
294     pub from: __u64,
295     pub to: __u64,
296     pub len: __u64,
297 }
298 #[test]
bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_3()299 fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_3() {
300     const UNINIT: ::std::mem::MaybeUninit<uffd_msg__bindgen_ty_1__bindgen_ty_3> =
301         ::std::mem::MaybeUninit::uninit();
302     let ptr = UNINIT.as_ptr();
303     assert_eq!(
304         ::std::mem::size_of::<uffd_msg__bindgen_ty_1__bindgen_ty_3>(),
305         24usize,
306         concat!(
307             "Size of: ",
308             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_3)
309         )
310     );
311     assert_eq!(
312         ::std::mem::align_of::<uffd_msg__bindgen_ty_1__bindgen_ty_3>(),
313         8usize,
314         concat!(
315             "Alignment of ",
316             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_3)
317         )
318     );
319     assert_eq!(
320         unsafe { ::std::ptr::addr_of!((*ptr).from) as usize - ptr as usize },
321         0usize,
322         concat!(
323             "Offset of field: ",
324             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_3),
325             "::",
326             stringify!(from)
327         )
328     );
329     assert_eq!(
330         unsafe { ::std::ptr::addr_of!((*ptr).to) as usize - ptr as usize },
331         8usize,
332         concat!(
333             "Offset of field: ",
334             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_3),
335             "::",
336             stringify!(to)
337         )
338     );
339     assert_eq!(
340         unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
341         16usize,
342         concat!(
343             "Offset of field: ",
344             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_3),
345             "::",
346             stringify!(len)
347         )
348     );
349 }
350 #[repr(C)]
351 #[derive(Debug, Copy, Clone)]
352 pub struct uffd_msg__bindgen_ty_1__bindgen_ty_4 {
353     pub start: __u64,
354     pub end: __u64,
355 }
356 #[test]
bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_4()357 fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_4() {
358     const UNINIT: ::std::mem::MaybeUninit<uffd_msg__bindgen_ty_1__bindgen_ty_4> =
359         ::std::mem::MaybeUninit::uninit();
360     let ptr = UNINIT.as_ptr();
361     assert_eq!(
362         ::std::mem::size_of::<uffd_msg__bindgen_ty_1__bindgen_ty_4>(),
363         16usize,
364         concat!(
365             "Size of: ",
366             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_4)
367         )
368     );
369     assert_eq!(
370         ::std::mem::align_of::<uffd_msg__bindgen_ty_1__bindgen_ty_4>(),
371         8usize,
372         concat!(
373             "Alignment of ",
374             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_4)
375         )
376     );
377     assert_eq!(
378         unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize },
379         0usize,
380         concat!(
381             "Offset of field: ",
382             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_4),
383             "::",
384             stringify!(start)
385         )
386     );
387     assert_eq!(
388         unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize },
389         8usize,
390         concat!(
391             "Offset of field: ",
392             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_4),
393             "::",
394             stringify!(end)
395         )
396     );
397 }
398 #[repr(C)]
399 #[derive(Debug, Copy, Clone)]
400 pub struct uffd_msg__bindgen_ty_1__bindgen_ty_5 {
401     pub reserved1: __u64,
402     pub reserved2: __u64,
403     pub reserved3: __u64,
404 }
405 #[test]
bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_5()406 fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_5() {
407     const UNINIT: ::std::mem::MaybeUninit<uffd_msg__bindgen_ty_1__bindgen_ty_5> =
408         ::std::mem::MaybeUninit::uninit();
409     let ptr = UNINIT.as_ptr();
410     assert_eq!(
411         ::std::mem::size_of::<uffd_msg__bindgen_ty_1__bindgen_ty_5>(),
412         24usize,
413         concat!(
414             "Size of: ",
415             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_5)
416         )
417     );
418     assert_eq!(
419         ::std::mem::align_of::<uffd_msg__bindgen_ty_1__bindgen_ty_5>(),
420         8usize,
421         concat!(
422             "Alignment of ",
423             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_5)
424         )
425     );
426     assert_eq!(
427         unsafe { ::std::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
428         0usize,
429         concat!(
430             "Offset of field: ",
431             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_5),
432             "::",
433             stringify!(reserved1)
434         )
435     );
436     assert_eq!(
437         unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
438         8usize,
439         concat!(
440             "Offset of field: ",
441             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_5),
442             "::",
443             stringify!(reserved2)
444         )
445     );
446     assert_eq!(
447         unsafe { ::std::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize },
448         16usize,
449         concat!(
450             "Offset of field: ",
451             stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_5),
452             "::",
453             stringify!(reserved3)
454         )
455     );
456 }
457 #[test]
bindgen_test_layout_uffd_msg__bindgen_ty_1()458 fn bindgen_test_layout_uffd_msg__bindgen_ty_1() {
459     const UNINIT: ::std::mem::MaybeUninit<uffd_msg__bindgen_ty_1> =
460         ::std::mem::MaybeUninit::uninit();
461     let ptr = UNINIT.as_ptr();
462     assert_eq!(
463         ::std::mem::size_of::<uffd_msg__bindgen_ty_1>(),
464         24usize,
465         concat!("Size of: ", stringify!(uffd_msg__bindgen_ty_1))
466     );
467     assert_eq!(
468         ::std::mem::align_of::<uffd_msg__bindgen_ty_1>(),
469         8usize,
470         concat!("Alignment of ", stringify!(uffd_msg__bindgen_ty_1))
471     );
472     assert_eq!(
473         unsafe { ::std::ptr::addr_of!((*ptr).pagefault) as usize - ptr as usize },
474         0usize,
475         concat!(
476             "Offset of field: ",
477             stringify!(uffd_msg__bindgen_ty_1),
478             "::",
479             stringify!(pagefault)
480         )
481     );
482     assert_eq!(
483         unsafe { ::std::ptr::addr_of!((*ptr).fork) as usize - ptr as usize },
484         0usize,
485         concat!(
486             "Offset of field: ",
487             stringify!(uffd_msg__bindgen_ty_1),
488             "::",
489             stringify!(fork)
490         )
491     );
492     assert_eq!(
493         unsafe { ::std::ptr::addr_of!((*ptr).remap) as usize - ptr as usize },
494         0usize,
495         concat!(
496             "Offset of field: ",
497             stringify!(uffd_msg__bindgen_ty_1),
498             "::",
499             stringify!(remap)
500         )
501     );
502     assert_eq!(
503         unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize },
504         0usize,
505         concat!(
506             "Offset of field: ",
507             stringify!(uffd_msg__bindgen_ty_1),
508             "::",
509             stringify!(remove)
510         )
511     );
512     assert_eq!(
513         unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
514         0usize,
515         concat!(
516             "Offset of field: ",
517             stringify!(uffd_msg__bindgen_ty_1),
518             "::",
519             stringify!(reserved)
520         )
521     );
522 }
523 #[test]
bindgen_test_layout_uffd_msg()524 fn bindgen_test_layout_uffd_msg() {
525     const UNINIT: ::std::mem::MaybeUninit<uffd_msg> = ::std::mem::MaybeUninit::uninit();
526     let ptr = UNINIT.as_ptr();
527     assert_eq!(
528         ::std::mem::size_of::<uffd_msg>(),
529         32usize,
530         concat!("Size of: ", stringify!(uffd_msg))
531     );
532     assert_eq!(
533         ::std::mem::align_of::<uffd_msg>(),
534         1usize,
535         concat!("Alignment of ", stringify!(uffd_msg))
536     );
537     assert_eq!(
538         unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize },
539         0usize,
540         concat!(
541             "Offset of field: ",
542             stringify!(uffd_msg),
543             "::",
544             stringify!(event)
545         )
546     );
547     assert_eq!(
548         unsafe { ::std::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
549         1usize,
550         concat!(
551             "Offset of field: ",
552             stringify!(uffd_msg),
553             "::",
554             stringify!(reserved1)
555         )
556     );
557     assert_eq!(
558         unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
559         2usize,
560         concat!(
561             "Offset of field: ",
562             stringify!(uffd_msg),
563             "::",
564             stringify!(reserved2)
565         )
566     );
567     assert_eq!(
568         unsafe { ::std::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize },
569         4usize,
570         concat!(
571             "Offset of field: ",
572             stringify!(uffd_msg),
573             "::",
574             stringify!(reserved3)
575         )
576     );
577     assert_eq!(
578         unsafe { ::std::ptr::addr_of!((*ptr).arg) as usize - ptr as usize },
579         8usize,
580         concat!(
581             "Offset of field: ",
582             stringify!(uffd_msg),
583             "::",
584             stringify!(arg)
585         )
586     );
587 }
588 #[repr(C)]
589 #[derive(Debug, Copy, Clone)]
590 pub struct uffdio_api {
591     pub api: __u64,
592     pub features: __u64,
593     pub ioctls: __u64,
594 }
595 #[test]
bindgen_test_layout_uffdio_api()596 fn bindgen_test_layout_uffdio_api() {
597     const UNINIT: ::std::mem::MaybeUninit<uffdio_api> = ::std::mem::MaybeUninit::uninit();
598     let ptr = UNINIT.as_ptr();
599     assert_eq!(
600         ::std::mem::size_of::<uffdio_api>(),
601         24usize,
602         concat!("Size of: ", stringify!(uffdio_api))
603     );
604     assert_eq!(
605         ::std::mem::align_of::<uffdio_api>(),
606         8usize,
607         concat!("Alignment of ", stringify!(uffdio_api))
608     );
609     assert_eq!(
610         unsafe { ::std::ptr::addr_of!((*ptr).api) as usize - ptr as usize },
611         0usize,
612         concat!(
613             "Offset of field: ",
614             stringify!(uffdio_api),
615             "::",
616             stringify!(api)
617         )
618     );
619     assert_eq!(
620         unsafe { ::std::ptr::addr_of!((*ptr).features) as usize - ptr as usize },
621         8usize,
622         concat!(
623             "Offset of field: ",
624             stringify!(uffdio_api),
625             "::",
626             stringify!(features)
627         )
628     );
629     assert_eq!(
630         unsafe { ::std::ptr::addr_of!((*ptr).ioctls) as usize - ptr as usize },
631         16usize,
632         concat!(
633             "Offset of field: ",
634             stringify!(uffdio_api),
635             "::",
636             stringify!(ioctls)
637         )
638     );
639 }
640 #[repr(C)]
641 #[derive(Debug, Copy, Clone)]
642 pub struct uffdio_range {
643     pub start: __u64,
644     pub len: __u64,
645 }
646 #[test]
bindgen_test_layout_uffdio_range()647 fn bindgen_test_layout_uffdio_range() {
648     const UNINIT: ::std::mem::MaybeUninit<uffdio_range> = ::std::mem::MaybeUninit::uninit();
649     let ptr = UNINIT.as_ptr();
650     assert_eq!(
651         ::std::mem::size_of::<uffdio_range>(),
652         16usize,
653         concat!("Size of: ", stringify!(uffdio_range))
654     );
655     assert_eq!(
656         ::std::mem::align_of::<uffdio_range>(),
657         8usize,
658         concat!("Alignment of ", stringify!(uffdio_range))
659     );
660     assert_eq!(
661         unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize },
662         0usize,
663         concat!(
664             "Offset of field: ",
665             stringify!(uffdio_range),
666             "::",
667             stringify!(start)
668         )
669     );
670     assert_eq!(
671         unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
672         8usize,
673         concat!(
674             "Offset of field: ",
675             stringify!(uffdio_range),
676             "::",
677             stringify!(len)
678         )
679     );
680 }
681 #[repr(C)]
682 #[derive(Debug, Copy, Clone)]
683 pub struct uffdio_register {
684     pub range: uffdio_range,
685     pub mode: __u64,
686     pub ioctls: __u64,
687 }
688 #[test]
bindgen_test_layout_uffdio_register()689 fn bindgen_test_layout_uffdio_register() {
690     const UNINIT: ::std::mem::MaybeUninit<uffdio_register> = ::std::mem::MaybeUninit::uninit();
691     let ptr = UNINIT.as_ptr();
692     assert_eq!(
693         ::std::mem::size_of::<uffdio_register>(),
694         32usize,
695         concat!("Size of: ", stringify!(uffdio_register))
696     );
697     assert_eq!(
698         ::std::mem::align_of::<uffdio_register>(),
699         8usize,
700         concat!("Alignment of ", stringify!(uffdio_register))
701     );
702     assert_eq!(
703         unsafe { ::std::ptr::addr_of!((*ptr).range) as usize - ptr as usize },
704         0usize,
705         concat!(
706             "Offset of field: ",
707             stringify!(uffdio_register),
708             "::",
709             stringify!(range)
710         )
711     );
712     assert_eq!(
713         unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize },
714         16usize,
715         concat!(
716             "Offset of field: ",
717             stringify!(uffdio_register),
718             "::",
719             stringify!(mode)
720         )
721     );
722     assert_eq!(
723         unsafe { ::std::ptr::addr_of!((*ptr).ioctls) as usize - ptr as usize },
724         24usize,
725         concat!(
726             "Offset of field: ",
727             stringify!(uffdio_register),
728             "::",
729             stringify!(ioctls)
730         )
731     );
732 }
733 #[repr(C)]
734 #[derive(Debug, Copy, Clone)]
735 pub struct uffdio_copy {
736     pub dst: __u64,
737     pub src: __u64,
738     pub len: __u64,
739     pub mode: __u64,
740     pub copy: __s64,
741 }
742 #[test]
bindgen_test_layout_uffdio_copy()743 fn bindgen_test_layout_uffdio_copy() {
744     const UNINIT: ::std::mem::MaybeUninit<uffdio_copy> = ::std::mem::MaybeUninit::uninit();
745     let ptr = UNINIT.as_ptr();
746     assert_eq!(
747         ::std::mem::size_of::<uffdio_copy>(),
748         40usize,
749         concat!("Size of: ", stringify!(uffdio_copy))
750     );
751     assert_eq!(
752         ::std::mem::align_of::<uffdio_copy>(),
753         8usize,
754         concat!("Alignment of ", stringify!(uffdio_copy))
755     );
756     assert_eq!(
757         unsafe { ::std::ptr::addr_of!((*ptr).dst) as usize - ptr as usize },
758         0usize,
759         concat!(
760             "Offset of field: ",
761             stringify!(uffdio_copy),
762             "::",
763             stringify!(dst)
764         )
765     );
766     assert_eq!(
767         unsafe { ::std::ptr::addr_of!((*ptr).src) as usize - ptr as usize },
768         8usize,
769         concat!(
770             "Offset of field: ",
771             stringify!(uffdio_copy),
772             "::",
773             stringify!(src)
774         )
775     );
776     assert_eq!(
777         unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
778         16usize,
779         concat!(
780             "Offset of field: ",
781             stringify!(uffdio_copy),
782             "::",
783             stringify!(len)
784         )
785     );
786     assert_eq!(
787         unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize },
788         24usize,
789         concat!(
790             "Offset of field: ",
791             stringify!(uffdio_copy),
792             "::",
793             stringify!(mode)
794         )
795     );
796     assert_eq!(
797         unsafe { ::std::ptr::addr_of!((*ptr).copy) as usize - ptr as usize },
798         32usize,
799         concat!(
800             "Offset of field: ",
801             stringify!(uffdio_copy),
802             "::",
803             stringify!(copy)
804         )
805     );
806 }
807 #[repr(C)]
808 #[derive(Debug, Copy, Clone)]
809 pub struct uffdio_zeropage {
810     pub range: uffdio_range,
811     pub mode: __u64,
812     pub zeropage: __s64,
813 }
814 #[test]
bindgen_test_layout_uffdio_zeropage()815 fn bindgen_test_layout_uffdio_zeropage() {
816     const UNINIT: ::std::mem::MaybeUninit<uffdio_zeropage> = ::std::mem::MaybeUninit::uninit();
817     let ptr = UNINIT.as_ptr();
818     assert_eq!(
819         ::std::mem::size_of::<uffdio_zeropage>(),
820         32usize,
821         concat!("Size of: ", stringify!(uffdio_zeropage))
822     );
823     assert_eq!(
824         ::std::mem::align_of::<uffdio_zeropage>(),
825         8usize,
826         concat!("Alignment of ", stringify!(uffdio_zeropage))
827     );
828     assert_eq!(
829         unsafe { ::std::ptr::addr_of!((*ptr).range) as usize - ptr as usize },
830         0usize,
831         concat!(
832             "Offset of field: ",
833             stringify!(uffdio_zeropage),
834             "::",
835             stringify!(range)
836         )
837     );
838     assert_eq!(
839         unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize },
840         16usize,
841         concat!(
842             "Offset of field: ",
843             stringify!(uffdio_zeropage),
844             "::",
845             stringify!(mode)
846         )
847     );
848     assert_eq!(
849         unsafe { ::std::ptr::addr_of!((*ptr).zeropage) as usize - ptr as usize },
850         24usize,
851         concat!(
852             "Offset of field: ",
853             stringify!(uffdio_zeropage),
854             "::",
855             stringify!(zeropage)
856         )
857     );
858 }
859 #[repr(C)]
860 #[derive(Debug, Copy, Clone)]
861 pub struct uffdio_writeprotect {
862     pub range: uffdio_range,
863     pub mode: __u64,
864 }
865 #[test]
bindgen_test_layout_uffdio_writeprotect()866 fn bindgen_test_layout_uffdio_writeprotect() {
867     const UNINIT: ::std::mem::MaybeUninit<uffdio_writeprotect> = ::std::mem::MaybeUninit::uninit();
868     let ptr = UNINIT.as_ptr();
869     assert_eq!(
870         ::std::mem::size_of::<uffdio_writeprotect>(),
871         24usize,
872         concat!("Size of: ", stringify!(uffdio_writeprotect))
873     );
874     assert_eq!(
875         ::std::mem::align_of::<uffdio_writeprotect>(),
876         8usize,
877         concat!("Alignment of ", stringify!(uffdio_writeprotect))
878     );
879     assert_eq!(
880         unsafe { ::std::ptr::addr_of!((*ptr).range) as usize - ptr as usize },
881         0usize,
882         concat!(
883             "Offset of field: ",
884             stringify!(uffdio_writeprotect),
885             "::",
886             stringify!(range)
887         )
888     );
889     assert_eq!(
890         unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize },
891         16usize,
892         concat!(
893             "Offset of field: ",
894             stringify!(uffdio_writeprotect),
895             "::",
896             stringify!(mode)
897         )
898     );
899 }
900 #[repr(C)]
901 #[derive(Debug, Copy, Clone)]
902 pub struct uffdio_continue {
903     pub range: uffdio_range,
904     pub mode: __u64,
905     pub mapped: __s64,
906 }
907 #[test]
bindgen_test_layout_uffdio_continue()908 fn bindgen_test_layout_uffdio_continue() {
909     const UNINIT: ::std::mem::MaybeUninit<uffdio_continue> = ::std::mem::MaybeUninit::uninit();
910     let ptr = UNINIT.as_ptr();
911     assert_eq!(
912         ::std::mem::size_of::<uffdio_continue>(),
913         32usize,
914         concat!("Size of: ", stringify!(uffdio_continue))
915     );
916     assert_eq!(
917         ::std::mem::align_of::<uffdio_continue>(),
918         8usize,
919         concat!("Alignment of ", stringify!(uffdio_continue))
920     );
921     assert_eq!(
922         unsafe { ::std::ptr::addr_of!((*ptr).range) as usize - ptr as usize },
923         0usize,
924         concat!(
925             "Offset of field: ",
926             stringify!(uffdio_continue),
927             "::",
928             stringify!(range)
929         )
930     );
931     assert_eq!(
932         unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize },
933         16usize,
934         concat!(
935             "Offset of field: ",
936             stringify!(uffdio_continue),
937             "::",
938             stringify!(mode)
939         )
940     );
941     assert_eq!(
942         unsafe { ::std::ptr::addr_of!((*ptr).mapped) as usize - ptr as usize },
943         24usize,
944         concat!(
945             "Offset of field: ",
946             stringify!(uffdio_continue),
947             "::",
948             stringify!(mapped)
949         )
950     );
951 }
952