From 382ee1b11be7e01d2797efe4ccd97ad7c5a4cf72 Mon Sep 17 00:00:00 2001 From: Ada Christine Date: Wed, 7 Apr 2021 11:16:11 +0000 Subject: moved headers around a bit --- api/boot/entry_efi.h | 38 -------------------------------------- api/kernel/entry.h | 3 +++ api/loader/data.h | 36 ++++++++++++++++++++++++++++++++++++ kernel/cpu.c | 1 - kernel/entry_efi.c | 11 +++++++---- loader/loader_efi.c | 4 ++-- 6 files changed, 48 insertions(+), 45 deletions(-) delete mode 100644 api/boot/entry_efi.h create mode 100644 api/kernel/entry.h create mode 100644 api/loader/data.h diff --git a/api/boot/entry_efi.h b/api/boot/entry_efi.h deleted file mode 100644 index 7f6b4a4..0000000 --- a/api/boot/entry_efi.h +++ /dev/null @@ -1,38 +0,0 @@ -#pragma once - -#include - -#define EfiUserMemoryType (EFI_MEMORY_TYPE)0x80000000 -#define SystemMemoryType EfiUserMemoryType | 0x01 - -struct efi_memory_map_data -{ - UINTN size; - UINTN key; - UINTN descsize; - UINT32 descver; - EFI_MEMORY_DESCRIPTOR data[]; -}; - -struct efi_framebuffer_data -{ - EFI_PIXEL_BITMASK bitmask; - EFI_PHYSICAL_ADDRESS base; - UINTN size; - UINT32 width; - UINT32 height; - UINT32 pitch; - EFI_GRAPHICS_PIXEL_FORMAT pixel_format; - UINT8 pixel_size; -}; - -struct efi_boot_data -{ - EFI_SYSTEM_TABLE *system_table; - struct efi_memory_map_data *memory_map; - struct efi_framebuffer_data *framebuffer; - void *acpi_rsdp; -}; - -typedef void (*kernel_entry_func)(struct efi_boot_data *data); - diff --git a/api/kernel/entry.h b/api/kernel/entry.h new file mode 100644 index 0000000..791d8b6 --- /dev/null +++ b/api/kernel/entry.h @@ -0,0 +1,3 @@ +#pragma once + +typedef void (*kernel_entry_func)(void *data); diff --git a/api/loader/data.h b/api/loader/data.h new file mode 100644 index 0000000..5bbf2a9 --- /dev/null +++ b/api/loader/data.h @@ -0,0 +1,36 @@ +#pragma once + +#include + +#define EfiUserMemoryType (EFI_MEMORY_TYPE)0x80000000 +#define SystemMemoryType EfiUserMemoryType | 0x01 + +struct efi_memory_map_data +{ + UINTN size; + UINTN key; + UINTN descsize; + UINT32 descver; + EFI_MEMORY_DESCRIPTOR data[]; +}; + +struct efi_framebuffer_data +{ + EFI_PIXEL_BITMASK bitmask; + EFI_PHYSICAL_ADDRESS base; + UINTN size; + UINT32 width; + UINT32 height; + UINT32 pitch; + EFI_GRAPHICS_PIXEL_FORMAT pixel_format; + UINT8 pixel_size; +}; + +struct efi_boot_data +{ + EFI_SYSTEM_TABLE *system_table; + struct efi_memory_map_data *memory_map; + struct efi_framebuffer_data *framebuffer; + void *acpi_rsdp; +}; + diff --git a/kernel/cpu.c b/kernel/cpu.c index d5c6675..db4108f 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -60,7 +60,6 @@ struct task64_segment uint16_t iomap_base; }; -// TODO: is 16 enough? static struct segment_descriptor gdt[GDT_ENTRIES]; static struct gate_descriptor idt[IDT_ENTRIES]; static struct task64_segment tss; diff --git a/kernel/entry_efi.c b/kernel/entry_efi.c index 4eaebc0..646c00d 100644 --- a/kernel/entry_efi.c +++ b/kernel/entry_efi.c @@ -1,4 +1,5 @@ -#include +#include +#include #include #include @@ -11,7 +12,7 @@ #include "memory.h" static noreturn void hang(void); - +/* static void free_memory_descriptor(EFI_MEMORY_DESCRIPTOR *desc) { kputs("free_memory_descriptor() called\r\n"); @@ -48,13 +49,15 @@ static void parse_efi_memmap(struct efi_memory_map_data *map) } } } - +*/ noreturn void kernel_entry(struct efi_boot_data *data) { + (void)data; cpu_init(); serial_init(); + memory_init(); kputs(" i'm in\r\n"); - parse_efi_memmap(data->memory_map); + //parse_efi_memmap(data->memory_map); hang(); } diff --git a/loader/loader_efi.c b/loader/loader_efi.c index 98b5ad9..aa9da1d 100644 --- a/loader/loader_efi.c +++ b/loader/loader_efi.c @@ -1,7 +1,7 @@ #include "loader_efi.h" -#include - +#include +#include #include #include -- cgit v1.3.1-1-g115d