summaryrefslogtreecommitdiff
path: root/target-lm32/machine.c
diff options
context:
space:
mode:
authorMichael Walle <michael@walle.cc>2011-02-17 23:45:05 +0100
committerEdgar E. Iglesias <edgar.iglesias@gmail.com>2011-03-07 13:42:36 +0100
commitc6af5693478caacafc58cbf454b71fa95d57db60 (patch)
tree274ae00010d7e58a641e3785bc179edfea28e2fc /target-lm32/machine.c
parent143e8951e40c7dfcc985801ac93a7e58e2e44985 (diff)
downloadqemu-c6af5693478caacafc58cbf454b71fa95d57db60.tar.gz
qemu-c6af5693478caacafc58cbf454b71fa95d57db60.tar.bz2
qemu-c6af5693478caacafc58cbf454b71fa95d57db60.zip
lm32: machine state loading/saving
This patch adds support for saving and loading the processor state. Signed-off-by: Michael Walle <michael@walle.cc> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Diffstat (limited to 'target-lm32/machine.c')
-rw-r--r--target-lm32/machine.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/target-lm32/machine.c b/target-lm32/machine.c
new file mode 100644
index 0000000000..70ca52a0fa
--- /dev/null
+++ b/target-lm32/machine.c
@@ -0,0 +1,33 @@
+#include "hw/hw.h"
+#include "hw/boards.h"
+
+static const VMStateDescription vmstate_cpu = {
+ .name = "cpu",
+ .version_id = CPU_SAVE_VERSION,
+ .minimum_version_id = 1,
+ .minimum_version_id_old = 1,
+ .fields = (VMStateField[]) {
+ VMSTATE_UINT32_ARRAY(regs, CPUState, 32),
+ VMSTATE_UINT32(pc, CPUState),
+ VMSTATE_UINT32(ie, CPUState),
+ VMSTATE_UINT32(icc, CPUState),
+ VMSTATE_UINT32(dcc, CPUState),
+ VMSTATE_UINT32(cc, CPUState),
+ VMSTATE_UINT32(eba, CPUState),
+ VMSTATE_UINT32(dc, CPUState),
+ VMSTATE_UINT32(deba, CPUState),
+ VMSTATE_UINT32_ARRAY(bp, CPUState, 4),
+ VMSTATE_UINT32_ARRAY(wp, CPUState, 4),
+ VMSTATE_END_OF_LIST()
+ }
+};
+
+void cpu_save(QEMUFile *f, void *opaque)
+{
+ vmstate_save_state(f, &vmstate_cpu, opaque);
+}
+
+int cpu_load(QEMUFile *f, void *opaque, int version_id)
+{
+ return vmstate_load_state(f, &vmstate_cpu, opaque, version_id);
+}