qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Re: [HACK] make vmmouse work with KVM


From: Reimar Döffinger
Subject: Re: [Qemu-devel] Re: [HACK] make vmmouse work with KVM
Date: Fri, 28 Aug 2009 17:53:38 +0200
User-agent: Mutt/1.5.20 (2009-06-14)

On Mon, Aug 17, 2009 at 07:32:32PM +0200, Reimar Döffinger wrote:
> On Mon, Aug 17, 2009 at 07:16:49PM +0200, Paolo Bonzini wrote:
> > On 08/17/2009 07:00 PM, Reimar Döffinger wrote:
> > > On Mon, Aug 17, 2009 at 06:44:11PM +0200, Paolo Bonzini wrote:
> > >> On 08/17/2009 05:45 PM, Reimar Döffinger wrote:
> > >>> +    cpu_synchronize_state(env, 0);
> > >>>        env->regs[R_EAX] = vmport_ioport_read(opaque, addr);
> > >>> +    cpu_synchronize_state(env, 1);
> > >>
> > >> This is not needed because the sync is done in vmport_ioport_read, isn't 
> > >> it?
> > >
> > > Well... The cpu_synchronize_state could be dropped you are right, but
> > > here we write R_EAX so the cpu_synchronize_state(env, 1) is necessary.
> > > It might be slightly cleaner to rename the vmport_ioport_read (any name
> > > suggestions?) and add a wrapper for register_ioport_read that does the
> > > cpu_synchronize_state (so it looks similar to vmport_ioport_write).
> > 
> > Yes, that would look best and wouldn't have fooled me. Could 
> > vmport_ioport_trigger be a decent name?
> 
> Since what that function actually does is execute a specific command it
> gets from ecx I went with vmport_ioport_command, but I'll happily leave
> the naming to whoever applies it :-)

Simpler version due to new cpu_synchronize_state behaviour.

Signed-off-by: Reimar Döffinger <address@hidden>

---
diff --git a/hw/vmport.c b/hw/vmport.c
index 884af3f..9a942ee 100644
--- a/hw/vmport.c
+++ b/hw/vmport.c
@@ -25,6 +25,7 @@
 #include "isa.h"
 #include "pc.h"
 #include "sysemu.h"
+#include "kvm.h"
 
 //#define VMPORT_DEBUG
 
@@ -58,6 +59,7 @@ static uint32_t vmport_ioport_read(void *opaque, uint32_t 
addr)
     unsigned char command;
     uint32_t eax;
 
+    cpu_synchronize_state(env);
     eax = env->regs[R_EAX];
     if (eax != VMPORT_MAGIC)
         return eax;





reply via email to

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