[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 18/20] target-unicore32: move final steps of uc32_cpu_
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [RFC 18/20] target-unicore32: move final steps of uc32_cpu_init() to realize function |
Date: |
Tue, 18 Dec 2012 18:04:11 -0200 |
Signed-off-by: Eduardo Habkost <address@hidden>
---
target-unicore32/cpu.c | 21 +++++++++++++++++++++
target-unicore32/helper.c | 11 +----------
2 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/target-unicore32/cpu.c b/target-unicore32/cpu.c
index 76750da..5467127 100644
--- a/target-unicore32/cpu.c
+++ b/target-unicore32/cpu.c
@@ -80,12 +80,33 @@ static void uc32_cpu_initfn(Object *obj)
tlb_flush(env, 1);
}
+static void uc32_cpu_realize(CPUState *cobj, Error **errp)
+{
+ UniCore32CPU *cpu = UNICORE32_CPU(cobj);
+ CPUUniCore32State *env = &cpu->env;
+ static int inited;
+
+ if (!inited) {
+ inited = 1;
+ uc32_translate_init();
+ }
+
+ qemu_init_vcpu(env);
+}
+
+static void uc32_class_init(ObjectClass *oc, void *data)
+{
+ CPUClass *cc = CPU_CLASS(oc);
+ cc->realize = uc32_cpu_realize;
+}
+
static void uc32_register_cpu_type(const UniCore32CPUInfo *info)
{
TypeInfo type_info = {
.name = info->name,
.parent = TYPE_UNICORE32_CPU,
.instance_init = info->instance_init,
+ .class_init = uc32_class_init,
};
type_register_static(&type_info);
diff --git a/target-unicore32/helper.c b/target-unicore32/helper.c
index dc7b0b3..927e591 100644
--- a/target-unicore32/helper.c
+++ b/target-unicore32/helper.c
@@ -26,21 +26,12 @@
CPUState *uc32_cpu_init(const char *cpu_model)
{
UniCore32CPU *cpu;
- CPUUniCore32State *env;
- static int inited = 1;
if (object_class_by_name(cpu_model) == NULL) {
return NULL;
}
cpu = UNICORE32_CPU(object_new(cpu_model));
- env = &cpu->env;
-
- if (inited) {
- inited = 0;
- uc32_translate_init();
- }
-
- qemu_init_vcpu(env);
+ cpu_realize(CPU(cpu), NULL);
return CPU(cpu);
}
--
1.7.11.7
- [Qemu-devel] [RFC 06/20] m68k: convert cpu_init to QOM, (continued)
- [Qemu-devel] [RFC 06/20] m68k: convert cpu_init to QOM, Eduardo Habkost, 2012/12/18
- [Qemu-devel] [RFC 11/20] target-openrisc: implement CPU realize() method, Eduardo Habkost, 2012/12/18
- [Qemu-devel] [RFC 09/20] cpu: introduce cpu_realize(), Eduardo Habkost, 2012/12/18
- [Qemu-devel] [RFC 15/20] target-arm: replace cpu_arm_init() with generic_cpu_init(), Eduardo Habkost, 2012/12/18
- [Qemu-devel] [RFC 17/20] target-m68k: replace cpu_m68k_init() with generic_cpu_init(), Eduardo Habkost, 2012/12/18
- [Qemu-devel] [RFC 05/20] alpha: convert cpu_init to QOM, Eduardo Habkost, 2012/12/18
- [Qemu-devel] [RFC 04/20] cpu: replace trivial old_cpu_init functions, Eduardo Habkost, 2012/12/18
- [Qemu-devel] [RFC 13/20] target-openrisc: replace cpu_openrisc_init() with generic_cpu_init(), Eduardo Habkost, 2012/12/18
- [Qemu-devel] [RFC 16/20] target-m68k: move final steps of cpu_m68k_init() to realize function, Eduardo Habkost, 2012/12/18
- [Qemu-devel] [RFC 18/20] target-unicore32: move final steps of uc32_cpu_init() to realize function,
Eduardo Habkost <=
- [Qemu-devel] [RFC 19/20] target-unicore32: replace uc32_cpu_init() with generic_cpu_init(), Eduardo Habkost, 2012/12/18
- [Qemu-devel] [RFC 14/20] target-arm: move final steps of cpu_arm_init() to realize function, Eduardo Habkost, 2012/12/18
- [Qemu-devel] [RFC 20/20] cpu: convert cpu_copy() to QOM, Eduardo Habkost, 2012/12/18
- [Qemu-devel] [RFC 08/20] cpu: move cpu_model_str to CPUState, Eduardo Habkost, 2012/12/18
- [Qemu-devel] [RFC 10/20] cpu: introduce generic_cpu_init() & generic_cpu_create() functions, Eduardo Habkost, 2012/12/18
- [Qemu-devel] [RFC 03/20] cpu: make cpu_init return CPUState QOM object, Eduardo Habkost, 2012/12/18
- Re: [Qemu-devel] [RFC 00/20] generic_cpu_init() and generic_cpu_create() functions, Andreas Färber, 2012/12/18