qemu: introduce qemu_init_vcpu (Marcelo Tosatti)

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7242 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
aliguori 2009-04-24 18:03:41 +00:00
parent 43b9685807
commit 0bf46a40a1
11 changed files with 26 additions and 4 deletions

View File

@ -189,6 +189,12 @@ void qemu_service_io(void);
/* Force QEMU to process pending events */ /* Force QEMU to process pending events */
void qemu_notify_event(void); void qemu_notify_event(void);
#ifdef CONFIG_USER_ONLY
#define qemu_init_vcpu(env) do { } while (0)
#else
void qemu_init_vcpu(void *env);
#endif
typedef struct QEMUIOVector { typedef struct QEMUIOVector {
struct iovec *iov; struct iovec *iov;
int niov; int niov;

View File

@ -2505,6 +2505,7 @@ CPUAlphaState * cpu_alpha_init (const char *cpu_model)
env->ipr[IPR_SISR] = 0; env->ipr[IPR_SISR] = 0;
env->ipr[IPR_VIRBND] = -1ULL; env->ipr[IPR_VIRBND] = -1ULL;
qemu_init_vcpu(env);
return env; return env;
} }

View File

@ -267,6 +267,7 @@ CPUARMState *cpu_arm_init(const char *cpu_model)
gdb_register_coprocessor(env, vfp_gdb_get_reg, vfp_gdb_set_reg, gdb_register_coprocessor(env, vfp_gdb_get_reg, vfp_gdb_set_reg,
19, "arm-vfp.xml", 0); 19, "arm-vfp.xml", 0);
} }
qemu_init_vcpu(env);
return env; return env;
} }

View File

@ -3405,6 +3405,7 @@ CPUCRISState *cpu_cris_init (const char *cpu_model)
cpu_exec_init(env); cpu_exec_init(env);
cpu_reset(env); cpu_reset(env);
qemu_init_vcpu(env);
if (tcg_initialized) if (tcg_initialized)
return env; return env;

View File

@ -1692,7 +1692,8 @@ CPUX86State *cpu_x86_init(const char *cpu_model)
#ifdef CONFIG_KQEMU #ifdef CONFIG_KQEMU
kqemu_init(env); kqemu_init(env);
#endif #endif
if (kvm_enabled())
kvm_init_vcpu(env); qemu_init_vcpu(env);
return env; return env;
} }

View File

@ -180,6 +180,7 @@ CPUM68KState *cpu_m68k_init(const char *cpu_model)
} }
cpu_reset(env); cpu_reset(env);
qemu_init_vcpu(env);
return env; return env;
} }

View File

@ -8551,6 +8551,7 @@ CPUMIPSState *cpu_mips_init (const char *cpu_model)
env->cpu_model_str = cpu_model; env->cpu_model_str = cpu_model;
mips_tcg_init(); mips_tcg_init();
cpu_reset(env); cpu_reset(env);
qemu_init_vcpu(env);
return env; return env;
} }

View File

@ -2831,8 +2831,7 @@ CPUPPCState *cpu_ppc_init (const char *cpu_model)
cpu_ppc_register_internal(env, def); cpu_ppc_register_internal(env, def);
cpu_ppc_reset(env); cpu_ppc_reset(env);
if (kvm_enabled()) qemu_init_vcpu(env);
kvm_init_vcpu(env);
return env; return env;
} }

View File

@ -290,6 +290,7 @@ CPUSH4State *cpu_sh4_init(const char *cpu_model)
cpu_sh4_reset(env); cpu_sh4_reset(env);
cpu_sh4_register(env, def); cpu_sh4_register(env, def);
tlb_flush(env, 1); tlb_flush(env, 1);
qemu_init_vcpu(env);
return env; return env;
} }

View File

@ -723,6 +723,7 @@ CPUSPARCState *cpu_sparc_init(const char *cpu_model)
return NULL; return NULL;
} }
cpu_reset(env); cpu_reset(env);
qemu_init_vcpu(env);
return env; return env;
} }

9
vl.c
View File

@ -3731,6 +3731,15 @@ static int qemu_init_main_loop(void)
return qemu_event_init(); return qemu_event_init();
} }
void qemu_init_vcpu(void *_env)
{
CPUState *env = _env;
if (kvm_enabled())
kvm_init_vcpu(env);
return;
}
#ifdef _WIN32 #ifdef _WIN32
static void host_main_loop_wait(int *timeout) static void host_main_loop_wait(int *timeout)
{ {