From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MuO11-0006wk-Os for qemu-devel@nongnu.org; Sun, 04 Oct 2009 06:08:32 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MuO0x-0006vc-OB for qemu-devel@nongnu.org; Sun, 04 Oct 2009 06:08:31 -0400 Received: from [199.232.76.173] (port=58329 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MuO0x-0006vR-5e for qemu-devel@nongnu.org; Sun, 04 Oct 2009 06:08:27 -0400 Received: from mx1.redhat.com ([209.132.183.28]:39485) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MuO0w-00022y-Bz for qemu-devel@nongnu.org; Sun, 04 Oct 2009 06:08:26 -0400 Date: Sun, 4 Oct 2009 12:06:23 +0200 From: "Michael S. Tsirkin" Message-ID: <20091004100623.GK16887@redhat.com> References: <1254514577-11896-1-git-send-email-yamahata@valinux.co.jp> <1254514577-11896-10-git-send-email-yamahata@valinux.co.jp> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1254514577-11896-10-git-send-email-yamahata@valinux.co.jp> Subject: [Qemu-devel] Re: [PATCH 09/25] pci: introduce pcibus_t to represent pci bus address/size instead of uint32_t List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Isaku Yamahata Cc: qemu-devel@nongnu.org On Sat, Oct 03, 2009 at 05:16:01AM +0900, Isaku Yamahata wrote: > This patch is preliminary for 64 bit BAR support. > Introduce dedicated type, pcibus_t, to represent pci bus address/size > instead of uint32_t. > Later this type will be changed to uint64_t. > > Signed-off-by: Isaku Yamahata Acked-by: Michael S. Tsirkin > --- > hw/ac97.c | 2 +- > hw/cirrus_vga.c | 4 ++-- > hw/e1000.c | 6 +++--- > hw/eepro100.c | 4 ++-- > hw/es1370.c | 2 +- > hw/ide/pci.c | 4 ++-- > hw/lsi53c895a.c | 6 +++--- > hw/macio.c | 2 +- > hw/msix.c | 2 +- > hw/msix.h | 3 ++- > hw/ne2000.c | 2 +- > hw/openpic.c | 2 +- > hw/pci.c | 7 ++++--- > hw/pci.h | 12 +++++++----- > hw/pcnet.c | 4 ++-- > hw/rtl8139.c | 4 ++-- > hw/sun4u.c | 2 +- > hw/usb-ohci.c | 2 +- > hw/usb-uhci.c | 2 +- > hw/vga-pci.c | 2 +- > hw/virtio-pci.c | 2 +- > hw/vmware_vga.c | 4 ++-- > hw/wdt_i6300esb.c | 2 +- > 23 files changed, 43 insertions(+), 39 deletions(-) > > diff --git a/hw/ac97.c b/hw/ac97.c > index 610ca60..e3f0dbc 100644 > --- a/hw/ac97.c > +++ b/hw/ac97.c > @@ -1250,7 +1250,7 @@ static int ac97_load (QEMUFile *f, void *opaque, int version_id) > } > > static void ac97_map (PCIDevice *pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > AC97LinkState *s = DO_UPCAST (AC97LinkState, dev, pci_dev); > PCIDevice *d = &s->dev; > diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c > index fd2367a..2a6aba8 100644 > --- a/hw/cirrus_vga.c > +++ b/hw/cirrus_vga.c > @@ -3170,7 +3170,7 @@ void isa_cirrus_vga_init(void) > ***************************************/ > > static void cirrus_pci_lfb_map(PCIDevice *d, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > CirrusVGAState *s = &DO_UPCAST(PCICirrusVGAState, dev, d)->cirrus_vga; > > @@ -3191,7 +3191,7 @@ static void cirrus_pci_lfb_map(PCIDevice *d, int region_num, > } > > static void cirrus_pci_mmio_map(PCIDevice *d, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > CirrusVGAState *s = &DO_UPCAST(PCICirrusVGAState, dev, d)->cirrus_vga; > > diff --git a/hw/e1000.c b/hw/e1000.c > index 95c471c..c07eb42 100644 > --- a/hw/e1000.c > +++ b/hw/e1000.c > @@ -142,8 +142,8 @@ static const char phy_regcap[0x20] = { > }; > > static void > -ioport_map(PCIDevice *pci_dev, int region_num, uint32_t addr, > - uint32_t size, int type) > +ioport_map(PCIDevice *pci_dev, int region_num, pcibus_t addr, > + pcibus_t size, int type) > { > DBGOUT(IO, "e1000_ioport_map addr=0x%04x size=0x%08x\n", addr, size); > } > @@ -1030,7 +1030,7 @@ static CPUReadMemoryFunc * const e1000_mmio_read[] = { > > static void > e1000_mmio_map(PCIDevice *pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > E1000State *d = DO_UPCAST(E1000State, dev, pci_dev); > int i; > diff --git a/hw/eepro100.c b/hw/eepro100.c > index 3f84e26..1a1a0da 100644 > --- a/hw/eepro100.c > +++ b/hw/eepro100.c > @@ -1374,7 +1374,7 @@ static void ioport_write4(void *opaque, uint32_t addr, uint32_t val) > /* PCI EEPRO100 definitions */ > > static void pci_map(PCIDevice * pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > EEPRO100State *s = DO_UPCAST(EEPRO100State, dev, pci_dev); > > @@ -1453,7 +1453,7 @@ static CPUReadMemoryFunc * const pci_mmio_read[] = { > }; > > static void pci_mmio_map(PCIDevice * pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > EEPRO100State *s = DO_UPCAST(EEPRO100State, dev, pci_dev); > > diff --git a/hw/es1370.c b/hw/es1370.c > index 9071a48..b42809d 100644 > --- a/hw/es1370.c > +++ b/hw/es1370.c > @@ -907,7 +907,7 @@ static void es1370_adc_callback (void *opaque, int avail) > } > > static void es1370_map (PCIDevice *pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > ES1370State *s = DO_UPCAST (ES1370State, dev, pci_dev); > > diff --git a/hw/ide/pci.c b/hw/ide/pci.c > index 89ecd44..125f04d 100644 > --- a/hw/ide/pci.c > +++ b/hw/ide/pci.c > @@ -60,7 +60,7 @@ typedef struct PCIIDEState { > static void cmd646_update_irq(PCIIDEState *d); > > static void ide_map(PCIDevice *pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > PCIIDEState *d = (PCIIDEState *)pci_dev; > IDEBus *bus; > @@ -245,7 +245,7 @@ static void bmdma_addr_writel(void *opaque, uint32_t addr, uint32_t val) > } > > static void bmdma_map(PCIDevice *pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > PCIIDEState *d = (PCIIDEState *)pci_dev; > int i; > diff --git a/hw/lsi53c895a.c b/hw/lsi53c895a.c > index 62bdca8..d62581a 100644 > --- a/hw/lsi53c895a.c > +++ b/hw/lsi53c895a.c > @@ -1926,7 +1926,7 @@ static void lsi_io_writel(void *opaque, uint32_t addr, uint32_t val) > } > > static void lsi_io_mapfunc(PCIDevice *pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > LSIState *s = DO_UPCAST(LSIState, dev, pci_dev); > > @@ -1941,7 +1941,7 @@ static void lsi_io_mapfunc(PCIDevice *pci_dev, int region_num, > } > > static void lsi_ram_mapfunc(PCIDevice *pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > LSIState *s = DO_UPCAST(LSIState, dev, pci_dev); > > @@ -1951,7 +1951,7 @@ static void lsi_ram_mapfunc(PCIDevice *pci_dev, int region_num, > } > > static void lsi_mmio_mapfunc(PCIDevice *pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > LSIState *s = DO_UPCAST(LSIState, dev, pci_dev); > > diff --git a/hw/macio.c b/hw/macio.c > index 8cfadfc..f3340da 100644 > --- a/hw/macio.c > +++ b/hw/macio.c > @@ -40,7 +40,7 @@ struct macio_state_t { > }; > > static void macio_map (PCIDevice *pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > macio_state_t *macio_state; > int i; > diff --git a/hw/msix.c b/hw/msix.c > index 3782994..4300c4e 100644 > --- a/hw/msix.c > +++ b/hw/msix.c > @@ -201,7 +201,7 @@ static CPUReadMemoryFunc * const msix_mmio_read[] = { > > /* Should be called from device's map method. */ > void msix_mmio_map(PCIDevice *d, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > uint8_t *config = d->config + d->msix_cap; > uint32_t table = pci_get_long(config + MSIX_TABLE_OFFSET); > diff --git a/hw/msix.h b/hw/msix.h > index 9367ba3..2ff754a 100644 > --- a/hw/msix.h > +++ b/hw/msix.h > @@ -2,6 +2,7 @@ > #define QEMU_MSIX_H > > #include "qemu-common.h" > +#include "pci.h" > > int msix_init(struct PCIDevice *dev, unsigned short nentries, > unsigned bar_nr, unsigned bar_size, > @@ -11,7 +12,7 @@ void msix_write_config(PCIDevice *pci_dev, uint32_t address, > uint32_t val, int len); > > void msix_mmio_map(PCIDevice *pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type); > + pcibus_t addr, pcibus_t size, int type); > > int msix_uninit(PCIDevice *d); > > diff --git a/hw/ne2000.c b/hw/ne2000.c > index 87f1e59..d77ea73 100644 > --- a/hw/ne2000.c > +++ b/hw/ne2000.c > @@ -715,7 +715,7 @@ static int pci_ne2000_load(QEMUFile* f, void* opaque, int version_id) > /* PCI NE2000 definitions */ > > static void ne2000_map(PCIDevice *pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > PCINE2000State *d = DO_UPCAST(PCINE2000State, dev, pci_dev); > NE2000State *s = &d->ne2000; > diff --git a/hw/openpic.c b/hw/openpic.c > index 74dde6d..a2f3990 100644 > --- a/hw/openpic.c > +++ b/hw/openpic.c > @@ -1026,7 +1026,7 @@ static CPUReadMemoryFunc * const openpic_read[] = { > }; > > static void openpic_map(PCIDevice *pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > openpic_t *opp; > > diff --git a/hw/pci.c b/hw/pci.c > index 21e23b0..674daba 100644 > --- a/hw/pci.c > +++ b/hw/pci.c > @@ -396,12 +396,12 @@ int pci_unregister_device(PCIDevice *pci_dev) > } > > void pci_register_bar(PCIDevice *pci_dev, int region_num, > - uint32_t size, int type, > + pcibus_t size, int type, > PCIMapIORegionFunc *map_func) > { > PCIIORegion *r; > uint32_t addr; > - uint32_t wmask; > + pcibus_t wmask; > > if ((unsigned int)region_num >= PCI_NUM_REGIONS) > return; > @@ -435,7 +435,8 @@ static void pci_update_mappings(PCIDevice *d) > { > PCIIORegion *r; > int cmd, i; > - uint32_t last_addr, new_addr, config_ofs; > + pcibus_t last_addr, new_addr; > + uint32_t config_ofs; > > cmd = pci_get_word(d->config + PCI_COMMAND); > for(i = 0; i < PCI_NUM_REGIONS; i++) { > diff --git a/hw/pci.h b/hw/pci.h > index e79540a..8e46aba 100644 > --- a/hw/pci.h > +++ b/hw/pci.h > @@ -71,12 +71,14 @@ extern target_phys_addr_t pci_mem_base; > #define PCI_DEVICE_ID_VIRTIO_BALLOON 0x1002 > #define PCI_DEVICE_ID_VIRTIO_CONSOLE 0x1003 > > +typedef uint32_t pcibus_t; > + > typedef void PCIConfigWriteFunc(PCIDevice *pci_dev, > uint32_t address, uint32_t data, int len); > typedef uint32_t PCIConfigReadFunc(PCIDevice *pci_dev, > uint32_t address, int len); > typedef void PCIMapIORegionFunc(PCIDevice *pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type); > + pcibus_t addr, pcibus_t size, int type); > typedef int PCIUnregisterFunc(PCIDevice *pci_dev); > > #define PCI_ADDRESS_SPACE_MEM 0x00 > @@ -84,9 +86,9 @@ typedef int PCIUnregisterFunc(PCIDevice *pci_dev); > #define PCI_ADDRESS_SPACE_MEM_PREFETCH 0x08 > > typedef struct PCIIORegion { > - uint32_t addr; /* current PCI mapping address. -1 means not mapped */ > -#define PCI_BAR_UNMAPPED (~(uint32_t)0) > - uint32_t size; > + pcibus_t addr; /* current PCI mapping address. -1 means not mapped */ > +#define PCI_BAR_UNMAPPED (~(pcibus_t)0) > + pcibus_t size; > uint8_t type; > PCIMapIORegionFunc *map_func; > } PCIIORegion; > @@ -232,7 +234,7 @@ PCIDevice *pci_register_device(PCIBus *bus, const char *name, > int pci_unregister_device(PCIDevice *pci_dev); > > void pci_register_bar(PCIDevice *pci_dev, int region_num, > - uint32_t size, int type, > + pcibus_t size, int type, > PCIMapIORegionFunc *map_func); > > int pci_add_capability(PCIDevice *pci_dev, uint8_t cap_id, uint8_t cap_size); > diff --git a/hw/pcnet.c b/hw/pcnet.c > index ae98a20..2789574 100644 > --- a/hw/pcnet.c > +++ b/hw/pcnet.c > @@ -1761,7 +1761,7 @@ static uint32_t pcnet_ioport_readl(void *opaque, uint32_t addr) > } > > static void pcnet_ioport_map(PCIDevice *pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > PCNetState *d = &DO_UPCAST(PCIPCNetState, pci_dev, pci_dev)->state; > > @@ -1989,7 +1989,7 @@ static CPUReadMemoryFunc * const pcnet_mmio_read[] = { > }; > > static void pcnet_mmio_map(PCIDevice *pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > PCIPCNetState *d = DO_UPCAST(PCIPCNetState, pci_dev, pci_dev); > > diff --git a/hw/rtl8139.c b/hw/rtl8139.c > index 83cb1ff..6856b23 100644 > --- a/hw/rtl8139.c > +++ b/hw/rtl8139.c > @@ -3324,7 +3324,7 @@ static int rtl8139_load(QEMUFile* f,void* opaque,int version_id) > /* PCI RTL8139 definitions */ > > static void rtl8139_mmio_map(PCIDevice *pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > RTL8139State *s = DO_UPCAST(RTL8139State, dev, pci_dev); > > @@ -3332,7 +3332,7 @@ static void rtl8139_mmio_map(PCIDevice *pci_dev, int region_num, > } > > static void rtl8139_ioport_map(PCIDevice *pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > RTL8139State *s = DO_UPCAST(RTL8139State, dev, pci_dev); > > diff --git a/hw/sun4u.c b/hw/sun4u.c > index 2c97d9d..5812782 100644 > --- a/hw/sun4u.c > +++ b/hw/sun4u.c > @@ -344,7 +344,7 @@ static const int parallel_io[MAX_PARALLEL_PORTS] = { 0x378, 0x278, 0x3bc }; > static const int parallel_irq[MAX_PARALLEL_PORTS] = { 7, 7, 7 }; > > static void ebus_mmio_mapfunc(PCIDevice *pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > DPRINTF("Mapping region %d registers at %08x\n", region_num, addr); > switch (region_num) { > diff --git a/hw/usb-ohci.c b/hw/usb-ohci.c > index 6e428c4..7a92efd 100644 > --- a/hw/usb-ohci.c > +++ b/hw/usb-ohci.c > @@ -1707,7 +1707,7 @@ typedef struct { > } OHCIPCIState; > > static void ohci_mapfunc(PCIDevice *pci_dev, int i, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > OHCIPCIState *ohci = DO_UPCAST(OHCIPCIState, pci_dev, pci_dev); > cpu_register_physical_memory(addr, size, ohci->state.mem); > diff --git a/hw/usb-uhci.c b/hw/usb-uhci.c > index 6807413..abeb552 100644 > --- a/hw/usb-uhci.c > +++ b/hw/usb-uhci.c > @@ -1059,7 +1059,7 @@ static void uhci_frame_timer(void *opaque) > } > > static void uhci_map(PCIDevice *pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > UHCIState *s = (UHCIState *)pci_dev; > > diff --git a/hw/vga-pci.c b/hw/vga-pci.c > index 6038cec..b0e4262 100644 > --- a/hw/vga-pci.c > +++ b/hw/vga-pci.c > @@ -71,7 +71,7 @@ void vga_dirty_log_start(VGACommonState *s) > } > > static void vga_map(PCIDevice *pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > PCIVGAState *d = (PCIVGAState *)pci_dev; > VGACommonState *s = &d->vga; > diff --git a/hw/virtio-pci.c b/hw/virtio-pci.c > index bd5a7c4..e68823a 100644 > --- a/hw/virtio-pci.c > +++ b/hw/virtio-pci.c > @@ -342,7 +342,7 @@ static void virtio_pci_config_writel(void *opaque, uint32_t addr, uint32_t val) > } > > static void virtio_map(PCIDevice *pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > VirtIOPCIProxy *proxy = container_of(pci_dev, VirtIOPCIProxy, pci_dev); > VirtIODevice *vdev = proxy->vdev; > diff --git a/hw/vmware_vga.c b/hw/vmware_vga.c > index a273f35..945d57e 100644 > --- a/hw/vmware_vga.c > +++ b/hw/vmware_vga.c > @@ -1174,7 +1174,7 @@ static int pci_vmsvga_load(QEMUFile *f, void *opaque, int version_id) > } > > static void pci_vmsvga_map_ioport(PCIDevice *pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > struct pci_vmsvga_state_s *d = (struct pci_vmsvga_state_s *) pci_dev; > struct vmsvga_state_s *s = &d->chip; > @@ -1194,7 +1194,7 @@ static void pci_vmsvga_map_ioport(PCIDevice *pci_dev, int region_num, > } > > static void pci_vmsvga_map_mem(PCIDevice *pci_dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > struct pci_vmsvga_state_s *d = (struct pci_vmsvga_state_s *) pci_dev; > struct vmsvga_state_s *s = &d->chip; > diff --git a/hw/wdt_i6300esb.c b/hw/wdt_i6300esb.c > index 3abaa87..d3ab3c8 100644 > --- a/hw/wdt_i6300esb.c > +++ b/hw/wdt_i6300esb.c > @@ -347,7 +347,7 @@ static void i6300esb_mem_writel(void *vp, target_phys_addr_t addr, uint32_t val) > } > > static void i6300esb_map(PCIDevice *dev, int region_num, > - uint32_t addr, uint32_t size, int type) > + pcibus_t addr, pcibus_t size, int type) > { > static CPUReadMemoryFunc * const mem_read[3] = { > i6300esb_mem_readb, > -- > 1.6.0.2 > >