diff options
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/include/asm/processor.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/processor.h b/arch/powerpc/include/asm/processor.h index 42ac53cebacd..fc41ab3aa114 100644 --- a/arch/powerpc/include/asm/processor.h +++ b/arch/powerpc/include/asm/processor.h | |||
@@ -246,6 +246,34 @@ struct thread_struct { | |||
246 | unsigned long spefscr; /* SPE & eFP status */ | 246 | unsigned long spefscr; /* SPE & eFP status */ |
247 | int used_spe; /* set if process has used spe */ | 247 | int used_spe; /* set if process has used spe */ |
248 | #endif /* CONFIG_SPE */ | 248 | #endif /* CONFIG_SPE */ |
249 | #ifdef CONFIG_PPC_TRANSACTIONAL_MEM | ||
250 | u64 tm_tfhar; /* Transaction fail handler addr */ | ||
251 | u64 tm_texasr; /* Transaction exception & summary */ | ||
252 | u64 tm_tfiar; /* Transaction fail instr address reg */ | ||
253 | unsigned long tm_orig_msr; /* Thread's MSR on ctx switch */ | ||
254 | struct pt_regs ckpt_regs; /* Checkpointed registers */ | ||
255 | |||
256 | /* | ||
257 | * Transactional FP and VSX 0-31 register set. | ||
258 | * NOTE: the sense of these is the opposite of the integer ckpt_regs! | ||
259 | * | ||
260 | * When a transaction is active/signalled/scheduled etc., *regs is the | ||
261 | * most recent set of/speculated GPRs with ckpt_regs being the older | ||
262 | * checkpointed regs to which we roll back if transaction aborts. | ||
263 | * | ||
264 | * However, fpr[] is the checkpointed 'base state' of FP regs, and | ||
265 | * transact_fpr[] is the new set of transactional values. | ||
266 | * VRs work the same way. | ||
267 | */ | ||
268 | double transact_fpr[32][TS_FPRWIDTH]; | ||
269 | struct { | ||
270 | unsigned int pad; | ||
271 | unsigned int val; /* Floating point status */ | ||
272 | } transact_fpscr; | ||
273 | vector128 transact_vr[32] __attribute__((aligned(16))); | ||
274 | vector128 transact_vscr __attribute__((aligned(16))); | ||
275 | unsigned long transact_vrsave; | ||
276 | #endif /* CONFIG_PPC_TRANSACTIONAL_MEM */ | ||
249 | #ifdef CONFIG_KVM_BOOK3S_32_HANDLER | 277 | #ifdef CONFIG_KVM_BOOK3S_32_HANDLER |
250 | void* kvm_shadow_vcpu; /* KVM internal data */ | 278 | void* kvm_shadow_vcpu; /* KVM internal data */ |
251 | #endif /* CONFIG_KVM_BOOK3S_32_HANDLER */ | 279 | #endif /* CONFIG_KVM_BOOK3S_32_HANDLER */ |