From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:36358) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RIeM1-0005nw-GZ for qemu-devel@nongnu.org; Tue, 25 Oct 2011 06:35:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RIeLx-0005Ka-BJ for qemu-devel@nongnu.org; Tue, 25 Oct 2011 06:35:33 -0400 Received: from mail-wy0-f173.google.com ([74.125.82.173]:46144) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RIeLx-0005KQ-4F for qemu-devel@nongnu.org; Tue, 25 Oct 2011 06:35:29 -0400 Received: by wyh15 with SMTP id 15so374395wyh.4 for ; Tue, 25 Oct 2011 03:35:28 -0700 (PDT) From: =?UTF-8?q?Beno=C3=AEt=20Canet?= Date: Tue, 25 Oct 2011 12:32:44 +0200 Message-Id: <1319538764-3954-12-git-send-email-benoit.canet@gmail.com> In-Reply-To: <1319538764-3954-1-git-send-email-benoit.canet@gmail.com> References: <1319538764-3954-1-git-send-email-benoit.canet@gmail.com> Subject: [Qemu-devel] [PATCH 11/11] 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?= , avi@redhat.com Signed-off-by: Benoit Canet --- hw/syborg_virtio.c | 30 ++++++++++++++---------------- 1 files changed, 14 insertions(+), 16 deletions(-) diff --git a/hw/syborg_virtio.c b/hw/syborg_virtio.c index 00c7be8..c2dbf36 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,16 @@ 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 +259,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.5.4