summaryrefslogtreecommitdiffstats
path: root/src/arch/x86/include/ipxe
diff options
context:
space:
mode:
authorSimon Rettberg2022-10-21 17:22:09 +0200
committerSimon Rettberg2022-10-21 17:22:09 +0200
commit80109b804a700384799d54134ceebf4f40a8b7a3 (patch)
treebbdf311ed02dd2c5c1f0a8d1997519ed2c24d93e /src/arch/x86/include/ipxe
parentMerge branch 'master' into openslx (diff)
parent[tls] Add support for Ephemeral Diffie-Hellman key exchange (diff)
downloadipxe-80109b804a700384799d54134ceebf4f40a8b7a3.tar.gz
ipxe-80109b804a700384799d54134ceebf4f40a8b7a3.tar.xz
ipxe-80109b804a700384799d54134ceebf4f40a8b7a3.zip
Merge branch 'master' into openslx
Diffstat (limited to 'src/arch/x86/include/ipxe')
-rw-r--r--src/arch/x86/include/ipxe/pcibios.h2
-rw-r--r--src/arch/x86/include/ipxe/pcicloud.h18
-rw-r--r--src/arch/x86/include/ipxe/pcidirect.h16
3 files changed, 31 insertions, 5 deletions
diff --git a/src/arch/x86/include/ipxe/pcibios.h b/src/arch/x86/include/ipxe/pcibios.h
index bae4eede1..3caea1cfe 100644
--- a/src/arch/x86/include/ipxe/pcibios.h
+++ b/src/arch/x86/include/ipxe/pcibios.h
@@ -145,4 +145,6 @@ PCIAPI_INLINE ( pcbios, pci_ioremap ) ( struct pci_device *pci __unused,
return ioremap ( bus_addr, len );
}
+extern struct pci_api pcibios_api;
+
#endif /* _IPXE_PCIBIOS_H */
diff --git a/src/arch/x86/include/ipxe/pcicloud.h b/src/arch/x86/include/ipxe/pcicloud.h
new file mode 100644
index 000000000..52268908c
--- /dev/null
+++ b/src/arch/x86/include/ipxe/pcicloud.h
@@ -0,0 +1,18 @@
+#ifndef _IPXE_PCICLOUD_H
+#define _IPXE_PCICLOUD_H
+
+/** @file
+ *
+ * Cloud VM PCI configuration space access
+ *
+ */
+
+FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
+
+#ifdef PCIAPI_CLOUD
+#define PCIAPI_PREFIX_cloud
+#else
+#define PCIAPI_PREFIX_cloud __cloud_
+#endif
+
+#endif /* _IPXE_PCICLOUD_H */
diff --git a/src/arch/x86/include/ipxe/pcidirect.h b/src/arch/x86/include/ipxe/pcidirect.h
index decdc8100..98c6a2bbb 100644
--- a/src/arch/x86/include/ipxe/pcidirect.h
+++ b/src/arch/x86/include/ipxe/pcidirect.h
@@ -26,14 +26,18 @@ struct pci_device;
extern void pcidirect_prepare ( struct pci_device *pci, int where );
/**
- * Determine number of PCI buses within system
+ * Find next PCI bus:dev.fn address range in system
*
- * @ret num_bus Number of buses
+ * @v busdevfn Starting PCI bus:dev.fn address
+ * @v range PCI bus:dev.fn address range to fill in
*/
-static inline __always_inline int
-PCIAPI_INLINE ( direct, pci_num_bus ) ( void ) {
+static inline __always_inline void
+PCIAPI_INLINE ( direct, pci_discover ) ( uint32_t busdevfn __unused,
+ struct pci_range *range ) {
+
/* Scan first bus and rely on bridge detection to find higher buses */
- return 1;
+ range->start = PCI_BUSDEVFN ( 0, 0, 0, 0 );
+ range->count = PCI_BUSDEVFN ( 0, 1, 0, 0 );
}
/**
@@ -151,4 +155,6 @@ PCIAPI_INLINE ( direct, pci_ioremap ) ( struct pci_device *pci __unused,
return ioremap ( bus_addr, len );
}
+extern struct pci_api pcidirect_api;
+
#endif /* _PCIDIRECT_H */