aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/include/asm/processor.h
diff options
context:
space:
mode:
authorBharat Bhushan <r65777@freescale.com>2013-06-26 01:42:22 -0400
committerAlexander Graf <agraf@suse.de>2013-10-17 08:49:38 -0400
commit95791988fec645d196e746fcc0e329e19f7b1347 (patch)
tree23c712c6c1ca4bf6aed52a26ebc85a016d9f9297 /arch/powerpc/include/asm/processor.h
parent6b3e3b310a884958df030760e725d32a79c0c8b4 (diff)
powerpc: move debug registers in a structure
This way we can use same data type struct with KVM and also help in using other debug related function. Signed-off-by: Bharat Bhushan <bharat.bhushan@freescale.com> Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'arch/powerpc/include/asm/processor.h')
-rw-r--r--arch/powerpc/include/asm/processor.h38
1 files changed, 22 insertions, 16 deletions
diff --git a/arch/powerpc/include/asm/processor.h b/arch/powerpc/include/asm/processor.h
index e378cccfca55..b43844442a6c 100644
--- a/arch/powerpc/include/asm/processor.h
+++ b/arch/powerpc/include/asm/processor.h
@@ -147,22 +147,7 @@ typedef struct {
147#define TS_FPR(i) fpr[i][TS_FPROFFSET] 147#define TS_FPR(i) fpr[i][TS_FPROFFSET]
148#define TS_TRANS_FPR(i) transact_fpr[i][TS_FPROFFSET] 148#define TS_TRANS_FPR(i) transact_fpr[i][TS_FPROFFSET]
149 149
150struct thread_struct { 150struct debug_reg {
151 unsigned long ksp; /* Kernel stack pointer */
152 unsigned long ksp_limit; /* if ksp <= ksp_limit stack overflow */
153
154#ifdef CONFIG_PPC64
155 unsigned long ksp_vsid;
156#endif
157 struct pt_regs *regs; /* Pointer to saved register state */
158 mm_segment_t fs; /* for get_fs() validation */
159#ifdef CONFIG_BOOKE
160 /* BookE base exception scratch space; align on cacheline */
161 unsigned long normsave[8] ____cacheline_aligned;
162#endif
163#ifdef CONFIG_PPC32
164 void *pgdir; /* root of page-table tree */
165#endif
166#ifdef CONFIG_PPC_ADV_DEBUG_REGS 151#ifdef CONFIG_PPC_ADV_DEBUG_REGS
167 /* 152 /*
168 * The following help to manage the use of Debug Control Registers 153 * The following help to manage the use of Debug Control Registers
@@ -199,6 +184,27 @@ struct thread_struct {
199 unsigned long dvc2; 184 unsigned long dvc2;
200#endif 185#endif
201#endif 186#endif
187};
188
189struct thread_struct {
190 unsigned long ksp; /* Kernel stack pointer */
191 unsigned long ksp_limit; /* if ksp <= ksp_limit stack overflow */
192
193#ifdef CONFIG_PPC64
194 unsigned long ksp_vsid;
195#endif
196 struct pt_regs *regs; /* Pointer to saved register state */
197 mm_segment_t fs; /* for get_fs() validation */
198#ifdef CONFIG_BOOKE
199 /* BookE base exception scratch space; align on cacheline */
200 unsigned long normsave[8] ____cacheline_aligned;
201#endif
202#ifdef CONFIG_PPC32
203 void *pgdir; /* root of page-table tree */
204#endif
205 /* Debug Registers */
206 struct debug_reg debug;
207
202 /* FP and VSX 0-31 register set */ 208 /* FP and VSX 0-31 register set */
203 double fpr[32][TS_FPRWIDTH] __attribute__((aligned(16))); 209 double fpr[32][TS_FPRWIDTH] __attribute__((aligned(16)));
204 struct { 210 struct {