diff options
author | Freya Murphy <freya@freyacat.org> | 2025-04-03 23:04:38 -0400 |
---|---|---|
committer | Freya Murphy <freya@freyacat.org> | 2025-04-03 23:04:38 -0400 |
commit | d0854aa095421f225f7004cdcca0b8ad074303c5 (patch) | |
tree | d7c52aee6c0aa574e1b4230b5f28d49342470862 /kernel/mboot | |
parent | load multiboot memory map, heap is done!!! (diff) | |
download | comus-d0854aa095421f225f7004cdcca0b8ad074303c5.tar.gz comus-d0854aa095421f225f7004cdcca0b8ad074303c5.tar.bz2 comus-d0854aa095421f225f7004cdcca0b8ad074303c5.zip |
fmt
Diffstat (limited to 'kernel/mboot')
-rw-r--r-- | kernel/mboot/mboot.c | 6 | ||||
-rw-r--r-- | kernel/mboot/mboot.h | 15 | ||||
-rw-r--r-- | kernel/mboot/mmap.c | 31 |
3 files changed, 20 insertions, 32 deletions
diff --git a/kernel/mboot/mboot.c b/kernel/mboot/mboot.c index 08a0f37..9156c3c 100644 --- a/kernel/mboot/mboot.c +++ b/kernel/mboot/mboot.c @@ -3,13 +3,13 @@ void *locate_mboot_table(volatile void *mboot, uint32_t type) { - struct mboot_info *info = (struct mboot_info *) mboot; - const char *mboot_end = ((char *) info) + info->total_size; + struct mboot_info *info = (struct mboot_info *)mboot; + const char *mboot_end = ((char *)info) + info->total_size; char *tag_ptr = info->tags; while (tag_ptr < mboot_end) { - struct mboot_tag *tag = (struct mboot_tag *) tag_ptr; + struct mboot_tag *tag = (struct mboot_tag *)tag_ptr; if (tag->type == type) return tag; diff --git a/kernel/mboot/mboot.h b/kernel/mboot/mboot.h index 39a961d..db85de1 100644 --- a/kernel/mboot/mboot.h +++ b/kernel/mboot/mboot.h @@ -11,14 +11,14 @@ #include <lib.h> -#define MBOOT_HEADER_MAGIC 0x36D76289 +#define MBOOT_HEADER_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 +#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 { uint32_t total_size; @@ -70,7 +70,6 @@ struct mboot_tag_mmap { struct mboot_mmap_entry entries[]; }; - struct mboot_tag_old_rsdp { uint32_t type; uint32_t size; diff --git a/kernel/mboot/mmap.c b/kernel/mboot/mmap.c index c17d510..ff38771 100644 --- a/kernel/mboot/mmap.c +++ b/kernel/mboot/mmap.c @@ -5,41 +5,30 @@ #include <stdint.h> #include <stdio.h> -static const char *segment_type[] = { - "Reserved", - "Free", - "Reserved", - "ACPI Reserved", - "Hibernation", - "Defective", - "Unknown" -}; +static const char *segment_type[] = { "Reserved", "Free", + "Reserved", "ACPI Reserved", + "Hibernation", "Defective", + "Unknown" }; void mboot_load_mmap(volatile void *mboot, struct memory_map *res) { void *tag = locate_mboot_table(mboot, MBOOT_MEMORY_MAP); - struct mboot_tag_mmap *mmap = (struct mboot_tag_mmap *) tag; + struct mboot_tag_mmap *mmap = (struct mboot_tag_mmap *)tag; int idx = 0; uintptr_t i = (uintptr_t)mmap->entries; printf("MEMORY MAP\n"); char buf[20]; - for (; - i < (uintptr_t)mmap->entries + mmap->size; - i += mmap->entry_size, idx++ - ) { - struct mboot_mmap_entry *seg = (struct mboot_mmap_entry *) i; + for (; i < (uintptr_t)mmap->entries + mmap->size; + i += mmap->entry_size, idx++) { + struct mboot_mmap_entry *seg = (struct mboot_mmap_entry *)i; const char *type = NULL; if (seg->type > 6) type = segment_type[6]; else type = segment_type[seg->type]; - printf("ADDR: %16p LEN: %4s TYPE: %s (%d)\n", - (void *)seg->addr, - btoa(seg->len, buf), - type, - seg->type - ); + printf("ADDR: %16p LEN: %4s TYPE: %s (%d)\n", (void *)seg->addr, + btoa(seg->len, buf), type, seg->type); if (seg->type != 1 || seg->len < 1) continue; res->entries[idx].addr = seg->addr; |