qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: qemu-devel@nongnu.org
Cc: kvm@vger.kernel.org
Subject: [Qemu-devel] [PATCH 05/24] arm_timer: convert to memory API
Date: Mon,  8 Aug 2011 20:06:50 +0300	[thread overview]
Message-ID: <1312823229-12822-6-git-send-email-avi@redhat.com> (raw)
In-Reply-To: <1312823229-12822-1-git-send-email-avi@redhat.com>

Signed-off-by: Avi Kivity <avi@redhat.com>
---
 hw/arm_timer.c |   55 ++++++++++++++++++++-----------------------------------
 1 files changed, 20 insertions(+), 35 deletions(-)

diff --git a/hw/arm_timer.c b/hw/arm_timer.c
index fd9448f..457736b 100644
--- a/hw/arm_timer.c
+++ b/hw/arm_timer.c
@@ -176,6 +176,7 @@ static arm_timer_state *arm_timer_init(uint32_t freq)
 
 typedef struct {
     SysBusDevice busdev;
+    MemoryRegion iomem;
     arm_timer_state *timer[2];
     int level[2];
     qemu_irq irq;
@@ -190,7 +191,8 @@ static void sp804_set_irq(void *opaque, int irq, int level)
     qemu_set_irq(s->irq, s->level[0] || s->level[1]);
 }
 
-static uint32_t sp804_read(void *opaque, target_phys_addr_t offset)
+static uint64_t sp804_read(void *opaque, target_phys_addr_t offset,
+                           unsigned size)
 {
     sp804_state *s = (sp804_state *)opaque;
 
@@ -203,7 +205,7 @@ static uint32_t sp804_read(void *opaque, target_phys_addr_t offset)
 }
 
 static void sp804_write(void *opaque, target_phys_addr_t offset,
-                        uint32_t value)
+                        uint64_t value, unsigned size)
 {
     sp804_state *s = (sp804_state *)opaque;
 
@@ -214,19 +216,12 @@ static void sp804_write(void *opaque, target_phys_addr_t offset,
     }
 }
 
-static CPUReadMemoryFunc * const sp804_readfn[] = {
-   sp804_read,
-   sp804_read,
-   sp804_read
+static const MemoryRegionOps sp804_ops = {
+    .read = sp804_read,
+    .write = sp804_write,
+    .endianness = DEVICE_NATIVE_ENDIAN,
 };
 
-static CPUWriteMemoryFunc * const sp804_writefn[] = {
-   sp804_write,
-   sp804_write,
-   sp804_write
-};
-
-
 static const VMStateDescription vmstate_sp804 = {
     .name = "sp804",
     .version_id = 1,
@@ -240,7 +235,6 @@ static const VMStateDescription vmstate_sp804 = {
 
 static int sp804_init(SysBusDevice *dev)
 {
-    int iomemtype;
     sp804_state *s = FROM_SYSBUS(sp804_state, dev);
     qemu_irq *qi;
 
@@ -252,9 +246,8 @@ static int sp804_init(SysBusDevice *dev)
     s->timer[1] = arm_timer_init(1000000);
     s->timer[0]->irq = qi[0];
     s->timer[1]->irq = qi[1];
-    iomemtype = cpu_register_io_memory(sp804_readfn,
-                                       sp804_writefn, s, DEVICE_NATIVE_ENDIAN);
-    sysbus_init_mmio(dev, 0x1000, iomemtype);
+    memory_region_init_io(&s->iomem, &sp804_ops, s, "sp804", 0x1000);
+    sysbus_init_mmio_region(dev, &s->iomem);
     vmstate_register(&dev->qdev, -1, &vmstate_sp804, s);
     return 0;
 }
@@ -264,10 +257,12 @@ static int sp804_init(SysBusDevice *dev)
 
 typedef struct {
     SysBusDevice busdev;
+    MemoryRegion iomem;
     arm_timer_state *timer[3];
 } icp_pit_state;
 
-static uint32_t icp_pit_read(void *opaque, target_phys_addr_t offset)
+static uint64_t icp_pit_read(void *opaque, target_phys_addr_t offset,
+                             unsigned size)
 {
     icp_pit_state *s = (icp_pit_state *)opaque;
     int n;
@@ -282,7 +277,7 @@ static uint32_t icp_pit_read(void *opaque, target_phys_addr_t offset)
 }
 
 static void icp_pit_write(void *opaque, target_phys_addr_t offset,
-                          uint32_t value)
+                          uint64_t value, unsigned size)
 {
     icp_pit_state *s = (icp_pit_state *)opaque;
     int n;
@@ -295,22 +290,14 @@ static void icp_pit_write(void *opaque, target_phys_addr_t offset,
     arm_timer_write(s->timer[n], offset & 0xff, value);
 }
 
-
-static CPUReadMemoryFunc * const icp_pit_readfn[] = {
-   icp_pit_read,
-   icp_pit_read,
-   icp_pit_read
-};
-
-static CPUWriteMemoryFunc * const icp_pit_writefn[] = {
-   icp_pit_write,
-   icp_pit_write,
-   icp_pit_write
+static const MemoryRegionOps icp_pit_ops = {
+    .read = icp_pit_read,
+    .write = icp_pit_write,
+    .endianness = DEVICE_NATIVE_ENDIAN,
 };
 
 static int icp_pit_init(SysBusDevice *dev)
 {
-    int iomemtype;
     icp_pit_state *s = FROM_SYSBUS(icp_pit_state, dev);
 
     /* Timer 0 runs at the system clock speed (40MHz).  */
@@ -323,10 +310,8 @@ static int icp_pit_init(SysBusDevice *dev)
     sysbus_init_irq(dev, &s->timer[1]->irq);
     sysbus_init_irq(dev, &s->timer[2]->irq);
 
-    iomemtype = cpu_register_io_memory(icp_pit_readfn,
-                                       icp_pit_writefn, s,
-                                       DEVICE_NATIVE_ENDIAN);
-    sysbus_init_mmio(dev, 0x1000, iomemtype);
+    memory_region_init_io(&s->iomem, &icp_pit_ops, s, "icp_pit", 0x1000);
+    sysbus_init_mmio_region(dev, &s->iomem);
     /* This device has no state to save/restore.  The component timers will
        save themselves.  */
     return 0;
-- 
1.7.5.3

  parent reply	other threads:[~2011-08-08 17:08 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-08 17:06 [Qemu-devel] [PATCH 00/24] Memory API batch 4: more conversions Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 01/24] apb_pci: convert to memory API Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 02/24] apic: " Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 03/24] arm_gic: " Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 04/24] arm_sysctl: " Avi Kivity
2011-08-08 17:06 ` Avi Kivity [this message]
2011-08-08 17:06 ` [Qemu-devel] [PATCH 06/24] armv7m: " Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 07/24] gt64xxx.c: " Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 08/24] tusb6010: move declarations to new file tusb6010.h Avi Kivity
2011-08-09  7:51   ` Peter Maydell
2011-08-09  9:02     ` [Qemu-devel] [PATCH v1.1 " Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 09/24] omap_gpmc/nseries/tusb6010: convert to memory API Avi Kivity
2011-08-08 17:43   ` Peter Maydell
2011-08-09  6:34     ` Avi Kivity
2011-08-09  7:37       ` Peter Maydell
2011-08-09  7:41         ` Avi Kivity
2011-08-09  8:07           ` Peter Maydell
2011-08-09  8:44             ` Avi Kivity
2011-08-09  8:56               ` Avi Kivity
2011-08-09  9:02                 ` [Qemu-devel] [PATCH v1.1 " Avi Kivity
2011-08-09  9:23                   ` Peter Maydell
2011-08-09  9:26                     ` Avi Kivity
2011-08-09  9:41                       ` Peter Maydell
2011-08-09 12:56                         ` Avi Kivity
2011-08-09 13:06                         ` [Qemu-devel] [PATCH v1.2 " Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 10/24] onenand: " Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 11/24] pcie_host: " Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 12/24] ppc405_uc: " Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 13/24] ppc4xx_sdram: " Avi Kivity
2011-08-08 17:06 ` [Qemu-devel] [PATCH 14/24] stellaris_enet: " Avi Kivity
2011-08-08 17:07 ` [Qemu-devel] [PATCH 15/24] sysbus: add a variant of sysbus_init_mmio_cb with an unmap callback Avi Kivity
2011-08-08 17:07 ` [Qemu-devel] [PATCH 16/24] sh_pci: convert to memory API Avi Kivity
2011-08-08 17:07 ` [Qemu-devel] [PATCH 17/24] arm11mpcore: use sysbus_init_mmio_cb2 Avi Kivity
2011-08-12 13:23   ` Peter Maydell
2011-08-14 18:45     ` Avi Kivity
2011-08-08 17:07 ` [Qemu-devel] [PATCH 18/24] versatile_pci: convert to memory API Avi Kivity
2011-08-11 16:20   ` Peter Maydell
2011-08-11 16:26     ` Avi Kivity
2011-08-11 16:29     ` [Qemu-devel] [PATCH v1.1 " Avi Kivity
2011-08-11 21:53       ` Peter Maydell
2011-08-14 18:31         ` Avi Kivity
2011-08-08 17:07 ` [Qemu-devel] [PATCH 19/24] ppce500_pci: convert to sysbus_init_mmio_cb2() Avi Kivity
2011-08-08 17:07 ` [Qemu-devel] [PATCH 20/24] sysbus: remove sysbus_init_mmio_cb() Avi Kivity
2011-08-08 17:07 ` [Qemu-devel] [PATCH 21/24] isa: add isa_address_space() Avi Kivity
2011-08-10 16:24   ` Richard Henderson
2011-08-10 16:26     ` Richard Henderson
2011-08-10 16:35       ` Avi Kivity
2011-08-10 16:38         ` Avi Kivity
2011-08-10 18:44       ` Avi Kivity
2011-08-10 16:32     ` Avi Kivity
2011-08-08 17:07 ` [Qemu-devel] [PATCH 22/24] pci: add pci_address_space() Avi Kivity
2011-08-08 17:07 ` [Qemu-devel] [PATCH 23/24] vga: drop get_system_memory() from vga devices and derivatives Avi Kivity
2011-08-08 17:07 ` [Qemu-devel] [PATCH 24/24] 440fx: fix PAM, PCI holes Avi Kivity

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1312823229-12822-6-git-send-email-avi@redhat.com \
    --to=avi@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).