From c9a1266d219a83882735a3a8304f3824e0219cdb Mon Sep 17 00:00:00 2001 From: Benji Dial Date: Mon, 15 Jan 2024 15:44:20 -0500 Subject: redo application paging and system calls, rename mercury to hilbert --- include/mercury/kernel/application.hpp | 72 ---------------------------------- 1 file changed, 72 deletions(-) delete mode 100644 include/mercury/kernel/application.hpp (limited to 'include/mercury/kernel/application.hpp') diff --git a/include/mercury/kernel/application.hpp b/include/mercury/kernel/application.hpp deleted file mode 100644 index bc4a763..0000000 --- a/include/mercury/kernel/application.hpp +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef MERCURY_KERNEL_APPLICATION_HPP -#define MERCURY_KERNEL_APPLICATION_HPP - -#include -#include - -namespace mercury::kernel::application { - - enum class app_state { - running, - paused, - zombie - }; - - struct app_instance { - - app_state state; - - uint64_t *p4; - uint64_t *p3; - uint64_t *p2; - - bool *p2es_to_free_on_exit; - - uint64_t p4_paddr; - - //set to 0 if none - uint64_t framebuffer_vaddr; - - //only valid if state is zombie - int exit_code; - - //only valid if state is paused - struct { - uint64_t rip; - uint64_t rsp; - //TODO: etc. - } saved_regs; - - app_instance(); - ~app_instance(); - - //2MiB page. vaddr and paddr must be aligned, and vaddr in valid range. - void map_page(uint64_t vaddr, uint64_t paddr, - bool write, bool execute, bool free_pram_on_exit); - - //2MiB pages. returns start of first page. - uint64_t get_free_vaddr_pages(uint64_t count); - - void create_stack(); - - void set_instruction_pointer(uint64_t vaddr); - - //2MiB pages; only lower half. - uint64_t count_mapped_vram_pages(); - - }; - - extern app_instance *running_app; - - enum class create_app_result { - success, - device_error, - app_corrupt, - fs_corrupt - }; - - create_app_result create_app(const vfile::vfile &file, app_instance *&out); - -} - -#endif -- cgit v1.2.3