4#include <sys/kassert.h>
7#include <machine/amd64.h>
8#include <machine/amd64op.h>
10#define PCI_PORT_ADDR 0xCF8
11#define PCI_PORT_DATABASE 0xCFC
16 ASSERT(bus < 256 && slot < 64 && func < 8 && reg < 256);
17 return (1 << 31) | (bus << 16) | (slot << 11) | (func << 8) | (reg & 0x00fc);
uint32_t PCICfgRead32(uint32_t bus, uint32_t slot, uint32_t func, uint32_t reg)
uint8_t PCICfgRead8(uint32_t bus, uint32_t slot, uint32_t func, uint32_t reg)
void PCICfgWrite8(uint32_t bus, uint32_t slot, uint32_t func, uint32_t reg, uint8_t data)
#define PCI_PORT_DATABASE
static uint32_t PCIGetAddr(uint32_t bus, uint32_t slot, uint32_t func, uint32_t reg)
void PCICfgWrite32(uint32_t bus, uint32_t slot, uint32_t func, uint32_t reg, uint32_t data)
void PCICfgWrite16(uint32_t bus, uint32_t slot, uint32_t func, uint32_t reg, uint16_t data)
uint16_t PCICfgRead16(uint32_t bus, uint32_t slot, uint32_t func, uint32_t reg)
static INLINE uint8_t inb(uint16_t port)
static INLINE void outw(uint16_t port, uint16_t data)
static INLINE void outb(uint16_t port, uint8_t data)
static INLINE uint16_t inw(uint16_t port)
static INLINE void outl(uint16_t port, uint32_t data)
static INLINE uint32_t inl(uint16_t port)