[patch] xtensa: implement PTRACE_PEEKUSER addresses for nommu

From: Daniel GlÃckner
Date: Wed Mar 25 2009 - 06:56:22 EST


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.

Signed-off-by: Daniel GlÃckner <dg@xxxxxxxxx>
---
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..8f4fbf3 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 0x0300
+#define PT_DATA_ADDR 0x0301
+#define PT_TEXT_END_ADDR 0x0302
+
/* 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.2.107.ge47ee

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/