#define PCI_FUNC(busdevfn)
uint32_t start
Starting bus:dev.fn address.
static void pcicloud_discover(uint32_t busdevfn, struct pci_range *range)
Find next PCI bus:dev.fn address range in system.
#define PCI_BUS(busdevfn)
typeof() pci_discover * pci_discover
struct pci_range range
PCI bus:dev.fn address range.
typeof() pci_read_config_word * pci_read_config_word
int pci_can_probe(struct pci_device *pci)
Check if PCI bus probing is allowed.
typeof() pci_write_config_byte * pci_write_config_byte
typeof() pci_read_config_dword * pci_read_config_dword
uint32_t first
First block in range.
static struct pci_api * pcicloud_api(struct pci_device *pci)
Find configuration space access API for PCI device.
int pci_write_config_word(struct pci_device *pci, unsigned int where, uint16_t value)
Write 16-bit word to PCI configuration space.
struct pci_api * api
API for this bus:dev.fn address.
int pci_read_config_word(struct pci_device *pci, unsigned int where, uint16_t *value)
Read 16-bit word from PCI configuration space.
#define PCI_APIS
Runtime selectable PCI API table.
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(cloud, pci_can_probe, pcicloud_can_probe)
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.
void * memcpy(void *dest, const void *src, size_t len) __nonnull
typeof() pci_can_probe * pci_can_probe
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
A PCI bus:dev.fn address range.
static struct pci_api * pcicloud_find(uint32_t busdevfn, struct pci_range *range)
Find PCI configuration space access API for address.
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.
#define PCI_SLOT(busdevfn)
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.
#define for_each_table_entry(pointer, table)
Iterate through all entries within a linker table.
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.
static int pcicloud_can_probe(struct pci_device *pci)
Check if PCI bus probing is allowed.
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
unsigned int count
Number of bus:dev.fn addresses within this range.
void pci_discover(uint32_t busdevfn, struct pci_range *range)
Find next PCI bus:dev.fn address range in system.
uint32_t busdevfn
Segment, bus, device, and function (bus:dev.fn) number.
static int pcicloud_write_config_byte(struct pci_device *pci, unsigned int where, uint8_t value)
Write byte to PCI configuration space.
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
#define table_end(table)
Get end of linker table.
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.
#define PCI_SEG(busdevfn)
#define NULL
NULL pointer (VOID *)
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.
static struct @8 pcicloud
Cached PCI configuration space access API.