Auto merge of #280 - fiveop:refine_mcontext, r=alexcrichton

Refine defininition of mcontext_t on linux glibc x86-64 and x86.
This commit is contained in:
bors 2016-05-08 14:22:10 -07:00
commit 2cd2cff10c
2 changed files with 50 additions and 2 deletions

View File

@ -1,9 +1,30 @@
pub type c_char = i8;
pub type wchar_t = i32;
pub type greg_t = i32;
s! {
pub struct _libc_fpreg {
pub significand: [u16; 4],
pub exponent: u16,
}
pub struct _libc_fpstate {
pub cw: ::c_ulong,
pub sw: ::c_ulong,
pub tag: ::c_ulong,
pub ipoff: ::c_ulong,
pub cssel: ::c_ulong,
pub dataoff: ::c_ulong,
pub datasel: ::c_ulong,
pub _st: [_libc_fpreg; 8],
pub status: ::c_ulong,
}
pub struct mcontext_t {
__private: [u32; 22]
pub gregs: [greg_t; 19],
pub fpregs: *mut _libc_fpstate,
pub oldmask: ::c_ulong,
pub cr2: ::c_ulong,
}
pub struct ucontext_t {

View File

@ -4,6 +4,7 @@ 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 {
@ -52,8 +53,34 @@ s! {
__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 {
__private: [u64; 32],
pub gregs: [greg_t; 23],
pub fpregs: *mut _libc_fpstate,
__private: [u64; 8],
}
pub struct ucontext_t {