ableos/sysdata/libraries/pci/src/lib.hb
2024-09-16 20:45:00 -05:00

32 lines
599 B
Plaintext

stn := @use("rel:../../stn/src/lib.hb");
.{string, memory, buffer} := stn
PCIAddress := struct {
bus: u8,
device: u8,
function: u8,
}
find_device := fn(vendor_id: int, device_id: int, pci_address: PCIAddress): int {
return 1
}
scan_bus := fn(): void {
}
config_read32 := fn(bus: u32, device: u32, func: u32, offset: u32): u32 {
// construct address param
offset_and := offset & 0xFC
address := bus << 16
address |= device << 11
address |= func << 8
address |= offset_and
address |= 0x80000000
// write address
memory.outl(0xCF8, address)
// read data
return memory.inl(0xCFC)
}