pci: implement bridge filtering
authorMichael S. Tsirkin <mst@redhat.com>
Sun, 4 Sep 2011 13:50:55 +0000 (16:50 +0300)
committerMichael S. Tsirkin <mst@redhat.com>
Mon, 19 Sep 2011 18:22:30 +0000 (21:22 +0300)
commitc6ba489393ef9d5dac8635a3af1e051dbead4c10
tree971c4a48a90fc03a1ae3b3c743fd59d8bbbc1907
parenta309e8fa4bfcbe6f9ee60211070d74269d7523b8
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>
hw/pci.c
hw/pci.h
hw/pci_bridge.c
hw/pci_internals.h