Commit 67002814 authored by Guo Ren's avatar Guo Ren
Browse files

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: default avatarGuo Ren <guoren@linux.alibaba.com>
parent 9e2ca153
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ extern struct cpuinfo_csky cpu_data[];
#define TASK_UNMAPPED_BASE      (TASK_SIZE / 3)

struct thread_struct {
	unsigned long  ksp;       /* kernel stack pointer */
	unsigned long  sp;        /* kernel stack pointer */
	unsigned long  trap_no;   /* saved status register */

	/* FPU regs */
@@ -49,7 +49,7 @@ struct thread_struct {
};

#define INIT_THREAD  { \
	.ksp = sizeof(init_stack) + (unsigned long) &init_stack, \
	.sp = sizeof(init_stack) + (unsigned long) &init_stack, \
}

/*
+3 −3
Original line number Diff line number Diff line
@@ -38,13 +38,13 @@ struct thread_info {
#define THREAD_SIZE_ORDER (THREAD_SHIFT - PAGE_SHIFT)

#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) \
	((unsigned long)(tsk->thread.ksp))
	((unsigned long)(tsk->thread.sp))

#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)
{
+1 −1
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ int main(void)
	DEFINE(TASK_ACTIVE_MM,    offsetof(struct task_struct, active_mm));

	/* 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_FCR,        offsetof(struct thread_struct, user_fp.fcr));
	DEFINE(THREAD_FPREG,      offsetof(struct thread_struct, user_fp.vr));
+3 −3
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ void flush_thread(void){}
 */
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;
}
@@ -56,8 +56,8 @@ int copy_thread_tls(unsigned long clone_flags,
	childstack = ((struct switch_stack *) childregs) - 1;
	memset(childstack, 0, sizeof(struct switch_stack));

	/* setup ksp for switch_to !!! */
	p->thread.ksp = (unsigned long)childstack;
	/* setup thread.sp for switch_to !!! */
	p->thread.sp = (unsigned long)childstack;

	if (unlikely(p->flags & PF_KTHREAD)) {
		memset(childregs, 0, sizeof(struct pt_regs));