summaryrefslogtreecommitdiff
path: root/kernel/multiboot.h
diff options
context:
space:
mode:
authorMichal Idziorek <m.i@gmx.at>2015-05-13 01:18:53 +0200
committerMichal Idziorek <m.i@gmx.at>2015-05-13 01:18:53 +0200
commitd7c12c5210ed1545549b9d2b14fb9fb89ce652e2 (patch)
tree845e62b2f504138e7a95e35eee31d9b3a38bb287 /kernel/multiboot.h
parent2c1148e7920cf1d4c772d0d81757a7f8d736648e (diff)
implementing multiboot spec stuff
Diffstat (limited to 'kernel/multiboot.h')
-rw-r--r--kernel/multiboot.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/kernel/multiboot.h b/kernel/multiboot.h
new file mode 100644
index 0000000..874e473
--- /dev/null
+++ b/kernel/multiboot.h
@@ -0,0 +1,50 @@
+//# https://www.gnu.org/software/grub/manual/multiboot/multiboot.html#Boot-information-format
+
+
+#include <stdbool.h>
+#include <stdint.h>
+
+typedef struct multiboot_information_struct
+{
+ uint32_t flags;
+ uint32_t mem_lower;
+ uint32_t mem_upper;
+ uint32_t boot_device;
+ uint32_t cmdline;
+ uint32_t mods_count;
+ uint32_t mods_addr;
+ uint32_t mods_syms[4];
+ uint32_t mmap_length;
+ uint32_t mmap_addr;
+ uint32_t drives_length;
+ uint32_t drives_addr;
+ uint32_t config_table;
+ uint32_t boot_loader_name;
+ uint32_t amp_table;
+ uint32_t vbe_control_info;
+ uint32_t vbe_mode_info;
+ uint16_t vbe_mode;
+ uint16_t vbe_interface_seg;
+ uint16_t vbe_interface_off;
+ uint16_t vbe_interface_len;
+
+
+}multiboot_information;
+
+typedef struct multiboot_mmap_struct
+{
+ uint32_t size;
+ uint64_t base_addr;
+ uint64_t length;
+ uint32_t type;
+
+}multiboot_mmap;
+
+typedef struct multiboot_mod_struct
+{
+ uint32_t mod_start;
+ uint32_t mod_end;
+ uint32_t string;
+ uint32_t reserved;
+
+}multiboot_mod;