1 pub type c_char = u8;
2 pub type c_long = i32;
3 pub type c_ulong = u32;
4 pub type wchar_t = u32;
5 pub type time_t = i64;
6 pub type suseconds_t = i32;
7 pub type register_t = i32;
8 
9 s! {
10     pub struct stat {
11         pub st_dev: ::dev_t,
12         pub st_ino: ::ino_t,
13         pub st_mode: ::mode_t,
14         pub st_nlink: ::nlink_t,
15         pub st_uid: ::uid_t,
16         pub st_gid: ::gid_t,
17         pub st_rdev: ::dev_t,
18         pub st_atime: ::time_t,
19         pub st_atime_nsec: ::c_long,
20         pub st_atime_pad: ::c_long,
21         pub st_mtime: ::time_t,
22         pub st_mtime_nsec: ::c_long,
23         pub st_mtime_pad: ::c_long,
24         pub st_ctime: ::time_t,
25         pub st_ctime_nsec: ::c_long,
26         pub st_ctime_pad: ::c_long,
27         pub st_size: ::off_t,
28         pub st_blocks: ::blkcnt_t,
29         pub st_blksize: ::blksize_t,
30         pub st_flags: ::fflags_t,
31         pub st_gen: u32,
32         pub st_lspare: i32,
33         pub st_birthtime: ::time_t,
34         pub st_birthtime_nsec: ::c_long,
35         pub st_birthtime_pad: ::c_long,
36     }
37 }
38 
39 // should be pub(crate), but that requires Rust 1.18.0
40 cfg_if! {
41     if #[cfg(libc_const_size_of)] {
42         #[doc(hidden)]
43         pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1;
44     } else {
45         #[doc(hidden)]
46         pub const _ALIGNBYTES: usize = 4 - 1;
47     }
48 }
49 pub const MAP_32BIT: ::c_int = 0x00080000;
50 pub const MINSIGSTKSZ: ::size_t = 4096; // 1024 * 4
51