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