pci: add API to get a BAR's mapped address
Some (hacky) devices that have a back-channel to read this address back outside the normal configuration mechanisms, such as VMware svga. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Avi Kivity <avi@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
		
							parent
							
								
									2dd3022826
								
							
						
					
					
						commit
						16a96f288a
					
				
							
								
								
									
										5
									
								
								hw/pci.c
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								hw/pci.c
									
									
									
									
									
								
							| @ -952,6 +952,11 @@ void pci_register_bar_region(PCIDevice *pci_dev, int region_num, | ||||
|     pci_dev->io_regions[region_num].memory = memory; | ||||
| } | ||||
| 
 | ||||
| pcibus_t pci_get_bar_addr(PCIDevice *pci_dev, int region_num) | ||||
| { | ||||
|     return pci_dev->io_regions[region_num].addr; | ||||
| } | ||||
| 
 | ||||
| static void pci_bridge_filter(PCIDevice *d, pcibus_t *addr, pcibus_t *size, | ||||
|                               uint8_t type) | ||||
| { | ||||
|  | ||||
							
								
								
									
										1
									
								
								hw/pci.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								hw/pci.h
									
									
									
									
									
								
							| @ -207,6 +207,7 @@ void pci_register_bar_simple(PCIDevice *pci_dev, int region_num, | ||||
|                              pcibus_t size, uint8_t attr, ram_addr_t ram_addr); | ||||
| void pci_register_bar_region(PCIDevice *pci_dev, int region_num, | ||||
|                              uint8_t attr, MemoryRegion *memory); | ||||
| pcibus_t pci_get_bar_addr(PCIDevice *pci_dev, int region_num); | ||||
| 
 | ||||
| int pci_add_capability(PCIDevice *pdev, uint8_t cap_id, | ||||
|                        uint8_t offset, uint8_t size); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Avi Kivity
						Avi Kivity