summaryrefslogtreecommitdiff
path: root/kernel/acpi.c
diff options
context:
space:
mode:
authorMiguel <m.i@gmx.at>2018-09-09 03:17:52 +0200
committerMiguel <m.i@gmx.at>2018-09-09 03:17:52 +0200
commitfc1d491479abd74a1e038ad9ff7d4d330d79e4a8 (patch)
tree173bc4bca336fbc8a53c9bbd3468946499e161ae /kernel/acpi.c
parent9dabe01545644dd78448d8d489616872f14d964b (diff)
ioapic works!
Diffstat (limited to 'kernel/acpi.c')
-rw-r--r--kernel/acpi.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/kernel/acpi.c b/kernel/acpi.c
index f5c18ca..5192c37 100644
--- a/kernel/acpi.c
+++ b/kernel/acpi.c
@@ -1,9 +1,4 @@
-#include "kernel/kernel.h"
-// Advanced Configuration and Power Interface
-// http://wiki.xomb.org/index.php?title=ACPI_Tables
-// https://wiki.osdev.org/MADT#Entry_Type_1_:_I.2FO_APIC
-
-
+#include "kernel.h"
#include <stdint.h>
#include <stdbool.h>
#include "smp.h"
@@ -79,6 +74,7 @@ uint8_t *apci_get_next_entry(uint8_t *addr,smp_processors *procdata)
else if(*addr==1)
{
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]);
}
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]));