X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fasm-mips%2Fprocessor.h;fp=include%2Fasm-mips%2Fprocessor.h;h=39d2bd50fecede26d52090657e08b5fe71e29f39;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=5f80ba71ab92b3ad17778e483a8cad854d728c24;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/include/asm-mips/processor.h b/include/asm-mips/processor.h index 5f80ba71a..39d2bd50f 100644 --- a/include/asm-mips/processor.h +++ b/include/asm-mips/processor.h @@ -11,7 +11,7 @@ #ifndef _ASM_PROCESSOR_H #define _ASM_PROCESSOR_H -#include +#include #include #include @@ -70,6 +70,11 @@ extern unsigned int vced_count, vcei_count; typedef __u64 fpureg_t; +struct mips_fpu_hard_struct { + fpureg_t fpr[NUM_FPU_REGS]; + unsigned int fcr31; +}; + /* * It would be nice to add some more fields for emulator statistics, but there * are a number of fixed offsets in offset.h and elsewhere that would have to @@ -77,13 +82,18 @@ typedef __u64 fpureg_t; * the FPU emulator for now. See asm-mips/fpu_emulator.h. */ -struct mips_fpu_struct { +struct mips_fpu_soft_struct { fpureg_t fpr[NUM_FPU_REGS]; unsigned int fcr31; }; +union mips_fpu_union { + struct mips_fpu_hard_struct hard; + struct mips_fpu_soft_struct soft; +}; + #define INIT_FPU { \ - {0,} \ + {{0,},} \ } #define NUM_DSP_REGS 6 @@ -97,10 +107,6 @@ struct mips_dsp_state { #define INIT_DSP {{0,},} -#define INIT_CPUMASK { \ - {0,} \ -} - typedef struct { unsigned long seg; } mm_segment_t; @@ -122,13 +128,7 @@ struct thread_struct { unsigned long cp0_status; /* Saved fpu/fpu emulator stuff. */ - struct mips_fpu_struct fpu; -#ifdef CONFIG_MIPS_MT_FPAFF - /* Emulated instruction count */ - unsigned long emulated_fp; - /* Saved per-thread scheduler affinity mask */ - cpumask_t user_cpus_allowed; -#endif /* CONFIG_MIPS_MT_FPAFF */ + union mips_fpu_union fpu; /* Saved state of the DSP ASE, if available. */ struct mips_dsp_state dsp; @@ -142,7 +142,6 @@ struct thread_struct { #define MF_LOGADE 2 /* Log address errors to syslog */ #define MF_32BIT_REGS 4 /* also implies 16/32 fprs */ #define MF_32BIT_ADDR 8 /* 32-bit address space (o32/n32) */ -#define MF_FPUBOUND 0x10 /* thread bound to FPU-full CPU set */ unsigned long mflags; unsigned long irix_trampoline; /* Wheee... */ unsigned long irix_oldctx; @@ -154,12 +153,6 @@ struct thread_struct { #define MF_N32 MF_32BIT_ADDR #define MF_N64 0 -#ifdef CONFIG_MIPS_MT_FPAFF -#define FPAFF_INIT 0, INIT_CPUMASK, -#else -#define FPAFF_INIT -#endif /* CONFIG_MIPS_MT_FPAFF */ - #define INIT_THREAD { \ /* \ * saved main processor registers \ @@ -174,10 +167,6 @@ struct thread_struct { * saved fpu/fpu emulator stuff \ */ \ INIT_FPU, \ - /* \ - * fpu affinity state (null if not FPAFF) \ - */ \ - FPAFF_INIT \ /* \ * saved dsp/dsp emulator stuff \ */ \