summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/entry_efi.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/kernel/entry_efi.c b/kernel/entry_efi.c
index 01a5f93..7d8e058 100644
--- a/kernel/entry_efi.c
+++ b/kernel/entry_efi.c
@@ -13,8 +13,12 @@
static noreturn void hang(void);
-static void parse_efi_memmap(struct efi_memory_map_data *map)
+static void efi_memory_init(struct efi_memory_map_data *map)
{
+ // FIXME: bad girl shit: overwriting on aliased pointers.
+ // this is a temporary solution to shortcomings with
+ // loader boot data. it's sort-of OK because the memory_range struct
+ // is smaller than EFI_MEMORY_DESCRIPTOR. it's still not good.
struct memory_range *ranges = (struct memory_range *)map->data;
int entries = map->size / map->descsize;
@@ -60,13 +64,7 @@ noreturn void kernel_entry(struct efi_boot_data *data)
cpu_init();
serial_init();
kputs("<hacker voice> i'm in\r\n");
- parse_efi_memmap(data->memory_map);
- for (int i = 0; i < 10; i++)
- {
- phys_addr_t page = page_alloc();
- (void)page;
- page_free(page);
- }
+ efi_memory_init(data->memory_map);
hang();
}