From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: Re: [Qemu-devel] [PATCH v3 28/39] isa-mmio: concert to memory API Date: Fri, 05 Aug 2011 10:29:49 -0500 Message-ID: <4E3C0C6D.6050202@codemonkey.ws> References: <1312463195-13605-1-git-send-email-avi@redhat.com> <1312463195-13605-29-git-send-email-avi@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org, "Michael S. Tsirkin" To: Avi Kivity Return-path: Received: from mail-gx0-f174.google.com ([209.85.161.174]:62811 "EHLO mail-gx0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753643Ab1HEP3w (ORCPT ); Fri, 5 Aug 2011 11:29:52 -0400 Received: by mail-gx0-f174.google.com with SMTP id 21so1742580gxk.19 for ; Fri, 05 Aug 2011 08:29:52 -0700 (PDT) In-Reply-To: <1312463195-13605-29-git-send-email-avi@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On 08/04/2011 08:06 AM, Avi Kivity wrote: > Reviewed-by: Richard Henderson > Signed-off-by: Avi Kivity For the subject, s:concert:convert:g Otherwise, Reviewed-by: Anthony Liguori > --- > hw/isa.h | 2 ++ > hw/isa_mmio.c | 30 +++++++++++++++--------------- > 2 files changed, 17 insertions(+), 15 deletions(-) > > diff --git a/hw/isa.h b/hw/isa.h > index d2b6126..f1f2181 100644 > --- a/hw/isa.h > +++ b/hw/isa.h > @@ -4,6 +4,7 @@ > /* ISA bus */ > > #include "ioport.h" > +#include "memory.h" > #include "qdev.h" > > typedef struct ISABus ISABus; > @@ -37,6 +38,7 @@ ISADevice *isa_create_simple(const char *name); > > extern target_phys_addr_t isa_mem_base; > > +void isa_mmio_setup(MemoryRegion *mr, target_phys_addr_t size); > void isa_mmio_init(target_phys_addr_t base, target_phys_addr_t size); > > /* dma.c */ > diff --git a/hw/isa_mmio.c b/hw/isa_mmio.c > index ca957fb..600225f 100644 > --- a/hw/isa_mmio.c > +++ b/hw/isa_mmio.c > @@ -58,25 +58,25 @@ static uint32_t isa_mmio_readl(void *opaque, target_phys_addr_t addr) > return cpu_inl(addr& IOPORTS_MASK); > } > > -static CPUWriteMemoryFunc * const isa_mmio_write[] = { > -&isa_mmio_writeb, > -&isa_mmio_writew, > -&isa_mmio_writel, > +static const MemoryRegionOps isa_mmio_ops = { > + .old_mmio = { > + .write = { isa_mmio_writeb, isa_mmio_writew, isa_mmio_writel }, > + .read = { isa_mmio_readb, isa_mmio_readw, isa_mmio_readl, }, > + }, > + .endianness = DEVICE_LITTLE_ENDIAN, > }; > > -static CPUReadMemoryFunc * const isa_mmio_read[] = { > -&isa_mmio_readb, > -&isa_mmio_readw, > -&isa_mmio_readl, > -}; > +void isa_mmio_setup(MemoryRegion *mr, target_phys_addr_t size) > +{ > + memory_region_init_io(mr,&isa_mmio_ops, NULL, "isa-mmio", size); > +} > + > +#include "exec-memory.h" > > void isa_mmio_init(target_phys_addr_t base, target_phys_addr_t size) > { > - int isa_mmio_iomemtype; > + MemoryRegion *mr = qemu_malloc(sizeof(*mr)); > > - isa_mmio_iomemtype = cpu_register_io_memory(isa_mmio_read, > - isa_mmio_write, > - NULL, > - DEVICE_LITTLE_ENDIAN); > - cpu_register_physical_memory(base, size, isa_mmio_iomemtype); > + isa_mmio_setup(mr, size); > + memory_region_add_subregion(get_system_memory(), base, mr); > }