From 14adcbfc36fbec33594635a8d93834149cb8a8fa Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Mon, 4 Jun 2012 12:40:46 -0700 Subject: [PATCH] Update x86_64 bits/sigcontext.h from kernel 3.4.0 --- ChangeLog | 10 +++++++ sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h | 34 ++++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/ChangeLog b/ChangeLog index 0e7f11e..771debd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,16 @@ 2012-06-04 H.J. Lu [BZ #14117] + * sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h (FP_XSTATE_MAGIC1): + New macro from Linux kernel 3.4.0. + (FP_XSTATE_MAGIC2): Likewise. + (FP_XSTATE_MAGIC2_SIZE): Likewise. + (X86_FXSR_MAGIC): New macro from Linux i386 kernel. + (struct _fpx_sw_bytes): New struct. + (struct _xsave_hdr): Likewise. + (struct _ymmh_state): Likewise. + (struct _xstate): Likewise. + * sysdeps/unix/sysv/linux/i386/sys/debugreg.h: Removed. * sysdeps/unix/sysv/linux/i386/sys/reg.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/sys/debugreg.h: Renamed to ... diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h b/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h index d9ba716..06f36cb 100644 --- a/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h +++ b/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h @@ -22,6 +22,19 @@ # error "Never use directly; include instead." #endif +#define FP_XSTATE_MAGIC1 0x46505853U +#define FP_XSTATE_MAGIC2 0x46505845U +#define FP_XSTATE_MAGIC2_SIZE sizeof(FP_XSTATE_MAGIC2) + +struct _fpx_sw_bytes +{ + __uint32_t magic1; + __uint32_t extended_size; + __uint64_t xstate_bv; + __uint32_t xstate_size; + __uint32_t padding[7]; +}; + struct _fpreg { unsigned short significand[4]; @@ -75,6 +88,8 @@ struct _fpstate # define sigcontext_struct sigcontext #endif +#define X86_FXSR_MAGIC 0x0000 + struct sigcontext { unsigned short gs, __gsh; @@ -157,4 +172,23 @@ struct sigcontext #endif /* __x86_64__ */ +struct _xsave_hdr +{ + __uint64_t xstate_bv; + __uint64_t reserved1[2]; + __uint64_t reserved2[5]; +}; + +struct _ymmh_state +{ + __uint32_t ymmh_space[64]; +}; + +struct _xstate +{ + struct _fpstate fpstate; + struct _xsave_hdr xstate_hdr; + struct _ymmh_state ymmh; +}; + #endif /* _BITS_SIGCONTEXT_H */ -- 2.7.4