1 pub type c_long = i32;
2 pub type c_ulong = u32;
3 pub type nlink_t = u32;
4 pub type blksize_t = ::c_long;
5 pub type __u64 = ::c_ulonglong;
6 pub type regoff_t = ::c_int;
7 
8 s! {
9     pub struct pthread_attr_t {
10         __size: [u32; 9]
11     }
12 
13     pub struct sigset_t {
14         __val: [::c_ulong; 32],
15     }
16 
17     pub struct msghdr {
18         pub msg_name: *mut ::c_void,
19         pub msg_namelen: ::socklen_t,
20         pub msg_iov: *mut ::iovec,
21         pub msg_iovlen: ::c_int,
22         pub msg_control: *mut ::c_void,
23         pub msg_controllen: ::socklen_t,
24         pub msg_flags: ::c_int,
25     }
26 
27     pub struct cmsghdr {
28         pub cmsg_len: ::socklen_t,
29         pub cmsg_level: ::c_int,
30         pub cmsg_type: ::c_int,
31     }
32 
33     pub struct sem_t {
34         __val: [::c_int; 4],
35     }
36 }
37 
38 pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32;
39 pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24;
40 
41 pub const TIOCINQ: ::c_int = ::FIONREAD;
42 
43 extern "C" {
44     pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int;
45 }
46 
47 cfg_if! {
48     if #[cfg(any(target_arch = "x86"))] {
49         mod x86;
50         pub use self::x86::*;
51     } else if #[cfg(any(target_arch = "mips"))] {
52         mod mips;
53         pub use self::mips::*;
54     } else if #[cfg(any(target_arch = "arm"))] {
55         mod arm;
56         pub use self::arm::*;
57     } else if #[cfg(any(target_arch = "powerpc"))] {
58         mod powerpc;
59         pub use self::powerpc::*;
60     } else if #[cfg(any(target_arch = "hexagon"))] {
61         mod hexagon;
62         pub use self::hexagon::*;
63     } else {
64         // Unknown target_arch
65     }
66 }
67