qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 01/20] [MIPS] cpu: add a init inplace method


From: Hervé Poussineau
Subject: [Qemu-devel] [PATCH 01/20] [MIPS] cpu: add a init inplace method
Date: Sun, 1 Aug 2010 19:37:03 +0200

Signed-off-by: Hervé Poussineau <address@hidden>
---
 target-mips/cpu.h       |    1 +
 target-mips/translate.c |   16 ++++++++++++----
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/target-mips/cpu.h b/target-mips/cpu.h
index b8e6fee..b75e1e6 100644
--- a/target-mips/cpu.h
+++ b/target-mips/cpu.h
@@ -586,6 +586,7 @@ enum {
 
 int cpu_mips_exec(CPUMIPSState *s);
 CPUMIPSState *cpu_mips_init(const char *cpu_model);
+int cpu_mips_init_inplace(CPUMIPSState *env, const char *cpu_model);
 //~ uint32_t cpu_mips_get_clock (void);
 int cpu_mips_signal_handler(int host_signum, void *pinfo, void *puc);
 
diff --git a/target-mips/translate.c b/target-mips/translate.c
index 20b66a8..558f6ac 100644
--- a/target-mips/translate.c
+++ b/target-mips/translate.c
@@ -12580,15 +12580,13 @@ static void mips_tcg_init(void)
 
 #include "translate_init.c"
 
-CPUMIPSState *cpu_mips_init (const char *cpu_model)
+int cpu_mips_init_inplace(CPUMIPSState *env, const char *cpu_model)
 {
-    CPUMIPSState *env;
     const mips_def_t *def;
 
     def = cpu_mips_find_by_name(cpu_model);
     if (!def)
-        return NULL;
-    env = qemu_mallocz(sizeof(CPUMIPSState));
+        return -1;
     env->cpu_model = def;
     env->cpu_model_str = cpu_model;
 
@@ -12601,6 +12599,16 @@ CPUMIPSState *cpu_mips_init (const char *cpu_model)
     mips_tcg_init();
     cpu_reset(env);
     qemu_init_vcpu(env);
+    return 0;
+}
+
+CPUMIPSState *cpu_mips_init (const char *cpu_model)
+{
+    CPUMIPSState *env;
+
+    env = qemu_mallocz(sizeof(CPUMIPSState));
+    if (!cpu_mips_init_inplace(env, cpu_model))
+        return NULL;
     return env;
 }
 
-- 
1.7.1.GIT




reply via email to

[Prev in Thread] Current Thread [Next in Thread]