[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <1240564702-11796-1-git-send-email-dg@emlix.com>
Date: Fri, 24 Apr 2009 11:18:22 +0200
From: Daniel Glöckner <dg@...ix.com>
To: Chris Zankel <chris@...kel.net>
Cc: Piet Delaney <pdelaney@...silica.com>,
Marc Gauthier <marc@...silica.com>,
Maxim Grigoriev <maxim@...silica.com>,
linux-kernel@...r.kernel.org, linux-xtensa@...ux-xtensa.org,
Daniel Glöckner <dg@...ix.com>
Subject: [PATCH v2] xtensa: implement PTRACE_PEEKUSER addresses for nommu
On nommu gdbserver needs to be able to look up where the currently
debugged application has been relocated. Based on the Blackfin
implementation, this introduces three "addresses" PT_TEXT_ADDR,
PT_DATA_ADDR, and PT_TEXT_END_ADDR for PTRACE_PEEKUSER.
Changes compared to v1:
- changed PT_*_ADDR constants from 0x300..0x302 to 0xF000..0xF002
The range 0x300..0x3FF has been reserved by Tensilica for TIE user
registers. 0xF000..0xFFFF is free for 3rd-party debuggers, so use
that range instead. See xtensa-libdb-macros.h for details.
Signed-off-by: Daniel Glöckner <dg@...ix.com>
---
arch/xtensa/include/asm/ptrace.h | 4 ++++
arch/xtensa/kernel/ptrace.c | 12 ++++++++++++
2 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/arch/xtensa/include/asm/ptrace.h b/arch/xtensa/include/asm/ptrace.h
index 905e1e6..85851f4 100644
--- a/arch/xtensa/include/asm/ptrace.h
+++ b/arch/xtensa/include/asm/ptrace.h
@@ -66,6 +66,10 @@
#define SYSCALL_NR 0x00ff
+#define PT_TEXT_ADDR 0xF000
+#define PT_DATA_ADDR 0xF001
+#define PT_TEXT_END_ADDR 0xF002
+
/* Other PTRACE_ values defined in <linux/ptrace.h> using values 0-9,16,17,24 */
#define PTRACE_GETREGS 12
diff --git a/arch/xtensa/kernel/ptrace.c b/arch/xtensa/kernel/ptrace.c
index 9486882..82f3620 100644
--- a/arch/xtensa/kernel/ptrace.c
+++ b/arch/xtensa/kernel/ptrace.c
@@ -211,6 +211,18 @@ int ptrace_peekusr(struct task_struct *child, long regno, long __user *ret)
tmp = regs->syscall;
break;
+ case PT_TEXT_ADDR:
+ tmp = child->mm->start_code;
+ break;
+
+ case PT_DATA_ADDR:
+ tmp = child->mm->start_data;
+ break;
+
+ case PT_TEXT_END_ADDR:
+ tmp = child->mm->end_code;
+ break;
+
default:
return -EIO;
}
--
1.6.1.3
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists