aboutsummaryrefslogtreecommitdiff
path: root/src/kernel/multiboot.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/multiboot.cc')
-rw-r--r--src/kernel/multiboot.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/kernel/multiboot.cc b/src/kernel/multiboot.cc
new file mode 100644
index 0000000..024916e
--- /dev/null
+++ b/src/kernel/multiboot.cc
@@ -0,0 +1,10 @@
+#include <multiboot2.h>
+#include <types.h>
+
+uint32_t check_multiboot(uint32_t mb_magic, uint32_t mb_addr) {
+ if (mb_magic != MULTIBOOT2_BOOTLOADER_MAGIC) return 0;
+ if (mb_addr & 7) return 0;
+
+ const uint32_t size = *reinterpret_cast<uint32_t*>(mb_addr);
+ return size;
+}