1#ifndef __HAL__PCI__PCI_H_
2#define __HAL__PCI__PCI_H_
15#define PCI_MAX_SEGMENTS 16
elf_section_map uintptr_t base
void legacy_write32(uintptr_t base, uint8_t bus, uint8_t dev, uint8_t func, uint16_t offset, uint32_t val)
void pci_write8(uint8_t bus, uint8_t dev, uint8_t func, uint16_t off, uint8_t val)
struct pci_segment pci_segment_t
uint64_t pci_read64(uint8_t bus, uint8_t dev, uint8_t func, uint16_t off)
@ PCI_HEADER_TYPE_PCI_TO_PCI_BRIDGE
@ PCI_HEADER_TYPE_STANDARD_DEVICE
@ PCI_HEADER_TYPE_CARDBUS_BRIDGE
void pci_write16(uint8_t bus, uint8_t dev, uint8_t func, uint16_t off, uint16_t val)
void pci_write32(uint8_t bus, uint8_t dev, uint8_t func, uint16_t off, uint32_t val)
uint16_t pci_read16(uint8_t bus, uint8_t dev, uint8_t func, uint16_t off)
struct pci_access_ops pci_access_ops_t
void pci_write64(uint8_t bus, uint8_t dev, uint8_t func, uint16_t off, uint64_t val)
uint32_t legacy_read32(uintptr_t base, uint8_t bus, uint8_t dev, uint8_t func, uint16_t offset)
uint8_t pci_read8(uint8_t bus, uint8_t dev, uint8_t func, uint16_t off)
void register_segment(uint16_t seg_id, uint8_t start, uint8_t end, uintptr_t vbase, pci_access_ops_t *ops, PCI_SEGMENT_TYPE type)
uint32_t pci_read32(uint8_t bus, uint8_t dev, uint8_t func, uint16_t off)
uint32_t(* read32)(uintptr_t base, uint8_t bus, uint8_t dev, uint8_t func, uint16_t offset)
void(* write32)(uintptr_t base, uint8_t bus, uint8_t dev, uint8_t func, uint16_t offset, uint32_t val)