From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:42628) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RIRGb-00030a-NB for qemu-devel@nongnu.org; Mon, 24 Oct 2011 16:37:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RIRGS-0005HF-Si for qemu-devel@nongnu.org; Mon, 24 Oct 2011 16:36:59 -0400 Received: from mail-ey0-f173.google.com ([209.85.215.173]:36855) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RIRGS-0005CL-N9 for qemu-devel@nongnu.org; Mon, 24 Oct 2011 16:36:56 -0400 Received: by mail-ey0-f173.google.com with SMTP id 6so6903830eyh.4 for ; Mon, 24 Oct 2011 13:36:56 -0700 (PDT) From: =?UTF-8?q?Beno=C3=AEt=20Canet?= Date: Mon, 24 Oct 2011 22:38:28 +0200 Message-Id: <1319488713-3482-10-git-send-email-benoit.canet@gmail.com> In-Reply-To: <1319488713-3482-1-git-send-email-benoit.canet@gmail.com> References: <1319488713-3482-1-git-send-email-benoit.canet@gmail.com> Subject: [Qemu-devel] [PATCH 09/14] syborg_virtio: convert to memory API List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, =?UTF-8?q?Beno=C3=AEt=20Canet?= Signed-off-by: Benoit Canet --- hw/syborg_virtio.c | 26 ++++++++++---------------- 1 files changed, 10 insertions(+), 16 deletions(-) diff --git a/hw/syborg_virtio.c b/hw/syborg_virtio.c index 00c7be8..af0c370 100644 --- a/hw/syborg_virtio.c +++ b/hw/syborg_virtio.c @@ -62,6 +62,7 @@ enum { typedef struct { SysBusDevice busdev; VirtIODevice *vdev; + MemoryRegion iomem; qemu_irq irq; uint32_t int_enable; uint32_t id; @@ -223,16 +224,12 @@ static void syborg_virtio_writeb(void *opaque, target_phys_addr_t offset, BADF("Bad byte write offset 0x%x\n", (int)offset); } -static CPUReadMemoryFunc * const syborg_virtio_readfn[] = { - syborg_virtio_readb, - syborg_virtio_readw, - syborg_virtio_readl -}; - -static CPUWriteMemoryFunc * const syborg_virtio_writefn[] = { - syborg_virtio_writeb, - syborg_virtio_writew, - syborg_virtio_writel +static const MemoryRegionOps syborg_virtio_ops = { + .old_mmio = { + .read = { syborg_virtio_readb, syborg_virtio_readw, syborg_virtio_readl }, + .write = { syborg_virtio_writeb, syborg_virtio_writew, syborg_virtio_writel }, + }, + .endianness = DEVICE_NATIVE_ENDIAN, }; static void syborg_virtio_update_irq(void *opaque, uint16_t vector) @@ -258,17 +255,14 @@ static VirtIOBindings syborg_virtio_bindings = { static int syborg_virtio_init(SyborgVirtIOProxy *proxy, VirtIODevice *vdev) { - int iomemtype; - proxy->vdev = vdev; /* Don't support multiple vectors */ proxy->vdev->nvectors = 0; sysbus_init_irq(&proxy->busdev, &proxy->irq); - iomemtype = cpu_register_io_memory(syborg_virtio_readfn, - syborg_virtio_writefn, proxy, - DEVICE_NATIVE_ENDIAN); - sysbus_init_mmio(&proxy->busdev, 0x1000, iomemtype); + memory_region_init_io(&proxy->iomem, &syborg_virtio_ops, proxy, + "virtio", 0x1000); + sysbus_init_mmio_region(&proxy->busdev, &proxy->iomem); proxy->id = ((uint32_t)0x1af4 << 16) | vdev->device_id; -- 1.7.4.1