166 static struct pci_api *apis[] = {
175 for ( i = 0 ; i < (
sizeof ( apis ) /
sizeof ( apis[0] ) ) ; i++ ) {
188 DBGC (
pcicloud,
"PCICLOUD selected %s API (nothing detected)\n",
static void pcicloud_discover(uint32_t busdevfn, struct pci_range *range)
Find next PCI bus:dev.fn address range in system.
struct arbelprm_rc_send_wqe rc
typeof() pci_discover * pci_discover
typeof() pci_read_config_word * pci_read_config_word
typeof() pci_write_config_byte * pci_write_config_byte
PCI configuration space access via PCI BIOS.
typeof() pci_read_config_dword * pci_read_config_dword
#define INIT_EARLY
Early initialisation.
PROVIDE_PCIAPI(cloud, pci_discover, pcicloud_discover)
int pci_write_config_word(struct pci_device *pci, unsigned int where, uint16_t value)
Write 16-bit word to PCI configuration space.
int pci_can_probe(void)
Check if PCI bus probing is allowed.
int pci_read_config_word(struct pci_device *pci, unsigned int where, uint16_t *value)
Read 16-bit word from PCI configuration space.
static int pcicloud_read_config_word(struct pci_device *pci, unsigned int where, uint16_t *value)
Read 16-bit word from PCI configuration space.
static __always_inline void unsigned long bus_addr
Cloud VM PCI configuration space access.
PROVIDE_PCIAPI_INLINE(cloud, pci_can_probe)
struct pci_api pcidirect_api
struct pci_api pcibios_api
static int pcicloud_write_config_word(struct pci_device *pci, unsigned int where, uint16_t value)
Write 16-bit word to PCI configuration space.
uint16_t busdevfn
PCI bus:dev.fn address.
int pci_find_next(struct pci_device *pci, uint32_t *busdevfn)
Find next device on PCI bus.
An initialisation function.
int pci_read_config_dword(struct pci_device *pci, unsigned int where, uint32_t *value)
Read 32-bit dword from PCI configuration space.
pseudo_bit_t value[0x00020]
typeof() pci_write_config_word * pci_write_config_word
struct init_fn pcicloud_init_fn __init_fn(INIT_EARLY)
Cloud VM PCI configuration space access initialisation function.
A PCI bus:dev.fn address range.
static __always_inline void struct pci_range * range
int pci_write_config_byte(struct pci_device *pci, unsigned int where, uint8_t value)
Write byte to PCI configuration space.
#define PCI_FMT
PCI device debug message format.
static int pcicloud_write_config_dword(struct pci_device *pci, unsigned int where, uint32_t value)
Write 32-bit dword to PCI configuration space.
A runtime selectable PCI I/O API.
static void * pcicloud_ioremap(struct pci_device *pci, unsigned long bus_addr, size_t len)
Map PCI bus address as an I/O address.
PCI I/O API for Enhanced Configuration Access Mechanism (ECAM)
typeof() pci_read_config_byte * pci_read_config_byte
typeof() pci_ioremap * pci_ioremap
static int pcicloud_read_config_dword(struct pci_device *pci, unsigned int where, uint32_t *value)
Read 32-bit dword from PCI configuration space.
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
void pci_discover(uint32_t busdevfn, struct pci_range *range)
Find next PCI bus:dev.fn address range in system.
PCI configuration space access via Type 1 accesses.
static int pcicloud_write_config_byte(struct pci_device *pci, unsigned int where, uint8_t value)
Write byte to PCI configuration space.
static struct pci_api * pcicloud
Selected PCI configuration space access API.
#define PCI_ARGS(pci)
PCI device debug message arguments.
int pci_write_config_dword(struct pci_device *pci, unsigned int where, uint32_t value)
Write 32-bit dword to PCI configuration space.
static __always_inline int unsigned int where
static void pcicloud_init(void)
Initialise cloud VM PCI configuration space access.
static int pcicloud_read_config_byte(struct pci_device *pci, unsigned int where, uint8_t *value)
Read byte from PCI configuration space.
void * pci_ioremap(struct pci_device *pci, unsigned long bus_addr, size_t len)
Map PCI bus address as an I/O address.
typeof() pci_write_config_dword * pci_write_config_dword
int pci_read_config_byte(struct pci_device *pci, unsigned int where, uint8_t *value)
Read byte from PCI configuration space.