summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorAlexey Gavrilov <rebovas@yahoo.com>2024-03-26 13:51:05 +0700
committerAlexey Gavrilov <rebovas@yahoo.com>2024-03-26 13:51:05 +0700
commite0bac2387b373316337b177fe8aa9851b0d5e870 (patch)
treea829ca7f1b8b766700f32f975477d49535354c24 /kernel
parent91b4d8fa6bed598e2969f16a7a953e293a1b7f89 (diff)
Implement MADT table
Diffstat (limited to 'kernel')
-rw-r--r--kernel/kernel.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/kernel/kernel.c b/kernel/kernel.c
index dfb03e4..1fb167f 100644
--- a/kernel/kernel.c
+++ b/kernel/kernel.c
@@ -1,6 +1,9 @@
#include "../arch/SecondaryInit.h"
+#include "../drivers/acpi/Acpi.h"
+#include <StringOperations.h>
-#include "../arch/x86/cpuinfo/Cpuinfo.h"
+
+void empty() {};
void main()
{
@@ -10,4 +13,20 @@ void main()
init.devicesInitialize();
out::display << "Hello, World!\n";
+ Rsdp *rsdp = (Rsdp *)StringOperations::findInMemory(Rsdp::signatureString,
+ MemArea(
+ Rsdp::romAreaStart,
+ Rsdp::romAreaEnd));
+ const Rsdt *rsdt = rsdp->getRsdt();
+ const Entry *entry = rsdt->getEntry(1);
+ const Madt *madt = (Madt *)entry;
+ const Ics *icsEntry[10] = {madt->getIcs(0),
+ madt->getIcs(1),
+ madt->getIcs(2),
+ madt->getIcs(3),
+ madt->getIcs(4),
+ madt->getIcs(5),
+ madt->getIcs(6),
+ madt->getIcs(7)};
+ empty();
};