Commit 0bf46a40a1fe22e35df344af1a8825f3b47a91e0

Authored by aliguori
1 parent 43b96858

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
qemu-common.h
@@ -189,6 +189,12 @@ void qemu_service_io(void); @@ -189,6 +189,12 @@ void qemu_service_io(void);
189 /* Force QEMU to process pending events */ 189 /* Force QEMU to process pending events */
190 void qemu_notify_event(void); 190 void qemu_notify_event(void);
191 191
  192 +#ifdef CONFIG_USER_ONLY
  193 +#define qemu_init_vcpu(env) do { } while (0)
  194 +#else
  195 +void qemu_init_vcpu(void *env);
  196 +#endif
  197 +
192 typedef struct QEMUIOVector { 198 typedef struct QEMUIOVector {
193 struct iovec *iov; 199 struct iovec *iov;
194 int niov; 200 int niov;
target-alpha/translate.c
@@ -2505,6 +2505,7 @@ CPUAlphaState * cpu_alpha_init (const char *cpu_model) @@ -2505,6 +2505,7 @@ CPUAlphaState * cpu_alpha_init (const char *cpu_model)
2505 env->ipr[IPR_SISR] = 0; 2505 env->ipr[IPR_SISR] = 0;
2506 env->ipr[IPR_VIRBND] = -1ULL; 2506 env->ipr[IPR_VIRBND] = -1ULL;
2507 2507
  2508 + qemu_init_vcpu(env);
2508 return env; 2509 return env;
2509 } 2510 }
2510 2511
target-arm/helper.c
@@ -267,6 +267,7 @@ CPUARMState *cpu_arm_init(const char *cpu_model) @@ -267,6 +267,7 @@ CPUARMState *cpu_arm_init(const char *cpu_model)
267 gdb_register_coprocessor(env, vfp_gdb_get_reg, vfp_gdb_set_reg, 267 gdb_register_coprocessor(env, vfp_gdb_get_reg, vfp_gdb_set_reg,
268 19, "arm-vfp.xml", 0); 268 19, "arm-vfp.xml", 0);
269 } 269 }
  270 + qemu_init_vcpu(env);
270 return env; 271 return env;
271 } 272 }
272 273
target-cris/translate.c
@@ -3405,6 +3405,7 @@ CPUCRISState *cpu_cris_init (const char *cpu_model) @@ -3405,6 +3405,7 @@ CPUCRISState *cpu_cris_init (const char *cpu_model)
3405 3405
3406 cpu_exec_init(env); 3406 cpu_exec_init(env);
3407 cpu_reset(env); 3407 cpu_reset(env);
  3408 + qemu_init_vcpu(env);
3408 3409
3409 if (tcg_initialized) 3410 if (tcg_initialized)
3410 return env; 3411 return env;
target-i386/helper.c
@@ -1692,7 +1692,8 @@ CPUX86State *cpu_x86_init(const char *cpu_model) @@ -1692,7 +1692,8 @@ CPUX86State *cpu_x86_init(const char *cpu_model)
1692 #ifdef CONFIG_KQEMU 1692 #ifdef CONFIG_KQEMU
1693 kqemu_init(env); 1693 kqemu_init(env);
1694 #endif 1694 #endif
1695 - if (kvm_enabled())  
1696 - kvm_init_vcpu(env); 1695 +
  1696 + qemu_init_vcpu(env);
  1697 +
1697 return env; 1698 return env;
1698 } 1699 }
target-m68k/helper.c
@@ -180,6 +180,7 @@ CPUM68KState *cpu_m68k_init(const char *cpu_model) @@ -180,6 +180,7 @@ CPUM68KState *cpu_m68k_init(const char *cpu_model)
180 } 180 }
181 181
182 cpu_reset(env); 182 cpu_reset(env);
  183 + qemu_init_vcpu(env);
183 return env; 184 return env;
184 } 185 }
185 186
target-mips/translate.c
@@ -8551,6 +8551,7 @@ CPUMIPSState *cpu_mips_init (const char *cpu_model) @@ -8551,6 +8551,7 @@ CPUMIPSState *cpu_mips_init (const char *cpu_model)
8551 env->cpu_model_str = cpu_model; 8551 env->cpu_model_str = cpu_model;
8552 mips_tcg_init(); 8552 mips_tcg_init();
8553 cpu_reset(env); 8553 cpu_reset(env);
  8554 + qemu_init_vcpu(env);
8554 return env; 8555 return env;
8555 } 8556 }
8556 8557
target-ppc/helper.c
@@ -2831,8 +2831,7 @@ CPUPPCState *cpu_ppc_init (const char *cpu_model) @@ -2831,8 +2831,7 @@ CPUPPCState *cpu_ppc_init (const char *cpu_model)
2831 cpu_ppc_register_internal(env, def); 2831 cpu_ppc_register_internal(env, def);
2832 cpu_ppc_reset(env); 2832 cpu_ppc_reset(env);
2833 2833
2834 - if (kvm_enabled())  
2835 - kvm_init_vcpu(env); 2834 + qemu_init_vcpu(env);
2836 2835
2837 return env; 2836 return env;
2838 } 2837 }
target-sh4/translate.c
@@ -290,6 +290,7 @@ CPUSH4State *cpu_sh4_init(const char *cpu_model) @@ -290,6 +290,7 @@ CPUSH4State *cpu_sh4_init(const char *cpu_model)
290 cpu_sh4_reset(env); 290 cpu_sh4_reset(env);
291 cpu_sh4_register(env, def); 291 cpu_sh4_register(env, def);
292 tlb_flush(env, 1); 292 tlb_flush(env, 1);
  293 + qemu_init_vcpu(env);
293 return env; 294 return env;
294 } 295 }
295 296
target-sparc/helper.c
@@ -723,6 +723,7 @@ CPUSPARCState *cpu_sparc_init(const char *cpu_model) @@ -723,6 +723,7 @@ CPUSPARCState *cpu_sparc_init(const char *cpu_model)
723 return NULL; 723 return NULL;
724 } 724 }
725 cpu_reset(env); 725 cpu_reset(env);
  726 + qemu_init_vcpu(env);
726 727
727 return env; 728 return env;
728 } 729 }
@@ -3731,6 +3731,15 @@ static int qemu_init_main_loop(void) @@ -3731,6 +3731,15 @@ static int qemu_init_main_loop(void)
3731 return qemu_event_init(); 3731 return qemu_event_init();
3732 } 3732 }
3733 3733
  3734 +void qemu_init_vcpu(void *_env)
  3735 +{
  3736 + CPUState *env = _env;
  3737 +
  3738 + if (kvm_enabled())
  3739 + kvm_init_vcpu(env);
  3740 + return;
  3741 +}
  3742 +
3734 #ifdef _WIN32 3743 #ifdef _WIN32
3735 static void host_main_loop_wait(int *timeout) 3744 static void host_main_loop_wait(int *timeout)
3736 { 3745 {