Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / include / asm-arm / fpstate.h
index 7492cfa..52bae08 100644 (file)
@@ -11,7 +11,7 @@
 #ifndef __ASM_ARM_FPSTATE_H
 #define __ASM_ARM_FPSTATE_H
 
-#define FP_SIZE 35
+#include <linux/config.h>
 
 #ifndef __ASSEMBLY__
 
@@ -26,7 +26,9 @@
 
 struct vfp_hard_struct {
        __u64 fpregs[16];
+#if __LINUX_ARM_ARCH__ < 6
        __u32 fpmx_state;
+#endif
        __u32 fpexc;
        __u32 fpscr;
        /*
@@ -43,19 +45,34 @@ union vfp_state {
 extern void vfp_flush_thread(union vfp_state *);
 extern void vfp_release_thread(union vfp_state *);
 
+#define FP_HARD_SIZE 35
+
 struct fp_hard_struct {
-       unsigned int save[FP_SIZE];             /* as yet undefined */
+       unsigned int save[FP_HARD_SIZE];                /* as yet undefined */
 };
 
+#define FP_SOFT_SIZE 35
+
 struct fp_soft_struct {
-       unsigned int save[FP_SIZE];             /* undefined information */
+       unsigned int save[FP_SOFT_SIZE];                /* undefined information */
+};
+
+#define IWMMXT_SIZE    0x98
+
+struct iwmmxt_struct {
+       unsigned int save[IWMMXT_SIZE / sizeof(unsigned int)];
 };
 
 union fp_state {
        struct fp_hard_struct   hard;
        struct fp_soft_struct   soft;
+#ifdef CONFIG_IWMMXT
+       struct iwmmxt_struct    iwmmxt;
+#endif
 };
 
+#define FP_SIZE (sizeof(union fp_state) / sizeof(int))
+
 #endif
 
 #endif