summaryrefslogtreecommitdiff
path: root/kernel/acpi.c
diff options
context:
space:
mode:
authorMiguel <m.i@gmx.at>2018-09-10 19:08:04 +0200
committerMiguel <m.i@gmx.at>2018-09-10 19:08:04 +0200
commitee2ec6abbcfb6de48a8f5594e05ba0a837216fa8 (patch)
tree6173e5182459529ac5dc3fbb59b30fd37c5ee4ab /kernel/acpi.c
parent65f5cca027af81e77b3e06da658b6d13f1861a03 (diff)
apic et al.
Diffstat (limited to 'kernel/acpi.c')
-rw-r--r--kernel/acpi.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/acpi.c b/kernel/acpi.c
index f424312..67f31fb 100644
--- a/kernel/acpi.c
+++ b/kernel/acpi.c
@@ -57,6 +57,7 @@ static uint8_t *apci_get_next_entry(uint8_t *addr,acpi_information *procdata)
if(*addr==0)
{
klog("Type 0: LocalAPIC (enabled=%d) (id=0x%08X)",addr[4]&1,addr[3]);
+
// usable
if(addr[4]&1)
{
@@ -74,10 +75,10 @@ static uint8_t *apci_get_next_entry(uint8_t *addr,acpi_information *procdata)
{
klog("Type 1: IO APIC (id=%d) (addr=0x%08X) (base=%d)",addr[2], *((uint32_t*)&addr[4]),*((uint32_t*)&addr[8]));
procdata->io_apic_address=*((uint32_t*)&addr[4]);
+ fixme("support multiple IO Apics and consider interrupt source overrides during irq config!");
}
else if(*addr==2){
klog("Type 2: Interrupt Source Override (bus src=%d) (irq src=%d) (global=%d) (flags=%d)",addr[2],addr[3],*((uint32_t*)&addr[4]),*((uint16_t*)&addr[8]));
-
}
else if(*addr==4){
klog("Type 4: Non-maskable interrupts (proc id=%d) (flags=%d) (LINT#=%d)",addr[2],*((uint16_t*)&addr[3]),addr[5]);