From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1K3suq-0000VH-RR for qemu-devel@nongnu.org; Wed, 04 Jun 2008 09:20:36 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1K3suq-0000Uv-3e for qemu-devel@nongnu.org; Wed, 04 Jun 2008 09:20:36 -0400 Received: from [199.232.76.173] (port=45670 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1K3sup-0000Us-Tr for qemu-devel@nongnu.org; Wed, 04 Jun 2008 09:20:35 -0400 Received: from il.qumranet.com ([212.179.150.194]:57375) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1K3sup-0002eX-Hj for qemu-devel@nongnu.org; Wed, 04 Jun 2008 09:20:35 -0400 Received: from gleb-debian.qumranet.com (unknown [172.16.15.143]) by il.qumranet.com (Postfix) with ESMTP id C84DB250A40 for ; Wed, 4 Jun 2008 16:20:33 +0300 (IDT) Date: Wed, 4 Jun 2008 16:20:33 +0300 Message-ID: <20080604132033.GB31694@minantech.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline From: gleb@qumranet.com (Gleb Natapov) Subject: [Qemu-devel] [PATCH 1/2] vmware backdoor interface fix Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Hello, VMWare backdoor interface should work with IN/OUT port ops, but currently only IN is supported. BACHS bios uses OUT to query UUID. The patch adds OUT support. Signed-off-by: Gleb Natapov qumranet.com> Index: qemu/hw/vmport.c =================================================================== --- qemu.orig/hw/vmport.c 2008-06-04 14:02:04.000000000 +0300 +++ qemu/hw/vmport.c 2008-06-04 14:17:10.000000000 +0300 @@ -72,6 +72,13 @@ static uint32_t vmport_ioport_read(void return s->func[command](s->opaque[command], addr); } +static void vmport_ioport_write(void *opaque, uint32_t addr, uint32_t val) +{ + CPUState *env = cpu_single_env; + + env->regs[R_EAX] = vmport_ioport_read(opaque, addr); +} + static uint32_t vmport_cmd_get_version(void *opaque, uint32_t addr) { CPUState *env = cpu_single_env; @@ -89,6 +96,7 @@ static uint32_t vmport_cmd_ram_size(void void vmport_init(void) { register_ioport_read(0x5658, 1, 4, vmport_ioport_read, &port_state); + register_ioport_write(0x5658, 1, 4, vmport_ioport_write, &port_state); /* Register some generic port commands */ vmport_register(VMPORT_CMD_GETVERSION, vmport_cmd_get_version, NULL); -- Gleb.