qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] hw/lan9118.c: Convert to MemoryRegion


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH] hw/lan9118.c: Convert to MemoryRegion
Date: Fri, 9 Sep 2011 17:47:11 +0100

Ping?

On 25 August 2011 18:59, Peter Maydell <address@hidden> wrote:
> Signed-off-by: Peter Maydell <address@hidden>
> ---
> Another device I needed to convert so I could connect it to omap_gpmc
> for an omap3 board (in this case overo).
>
>  hw/lan9118.c |   29 +++++++++++------------------
>  1 files changed, 11 insertions(+), 18 deletions(-)
>
> diff --git a/hw/lan9118.c b/hw/lan9118.c
> index 73a8661..634b88e 100644
> --- a/hw/lan9118.c
> +++ b/hw/lan9118.c
> @@ -152,7 +152,7 @@ typedef struct {
>     NICState *nic;
>     NICConf conf;
>     qemu_irq irq;
> -    int mmio_index;
> +    MemoryRegion mmio;
>     ptimer_state *timer;
>
>     uint32_t irq_cfg;
> @@ -895,7 +895,7 @@ static void lan9118_tick(void *opaque)
>  }
>
>  static void lan9118_writel(void *opaque, target_phys_addr_t offset,
> -                           uint32_t val)
> +                           uint64_t val, unsigned size)
>  {
>     lan9118_state *s = (lan9118_state *)opaque;
>     offset &= 0xff;
> @@ -1022,13 +1022,14 @@ static void lan9118_writel(void *opaque, 
> target_phys_addr_t offset,
>         break;
>
>     default:
> -        hw_error("lan9118_write: Bad reg 0x%x = %x\n", (int)offset, val);
> +        hw_error("lan9118_write: Bad reg 0x%x = %x\n", (int)offset, 
> (int)val);
>         break;
>     }
>     lan9118_update(s);
>  }
>
> -static uint32_t lan9118_readl(void *opaque, target_phys_addr_t offset)
> +static uint64_t lan9118_readl(void *opaque, target_phys_addr_t offset,
> +                              unsigned size)
>  {
>     lan9118_state *s = (lan9118_state *)opaque;
>
> @@ -1101,16 +1102,10 @@ static uint32_t lan9118_readl(void *opaque, 
> target_phys_addr_t offset)
>     return 0;
>  }
>
> -static CPUReadMemoryFunc * const lan9118_readfn[] = {
> -    lan9118_readl,
> -    lan9118_readl,
> -    lan9118_readl
> -};
> -
> -static CPUWriteMemoryFunc * const lan9118_writefn[] = {
> -    lan9118_writel,
> -    lan9118_writel,
> -    lan9118_writel
> +static const MemoryRegionOps lan9118_mem_ops = {
> +    .read = lan9118_readl,
> +    .write = lan9118_writel,
> +    .endianness = DEVICE_NATIVE_ENDIAN,
>  };
>
>  static void lan9118_cleanup(VLANClientState *nc)
> @@ -1135,10 +1130,8 @@ static int lan9118_init1(SysBusDevice *dev)
>     QEMUBH *bh;
>     int i;
>
> -    s->mmio_index = cpu_register_io_memory(lan9118_readfn,
> -                                           lan9118_writefn, s,
> -                                           DEVICE_NATIVE_ENDIAN);
> -    sysbus_init_mmio(dev, 0x100, s->mmio_index);
> +    memory_region_init_io(&s->mmio, &lan9118_mem_ops, s, "lan9118-mmio", 
> 0x100);
> +    sysbus_init_mmio_region(dev, &s->mmio);
>     sysbus_init_irq(dev, &s->irq);
>     qemu_macaddr_default_if_unset(&s->conf.macaddr);
>
> --
> 1.7.1



reply via email to

[Prev in Thread] Current Thread [Next in Thread]