diff options
Diffstat (limited to 'include/asm-mips/processor.h')
| -rw-r--r-- | include/asm-mips/processor.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/include/asm-mips/processor.h b/include/asm-mips/processor.h index 39d2bd50fece..0fb75f0762e0 100644 --- a/include/asm-mips/processor.h +++ b/include/asm-mips/processor.h | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | #define _ASM_PROCESSOR_H | 12 | #define _ASM_PROCESSOR_H |
| 13 | 13 | ||
| 14 | #include <linux/config.h> | 14 | #include <linux/config.h> |
| 15 | #include <linux/cpumask.h> | ||
| 15 | #include <linux/threads.h> | 16 | #include <linux/threads.h> |
| 16 | 17 | ||
| 17 | #include <asm/cachectl.h> | 18 | #include <asm/cachectl.h> |
| @@ -107,6 +108,10 @@ struct mips_dsp_state { | |||
| 107 | 108 | ||
| 108 | #define INIT_DSP {{0,},} | 109 | #define INIT_DSP {{0,},} |
| 109 | 110 | ||
| 111 | #define INIT_CPUMASK { \ | ||
| 112 | {0,} \ | ||
| 113 | } | ||
| 114 | |||
| 110 | typedef struct { | 115 | typedef struct { |
| 111 | unsigned long seg; | 116 | unsigned long seg; |
| 112 | } mm_segment_t; | 117 | } mm_segment_t; |
| @@ -129,6 +134,12 @@ struct thread_struct { | |||
| 129 | 134 | ||
| 130 | /* Saved fpu/fpu emulator stuff. */ | 135 | /* Saved fpu/fpu emulator stuff. */ |
| 131 | union mips_fpu_union fpu; | 136 | union mips_fpu_union fpu; |
| 137 | #ifdef CONFIG_MIPS_MT_FPAFF | ||
| 138 | /* Emulated instruction count */ | ||
| 139 | unsigned long emulated_fp; | ||
| 140 | /* Saved per-thread scheduler affinity mask */ | ||
| 141 | cpumask_t user_cpus_allowed; | ||
| 142 | #endif /* CONFIG_MIPS_MT_FPAFF */ | ||
| 132 | 143 | ||
| 133 | /* Saved state of the DSP ASE, if available. */ | 144 | /* Saved state of the DSP ASE, if available. */ |
| 134 | struct mips_dsp_state dsp; | 145 | struct mips_dsp_state dsp; |
| @@ -142,6 +153,7 @@ struct thread_struct { | |||
| 142 | #define MF_LOGADE 2 /* Log address errors to syslog */ | 153 | #define MF_LOGADE 2 /* Log address errors to syslog */ |
| 143 | #define MF_32BIT_REGS 4 /* also implies 16/32 fprs */ | 154 | #define MF_32BIT_REGS 4 /* also implies 16/32 fprs */ |
| 144 | #define MF_32BIT_ADDR 8 /* 32-bit address space (o32/n32) */ | 155 | #define MF_32BIT_ADDR 8 /* 32-bit address space (o32/n32) */ |
| 156 | #define MF_FPUBOUND 0x10 /* thread bound to FPU-full CPU set */ | ||
| 145 | unsigned long mflags; | 157 | unsigned long mflags; |
| 146 | unsigned long irix_trampoline; /* Wheee... */ | 158 | unsigned long irix_trampoline; /* Wheee... */ |
| 147 | unsigned long irix_oldctx; | 159 | unsigned long irix_oldctx; |
| @@ -153,6 +165,12 @@ struct thread_struct { | |||
| 153 | #define MF_N32 MF_32BIT_ADDR | 165 | #define MF_N32 MF_32BIT_ADDR |
| 154 | #define MF_N64 0 | 166 | #define MF_N64 0 |
| 155 | 167 | ||
| 168 | #ifdef CONFIG_MIPS_MT_FPAFF | ||
| 169 | #define FPAFF_INIT 0, INIT_CPUMASK, | ||
| 170 | #else | ||
| 171 | #define FPAFF_INIT | ||
| 172 | #endif /* CONFIG_MIPS_MT_FPAFF */ | ||
| 173 | |||
| 156 | #define INIT_THREAD { \ | 174 | #define INIT_THREAD { \ |
| 157 | /* \ | 175 | /* \ |
| 158 | * saved main processor registers \ | 176 | * saved main processor registers \ |
| @@ -168,6 +186,10 @@ struct thread_struct { | |||
| 168 | */ \ | 186 | */ \ |
| 169 | INIT_FPU, \ | 187 | INIT_FPU, \ |
| 170 | /* \ | 188 | /* \ |
| 189 | * fpu affinity state (null if not FPAFF) \ | ||
| 190 | */ \ | ||
| 191 | FPAFF_INIT \ | ||
| 192 | /* \ | ||
| 171 | * saved dsp/dsp emulator stuff \ | 193 | * saved dsp/dsp emulator stuff \ |
| 172 | */ \ | 194 | */ \ |
| 173 | INIT_DSP, \ | 195 | INIT_DSP, \ |
