diff options
author | Isaku Yamahata <yamahata@valinux.co.jp> | 2009-10-30 21:21:08 +0900 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2009-11-09 08:43:08 -0600 |
commit | 6e355d901baec118f0eb40ecd75a4278625f5d03 (patch) | |
tree | 91118ef8bbfae888a1700f9b3c7e877ae4cc36b2 | |
parent | a455783bb6ecede44450f54980c42951fd06b7fb (diff) | |
download | qemu-6e355d901baec118f0eb40ecd75a4278625f5d03.zip qemu-6e355d901baec118f0eb40ecd75a4278625f5d03.tar.gz qemu-6e355d901baec118f0eb40ecd75a4278625f5d03.tar.bz2 |
pci: introduce pcibus_t to represent pci bus address/size instead of uint32_t
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 <yamahata@valinux.co.jp>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rw-r--r-- | hw/ac97.c | 2 | ||||
-rw-r--r-- | hw/cirrus_vga.c | 4 | ||||
-rw-r--r-- | hw/e1000.c | 6 | ||||
-rw-r--r-- | hw/eepro100.c | 4 | ||||
-rw-r--r-- | hw/es1370.c | 2 | ||||
-rw-r--r-- | hw/ide/cmd646.c | 4 | ||||
-rw-r--r-- | hw/ide/piix.c | 2 | ||||
-rw-r--r-- | hw/lsi53c895a.c | 6 | ||||
-rw-r--r-- | hw/macio.c | 2 | ||||
-rw-r--r-- | hw/msix.c | 2 | ||||
-rw-r--r-- | hw/msix.h | 3 | ||||
-rw-r--r-- | hw/ne2000.c | 2 | ||||
-rw-r--r-- | hw/openpic.c | 2 | ||||
-rw-r--r-- | hw/pci.c | 6 | ||||
-rw-r--r-- | hw/pci.h | 12 | ||||
-rw-r--r-- | hw/pcnet.c | 4 | ||||
-rw-r--r-- | hw/rtl8139.c | 4 | ||||
-rw-r--r-- | hw/sun4u.c | 2 | ||||
-rw-r--r-- | hw/usb-ohci.c | 2 | ||||
-rw-r--r-- | hw/usb-uhci.c | 2 | ||||
-rw-r--r-- | hw/vga-pci.c | 2 | ||||
-rw-r--r-- | hw/virtio-pci.c | 2 | ||||
-rw-r--r-- | hw/vmware_vga.c | 4 | ||||
-rw-r--r-- | hw/wdt_i6300esb.c | 2 |
24 files changed, 43 insertions, 40 deletions
@@ -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 e54d3cb..e7d75bc 100644 --- a/hw/cirrus_vga.c +++ b/hw/cirrus_vga.c @@ -3174,7 +3174,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; @@ -3195,7 +3195,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; @@ -145,8 +145,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); } @@ -1011,7 +1011,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 829731e..55e7717 100644 --- a/hw/eepro100.c +++ b/hw/eepro100.c @@ -1384,7 +1384,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); @@ -1463,7 +1463,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 f048951..10da250 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/cmd646.c b/hw/ide/cmd646.c index 9caeb78..3b7c606 100644 --- a/hw/ide/cmd646.c +++ b/hw/ide/cmd646.c @@ -45,7 +45,7 @@ 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 = DO_UPCAST(PCIIDEState, dev, pci_dev); IDEBus *bus; @@ -136,7 +136,7 @@ static void bmdma_writeb(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 = DO_UPCAST(PCIIDEState, dev, pci_dev); int i; diff --git a/hw/ide/piix.c b/hw/ide/piix.c index 6e50fc2..ec93f29 100644 --- a/hw/ide/piix.c +++ b/hw/ide/piix.c @@ -69,7 +69,7 @@ static void bmdma_writeb(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 = DO_UPCAST(PCIIDEState, dev, pci_dev); int i; diff --git a/hw/lsi53c895a.c b/hw/lsi53c895a.c index 6062192..7e47fc9 100644 --- a/hw/lsi53c895a.c +++ b/hw/lsi53c895a.c @@ -1925,7 +1925,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); @@ -1940,7 +1940,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); @@ -1950,7 +1950,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); @@ -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; @@ -200,7 +200,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); @@ -2,6 +2,7 @@ #define QEMU_MSIX_H #include "qemu-common.h" +#include "pci.h" int msix_init(PCIDevice *pdev, unsigned short nentries, unsigned bar_nr, unsigned bar_size); @@ -10,7 +11,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 5fe3883..63efc3a 100644 --- a/hw/ne2000.c +++ b/hw/ne2000.c @@ -679,7 +679,7 @@ const VMStateDescription vmstate_pci_ne2000 = { /* 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 f73fd63..68af9c1 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; @@ -455,12 +455,12 @@ static int pci_unregister_device(DeviceState *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; @@ -492,7 +492,7 @@ static void pci_update_mappings(PCIDevice *d) { PCIIORegion *r; int cmd, i; - uint32_t last_addr, new_addr; + pcibus_t last_addr, new_addr; cmd = pci_get_word(d->config + PCI_COMMAND); for(i = 0; i < PCI_NUM_REGIONS; i++) { @@ -71,18 +71,20 @@ 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); 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; @@ -224,7 +226,7 @@ PCIDevice *pci_register_device(PCIBus *bus, const char *name, PCIConfigWriteFunc *config_write); 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); @@ -1727,7 +1727,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; @@ -1920,7 +1920,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 26acbef..c166db0 100644 --- a/hw/rtl8139.c +++ b/hw/rtl8139.c @@ -3192,7 +3192,7 @@ static const VMStateDescription vmstate_rtl8139 = { /* 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); @@ -3200,7 +3200,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); @@ -344,7 +344,7 @@ void cpu_tick_set_limit(void *opaque, uint64_t limit) } 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 0cafbe6..0f7f4de 100644 --- a/hw/usb-ohci.c +++ b/hw/usb-ohci.c @@ -1706,7 +1706,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 21de293..8babb02 100644 --- a/hw/usb-uhci.c +++ b/hw/usb-uhci.c @@ -1047,7 +1047,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 acc7861..479ffb1 100644 --- a/hw/vga-pci.c +++ b/hw/vga-pci.c @@ -48,7 +48,7 @@ static const VMStateDescription vmstate_vga_pci = { }; 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 1b0702a..aebcf9d 100644 --- a/hw/virtio-pci.c +++ b/hw/virtio-pci.c @@ -344,7 +344,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 baafedd..33e876e 100644 --- a/hw/vmware_vga.c +++ b/hw/vmware_vga.c @@ -1126,7 +1126,7 @@ static void vmsvga_init(struct vmsvga_state_s *s, int vga_ram_size) } 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; @@ -1146,7 +1146,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 75f1fc6..6da396a 100644 --- a/hw/wdt_i6300esb.c +++ b/hw/wdt_i6300esb.c @@ -343,7 +343,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, |