On 30/04/2015 15:32, Don Slutz wrote:
> This is done by adding a new machine property vmware-port-ring3 that
> needs to be enabled to have any effect.  It only effects accel=tcg
> mode.  It is needed if you want to use VMware tools in accel=tcg
> mode.

How does it work on KVM or Xen?

> 
> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> index 3305e09..5085f29 100644
> --- a/target-i386/cpu.c
> +++ b/target-i386/cpu.c
> @@ -2592,6 +2592,7 @@ static void x86_cpu_reset(CPUState *s)
>      X86CPUClass *xcc = X86_CPU_GET_CLASS(cpu);
>      CPUX86State *env = &cpu->env;
>      int i;
> +    bool save_vmware_port_ring3 = env->hflags2 & HF2_VMPORT_HACK_MASK;
>  
>      xcc->parent_reset(s);
>  
> @@ -2607,6 +2608,9 @@ static void x86_cpu_reset(CPUState *s)
>      env->hflags |= HF_SOFTMMU_MASK;
>  #endif
>      env->hflags2 |= HF2_GIF_MASK;
> +    if (save_vmware_port_ring3) {
> +        env->hflags2 |= HF2_VMPORT_HACK_MASK;
> +    }
>  
>      cpu_x86_update_cr0(env, 0x60000010);
>      env->a20_mask = ~0x0;

The save/restore suggests that you want a new bool-typed field in
CPUX86State instead of a bit env->hflags2.

Paolo

Reply via email to