summaryrefslogtreecommitdiff
path: root/include/linux/kgdb.h
diff options
context:
space:
mode:
authorJason Wessel <jason.wessel@windriver.com>2010-08-05 09:22:20 -0500
committerJason Wessel <jason.wessel@windriver.com>2010-08-05 09:22:20 -0500
commit534af1082329392bc29f6badf815e69ae2ae0f4c (patch)
treee163c1d5c418334538447983b7d5934e05fa4d71 /include/linux/kgdb.h
parent84a0bd5b2830722cf80ff6ad33ef98101a947e14 (diff)
downloadlwn-534af1082329392bc29f6badf815e69ae2ae0f4c.tar.gz
lwn-534af1082329392bc29f6badf815e69ae2ae0f4c.zip
kgdb,kdb: individual register set and and get API
The kdb shell specification includes the ability to get and set architecture specific registers by name. For the time being individual register get and set will be implemented on a per architecture basis. If an architecture defines DBG_MAX_REG_NUM > 0 then kdb and the gdbstub will use the capability for individually getting and setting architecture specific registers. Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Diffstat (limited to 'include/linux/kgdb.h')
-rw-r--r--include/linux/kgdb.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/linux/kgdb.h b/include/linux/kgdb.h
index 9340f34d1bb5..d5eb882e01f3 100644
--- a/include/linux/kgdb.h
+++ b/include/linux/kgdb.h
@@ -90,6 +90,19 @@ struct kgdb_bkpt {
enum kgdb_bpstate state;
};
+struct dbg_reg_def_t {
+ char *name;
+ int size;
+ int offset;
+};
+
+#ifndef DBG_MAX_REG_NUM
+#define DBG_MAX_REG_NUM 0
+#else
+extern struct dbg_reg_def_t dbg_reg_def[];
+extern char *dbg_get_reg(int regno, void *mem, struct pt_regs *regs);
+extern int dbg_set_reg(int regno, void *mem, struct pt_regs *regs);
+#endif
#ifndef KGDB_MAX_BREAKPOINTS
# define KGDB_MAX_BREAKPOINTS 1000
#endif