From af0a10fdce88d58ea3bef9c2994694cc96fe9d08 Mon Sep 17 00:00:00 2001 From: Ada Christine Date: Thu, 6 May 2021 14:10:42 +0000 Subject: moved paging code, slight modifications --- loader/loader_efi.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'loader/loader_efi.h') diff --git a/loader/loader_efi.h b/loader/loader_efi.h index a1ba360..17c58cf 100644 --- a/loader/loader_efi.h +++ b/loader/loader_efi.h @@ -7,6 +7,15 @@ #include #include +#include + +enum page_type +{ + INVALID_PAGE_TYPE = 0x0, + CODE_PAGE_TYPE = PAGE_PR, + RODATA_PAGE_TYPE = PAGE_PR|PAGE_NX, + DATA_PAGE_TYPE = PAGE_PR|PAGE_WR|PAGE_NX +}; extern EFI_SYSTEM_TABLE *e_st; extern EFI_BOOT_SERVICES *e_bs; @@ -25,5 +34,15 @@ struct memory_range system_allocate(size_t size); void *efi_allocate(size_t size); void efi_free(void *buffer); +void paging_init(void); +void paging_enter(void); +void *paging_map_page(void *vaddr, phys_addr_t paddr, enum page_type type); +void *paging_map_pages(void *vaddr, + phys_addr_t paddr, + enum page_type type, + size_t size); +void *paging_map_range(void *vaddr, + struct memory_range *range, + enum page_type type); void loader_main(void); -- cgit v1.3.1-1-g115d