1 pub type c_char = i8; 2 pub type c_long = i32; 3 pub type c_ulong = u32; 4 pub type wchar_t = i32; 5 pub type time_t = i32; 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_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 __unused: [u8; 8], 33 } 34 } 35 36 // should be pub(crate), but that requires Rust 1.18.0 37 cfg_if! { 38 if #[cfg(libc_const_size_of)] { 39 #[doc(hidden)] 40 pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; 41 } else { 42 #[doc(hidden)] 43 pub const _ALIGNBYTES: usize = 4 - 1; 44 } 45 } 46 pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4 47