refactor: isrm to centeralize interrupt/irq resources management.
[lunaix-os.git] / lunaix-os / hal / acpi / parser / madt_parser.c
index baa866c83d1536455ce713d84d2253c9446e3e45..7510d407ddfbc8d07c7e681ec927d9439f6f0383 100644 (file)
@@ -1,5 +1,5 @@
-#include "madt_parser.h"
-#include <lunaix/mm/kalloc.h>
+#include "parser.h"
+#include <lunaix/mm/valloc.h>
 
 void
 madt_parse(acpi_madt_t* madt, acpi_context* toc)
@@ -11,9 +11,8 @@ madt_parse(acpi_madt_t* madt, acpi_context* toc)
     uintptr_t ics_end = (uintptr_t)madt + madt->header.length;
 
     // Cosidering only one IOAPIC present (max 24 pins)
-    // FIXME: use hash table instead
     toc->madt.irq_exception =
-      (acpi_intso_t*)lxcalloc(24, sizeof(acpi_intso_t*));
+      (acpi_intso_t**)vcalloc(24, sizeof(acpi_intso_t*));
 
     size_t so_idx = 0;
     while (ics_start < ics_end) {
@@ -25,8 +24,7 @@ madt_parse(acpi_madt_t* madt, acpi_context* toc)
             case ACPI_MADT_IOAPIC:
                 toc->madt.ioapic = (acpi_ioapic_t*)entry;
                 break;
-            case ACPI_MADT_INTSO:
-            {
+            case ACPI_MADT_INTSO: {
                 acpi_intso_t* intso_tbl = (acpi_intso_t*)entry;
                 toc->madt.irq_exception[intso_tbl->source] = intso_tbl;
                 break;