Re: [Qemu-devel] [PATCH 6/6] hw/arm/omap2.c: Don't use old_mmio

2017-09-20 Thread Richard Henderson
On 09/16/2017 11:46 AM, Peter Maydell wrote:
> Don't use old_mmio in the memory region ops struct.
> 
> Signed-off-by: Peter Maydell 
> ---
>  hw/arm/omap2.c | 49 +
>  1 file changed, 37 insertions(+), 12 deletions(-)

Reviewed-by: Richard Henderson 

r~



[Qemu-devel] [PATCH 6/6] hw/arm/omap2.c: Don't use old_mmio

2017-09-16 Thread Peter Maydell
Don't use old_mmio in the memory region ops struct.

Signed-off-by: Peter Maydell 
---
 hw/arm/omap2.c | 49 +
 1 file changed, 37 insertions(+), 12 deletions(-)

diff --git a/hw/arm/omap2.c b/hw/arm/omap2.c
index ece25ae..f35d265 100644
--- a/hw/arm/omap2.c
+++ b/hw/arm/omap2.c
@@ -2087,19 +2087,44 @@ static void omap_sysctl_write(void *opaque, hwaddr addr,
 }
 }
 
+static uint64_t omap_sysctl_readfn(void *opaque, hwaddr addr,
+   unsigned size)
+{
+switch (size) {
+case 1:
+return omap_sysctl_read8(opaque, addr);
+case 2:
+return omap_badwidth_read32(opaque, addr); /* TODO */
+case 4:
+return omap_sysctl_read(opaque, addr);
+default:
+g_assert_not_reached();
+}
+}
+
+static void omap_sysctl_writefn(void *opaque, hwaddr addr,
+uint64_t value, unsigned size)
+{
+switch (size) {
+case 1:
+omap_sysctl_write8(opaque, addr, value);
+break;
+case 2:
+omap_badwidth_write32(opaque, addr, value); /* TODO */
+break;
+case 4:
+omap_sysctl_write(opaque, addr, value);
+break;
+default:
+g_assert_not_reached();
+}
+}
+
 static const MemoryRegionOps omap_sysctl_ops = {
-.old_mmio = {
-.read = {
-omap_sysctl_read8,
-omap_badwidth_read32,  /* TODO */
-omap_sysctl_read,
-},
-.write = {
-omap_sysctl_write8,
-omap_badwidth_write32, /* TODO */
-omap_sysctl_write,
-},
-},
+.read = omap_sysctl_readfn,
+.write = omap_sysctl_writefn,
+.valid.min_access_size = 1,
+.valid.max_access_size = 4,
 .endianness = DEVICE_NATIVE_ENDIAN,
 };
 
-- 
2.7.4