diff options
author | dzwdz | 2021-07-26 19:39:57 +0200 |
---|---|---|
committer | dzwdz | 2021-07-26 19:39:57 +0200 |
commit | 3c8cc57cd1d7b04ab92dc80bc0e0c9a481d905f8 (patch) | |
tree | 481ae0421ed8d0046f1735ad143576ae4c8f21bd /src/kernel/proc.h | |
parent | 2ae4e31b74efa29cc92554647d5c9dce077971c4 (diff) |
exit() now switches to the first running process
i used a linked list because it's the simplest way to implement this
Diffstat (limited to 'src/kernel/proc.h')
-rw-r--r-- | src/kernel/proc.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/kernel/proc.h b/src/kernel/proc.h index 71880e6..6d1ed8c 100644 --- a/src/kernel/proc.h +++ b/src/kernel/proc.h @@ -1,14 +1,25 @@ #pragma once #include <kernel/arch/generic.h> +enum process_state { + PS_RUNNING, + PS_DEAD, +}; + struct process { void *stack_top; struct pagedir *pages; struct registers regs; + enum process_state state; + + struct process *next; }; +extern struct process *process_first; extern struct process *process_current; struct process *process_new(); -struct process *process_clone(const struct process *orig); +struct process *process_clone(struct process *orig); _Noreturn void process_switch(struct process *proc); + +struct process *process_find(enum process_state); |