mirror of
https://github.com/EnderIce2/Fennix.git
synced 2025-05-28 15:34:31 +00:00
feat(kernel/pci): add device initialization method for PCI devices
Signed-off-by: EnderIce2 <enderice2@protonmail.com>
This commit is contained in:
parent
65ab83b42b
commit
aea8a7bb08
@ -982,6 +982,18 @@ namespace PCI
|
||||
}
|
||||
}
|
||||
|
||||
void Manager::InitializeDevice(PCIDevice Device, Memory::PageTable *Table)
|
||||
{
|
||||
this->MapPCIAddresses(Device, Table);
|
||||
|
||||
PCI::PCIDeviceHeader *Header = Device.Header;
|
||||
|
||||
Header->Command |= PCI_COMMAND_MASTER |
|
||||
PCI_COMMAND_IO |
|
||||
PCI_COMMAND_MEMORY;
|
||||
Header->Command &= ~PCI_COMMAND_INTX_DISABLE;
|
||||
}
|
||||
|
||||
void Manager::EnumerateFunction(uint64_t DeviceAddress, uint32_t Function, PCIDevice dev)
|
||||
{
|
||||
dev.Function = Function;
|
||||
|
@ -232,6 +232,7 @@ namespace PCI
|
||||
public:
|
||||
std::list<PCIDevice> GetDevices() { return Devices; }
|
||||
void MapPCIAddresses(PCIDevice Device, Memory::PageTable *Table);
|
||||
void InitializeDevice(PCIDevice Device, Memory::PageTable *Table);
|
||||
void EnumerateFunction(uint64_t DeviceAddress, uint32_t Function, PCIDevice dev);
|
||||
void EnumerateDevice(uint64_t BusAddress, uint32_t Device, PCIDevice dev);
|
||||
void EnumerateBus(uint64_t BaseAddress, uint32_t Bus, PCIDevice dev);
|
||||
|
Loading…
x
Reference in New Issue
Block a user