summaryrefslogtreecommitdiff
path: root/kernel/include/comus/procs.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/include/comus/procs.h')
-rw-r--r--kernel/include/comus/procs.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/kernel/include/comus/procs.h b/kernel/include/comus/procs.h
index 0150975..eb6c54f 100644
--- a/kernel/include/comus/procs.h
+++ b/kernel/include/comus/procs.h
@@ -15,8 +15,8 @@
#include <lib.h>
#include <elf.h>
-#define PCB_REG(pcb, x) ((pcb)->regs->x)
-#define PCB_RET(pcb) ((pcb)->regs->rax)
+#define PCB_REG(pcb, x) ((pcb)->regs.x)
+#define PCB_RET(pcb) ((pcb)->regs.rax)
#define PCB_ARG1(pcb) PCB_REG((pcb), rdi)
#define PCB_ARG2(pcb) PCB_REG((pcb), rsi)
#define PCB_ARG3(pcb) PCB_REG((pcb), rdx)
@@ -47,8 +47,8 @@ enum proc_state {
/// process control block
struct pcb {
// context
- struct cpu_regs *regs;
mem_ctx_t memctx;
+ struct cpu_regs regs;
// metadata
pid_t pid;
@@ -224,4 +224,9 @@ void schedule(struct pcb *pcb);
*/
__attribute__((noreturn)) void dispatch(void);
+/**
+ * Scheduler function called on every system tick
+ */
+void pcb_on_tick(void);
+
#endif /* procs.h */