[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 7/7] target-alpha: Implement CPU reset
From: |
Andreas Färber |
Subject: |
[Qemu-devel] [RFC 7/7] target-alpha: Implement CPU reset |
Date: |
Wed, 31 Oct 2012 04:04:04 +0100 |
The parent_reset class field was already prepared but unused so far.
No guarantees that this actually does The Right Thing, more fields
may need to be moved within CPUAlphaState or to AlphaCPU.
Signed-off-by: Andreas Färber <address@hidden>
---
target-alpha/cpu.c | 28 ++++++++++++++++++++++++++++
1 Datei geändert, 28 Zeilen hinzugefügt(+)
diff --git a/target-alpha/cpu.c b/target-alpha/cpu.c
index ab25c44..d798390 100644
--- a/target-alpha/cpu.c
+++ b/target-alpha/cpu.c
@@ -23,6 +23,24 @@
#include "qemu-common.h"
+/* CPUClass::reset() */
+static void alpha_cpu_reset(CPUState *s)
+{
+ AlphaCPU *cpu = ALPHA_CPU(s);
+ AlphaCPUClass *acc = ALPHA_CPU_GET_CLASS(cpu);
+ CPUAlphaState *env = &cpu->env;
+
+ if (qemu_loglevel_mask(CPU_LOG_RESET)) {
+ qemu_log("CPU Reset (CPU %d)\n", env->cpu_index);
+ log_cpu_state(env, 0);
+ }
+
+ acc->parent_reset(s);
+
+ memset(env, 0, offsetof(CPUAlphaState, breakpoints));
+ tlb_flush(env, 1);
+}
+
typedef struct AlphaCPUListState {
fprintf_function cpu_fprintf;
FILE *file;
@@ -221,6 +239,15 @@ static void alpha_cpu_initfn(Object *obj)
env->fen = 1;
}
+static void alpha_cpu_class_init(ObjectClass *oc, void *data)
+{
+ CPUClass *cc = CPU_CLASS(oc);
+ AlphaCPUClass *acc = ALPHA_CPU_CLASS(oc);
+
+ acc->parent_reset = cc->reset;
+ cc->reset = alpha_cpu_reset;
+}
+
static void alpha_cpu_register(const AlphaCPUInfo *info)
{
TypeInfo type_info = {
@@ -239,6 +266,7 @@ static const TypeInfo alpha_cpu_type_info = {
.instance_init = alpha_cpu_initfn,
.abstract = true,
.class_size = sizeof(AlphaCPUClass),
+ .class_init = alpha_cpu_class_init,
};
static void alpha_cpu_register_types(void)
--
1.7.10.4
- [Qemu-devel] [PATCH 3/7] target-alpha: Add support for -cpu ?, (continued)
- [Qemu-devel] [PATCH 3/7] target-alpha: Add support for -cpu ?, Andreas Färber, 2012/10/30
- [Qemu-devel] [PATCH 2/7] target-alpha: Turn CPU definitions into subclasses, Andreas Färber, 2012/10/30
- [Qemu-devel] [PATCH 5/7] alpha: Pass AlphaCPU array to Typhoon, Andreas Färber, 2012/10/30
- [Qemu-devel] [PATCH 6/7] target-alpha: Avoid leaking the alarm timer over reset, Andreas Färber, 2012/10/30
- [Qemu-devel] [PATCH 4/7] target-alpha: Let cpu_alpha_init() return AlphaCPU, Andreas Färber, 2012/10/30
- [Qemu-devel] [RFC 7/7] target-alpha: Implement CPU reset,
Andreas Färber <=