diff options
Diffstat (limited to 'include/asm-powerpc/processor.h')
| -rw-r--r-- | include/asm-powerpc/processor.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/include/asm-powerpc/processor.h b/include/asm-powerpc/processor.h index 93f83efeb310..22e54a2a6604 100644 --- a/include/asm-powerpc/processor.h +++ b/include/asm-powerpc/processor.h | |||
| @@ -149,11 +149,11 @@ struct thread_struct { | |||
| 149 | unsigned int val; /* Floating point status */ | 149 | unsigned int val; /* Floating point status */ |
| 150 | } fpscr; | 150 | } fpscr; |
| 151 | int fpexc_mode; /* floating-point exception mode */ | 151 | int fpexc_mode; /* floating-point exception mode */ |
| 152 | unsigned int align_ctl; /* alignment handling control */ | ||
| 152 | #ifdef CONFIG_PPC64 | 153 | #ifdef CONFIG_PPC64 |
| 153 | unsigned long start_tb; /* Start purr when proc switched in */ | 154 | unsigned long start_tb; /* Start purr when proc switched in */ |
| 154 | unsigned long accum_tb; /* Total accumilated purr for process */ | 155 | unsigned long accum_tb; /* Total accumilated purr for process */ |
| 155 | #endif | 156 | #endif |
| 156 | unsigned long vdso_base; /* base of the vDSO library */ | ||
| 157 | unsigned long dabr; /* Data address breakpoint register */ | 157 | unsigned long dabr; /* Data address breakpoint register */ |
| 158 | #ifdef CONFIG_ALTIVEC | 158 | #ifdef CONFIG_ALTIVEC |
| 159 | /* Complete AltiVec register set */ | 159 | /* Complete AltiVec register set */ |
| @@ -190,7 +190,7 @@ struct thread_struct { | |||
| 190 | .fs = KERNEL_DS, \ | 190 | .fs = KERNEL_DS, \ |
| 191 | .fpr = {0}, \ | 191 | .fpr = {0}, \ |
| 192 | .fpscr = { .val = 0, }, \ | 192 | .fpscr = { .val = 0, }, \ |
| 193 | .fpexc_mode = MSR_FE0|MSR_FE1, \ | 193 | .fpexc_mode = 0, \ |
| 194 | } | 194 | } |
| 195 | #endif | 195 | #endif |
| 196 | 196 | ||
| @@ -212,6 +212,18 @@ unsigned long get_wchan(struct task_struct *p); | |||
| 212 | extern int get_fpexc_mode(struct task_struct *tsk, unsigned long adr); | 212 | extern int get_fpexc_mode(struct task_struct *tsk, unsigned long adr); |
| 213 | extern int set_fpexc_mode(struct task_struct *tsk, unsigned int val); | 213 | extern int set_fpexc_mode(struct task_struct *tsk, unsigned int val); |
| 214 | 214 | ||
| 215 | #define GET_ENDIAN(tsk, adr) get_endian((tsk), (adr)) | ||
| 216 | #define SET_ENDIAN(tsk, val) set_endian((tsk), (val)) | ||
| 217 | |||
| 218 | extern int get_endian(struct task_struct *tsk, unsigned long adr); | ||
| 219 | extern int set_endian(struct task_struct *tsk, unsigned int val); | ||
| 220 | |||
| 221 | #define GET_UNALIGN_CTL(tsk, adr) get_unalign_ctl((tsk), (adr)) | ||
| 222 | #define SET_UNALIGN_CTL(tsk, val) set_unalign_ctl((tsk), (val)) | ||
| 223 | |||
| 224 | extern int get_unalign_ctl(struct task_struct *tsk, unsigned long adr); | ||
| 225 | extern int set_unalign_ctl(struct task_struct *tsk, unsigned int val); | ||
| 226 | |||
| 215 | static inline unsigned int __unpack_fe01(unsigned long msr_bits) | 227 | static inline unsigned int __unpack_fe01(unsigned long msr_bits) |
| 216 | { | 228 | { |
| 217 | return ((msr_bits & MSR_FE0) >> 10) | ((msr_bits & MSR_FE1) >> 8); | 229 | return ((msr_bits & MSR_FE0) >> 10) | ((msr_bits & MSR_FE1) >> 8); |
