[pci] Provide pci_bar_is_io() to determine BAR type

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2026-05-12 18:33:39 +01:00
parent cac27e4882
commit ab9d7b0067
2 changed files with 15 additions and 0 deletions
+14
View File
@@ -80,6 +80,20 @@ static unsigned long pci_bar ( struct pci_device *pci, unsigned int reg ) {
return low;
}
/**
* Get PCI BAR type
*
* @v pci PCI device
* @v reg PCI register number
* @v is_io BAR is an I/O BAR
*/
int pci_bar_is_io ( struct pci_device *pci, unsigned int reg ) {
unsigned long bar;
bar = pci_bar ( pci, reg );
return ( bar & PCI_BASE_ADDRESS_SPACE_IO );
}
/**
* Find the start of a PCI BAR
*
+1
View File
@@ -317,6 +317,7 @@ struct pci_driver {
PCI_SLOT ( (pci)->busdevfn ), PCI_FUNC ( (pci)->busdevfn )
extern void adjust_pci_device ( struct pci_device *pci );
extern int pci_bar_is_io ( struct pci_device *pci, unsigned int reg );
extern unsigned long pci_bar_start ( struct pci_device *pci,
unsigned int reg );
extern void pci_bar_set ( struct pci_device *pci, unsigned int reg,