| //! x86_64-specific definitions for 64-bit linux-like values |
| |
| pub type c_char = i8; |
| pub type wchar_t = i32; |
| pub type nlink_t = u64; |
| pub type blksize_t = i64; |
| pub type greg_t = i64; |
| |
| s! { |
| pub struct stat { |
| pub st_dev: ::dev_t, |
| pub st_ino: ::ino_t, |
| pub st_nlink: ::nlink_t, |
| pub st_mode: ::mode_t, |
| pub st_uid: ::uid_t, |
| pub st_gid: ::gid_t, |
| __pad0: ::c_int, |
| pub st_rdev: ::dev_t, |
| 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, |
| __unused: [::c_long; 3], |
| } |
| |
| pub struct stat64 { |
| pub st_dev: ::dev_t, |
| pub st_ino: ::ino64_t, |
| pub st_nlink: ::nlink_t, |
| pub st_mode: ::mode_t, |
| pub st_uid: ::uid_t, |
| pub st_gid: ::gid_t, |
| __pad0: ::c_int, |
| pub st_rdev: ::dev_t, |
| pub st_size: ::off_t, |
| pub st_blksize: ::blksize_t, |
| pub st_blocks: ::blkcnt64_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, |
| __reserved: [::c_long; 3], |
| } |
| |
| pub struct pthread_attr_t { |
| __size: [u64; 7] |
| } |
| |
| pub struct _libc_fpxreg { |
| pub significand: [u16; 4], |
| pub exponent: u16, |
| __private: [u16; 3], |
| } |
| |
| pub struct _libc_xmmreg { |
| pub element: [u32; 4], |
| } |
| |
| pub struct _libc_fpstate { |
| pub cwd: u16, |
| pub swd: u16, |
| pub ftw: u16, |
| pub fop: u16, |
| pub rip: u64, |
| pub rdp: u64, |
| pub mxcsr: u32, |
| pub mxcr_mask: u32, |
| pub _st: [_libc_fpxreg; 8], |
| pub _xmm: [_libc_xmmreg; 16], |
| __private: [u64; 12], |
| } |
| |
| pub struct mcontext_t { |
| pub gregs: [greg_t; 23], |
| pub fpregs: *mut _libc_fpstate, |
| __private: [u64; 8], |
| } |
| |
| pub struct ucontext_t { |
| pub uc_flags: ::c_ulong, |
| pub uc_link: *mut ucontext_t, |
| pub uc_stack: ::stack_t, |
| pub uc_mcontext: mcontext_t, |
| pub uc_sigmask: ::sigset_t, |
| __private: [u8; 512], |
| } |
| |
| pub struct ipc_perm { |
| pub __key: ::key_t, |
| pub uid: ::uid_t, |
| pub gid: ::gid_t, |
| pub cuid: ::uid_t, |
| pub cgid: ::gid_t, |
| pub mode: ::c_ushort, |
| __pad1: ::c_ushort, |
| pub __seq: ::c_ushort, |
| __pad2: ::c_ushort, |
| __unused1: ::c_ulong, |
| __unused2: ::c_ulong |
| } |
| |
| pub struct shmid_ds { |
| pub shm_perm: ::ipc_perm, |
| pub shm_segsz: ::size_t, |
| pub shm_atime: ::time_t, |
| pub shm_dtime: ::time_t, |
| pub shm_ctime: ::time_t, |
| pub shm_cpid: ::pid_t, |
| pub shm_lpid: ::pid_t, |
| pub shm_nattch: ::shmatt_t, |
| __unused4: ::c_ulong, |
| __unused5: ::c_ulong |
| } |
| } |
| |
| pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; |
| pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; |
| pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; |
| |
| pub const O_DIRECT: ::c_int = 0x4000; |
| pub const O_DIRECTORY: ::c_int = 0x10000; |
| pub const O_NOFOLLOW: ::c_int = 0x20000; |
| |
| pub const MAP_LOCKED: ::c_int = 0x02000; |
| pub const MAP_NORESERVE: ::c_int = 0x04000; |
| pub const MAP_32BIT: ::c_int = 0x0040; |
| |
| pub const EDEADLOCK: ::c_int = 35; |
| |
| pub const SO_PEERCRED: ::c_int = 17; |
| pub const SO_RCVLOWAT: ::c_int = 18; |
| pub const SO_SNDLOWAT: ::c_int = 19; |
| pub const SO_RCVTIMEO: ::c_int = 20; |
| pub const SO_SNDTIMEO: ::c_int = 21; |
| |
| pub const FIOCLEX: ::c_ulong = 0x5451; |
| pub const FIONBIO: ::c_ulong = 0x5421; |
| |
| pub const PTRACE_GETFPREGS: ::c_uint = 14; |
| pub const PTRACE_SETFPREGS: ::c_uint = 15; |
| pub const PTRACE_GETFPXREGS: ::c_uint = 18; |
| pub const PTRACE_SETFPXREGS: ::c_uint = 19; |
| pub const PTRACE_GETREGS: ::c_uint = 12; |
| pub const PTRACE_SETREGS: ::c_uint = 13; |
| |
| pub const SYS_gettid: ::c_long = 186; |
| pub const SYS_perf_event_open: ::c_long = 298; |
| |
| pub const MCL_CURRENT: ::c_int = 0x0001; |
| pub const MCL_FUTURE: ::c_int = 0x0002; |
| |
| pub const SIGSTKSZ: ::size_t = 8192; |
| pub const CBAUD: ::tcflag_t = 0o0010017; |
| pub const TAB1: ::c_int = 0x00000800; |
| pub const TAB2: ::c_int = 0x00001000; |
| pub const TAB3: ::c_int = 0x00001800; |
| pub const CR1: ::c_int = 0x00000200; |
| pub const CR2: ::c_int = 0x00000400; |
| pub const CR3: ::c_int = 0x00000600; |
| pub const FF1: ::c_int = 0x00008000; |
| pub const BS1: ::c_int = 0x00002000; |
| pub const VT1: ::c_int = 0x00004000; |
| pub const VWERASE: usize = 14; |
| pub const VREPRINT: usize = 12; |
| pub const VSUSP: usize = 10; |
| pub const VSTART: usize = 8; |
| pub const VSTOP: usize = 9; |
| pub const VDISCARD: usize = 13; |
| pub const VTIME: usize = 5; |
| pub const IXON: ::tcflag_t = 0x00000400; |
| pub const IXOFF: ::tcflag_t = 0x00001000; |
| pub const ONLCR: ::tcflag_t = 0x4; |
| pub const CSIZE: ::tcflag_t = 0x00000030; |
| pub const CS6: ::tcflag_t = 0x00000010; |
| pub const CS7: ::tcflag_t = 0x00000020; |
| pub const CS8: ::tcflag_t = 0x00000030; |
| pub const CSTOPB: ::tcflag_t = 0x00000040; |
| pub const CREAD: ::tcflag_t = 0x00000080; |
| pub const PARENB: ::tcflag_t = 0x00000100; |
| pub const PARODD: ::tcflag_t = 0x00000200; |
| pub const HUPCL: ::tcflag_t = 0x00000400; |
| pub const CLOCAL: ::tcflag_t = 0x00000800; |
| pub const ECHOKE: ::tcflag_t = 0x00000800; |
| pub const ECHOE: ::tcflag_t = 0x00000010; |
| pub const ECHOK: ::tcflag_t = 0x00000020; |
| pub const ECHONL: ::tcflag_t = 0x00000040; |
| pub const ECHOPRT: ::tcflag_t = 0x00000400; |
| pub const ECHOCTL: ::tcflag_t = 0x00000200; |
| pub const ISIG: ::tcflag_t = 0x00000001; |
| pub const ICANON: ::tcflag_t = 0x00000002; |
| pub const PENDIN: ::tcflag_t = 0x00004000; |
| pub const NOFLSH: ::tcflag_t = 0x00000080; |
| |
| pub const VEOL: usize = 11; |
| pub const VEOL2: usize = 16; |
| pub const VMIN: usize = 6; |
| pub const IEXTEN: ::tcflag_t = 0x00008000; |
| pub const TOSTOP: ::tcflag_t = 0x00000100; |
| pub const FLUSHO: ::tcflag_t = 0x00001000; |
| pub const EXTPROC: ::tcflag_t = 0x00010000; |
| pub const TCGETS: ::c_ulong = 0x5401; |
| pub const TCSETS: ::c_ulong = 0x5402; |
| pub const TCSETSW: ::c_ulong = 0x5403; |
| pub const TCSETSF: ::c_ulong = 0x5404; |
| pub const TCGETA: ::c_ulong = 0x5405; |
| pub const TCSETA: ::c_ulong = 0x5406; |
| pub const TCSETAW: ::c_ulong = 0x5407; |
| pub const TCSETAF: ::c_ulong = 0x5408; |
| pub const TCSBRK: ::c_ulong = 0x5409; |
| pub const TCXONC: ::c_ulong = 0x540A; |
| pub const TCFLSH: ::c_ulong = 0x540B; |
| pub const TIOCINQ: ::c_ulong = 0x541B; |
| pub const TIOCGPGRP: ::c_ulong = 0x540F; |
| pub const TIOCSPGRP: ::c_ulong = 0x5410; |
| pub const TIOCOUTQ: ::c_ulong = 0x5411; |
| pub const TIOCGWINSZ: ::c_ulong = 0x5413; |
| pub const TIOCSWINSZ: ::c_ulong = 0x5414; |
| pub const FIONREAD: ::c_ulong = 0x541B; |
| |
| extern { |
| pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int; |
| pub fn setcontext(ucp: *const ucontext_t) -> ::c_int; |
| pub fn makecontext(ucp: *mut ucontext_t, |
| func: extern fn (), |
| argc: ::c_int, ...); |
| pub fn swapcontext(uocp: *mut ucontext_t, |
| ucp: *const ucontext_t) -> ::c_int; |
| } |