Architectural Support: x86_64 (#37)
[lunaix-os.git] / lunaix-os / hal / acpi / parser / mcfg_parser.c
index 0efe0d590ceefc954db9ad0fff1e6d508d279be3..cbd139e1e4b38883250fdc5d72f556ca028c82bb 100644 (file)
@@ -1,20 +1,20 @@
 #include "lunaix/syslog.h"
 #include "parser.h"
-#include <lunaix/mm/kalloc.h>
+#include <lunaix/mm/valloc.h>
 
 LOG_MODULE("MCFG")
 
 void
 mcfg_parse(acpi_sdthdr_t* mcfg, acpi_context* toc)
 {
-    size_t alloc_num = (mcfg->length - sizeof(acpi_sdthdr_t) - 8) /
-                       sizeof(struct acpi_mcfg_alloc);
+    size_t alloc_num = (mcfg->length - sizeof(acpi_sdthdr_t) - 8);
+    alloc_num = alloc_num / sizeof(struct acpi_mcfg_alloc);
+
     struct acpi_mcfg_alloc* allocs =
-      (struct acpi_mcfg_alloc*)((uintptr_t)mcfg + (sizeof(acpi_sdthdr_t) + 8));
+      (struct acpi_mcfg_alloc*)((ptr_t)mcfg + (sizeof(acpi_sdthdr_t) + 8));
 
     toc->mcfg.alloc_num = alloc_num;
-    toc->mcfg.allocations =
-      lxmalloc(sizeof(struct mcfg_alloc_info) * alloc_num);
+    toc->mcfg.allocations = valloc(sizeof(struct mcfg_alloc_info) * alloc_num);
 
     for (size_t i = 0; i < alloc_num; i++) {
         toc->mcfg.allocations[i] = (struct mcfg_alloc_info){