[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 4/4] Add ARM registers definitions for Monitor comma
From: |
Fabien Chouteau |
Subject: |
[Qemu-devel] [PATCH 4/4] Add ARM registers definitions for Monitor commands |
Date: |
Mon, 30 Sep 2013 17:57:35 +0200 |
Signed-off-by: Fabien Chouteau <address@hidden>
---
target-arm/Makefile.objs | 2 +-
target-arm/cpu.c | 5 +++++
target-arm/monitor.c | 40 ++++++++++++++++++++++++++++++++++++++++
3 files changed, 46 insertions(+), 1 deletion(-)
create mode 100644 target-arm/monitor.c
diff --git a/target-arm/Makefile.objs b/target-arm/Makefile.objs
index 6453f5c..6c3ec32 100644
--- a/target-arm/Makefile.objs
+++ b/target-arm/Makefile.objs
@@ -1,5 +1,5 @@
obj-y += arm-semi.o
-obj-$(CONFIG_SOFTMMU) += machine.o
+obj-$(CONFIG_SOFTMMU) += machine.o monitor.o
obj-$(CONFIG_KVM) += kvm.o
obj-$(CONFIG_NO_KVM) += kvm-stub.o
obj-y += translate.o op_helper.o helper.o cpu.o
diff --git a/target-arm/cpu.c b/target-arm/cpu.c
index d40f2a7..78f7dae 100644
--- a/target-arm/cpu.c
+++ b/target-arm/cpu.c
@@ -26,6 +26,7 @@
#include "hw/arm/arm.h"
#include "sysemu/sysemu.h"
#include "sysemu/kvm.h"
+#include "monitor/monitor.h"
static void arm_cpu_set_pc(CPUState *cs, vaddr value)
{
@@ -217,6 +218,10 @@ static void arm_cpu_initfn(Object *obj)
ARRAY_SIZE(cpu->gt_timer_outputs));
#endif
+#if !defined(CONFIG_USER_ONLY)
+ cs->monitor_defs = arch_monitor_defs;
+#endif
+
if (tcg_enabled() && !inited) {
inited = true;
arm_translate_init();
diff --git a/target-arm/monitor.c b/target-arm/monitor.c
new file mode 100644
index 0000000..7321248
--- /dev/null
+++ b/target-arm/monitor.c
@@ -0,0 +1,40 @@
+/*
+ * ARM MonitorDef
+ *
+ * Copyright (c) 2013 AdaCore
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "monitor/monitor.h"
+
+const MonitorDef arch_monitor_defs[] = {
+ { "r0", offsetof(CPUARMState, regs[0]) },
+ { "r1", offsetof(CPUARMState, regs[1]) },
+ { "r2", offsetof(CPUARMState, regs[2]) },
+ { "r3", offsetof(CPUARMState, regs[3]) },
+ { "r4", offsetof(CPUARMState, regs[4]) },
+ { "r5", offsetof(CPUARMState, regs[5]) },
+ { "r6", offsetof(CPUARMState, regs[6]) },
+ { "r7", offsetof(CPUARMState, regs[7]) },
+ { "r8", offsetof(CPUARMState, regs[8]) },
+ { "r9", offsetof(CPUARMState, regs[9]) },
+ { "r10", offsetof(CPUARMState, regs[10]) },
+ { "r11", offsetof(CPUARMState, regs[11]) },
+ { "r12", offsetof(CPUARMState, regs[12]) },
+ { "r13|sp", offsetof(CPUARMState, regs[13]) },
+ { "r14|lr", offsetof(CPUARMState, regs[14]) },
+ { "r15|pc", offsetof(CPUARMState, regs[15]) },
+ { NULL },
+};
--
1.7.9.5