about summary refs log tree commit diff
path: root/arch/x86_64/bits/signal.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86_64/bits/signal.h')
-rw-r--r--arch/x86_64/bits/signal.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/arch/x86_64/bits/signal.h b/arch/x86_64/bits/signal.h
index 38f3bc42..9043aeaf 100644
--- a/arch/x86_64/bits/signal.h
+++ b/arch/x86_64/bits/signal.h
@@ -2,7 +2,8 @@
  || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
 
 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-struct _fpstate {
+typedef long long greg_t, gregset_t[23];
+typedef struct _fpstate {
 	unsigned short cwd, swd, ftw, fop;
 	unsigned long long rip, rdp;
 	unsigned mxcsr, mxcr_mask;
@@ -13,7 +14,7 @@ struct _fpstate {
 		unsigned element[4];
 	} _xmm[16];
 	unsigned padding[24];
-};
+} *fpregset_t;
 struct sigcontext {
 	unsigned long r8, r9, r10, r11, r12, r13, r14, r15;
 	unsigned long rdi, rsi, rbp, rbx, rdx, rax, rcx, rsp, rip, eflags;
@@ -23,8 +24,8 @@ struct sigcontext {
 	unsigned long __reserved1[8];
 };
 typedef struct {
-	unsigned long long gregs[23];
-	struct _fpstate *fpregs;
+	gregset_t gregs;
+	fpregset_t fpregs;
 	unsigned long long __reserved1[8];
 } mcontext_t;
 #else