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