aboutsummaryrefslogtreecommitdiff
path: root/gdb/arch-utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/arch-utils.h')
-rw-r--r--gdb/arch-utils.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/gdb/arch-utils.h b/gdb/arch-utils.h
index dc5fc03..6b7a073 100644
--- a/gdb/arch-utils.h
+++ b/gdb/arch-utils.h
@@ -30,6 +30,30 @@ struct gdbarch_info;
/* gdbarch trace variable */
extern int gdbarch_debug;
+/* An implementation of gdbarch_displaced_step_copy_insn for
+ processors that don't need to modify the instruction before
+ single-stepping the displaced copy.
+
+ Simply copy gdbarch_max_insn_length (ARCH) bytes from FROM to TO.
+ The closure is an array of that many bytes containing the
+ instruction's bytes, allocated with xmalloc. */
+extern struct displaced_step_closure *
+ simple_displaced_step_copy_insn (struct gdbarch *gdbarch,
+ CORE_ADDR from, CORE_ADDR to,
+ struct regcache *regs);
+
+/* Simple implementation of gdbarch_displaced_step_free_closure: Call
+ xfree.
+ This is appropriate for use with simple_displaced_step_copy_insn. */
+extern void
+ simple_displaced_step_free_closure (struct gdbarch *gdbarch,
+ struct displaced_step_closure *closure);
+
+/* Possible value for gdbarch_displaced_step_location:
+ Place displaced instructions at the program's entry point,
+ leaving space for inferior function call return breakpoints. */
+extern CORE_ADDR displaced_step_at_entry_point (struct gdbarch *gdbarch);
+
/* The only possible cases for inner_than. */
extern int core_addr_lessthan (CORE_ADDR lhs, CORE_ADDR rhs);
extern int core_addr_greaterthan (CORE_ADDR lhs, CORE_ADDR rhs);