From 0a281099e571cc40d0632d32c4ec005c32b4d66d Mon Sep 17 00:00:00 2001 From: Ada Christine Date: Thu, 6 May 2021 18:20:40 +0000 Subject: moved image stuff to image_efi.c --- loader/loader_efi.h | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'loader/loader_efi.h') diff --git a/loader/loader_efi.h b/loader/loader_efi.h index 17c58cf..4ce3098 100644 --- a/loader/loader_efi.h +++ b/loader/loader_efi.h @@ -1,14 +1,17 @@ #pragma once +#include +#include + +#include + #include #include +#include #include #include -#include -#include - enum page_type { INVALID_PAGE_TYPE = 0x0, @@ -17,6 +20,14 @@ enum page_type DATA_PAGE_TYPE = PAGE_PR|PAGE_WR|PAGE_NX }; +struct system_image +{ + struct memory_range buffer; + EFI_FILE_PROTOCOL *file; + Elf64_Ehdr ehdr; + Elf64_Phdr *phdrs; +}; + extern EFI_SYSTEM_TABLE *e_st; extern EFI_BOOT_SERVICES *e_bs; extern EFI_RUNTIME_SERVICES *e_rt; @@ -44,5 +55,10 @@ void *paging_map_pages(void *vaddr, void *paging_map_range(void *vaddr, struct memory_range *range, enum page_type type); + +struct system_image *system_image_open(CHAR16 *path); +bool system_image_load(struct system_image *image); +void system_image_map(struct system_image *image); + void loader_main(void); -- cgit v1.3.1-1-g115d