summaryrefslogtreecommitdiff
path: root/hw/pci_internals.h
diff options
context:
space:
mode:
Diffstat (limited to 'hw/pci_internals.h')
-rw-r--r--hw/pci_internals.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/hw/pci_internals.h b/hw/pci_internals.h
index c7fd23dc54..96690b72d3 100644
--- a/hw/pci_internals.h
+++ b/hw/pci_internals.h
@@ -24,7 +24,6 @@ struct PCIBus {
void *irq_opaque;
PCIDevice *devices[PCI_SLOT_MAX * PCI_FUNC_MAX];
PCIDevice *parent_dev;
- target_phys_addr_t mem_base;
MemoryRegion *address_space_mem;
MemoryRegion *address_space_io;
@@ -42,6 +41,24 @@ struct PCIBridge {
/* private member */
PCIBus sec_bus;
+ /*
+ * Memory regions for the bridge's address spaces. These regions are not
+ * directly added to system_memory/system_io or its descendants.
+ * Bridge's secondary bus points to these, so that devices
+ * under the bridge see these regions as its address spaces.
+ * The regions are as large as the entire address space -
+ * they don't take into account any windows.
+ */
+ MemoryRegion address_space_mem;
+ MemoryRegion address_space_io;
+ /*
+ * Aliases for each of the address space windows that the bridge
+ * can forward. Mapped into the bridge's parent's address space,
+ * as subregions.
+ */
+ MemoryRegion alias_pref_mem;
+ MemoryRegion alias_mem;
+ MemoryRegion alias_io;
pci_map_irq_fn map_irq;
const char *bus_name;
};