]> git.proxmox.com Git - qemu.git/blobdiff - target-unicore32/helper.c
Open 2.0 development tree
[qemu.git] / target-unicore32 / helper.c
index 5359538ea51542f70d62aaa731bff42faf8ed6f0..9bf4fea5db72b9ea2831d8baea74b742687553af 100644 (file)
@@ -29,20 +29,17 @@ CPUUniCore32State *uc32_cpu_init(const char *cpu_model)
 {
     UniCore32CPU *cpu;
     CPUUniCore32State *env;
-    static int inited = 1;
+    ObjectClass *oc;
 
-    if (object_class_by_name(cpu_model) == NULL) {
+    oc = cpu_class_by_name(TYPE_UNICORE32_CPU, cpu_model);
+    if (oc == NULL) {
         return NULL;
     }
-    cpu = UNICORE32_CPU(object_new(cpu_model));
+    cpu = UNICORE32_CPU(object_new(object_class_get_name(oc)));
     env = &cpu->env;
 
-    if (inited) {
-        inited = 0;
-        uc32_translate_init();
-    }
+    object_property_set_bool(OBJECT(cpu), true, "realized", NULL);
 
-    qemu_init_vcpu(env);
     return env;
 }
 
@@ -244,8 +241,11 @@ void switch_mode(CPUUniCore32State *env, int mode)
     }
 }
 
-void do_interrupt(CPUUniCore32State *env)
+void uc32_cpu_do_interrupt(CPUState *cs)
 {
+    UniCore32CPU *cpu = UNICORE32_CPU(cs);
+    CPUUniCore32State *env = &cpu->env;
+
     cpu_abort(env, "NO interrupt in user mode\n");
 }