11use super :: * ;
22
3+ pub use linux4_14:: {
4+ UFFDIO_API , UFFDIO_COPY , UFFDIO_COPY_MODE_DONTWAKE , UFFDIO_COPY_MODE_WP , UFFDIO_REGISTER ,
5+ UFFDIO_REGISTER_MODE_MISSING , UFFDIO_REGISTER_MODE_WP , UFFDIO_UNREGISTER , UFFDIO_WAKE ,
6+ UFFDIO_ZEROPAGE , UFFDIO_ZEROPAGE_MODE_DONTWAKE , UFFD_API , UFFD_API_FEATURES , UFFD_API_IOCTLS ,
7+ UFFD_API_RANGE_IOCTLS_BASIC ,
8+ } ;
9+
310// The following are preprocessor constants that bindgen can't figure out, so we enter them manually
411// from <linux/userfaultfd.h>, and have tests to make sure they're accurate.
512
6- pub const UFFD_API : u64 = 0xAA ;
7-
8- pub const UFFD_API_FEATURES : u64 = UFFD_FEATURE_PAGEFAULT_FLAG_WP
9- | UFFD_FEATURE_EVENT_FORK
10- | UFFD_FEATURE_EVENT_REMAP
11- | UFFD_FEATURE_EVENT_REMOVE
12- | UFFD_FEATURE_EVENT_UNMAP
13- | UFFD_FEATURE_MISSING_HUGETLBFS
14- | UFFD_FEATURE_MISSING_SHMEM
15- | UFFD_FEATURE_SIGBUS
16- | UFFD_FEATURE_THREAD_ID ;
17- pub const UFFD_API_IOCTLS : u64 = 1 << _UFFDIO_REGISTER | 1 << _UFFDIO_UNREGISTER | 1 << _UFFDIO_API;
18-
19- pub const UFFD_API_RANGE_IOCTLS : u64 =
20- 1 << _UFFDIO_WAKE | 1 << _UFFDIO_COPY | 1 << _UFFDIO_ZEROPAGE | 1 << _UFFDIO_WRITEPROTECT;
13+ pub const UFFD_API_RANGE_IOCTLS : u64 = linux4_14:: UFFD_API_RANGE_IOCTLS | 1 << _UFFDIO_WRITEPROTECT;
2114
22- pub const UFFD_API_RANGE_IOCTLS_BASIC : u64 = 1 << _UFFDIO_WAKE | 1 << _UFFDIO_COPY;
23-
24- pub const UFFDIO_REGISTER_MODE_MISSING : u64 = 1 << 0 ;
25- pub const UFFDIO_REGISTER_MODE_WP : u64 = 1 << 1 ;
26- pub const UFFDIO_COPY_MODE_DONTWAKE : u64 = 1 << 0 ;
27- pub const UFFDIO_COPY_MODE_WP : u64 = 1 << 1 ;
28- pub const UFFDIO_ZEROPAGE_MODE_DONTWAKE : u64 = 1 << 0 ;
2915pub const UFFDIO_WRITEPROTECT_MODE_WP : u64 = 1 << 0 ;
3016pub const UFFDIO_WRITEPROTECT_MODE_DONTWAKE : u64 = 1 << 1 ;
3117
32- pub const UFFDIO_API : u32 = 0xc018aa3f ;
33- pub const UFFDIO_REGISTER : u32 = 0xc020aa00 ;
34- pub const UFFDIO_UNREGISTER : u32 = 0x8010aa01 ;
35- pub const UFFDIO_WAKE : u32 = 0x8010aa02 ;
36- pub const UFFDIO_COPY : u32 = 0xc028aa03 ;
37- pub const UFFDIO_ZEROPAGE : u32 = 0xc020aa04 ;
3818pub const UFFDIO_WRITEPROTECT : u32 = 0xc018aa06 ;
3919
4020#[ cfg( test) ]
4121mod const_tests {
4222 use super :: * ;
4323
4424 extern "C" {
45- static _const_UFFD_API: u64 ;
46- static _const_UFFD_API_FEATURES: u64 ;
47- static _const_UFFD_API_IOCTLS: u64 ;
48- static _const_UFFD_API_RANGE_IOCTLS: u64 ;
49- static _const_UFFD_API_RANGE_IOCTLS_BASIC: u64 ;
50- static _const_UFFDIO_REGISTER_MODE_MISSING: u64 ;
51- static _const_UFFDIO_REGISTER_MODE_WP: u64 ;
52- static _const_UFFDIO_COPY_MODE_DONTWAKE: u64 ;
53- static _const_UFFDIO_COPY_MODE_WP: u64 ;
54- static _const_UFFDIO_ZEROPAGE_MODE_DONTWAKE: u64 ;
5525 static _const_UFFDIO_WRITEPROTECT_MODE_WP: u64 ;
5626 static _const_UFFDIO_WRITEPROTECT_MODE_DONTWAKE: u64 ;
57- static _const_UFFDIO_API: u32 ;
58- static _const_UFFDIO_REGISTER: u32 ;
59- static _const_UFFDIO_UNREGISTER: u32 ;
60- static _const_UFFDIO_WAKE: u32 ;
61- static _const_UFFDIO_COPY: u32 ;
62- static _const_UFFDIO_ZEROPAGE: u32 ;
6327 static _const_UFFDIO_WRITEPROTECT: u32 ;
6428 }
6529
6630 #[ test]
6731 fn consts_correct ( ) {
6832 unsafe {
69- assert_eq ! ( UFFD_API , _const_UFFD_API, "UFFD_API" ) ;
70- assert_eq ! (
71- UFFD_API_FEATURES , _const_UFFD_API_FEATURES,
72- "UFFD_API_FEATURES"
73- ) ;
74- assert_eq ! ( UFFD_API_IOCTLS , _const_UFFD_API_IOCTLS, "UFFD_API_IOCTLS" ) ;
75- assert_eq ! (
76- UFFD_API_RANGE_IOCTLS , _const_UFFD_API_RANGE_IOCTLS,
77- "UFFD_API_RANGE_IOCTLS"
78- ) ;
79- assert_eq ! (
80- UFFD_API_RANGE_IOCTLS_BASIC , _const_UFFD_API_RANGE_IOCTLS_BASIC,
81- "UFFD_API_RANGE_IOCTLS_BASIC"
82- ) ;
83- assert_eq ! (
84- UFFDIO_REGISTER_MODE_MISSING , _const_UFFDIO_REGISTER_MODE_MISSING,
85- "UFFDIO_REGISTER_MODE_MISSING"
86- ) ;
87- assert_eq ! (
88- UFFDIO_REGISTER_MODE_WP , _const_UFFDIO_REGISTER_MODE_WP,
89- "UFFDIO_REGISTER_MODE_WP"
90- ) ;
91- assert_eq ! (
92- UFFDIO_COPY_MODE_DONTWAKE , _const_UFFDIO_COPY_MODE_DONTWAKE,
93- "UFFDIO_COPY_MODE_DONTWAKE"
94- ) ;
95- assert_eq ! (
96- UFFDIO_COPY_MODE_WP , _const_UFFDIO_COPY_MODE_WP,
97- "UFFDIO_COPY_MODE_WP"
98- ) ;
99- assert_eq ! (
100- UFFDIO_ZEROPAGE_MODE_DONTWAKE , _const_UFFDIO_ZEROPAGE_MODE_DONTWAKE,
101- "UFFDIO_ZEROPAGE_MODE_DONTWAKE"
102- ) ;
10333 assert_eq ! (
10434 UFFDIO_WRITEPROTECT_MODE_WP , _const_UFFDIO_WRITEPROTECT_MODE_WP,
10535 "UFFDIO_WRITEPROTECT_MODE_WP"
@@ -108,15 +38,6 @@ mod const_tests {
10838 UFFDIO_WRITEPROTECT_MODE_DONTWAKE , _const_UFFDIO_WRITEPROTECT_MODE_DONTWAKE,
10939 "UFFDIO_WRITEPROTECT_MODE_DONTWAKE"
11040 ) ;
111- assert_eq ! ( UFFDIO_API , _const_UFFDIO_API, "UFFDIO_API" ) ;
112- assert_eq ! ( UFFDIO_REGISTER , _const_UFFDIO_REGISTER, "UFFDIO_REGISTER" ) ;
113- assert_eq ! (
114- UFFDIO_UNREGISTER , _const_UFFDIO_UNREGISTER,
115- "UFFDIO_UNREGISTER"
116- ) ;
117- assert_eq ! ( UFFDIO_WAKE , _const_UFFDIO_WAKE, "UFFDIO_WAKE" ) ;
118- assert_eq ! ( UFFDIO_COPY , _const_UFFDIO_COPY, "UFFDIO_COPY" ) ;
119- assert_eq ! ( UFFDIO_ZEROPAGE , _const_UFFDIO_ZEROPAGE, "UFFDIO_ZEROPAGE" ) ;
12041 assert_eq ! (
12142 UFFDIO_WRITEPROTECT , _const_UFFDIO_WRITEPROTECT,
12243 "UFFDIO_WRITEPROTECT"
0 commit comments