From f84c55f194df088c291fc4359ccec1305be456ce Mon Sep 17 00:00:00 2001 From: dzwdz Date: Sat, 17 Jul 2021 19:03:45 +0200 Subject: basic boot module support This loads a file from the boot disk into memory. Currently it just gets printed, but it's going to become a real executable soon. --- src/arch/i386/multiboot.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/arch/i386/multiboot.h (limited to 'src/arch/i386/multiboot.h') 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 + +// 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)); -- cgit v1.2.3