summaryrefslogtreecommitdiffstats
path: root/hw/pci_internals.h
diff options
context:
space:
mode:
authorMichael S. Tsirkin <mst@redhat.com>2011-09-04 16:50:55 +0300
committerMichael S. Tsirkin <mst@redhat.com>2011-09-19 21:22:30 +0300
commit7df32ca08ad0afdac623e43a99984c26177468f0 (patch)
tree971c4a48a90fc03a1ae3b3c743fd59d8bbbc1907 /hw/pci_internals.h
parent778d1799397e1353b69f16547d359f944fb49ea6 (diff)
downloadhqemu-7df32ca08ad0afdac623e43a99984c26177468f0.zip
hqemu-7df32ca08ad0afdac623e43a99984c26177468f0.tar.gz
pci: implement bridge filtering
Support bridge filtering on top of the memory API as suggested by Avi Kivity: Create a memory region for the bridge's address space. This region is not directly added to system_memory or its descendants. Devices under the bridge see this region as its pci_address_space(). The region is as large as the entire address space - it does not take into account any windows. For each of the three windows (pref, non-pref, vga), create an alias with the appropriate start and size. Map the alias into the bridge's parent's pci_address_space(), as subregions. Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'hw/pci_internals.h')
-rw-r--r--hw/pci_internals.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/hw/pci_internals.h b/hw/pci_internals.h
index 10b4adf..71c8b51 100644
--- a/hw/pci_internals.h
+++ b/hw/pci_internals.h
@@ -41,6 +41,9 @@ struct PCIBridge {
/* private member */
PCIBus sec_bus;
+ MemoryRegion alias_pref_mem;
+ MemoryRegion alias_mem;
+ MemoryRegion alias_io;
pci_map_irq_fn map_irq;
const char *bus_name;
};
OpenPOWER on IntegriCloud