csky: Fixup gdbmacros.txt with name sp in thread_struct
The gdbmacros.txt use sp in thread_struct, but csky use ksp. This cause bttnobp fail to excute. TODO: - Still couldn't display the contents of stack. Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
This commit is contained in:
parent
9e2ca15322
commit
67002814cf
@ -41,7 +41,7 @@ extern struct cpuinfo_csky cpu_data[];
|
|||||||
#define TASK_UNMAPPED_BASE (TASK_SIZE / 3)
|
#define TASK_UNMAPPED_BASE (TASK_SIZE / 3)
|
||||||
|
|
||||||
struct thread_struct {
|
struct thread_struct {
|
||||||
unsigned long ksp; /* kernel stack pointer */
|
unsigned long sp; /* kernel stack pointer */
|
||||||
unsigned long trap_no; /* saved status register */
|
unsigned long trap_no; /* saved status register */
|
||||||
|
|
||||||
/* FPU regs */
|
/* FPU regs */
|
||||||
@ -49,7 +49,7 @@ struct thread_struct {
|
|||||||
};
|
};
|
||||||
|
|
||||||
#define INIT_THREAD { \
|
#define INIT_THREAD { \
|
||||||
.ksp = sizeof(init_stack) + (unsigned long) &init_stack, \
|
.sp = sizeof(init_stack) + (unsigned long) &init_stack, \
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -38,13 +38,13 @@ struct thread_info {
|
|||||||
#define THREAD_SIZE_ORDER (THREAD_SHIFT - PAGE_SHIFT)
|
#define THREAD_SIZE_ORDER (THREAD_SHIFT - PAGE_SHIFT)
|
||||||
|
|
||||||
#define thread_saved_fp(tsk) \
|
#define thread_saved_fp(tsk) \
|
||||||
((unsigned long)(((struct switch_stack *)(tsk->thread.ksp))->r8))
|
((unsigned long)(((struct switch_stack *)(tsk->thread.sp))->r8))
|
||||||
|
|
||||||
#define thread_saved_sp(tsk) \
|
#define thread_saved_sp(tsk) \
|
||||||
((unsigned long)(tsk->thread.ksp))
|
((unsigned long)(tsk->thread.sp))
|
||||||
|
|
||||||
#define thread_saved_lr(tsk) \
|
#define thread_saved_lr(tsk) \
|
||||||
((unsigned long)(((struct switch_stack *)(tsk->thread.ksp))->r15))
|
((unsigned long)(((struct switch_stack *)(tsk->thread.sp))->r15))
|
||||||
|
|
||||||
static inline struct thread_info *current_thread_info(void)
|
static inline struct thread_info *current_thread_info(void)
|
||||||
{
|
{
|
||||||
|
@ -18,7 +18,7 @@ int main(void)
|
|||||||
DEFINE(TASK_ACTIVE_MM, offsetof(struct task_struct, active_mm));
|
DEFINE(TASK_ACTIVE_MM, offsetof(struct task_struct, active_mm));
|
||||||
|
|
||||||
/* offsets into the thread struct */
|
/* offsets into the thread struct */
|
||||||
DEFINE(THREAD_KSP, offsetof(struct thread_struct, ksp));
|
DEFINE(THREAD_KSP, offsetof(struct thread_struct, sp));
|
||||||
DEFINE(THREAD_FESR, offsetof(struct thread_struct, user_fp.fesr));
|
DEFINE(THREAD_FESR, offsetof(struct thread_struct, user_fp.fesr));
|
||||||
DEFINE(THREAD_FCR, offsetof(struct thread_struct, user_fp.fcr));
|
DEFINE(THREAD_FCR, offsetof(struct thread_struct, user_fp.fcr));
|
||||||
DEFINE(THREAD_FPREG, offsetof(struct thread_struct, user_fp.vr));
|
DEFINE(THREAD_FPREG, offsetof(struct thread_struct, user_fp.vr));
|
||||||
|
@ -35,7 +35,7 @@ void flush_thread(void){}
|
|||||||
*/
|
*/
|
||||||
unsigned long thread_saved_pc(struct task_struct *tsk)
|
unsigned long thread_saved_pc(struct task_struct *tsk)
|
||||||
{
|
{
|
||||||
struct switch_stack *sw = (struct switch_stack *)tsk->thread.ksp;
|
struct switch_stack *sw = (struct switch_stack *)tsk->thread.sp;
|
||||||
|
|
||||||
return sw->r15;
|
return sw->r15;
|
||||||
}
|
}
|
||||||
@ -56,8 +56,8 @@ int copy_thread_tls(unsigned long clone_flags,
|
|||||||
childstack = ((struct switch_stack *) childregs) - 1;
|
childstack = ((struct switch_stack *) childregs) - 1;
|
||||||
memset(childstack, 0, sizeof(struct switch_stack));
|
memset(childstack, 0, sizeof(struct switch_stack));
|
||||||
|
|
||||||
/* setup ksp for switch_to !!! */
|
/* setup thread.sp for switch_to !!! */
|
||||||
p->thread.ksp = (unsigned long)childstack;
|
p->thread.sp = (unsigned long)childstack;
|
||||||
|
|
||||||
if (unlikely(p->flags & PF_KTHREAD)) {
|
if (unlikely(p->flags & PF_KTHREAD)) {
|
||||||
memset(childregs, 0, sizeof(struct pt_regs));
|
memset(childregs, 0, sizeof(struct pt_regs));
|
||||||
|
Loading…
Reference in New Issue
Block a user