PCI
| Member Type | Member Name |
|---|---|
uint8_t | bus |
uint8_t | device |
uint8_t | function |
uint16_t | vendor_id |
uint16_t | device_id |
uint8_t | class_code |
uint8_t | subclass |
uint8_t | prog_if |
uint8_t | revision |
| Member Type | Member Name |
|---|---|
char | *name |
uint8_t | class_code |
uint8_t | subclass |
uint8_t | prog_if |
uint16_t | vendor_id |
void | (*initialize)(uint8_t, uint8_t, uint8_t, struct pci_device *) |
| Member Type | Member Name |
|---|---|
uint32_t | msg_addr_low |
uint32_t | msg_addr_high |
uint32_t | msg_data |
uint32_t | vector_ctrl |
| Member Type | Member Name |
|---|---|
uint8_t | cap_id |
uint8_t | next_ptr |
uint16_t | msg_ctl |
uint32_t | table_offset_bir |
uint32_t | pba_offset_bir |
static inline uint16_tpci_read_config16(uint8_t bus,uint8_t device,uint8_t function,uint8_t offset)static inline uint8_tpci_read_config8(uint8_t bus,uint8_t device,uint8_t function,uint8_t offset)static inline voidpci_write_config16(uint8_t bus,uint8_t device,uint8_t function,uint8_t offset,uint16_t value)static inline uint32_tpci_config_address(uint8_t bus,uint8_t slot,uint8_t func,uint8_t offset)static inline uint32_tpci_read(uint8_t bus,uint8_t slot,uint8_t func,uint8_t offset)static inline uint16_tpci_read_word(uint8_t bus,uint8_t slot,uint8_t func,uint8_t offset)static inline uint8_tpci_read_byte(uint8_t bus,uint8_t slot,uint8_t func,uint8_t offset)static inline voidpci_write(uint8_t bus,uint8_t slot,uint8_t func,uint8_t offset,uint32_t value)static inline voidpci_write_word(uint8_t bus,uint8_t slot,uint8_t func,uint8_t offset,uint16_t value)static inline voidpci_write_byte(uint8_t bus,uint8_t slot,uint8_t func,uint8_t offset,uint8_t value)const char *pci_class_name(uint8_t class_code,uint8_t subclass)voidpci_scan_devices(struct pci_device**devices_out,uint64_t *count_out)uint32_tpci_read_bar(uint8_t bus,uint8_t device,uint8_t function,uint8_t bar_index)voidpci_enable_msix(uint8_t bus,uint8_t slot,uint8_t func)voidpci_enable_msix_on_core(uint8_t bus,uint8_t slot,uint8_t func,uint8_t vector,uint8_t core)voidpci_init_devices(struct pci_device*devices,uint64_t count)uint8_tpci_find_capability(uint8_t bus,uint8_t slot,uint8_t func,uint8_t cap_id)voidpci_program_msix_entry(uint8_t bus,uint8_t slot,uint8_t func,uint32_t table_index,uint8_t vector,uint8_t apic_id)
Defines
Section titled “Defines”PCI_CLASS_MASS_STORAGE:0x01PCI_SUBCLASS_NVM:0x08PCI_PROGIF_NVME:0x02PCI_BAR0:0x10PCI_BAR1:0x14PCI_BAR2:0x18PCI_BAR3:0x1CPCI_BAR4:0x20PCI_BAR5:0x24PCI_CAP_PTR:0x34PCI_CAP_ID_MSIX:0x11PCI_CONFIG_ADDRESS:0xCF8PCI_CONFIG_DATA:0xCFCPCI_INTERRUPT_LINE:0x3CPCI_PROG_IF:0x09