summaryrefslogtreecommitdiff
path: root/src/arch/i386/multiboot.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/i386/multiboot.h')
-rw-r--r--src/arch/i386/multiboot.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/arch/i386/multiboot.h b/src/arch/i386/multiboot.h
new file mode 100644
index 0000000..f030247
--- /dev/null
+++ b/src/arch/i386/multiboot.h
@@ -0,0 +1,31 @@
+#pragma once
+#include <stdint.h>
+
+// TODO assert that pointers have 4 bytes.
+
+struct multiboot_mod {
+ void *start;
+ void *end;
+ const char *str;
+ uint32_t _reserved;
+} __attribute__((packed));
+
+struct multiboot_info {
+ uint32_t flag_mem : 1;
+ uint32_t flag_boot_device : 1;
+ uint32_t flag_cmdline : 1;
+ uint32_t flag_mods : 1;
+ uint32_t _flag_other : 28; // unimplemented
+
+ uint32_t mem_lower;
+ uint32_t mem_upper;
+
+ uint32_t boot_device;
+
+ const char *cmdline;
+
+ uint32_t mods_count;
+ struct multiboot_mod *mods;
+
+ // [...]
+} __attribute__((packed));