Kernel: Implement PCI interrupt routing

This does not really work but I have no idea what I'm doing wrong
This commit is contained in:
2025-04-01 23:03:33 +03:00
parent 76bad31dd5
commit 96767f5ca8
3 changed files with 250 additions and 12 deletions

View File

@@ -2,6 +2,7 @@
#include <BAN/UniqPtr.h>
#include <BAN/Vector.h>
#include <kernel/ACPI/AML/Node.h>
#include <kernel/Memory/Types.h>
#include <kernel/Storage/StorageController.h>
@@ -119,6 +120,9 @@ namespace Kernel::PCI
void enable_pin_interrupts();
void disable_pin_interrupts();
BAN::ErrorOr<uint8_t> route_prt_entry(const ACPI::AML::Node& routing_entry);
BAN::ErrorOr<uint8_t> find_intx_interrupt();
private:
bool m_is_valid { false };
uint8_t m_bus { 0 };

View File

@@ -98,6 +98,8 @@ namespace Kernel
private:
Thread(pid_t tid, Process*);
void setup_exec_impl(uintptr_t entry, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3);
static void on_exit_trampoline(Thread*);
void on_exit();