1 use std::os::raw::{c_int, c_ulong};
2
3 #[cfg(any(target_os = "linux", target_os = "macos", target_os = "android"))]
4 #[macro_use]
5 mod platform;
6
7 #[cfg(any(target_os = "linux", target_os = "macos", target_os = "android"))]
8 pub use platform::*;
9
10 extern "C" {
11 #[doc(hidden)]
ioctl(fd: c_int, req: c_ulong, ...) -> c_int12 pub fn ioctl(fd: c_int, req: c_ulong, ...) -> c_int;
13 }
14
15 #[doc(hidden)]
check_res(res: c_int) -> std::io::Result<()>16 pub fn check_res(res: c_int) -> std::io::Result<()> {
17 if res < 0 {
18 Err(std::io::Error::last_os_error())
19 } else {
20 Ok(())
21 }
22 }
23
24 #[cfg(not(any(target_os = "linux", target_os = "macos", target_os = "android")))]
25 use platform_not_supported;
26
27 #[cfg(doctest)]
28 mod test_readme {
29 macro_rules! external_doc_test {
30 ($x:expr) => {
31 #[doc = $x]
32 extern "C" {}
33 };
34 }
35
36 external_doc_test!(include_str!("../../README.md"));
37 }
38