summaryrefslogtreecommitdiff
path: root/kernel/mboot/mboot.h
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2025-04-08 17:55:23 -0400
committerFreya Murphy <freya@freyacat.org>2025-04-08 17:55:23 -0400
commit0d8a06e96d70b5a6a23dd086737a8df30f709e0e (patch)
treef06e93ef53acd7e2be157a745fb6e8480b563727 /kernel/mboot/mboot.h
parentbacktrace (diff)
downloadcomus-0d8a06e96d70b5a6a23dd086737a8df30f709e0e.tar.gz
comus-0d8a06e96d70b5a6a23dd086737a8df30f709e0e.tar.bz2
comus-0d8a06e96d70b5a6a23dd086737a8df30f709e0e.zip
refactor mboot
Diffstat (limited to 'kernel/mboot/mboot.h')
-rw-r--r--kernel/mboot/mboot.h82
1 files changed, 3 insertions, 79 deletions
diff --git a/kernel/mboot/mboot.h b/kernel/mboot/mboot.h
index 7e8c09a..8887aec 100644
--- a/kernel/mboot/mboot.h
+++ b/kernel/mboot/mboot.h
@@ -11,93 +11,17 @@
#include <lib.h>
-#define MBOOT_HEADER_MAGIC 0x36D76289
+#define MULTIBOOT2_BOOTLOADER_MAGIC 0x36D76289
-#define MBOOT_CMDLINE 1
-#define MBOOT_MEMORY_MAP 6
-#define MBOOT_FRAMEBUFFER 8
-#define MBOOT_ELF_SYMBOLS 9
-#define MBOOT_OLD_RSDP 14
-#define MBOOT_NEW_RSDP 15
-
-struct mboot_info {
+struct multiboot {
uint32_t total_size;
uint32_t reserved;
char tags[];
};
-struct mboot_tag {
- uint32_t type;
- uint32_t size;
- char data[];
-};
-
-struct mboot_tag_elf_sections {
- uint32_t type;
- uint32_t size;
- uint16_t num;
- uint16_t entsize;
- uint16_t shndx;
- uint16_t reserved;
- char sections[];
-};
-
-struct mboot_tag_elf_sections_entry {
- uint32_t sh_name;
- uint32_t sh_type;
- uint64_t sh_flags;
- uint64_t sh_addr;
- uint64_t sh_offset;
- uint64_t sh_size;
- uint32_t sh_link;
- uint32_t sh_info;
- uint64_t sh_addralign;
- uint64_t sh_entsize;
-};
-
-struct mboot_mmap_entry {
- uint64_t addr;
- uint64_t len;
- uint32_t type;
- uint32_t zero;
-};
-
-struct mboot_tag_mmap {
- uint32_t type;
- uint32_t size;
- uint32_t entry_size;
- uint32_t entry_version;
- struct mboot_mmap_entry entries[];
-};
-
-struct mboot_tag_old_rsdp {
- uint32_t type;
- uint32_t size;
- char rsdp[];
-};
-
-struct mboot_tag_new_rsdp {
- uint32_t type;
- uint32_t size;
- char rsdp[];
-};
-
-struct mboot_tag_cmdline {
- uint32_t type;
- uint32_t size;
- uint8_t cmdline[];
-};
-
-struct mboot_tag_framebuffer {
+struct multiboot_tag {
uint32_t type;
uint32_t size;
- uint64_t framebuffer_addr;
- uint32_t framebuffer_pitch;
- uint32_t framebuffer_width;
- uint32_t framebuffer_height;
- uint8_t framebuffer_bpp;
- uint8_t framebuffer_type;
- uint16_t reserved;
};
void *locate_mboot_table(uint32_t type);