summaryrefslogtreecommitdiff
path: root/shim/kc_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'shim/kc_main.c')
-rw-r--r--shim/kc_main.c73
1 files changed, 0 insertions, 73 deletions
diff --git a/shim/kc_main.c b/shim/kc_main.c
deleted file mode 100644
index 1829616..0000000
--- a/shim/kc_main.c
+++ /dev/null
@@ -1,73 +0,0 @@
-#include <loader/efi/shim.h>
-#include <kernel/memory/range.h>
-
-#include <stdbool.h>
-
-#include "../lib/elf.h"
-
-struct efi_memory_map
-{
- struct memory_range buffer;
- UINTN size;
- UINTN key;
- UINTN descsize;
- UINT32 descver;
-};
-
-struct efi_video_data
-{
- struct memory_range buffer;
- UINT32 width;
- UINT32 height;
- UINT32 pitch;
- EFI_GRAPHICS_PIXEL_FORMAT format;
- EFI_PIXEL_BITMASK mask;
-};
-
-struct efi_boot_data
-{
- struct efi_memory_map memory_map;
- struct efi_video_data video_data;
- void *acpi_rsdp;
- unsigned long acpi_version;
-};
-
-struct efi_loader_image kernel_image =
-{
- .path = L"\\adasoft\\sophia\\kernel.os"
-};
-
-static struct efi_boot_data boot_data;
-
-// TODO: split relocation code out into library
-
-EFI_STATUS kc_main(struct efi_loader_interface *interface)
-{
- // 1. load kernel and boot modules into memory
- // 2. generate page tables for kernel and boot modules
- // 2. gather boot data, store as type SystemMemoryType
- // 3. exit boot services
- // 5. ???????????
-
- EFI_STATUS status;
-
- if (!interface)
- {
- return EFI_INVALID_PARAMETER;
- }
-
- if (!EFI_ERROR((status = interface->image_open(&kernel_image))) &&
- !EFI_ERROR((status = interface->image_alloc(&kernel_image))) &&
- !EFI_ERROR((status = interface->image_load(&kernel_image))))
- {
- (void)boot_data;
- }
-
- __asm__ volatile (
- "cli\n\t"
- "hlt\n\t"
- );
-
- return status;
-}
-