patch-2.4.0-test2 linux/include/asm-i386/sigcontext.h
Next file: linux/include/asm-i386/socket.h
Previous file: linux/include/asm-i386/semaphore.h
Back to the patch index
Back to the overall index
- Lines: 75
- Date:
Wed Jun 21 20:59:38 2000
- Orig file:
v2.4.0-test1/linux/include/asm-i386/sigcontext.h
- Orig date:
Mon Jun 19 16:32:01 2000
diff -u --recursive --new-file v2.4.0-test1/linux/include/asm-i386/sigcontext.h linux/include/asm-i386/sigcontext.h
@@ -1,35 +1,58 @@
#ifndef _ASMi386_SIGCONTEXT_H
#define _ASMi386_SIGCONTEXT_H
-#include <linux/config.h>
/*
* As documented in the iBCS2 standard..
*
- * The first part of "struct _fpstate" is just the
- * normal i387 hardware setup, the extra "status"
- * word is used to save the coprocessor status word
- * before entering the handler.
+ * The first part of "struct _fpstate" is just the normal i387
+ * hardware setup, the extra "status" word is used to save the
+ * coprocessor status word before entering the handler.
+ *
+ * Pentium III FXSR, SSE support
+ * Gareth Hughes <gareth@valinux.com>, May 2000
+ *
+ * The FPU state data structure has had to grow to accomodate the
+ * extended FPU state required by the Streaming SIMD Extensions.
+ * There is no documented standard to accomplish this at the moment.
*/
struct _fpreg {
unsigned short significand[4];
unsigned short exponent;
};
+struct _fpxreg {
+ unsigned short significand[4];
+ unsigned short exponent;
+ unsigned short padding[3];
+};
+
+struct _xmmreg {
+ unsigned long element[4];
+};
+
struct _fpstate {
- unsigned long cw,
- sw,
- tag,
- ipoff,
- cssel,
- dataoff,
- datasel;
+ /* Regular FPU environment */
+ unsigned long cw;
+ unsigned long sw;
+ unsigned long tag;
+ unsigned long ipoff;
+ unsigned long cssel;
+ unsigned long dataoff;
+ unsigned long datasel;
struct _fpreg _st[8];
- unsigned long status;
-#ifdef CONFIG_X86_FX
+ unsigned short status;
+ unsigned short magic; /* 0xffff = regular FPU data only */
+
+ /* FXSR FPU environment */
+ unsigned long _fxsr_env[6]; /* FXSR FPU env is ignored */
unsigned long mxcsr;
- unsigned long _xmm[4*22];
-#endif
+ unsigned long reserved;
+ struct _fpxreg _fxsr_st[8]; /* FXSR FPU reg data is ignored */
+ struct _xmmreg _xmm[8];
+ unsigned long padding[56];
};
+
+#define X86_FXSR_MAGIC 0x0000
struct sigcontext {
unsigned short gs, __gsh;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)