2015-09-12 02:03:39 +02:00
|
|
|
//! x86_64-specific definitions for 64-bit linux-like values
|
|
|
|
|
2015-09-15 23:32:14 +02:00
|
|
|
pub type c_char = i8;
|
2015-09-19 00:00:49 +02:00
|
|
|
pub type wchar_t = i32;
|
2015-09-11 23:52:34 +02:00
|
|
|
pub type nlink_t = u64;
|
|
|
|
pub type blksize_t = i64;
|
2016-05-07 15:26:38 +02:00
|
|
|
pub type greg_t = i64;
|
2015-09-11 23:52:34 +02:00
|
|
|
|
|
|
|
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],
|
|
|
|
}
|
|
|
|
|
2015-10-30 01:36:55 +01:00
|
|
|
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],
|
|
|
|
}
|
|
|
|
|
2015-09-11 23:52:34 +02:00
|
|
|
pub struct pthread_attr_t {
|
|
|
|
__size: [u64; 7]
|
|
|
|
}
|
2016-02-22 20:11:01 +01:00
|
|
|
|
2016-05-07 15:26:38 +02:00
|
|
|
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],
|
|
|
|
}
|
|
|
|
|
2016-02-22 20:11:01 +01:00
|
|
|
pub struct mcontext_t {
|
2016-05-07 15:26:38 +02:00
|
|
|
pub gregs: [greg_t; 23],
|
|
|
|
pub fpregs: *mut _libc_fpstate,
|
|
|
|
__private: [u64; 8],
|
2016-02-22 20:11:01 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
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],
|
|
|
|
}
|
2016-08-27 08:11:45 +02:00
|
|
|
|
|
|
|
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
|
|
|
|
}
|
2016-02-22 20:11:01 +01:00
|
|
|
}
|
|
|
|
|
2016-07-20 07:31:48 +02:00
|
|
|
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
|
2016-03-01 08:02:36 +01:00
|
|
|
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;
|
2016-10-05 03:54:51 +02:00
|
|
|
pub const PTRACE_O_EXITKILL: ::c_uint = 1048576;
|
|
|
|
pub const PTRACE_O_TRACECLONE: ::c_uint = 8;
|
|
|
|
pub const PTRACE_O_TRACEEXEC: ::c_uint = 16;
|
|
|
|
pub const PTRACE_O_TRACEEXIT: ::c_uint = 64;
|
|
|
|
pub const PTRACE_O_TRACEFORK: ::c_uint = 2;
|
|
|
|
pub const PTRACE_O_TRACESYSGOOD: ::c_uint = 1;
|
|
|
|
pub const PTRACE_O_TRACEVFORK: ::c_uint = 4;
|
|
|
|
pub const PTRACE_O_TRACEVFORKDONE: ::c_uint = 32;
|
|
|
|
pub const PTRACE_O_TRACESECCOMP: ::c_uint = 128;
|
|
|
|
pub const PTRACE_O_SUSPEND_SECCOMP: ::c_uint = 2097152;
|
|
|
|
pub const PTRACE_PEEKSIGINFO_SHARED: ::c_uint = 1;
|
2016-03-01 08:02:36 +01:00
|
|
|
|
2016-03-06 22:00:32 +01:00
|
|
|
pub const SYS_gettid: ::c_long = 186;
|
2016-03-09 21:36:51 +01:00
|
|
|
pub const SYS_perf_event_open: ::c_long = 298;
|
2016-03-06 20:22:42 +01:00
|
|
|
|
2016-08-27 08:11:45 +02:00
|
|
|
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;
|
|
|
|
|
2016-02-22 20:11:01 +01:00
|
|
|
extern {
|
|
|
|
pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int;
|
|
|
|
pub fn setcontext(ucp: *const ucontext_t) -> ::c_int;
|
2016-03-01 08:02:36 +01:00
|
|
|
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;
|
2015-09-11 23:52:34 +02:00
|
|
|
}
|