From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46326) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UlNBL-0001wW-TI for qemu-devel@nongnu.org; Sat, 08 Jun 2013 13:44:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UlNBK-0006Wo-SX for qemu-devel@nongnu.org; Sat, 08 Jun 2013 13:44:03 -0400 Received: from [101.78.175.194] (port=46203 helo=ibis.ibis) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UlNBK-0006WW-Gd for qemu-devel@nongnu.org; Sat, 08 Jun 2013 13:44:02 -0400 From: =?UTF-8?q?Herv=C3=A9=20Poussineau?= Date: Sun, 9 Jun 2013 01:44:06 +0800 Message-Id: <1370713446-9460-9-git-send-email-hpoussin@reactos.org> In-Reply-To: <1370713446-9460-1-git-send-email-hpoussin@reactos.org> References: <1370713446-9460-1-git-send-email-hpoussin@reactos.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [Qemu-devel] [PATCH v2 8/8] isa_mmio: simplify access to system I/O region List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Paolo Bonzini , =?UTF-8?q?Herv=C3=A9=20Poussineau?= We can now simply use address_space_rw instead of the more convoluted cpu_in() and cpu_out() functions. Signed-off-by: Hervé Poussineau --- hw/isa/isa_mmio.c | 42 +++++++++++------------------------------- 1 file changed, 11 insertions(+), 31 deletions(-) diff --git a/hw/isa/isa_mmio.c b/hw/isa/isa_mmio.c index d4dbf13..5bf8878 100644 --- a/hw/isa/isa_mmio.c +++ b/hw/isa/isa_mmio.c @@ -26,44 +26,24 @@ #include "hw/isa/isa.h" #include "exec/address-spaces.h" -static void isa_mmio_writeb (void *opaque, hwaddr addr, - uint32_t val) +static void isa_mmio_write(void *opaque, hwaddr addr, uint64_t data, + unsigned int size) { - cpu_outb(addr & IOPORTS_MASK, val); + addr &= IOPORTS_MASK; + address_space_write(&address_space_io, addr, (uint8_t *)&data, size); } -static void isa_mmio_writew(void *opaque, hwaddr addr, - uint32_t val) +static uint64_t isa_mmio_read(void *opaque, hwaddr addr, unsigned int size) { - cpu_outw(addr & IOPORTS_MASK, val); -} - -static void isa_mmio_writel(void *opaque, hwaddr addr, - uint32_t val) -{ - cpu_outl(addr & IOPORTS_MASK, val); -} - -static uint32_t isa_mmio_readb (void *opaque, hwaddr addr) -{ - return cpu_inb(addr & IOPORTS_MASK); -} - -static uint32_t isa_mmio_readw(void *opaque, hwaddr addr) -{ - return cpu_inw(addr & IOPORTS_MASK); -} - -static uint32_t isa_mmio_readl(void *opaque, hwaddr addr) -{ - return cpu_inl(addr & IOPORTS_MASK); + uint64_t data = 0; + addr &= IOPORTS_MASK; + address_space_read(&address_space_io, addr, (uint8_t *)&data, size); + return data; } static const MemoryRegionOps isa_mmio_ops = { - .old_mmio = { - .write = { isa_mmio_writeb, isa_mmio_writew, isa_mmio_writel }, - .read = { isa_mmio_readb, isa_mmio_readw, isa_mmio_readl, }, - }, + .write = isa_mmio_write, + .read = isa_mmio_read, .endianness = DEVICE_LITTLE_ENDIAN, }; -- 1.7.10.4