1#![allow(non_upper_case_globals)]
7#![allow(non_camel_case_types)]
8#![allow(non_snake_case)]
9
10use cfg_if::cfg_if;
11
12mod linux4_11;
13#[cfg(feature = "linux4_14")]
14mod linux4_14;
15#[cfg(feature = "linux5_7")]
16mod linux5_7;
17
18#[cfg(feature = "linux5_13")]
19mod linux5_13;
20
21cfg_if! {
22 if #[cfg(feature = "linux5_13")] {
23 pub use crate::linux5_13::*;
24 } else if #[cfg(feature = "linux5_7")] {
25 pub use crate::linux5_7::*;
26 } else if #[cfg(feature = "linux4_14")] {
27 pub use crate::linux4_14::*;
28 } else {
29 pub use crate::linux4_11::*;
30 }
31}
32
33include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
34
35#[cfg(test)]
36mod const_tests {
37 use super::*;
38
39 extern "C" {
40 static _const_UFFD_API_FEATURES: u64;
41 static _const_UFFD_API_RANGE_IOCTLS: u64;
42 static _const_UFFD_API_RANGE_IOCTLS_BASIC: u64;
43 }
44
45 #[test]
46 fn consts_correct() {
47 unsafe {
48 assert_eq!(
49 UFFD_API_FEATURES & _const_UFFD_API_FEATURES,
50 UFFD_API_FEATURES,
51 "UFFD_API_FEATURES"
52 );
53 assert_eq!(
54 UFFD_API_RANGE_IOCTLS & _const_UFFD_API_RANGE_IOCTLS,
55 UFFD_API_RANGE_IOCTLS,
56 "UFFD_API_RANGE_IOCTLS"
57 );
58 assert_eq!(
59 UFFD_API_RANGE_IOCTLS_BASIC & _const_UFFD_API_RANGE_IOCTLS_BASIC,
60 UFFD_API_RANGE_IOCTLS_BASIC,
61 "UFFD_API_RANGE_IOCTLS_BASIC"
62 );
63 }
64 }
65}