summaryrefslogtreecommitdiff
path: root/kernel/include/process.h
diff options
context:
space:
mode:
authorAleksa Vuckovic <aleksa@vuckovic.cc>2023-02-27 01:59:33 +0100
committerAleksa Vuckovic <aleksa@vuckovic.cc>2023-02-27 01:59:33 +0100
commit15f3911599a8d005edee46247470afe2a7a0b4aa (patch)
tree3113b84e1ddddc1f4937ca5596d8e32aacc4f51f /kernel/include/process.h
parenta164ca67174ba6179170dea573479f23122513cc (diff)
almost done multitasking
Diffstat (limited to 'kernel/include/process.h')
-rw-r--r--kernel/include/process.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/kernel/include/process.h b/kernel/include/process.h
index ff82924..14107c2 100644
--- a/kernel/include/process.h
+++ b/kernel/include/process.h
@@ -4,7 +4,7 @@
#include <types.h>
#include <libk/list.h>
-void save_context_to_rsp(uint64_t irq_rsp, uint64_t task_rsp);
+uint64_t save_context_from_rsp(uint64_t irq_rsp);
__attribute__((noreturn)) void restore_context_from_rsp(uint64_t task_rsp);
struct process_t {
@@ -16,6 +16,12 @@ typedef struct process_t process_t;
extern process_t process_queue;
extern process_t *curr_process;
+process_t *init_process(uint64_t priv_lvl, uint64_t rip, uint64_t argc,
+ uint64_t *argv);
+void process_init_wrapper(uint64_t rip, uint64_t argc, uint64_t *argv);
+__attribute__((noreturn)) void idle_thread(void);
+__attribute__((noreturn)) void idle_thread2(void);
+__attribute__((noreturn)) void remove_current_process(void);
__attribute__((noreturn)) void context_switch(uint64_t irq_rsp);
#endif