From patchwork Wed Aug 24 13:40:58 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Avi Kivity X-Patchwork-Id: 111364 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [140.186.70.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 6DE5FB6EE8 for ; Thu, 25 Aug 2011 00:31:08 +1000 (EST) Received: from localhost ([::1]:38468 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QwDj8-0000kC-AH for incoming@patchwork.ozlabs.org; Wed, 24 Aug 2011 09:42:42 -0400 Received: from eggs.gnu.org ([140.186.70.92]:34392) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QwDhr-0006Q8-FB for qemu-devel@nongnu.org; Wed, 24 Aug 2011 09:41:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QwDhZ-0007Lu-JK for qemu-devel@nongnu.org; Wed, 24 Aug 2011 09:41:23 -0400 Received: from mx1.redhat.com ([209.132.183.28]:40661) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QwDhZ-0007KU-B7 for qemu-devel@nongnu.org; Wed, 24 Aug 2011 09:41:05 -0400 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p7ODf4EK026806 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Wed, 24 Aug 2011 09:41:04 -0400 Received: from cleopatra.tlv.redhat.com (cleopatra.tlv.redhat.com [10.35.255.11]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p7ODf33r023793 for ; Wed, 24 Aug 2011 09:41:04 -0400 Received: from s01.tlv.redhat.com (s01.tlv.redhat.com [10.35.255.8]) by cleopatra.tlv.redhat.com (Postfix) with ESMTP id 2DBE5250B61; Wed, 24 Aug 2011 16:41:01 +0300 (IDT) From: Avi Kivity To: qemu-devel@nongnu.org Date: Wed, 24 Aug 2011 16:40:58 +0300 Message-Id: <1314193259-27092-22-git-send-email-avi@redhat.com> In-Reply-To: <1314193259-27092-1-git-send-email-avi@redhat.com> References: <1314193259-27092-1-git-send-email-avi@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v2 21/22] milkymist-softusb: convert to memory API X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Signed-off-by: Avi Kivity --- hw/milkymist-softusb.c | 48 ++++++++++++++++++++++++------------------------ 1 files changed, 24 insertions(+), 24 deletions(-) diff --git a/hw/milkymist-softusb.c b/hw/milkymist-softusb.c index fe4eedb..ef4d9ee 100644 --- a/hw/milkymist-softusb.c +++ b/hw/milkymist-softusb.c @@ -49,6 +49,9 @@ struct MilkymistSoftUsbState { HIDState hid_kbd; HIDState hid_mouse; + MemoryRegion regs_region; + MemoryRegion pmem; + MemoryRegion dmem; qemu_irq irq; /* device properties */ @@ -68,7 +71,8 @@ struct MilkymistSoftUsbState { }; typedef struct MilkymistSoftUsbState MilkymistSoftUsbState; -static uint32_t softusb_read(void *opaque, target_phys_addr_t addr) +static uint64_t softusb_read(void *opaque, target_phys_addr_t addr, + unsigned size) { MilkymistSoftUsbState *s = opaque; uint32_t r = 0; @@ -91,7 +95,8 @@ static uint32_t softusb_read(void *opaque, target_phys_addr_t addr) } static void -softusb_write(void *opaque, target_phys_addr_t addr, uint32_t value) +softusb_write(void *opaque, target_phys_addr_t addr, uint64_t value, + unsigned size) { MilkymistSoftUsbState *s = opaque; @@ -110,16 +115,14 @@ softusb_write(void *opaque, target_phys_addr_t addr, uint32_t value) } } -static CPUReadMemoryFunc * const softusb_read_fn[] = { - NULL, - NULL, - &softusb_read, -}; - -static CPUWriteMemoryFunc * const softusb_write_fn[] = { - NULL, - NULL, - &softusb_write, +static const MemoryRegionOps softusb_mmio_ops = { + .read = softusb_read, + .write = softusb_write, + .endianness = DEVICE_NATIVE_ENDIAN, + .valid = { + .min_access_size = 4, + .max_access_size = 4, + }, }; static inline void softusb_read_dmem(MilkymistSoftUsbState *s, @@ -256,23 +259,20 @@ static void milkymist_softusb_reset(DeviceState *d) static int milkymist_softusb_init(SysBusDevice *dev) { MilkymistSoftUsbState *s = FROM_SYSBUS(typeof(*s), dev); - int softusb_regs; - ram_addr_t pmem_ram; - ram_addr_t dmem_ram; sysbus_init_irq(dev, &s->irq); - softusb_regs = cpu_register_io_memory(softusb_read_fn, softusb_write_fn, s, - DEVICE_NATIVE_ENDIAN); - sysbus_init_mmio(dev, R_MAX * 4, softusb_regs); + memory_region_init_io(&s->regs_region, &softusb_mmio_ops, s, + "milkymist-softusb", R_MAX * 4); + sysbus_init_mmio_region(dev, &s->regs_region); /* register pmem and dmem */ - pmem_ram = qemu_ram_alloc(NULL, "milkymist_softusb.pmem", s->pmem_size); - cpu_register_physical_memory(s->pmem_base, s->pmem_size, - pmem_ram | IO_MEM_RAM); - dmem_ram = qemu_ram_alloc(NULL, "milkymist_softusb.dmem", s->dmem_size); - cpu_register_physical_memory(s->dmem_base, s->dmem_size, - dmem_ram | IO_MEM_RAM); + memory_region_init_ram(&s->pmem, NULL, "milkymist_softusb.pmem", + s->pmem_size); + sysbus_add_memory(dev, s->pmem_base, &s->pmem); + memory_region_init_ram(&s->dmem, NULL, "milkymist_softusb.dmem", + s->dmem_size); + sysbus_add_memory(dev, s->dmem_base, &s->dmem); hid_init(&s->hid_kbd, HID_KEYBOARD, softusb_kbd_hid_datain); hid_init(&s->hid_mouse, HID_MOUSE, softusb_mouse_hid_datain);