Trace PCI devices on kernel framebuffer

This commit is contained in:
Alex 2022-10-11 00:04:04 +03:00
parent ab1972627e
commit 77050b83e5
Signed by untrusted user who does not match committer: enderice2
GPG Key ID: EACC3AD603BAB4DD
2 changed files with 10 additions and 0 deletions

View File

@ -58,6 +58,15 @@ EXTERNC void Entry(BootInfo *Info)
PowerManager = new Power::Power; PowerManager = new Power::Power;
KPrint("Initializing PCI Manager"); KPrint("Initializing PCI Manager");
PCIManager = new PCI::PCI; PCIManager = new PCI::PCI;
foreach (auto hdr in PCIManager->GetDevices())
{
KPrint("Found PCI device: %s / %s / %s / %s / %s",
PCI::Descriptors::GetVendorName(hdr->VendorID),
PCI::Descriptors::GetDeviceName(hdr->VendorID, hdr->DeviceID),
PCI::Descriptors::DeviceClasses[hdr->Class],
PCI::Descriptors::GetSubclassName(hdr->Class, hdr->Subclass),
PCI::Descriptors::GetProgIFName(hdr->Class, hdr->Subclass, hdr->ProgIF));
}
while (1) while (1)
CPU::Halt(); CPU::Halt();
} }

View File

@ -142,6 +142,7 @@ namespace PCI
Vector<PCIDeviceHeader *> Devices; Vector<PCIDeviceHeader *> Devices;
public: public:
Vector<PCIDeviceHeader *> &GetDevices() { return Devices; }
void EnumerateFunction(uint64_t DeviceAddress, uint64_t Function); void EnumerateFunction(uint64_t DeviceAddress, uint64_t Function);
void EnumerateDevice(uint64_t BusAddress, uint64_t Device); void EnumerateDevice(uint64_t BusAddress, uint64_t Device);
void EnumerateBus(uint64_t BaseAddress, uint64_t Bus); void EnumerateBus(uint64_t BaseAddress, uint64_t Bus);