| //! 32-bit specific definitions for linux-like values |
| |
| pub type c_long = i32; |
| pub type c_ulong = u32; |
| pub type clock_t = i32; |
| pub type time_t = i32; |
| pub type suseconds_t = i32; |
| pub type ino_t = u32; |
| pub type off_t = i32; |
| pub type blkcnt_t = i32; |
| pub type __fsword_t = i32; |
| |
| pub type blksize_t = i32; |
| pub type nlink_t = u32; |
| |
| s! { |
| pub struct stat { |
| pub st_dev: ::dev_t, |
| __pad1: ::c_short, |
| pub st_ino: ::ino_t, |
| pub st_mode: ::mode_t, |
| pub st_nlink: ::nlink_t, |
| pub st_uid: ::uid_t, |
| pub st_gid: ::gid_t, |
| pub st_rdev: ::dev_t, |
| __pad2: ::c_short, |
| pub st_size: ::off_t, |
| pub st_blksize: ::blksize_t, |
| pub st_blocks: ::blkcnt_t, |
| pub st_atime: ::time_t, |
| pub st_atime_nsec: ::c_long, |
| pub st_mtime: ::time_t, |
| pub st_mtime_nsec: ::c_long, |
| pub st_ctime: ::time_t, |
| pub st_ctime_nsec: ::c_long, |
| __unused4: ::c_long, |
| __unused5: ::c_long, |
| } |
| |
| pub struct pthread_attr_t { |
| __size: [u32; 9] |
| } |
| |
| pub struct sigset_t { |
| __val: [::c_ulong; 32], |
| } |
| |
| pub struct sysinfo { |
| pub uptime: ::c_long, |
| pub loads: [::c_ulong; 3], |
| pub totalram: ::c_ulong, |
| pub freeram: ::c_ulong, |
| pub sharedram: ::c_ulong, |
| pub bufferram: ::c_ulong, |
| pub totalswap: ::c_ulong, |
| pub freeswap: ::c_ulong, |
| pub procs: ::c_ushort, |
| pub pad: ::c_ushort, |
| pub totalhigh: ::c_ulong, |
| pub freehigh: ::c_ulong, |
| pub mem_unit: ::c_uint, |
| pub _f: [::c_char; 8], |
| } |
| |
| pub struct __exit_status { |
| pub e_termination: ::c_short, |
| pub e_exit: ::c_short, |
| } |
| |
| pub struct utmpx { |
| pub ut_type: ::c_short, |
| pub ut_pid: ::pid_t, |
| pub ut_line: [::c_char; __UT_LINESIZE], |
| pub ut_id: [::c_char; 4], |
| |
| pub ut_user: [::c_char; __UT_NAMESIZE], |
| pub ut_host: [::c_char; __UT_HOSTSIZE], |
| pub ut_exit: __exit_status, |
| pub ut_session: ::c_long, |
| pub ut_tv: ::timeval, |
| |
| pub ut_addr_v6: [::int32_t; 4], |
| __glibc_reserved: [::c_char; 20], |
| } |
| } |
| |
| pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; |
| pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24; |
| pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32; |
| pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; |
| |
| pub const PTRACE_GETFPREGS: ::c_uint = 14; |
| pub const PTRACE_SETFPREGS: ::c_uint = 15; |
| pub const PTRACE_GETREGS: ::c_uint = 12; |
| pub const PTRACE_SETREGS: ::c_uint = 13; |
| |
| pub const __UT_LINESIZE: usize = 32; |
| pub const __UT_NAMESIZE: usize = 32; |
| pub const __UT_HOSTSIZE: usize = 256; |
| pub const EMPTY: ::c_short = 0; |
| pub const RUN_LVL: ::c_short = 1; |
| pub const BOOT_TIME: ::c_short = 2; |
| pub const NEW_TIME: ::c_short = 3; |
| pub const OLD_TIME: ::c_short = 4; |
| pub const INIT_PROCESS: ::c_short = 5; |
| pub const LOGIN_PROCESS: ::c_short = 6; |
| pub const USER_PROCESS: ::c_short = 7; |
| pub const DEAD_PROCESS: ::c_short = 8; |
| pub const ACCOUNTING: ::c_short = 9; |
| |
| extern { |
| pub fn getutxent() -> *mut utmpx; |
| pub fn getutxid(ut: *const utmpx) -> *mut utmpx; |
| pub fn getutxline(ut: *const utmpx) -> *mut utmpx; |
| pub fn pututxline(ut: *const utmpx) -> *mut utmpx; |
| pub fn setutxent(); |
| pub fn endutxent(); |
| } |
| |
| cfg_if! { |
| if #[cfg(target_arch = "x86")] { |
| mod x86; |
| pub use self::x86::*; |
| } else if #[cfg(target_arch = "arm")] { |
| mod arm; |
| pub use self::arm::*; |
| } else if #[cfg(target_arch = "powerpc")] { |
| mod powerpc; |
| pub use self::powerpc::*; |
| } else { |
| // Unknown target_arch |
| } |
| } |