1 pub type c_char = u8; 2 pub type c_long = i64; 3 pub type c_ulong = u64; 4 pub type wchar_t = i32; 5 pub type time_t = i64; 6 pub type suseconds_t = i64; 7 pub type register_t = i64; 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_mtime: ::time_t, 21 pub st_mtime_nsec: ::c_long, 22 pub st_ctime: ::time_t, 23 pub st_ctime_nsec: ::c_long, 24 pub st_size: ::off_t, 25 pub st_blocks: ::blkcnt_t, 26 pub st_blksize: ::blksize_t, 27 pub st_flags: ::fflags_t, 28 pub st_gen: u32, 29 pub st_lspare: i32, 30 pub st_birthtime: ::time_t, 31 pub st_birthtime_nsec: ::c_long, 32 } 33 } 34 35 // should be pub(crate), but that requires Rust 1.18.0 36 cfg_if! { 37 if #[cfg(libc_const_size_of)] { 38 #[doc(hidden)] 39 pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; 40 } else { 41 #[doc(hidden)] 42 pub const _ALIGNBYTES: usize = 8 - 1; 43 } 44 } 45 46 pub const MAP_32BIT: ::c_int = 0x00080000; 47 pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 48