diff options
author | Benji Dial <benji@benjidial.net> | 2024-01-15 15:44:20 -0500 |
---|---|---|
committer | Benji Dial <benji@benjidial.net> | 2024-01-15 15:44:20 -0500 |
commit | c9a1266d219a83882735a3a8304f3824e0219cdb (patch) | |
tree | fea71a0b5b0de8f3a8962dc6ed417273f231e2a9 /include/mercury/kernel/application.hpp | |
parent | 7c6a18d77a81f232ad2e1d3a311bb21ea8f1f5b4 (diff) | |
download | hilbert-os-c9a1266d219a83882735a3a8304f3824e0219cdb.tar.gz |
redo application paging and system calls, rename mercury to hilbert
Diffstat (limited to 'include/mercury/kernel/application.hpp')
-rw-r--r-- | include/mercury/kernel/application.hpp | 72 |
1 files changed, 0 insertions, 72 deletions
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 <mercury/kernel/vfile.hpp> -#include <cstdint> - -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 |