[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 3/7] Move target_memory_rw_debug function.
From: |
Julian Brown |
Subject: |
[Qemu-devel] [PATCH v3 3/7] Move target_memory_rw_debug function. |
Date: |
Fri, 20 Jan 2017 08:30:28 -0800 |
This patch moves the target_memory_rw_debug function to
include/exec/cpu-all.h, so that it can be used by the ARM semihosting
code as well as the gdbstub code. (I tried Peter Maydell's suggestion
of include/qom/cpu.h as a location for the function, but that raised
uncomfortably-many dependency problems for my taste).
Signed-off-by: Julian Brown <address@hidden>
---
gdbstub.c | 11 -----------
include/exec/cpu-all.h | 22 ++++++++++++++++++++++
2 files changed, 22 insertions(+), 11 deletions(-)
diff --git a/gdbstub.c b/gdbstub.c
index 64f2696..cb77e15 100644
--- a/gdbstub.c
+++ b/gdbstub.c
@@ -44,17 +44,6 @@
#define GDB_ATTACHED "0"
#endif
-static inline int target_memory_rw_debug(CPUState *cpu, target_ulong addr,
- uint8_t *buf, int len, bool is_write)
-{
- CPUClass *cc = CPU_GET_CLASS(cpu);
-
- if (cc->memory_rw_debug) {
- return cc->memory_rw_debug(cpu, addr, buf, len, is_write);
- }
- return cpu_memory_rw_debug(cpu, addr, buf, len, is_write);
-}
-
enum {
GDB_SIGNAL_0 = 0,
GDB_SIGNAL_INT = 2,
diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h
index ffe43d5..700b90d 100644
--- a/include/exec/cpu-all.h
+++ b/include/exec/cpu-all.h
@@ -347,4 +347,26 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
int cpu_exec(CPUState *cpu);
+/**
+ * target_memory_rw_debug:
+ * @cpu: The CPU to use.
+ * @addr: The target address to read or write.
+ * @buf: Host buffer to read or write from or into.
+ * @len: Length of data.
+ * @is_write: True for write, false for read.
+ *
+ * A wrapper for cpu_memory_rw_debug that can be overridden with a
+ * CPUClass-specific version if required.
+ */
+static inline int target_memory_rw_debug(CPUState *cpu, target_ulong addr,
+ uint8_t *buf, int len, bool is_write)
+{
+ CPUClass *cc = CPU_GET_CLASS(cpu);
+
+ if (cc->memory_rw_debug) {
+ return cc->memory_rw_debug(cpu, addr, buf, len, is_write);
+ }
+ return cpu_memory_rw_debug(cpu, addr, buf, len, is_write);
+}
+
#endif /* CPU_ALL_H */
--
2.8.1
- [Qemu-devel] [PATCH v3 0/7] ARM BE8/BE32 big-endian system-mode fixes (semihosting, gdbstub), Julian Brown, 2017/01/20
- [Qemu-devel] [PATCH v3 1/7] Add cfgend parameter for ARM CPU selection., Julian Brown, 2017/01/20
- [Qemu-devel] [PATCH v3 2/7] Honour reset_sctlr EE/B bits during reset., Julian Brown, 2017/01/20
- [Qemu-devel] [PATCH v3 3/7] Move target_memory_rw_debug function.,
Julian Brown <=
- [Qemu-devel] [PATCH v3 5/7] ARM big-endian system-mode gdbstub support., Julian Brown, 2017/01/20
- [Qemu-devel] [PATCH v3 4/7] ARM big-endian semihosting support., Julian Brown, 2017/01/20
- [Qemu-devel] [PATCH v3 6/7] Fix Thumb-1 BE32 execution and disassembly., Julian Brown, 2017/01/20
- [Qemu-devel] [PATCH v3 7/7] ARM BE32 watchpoint fix., Julian Brown, 2017/01/20