From 636858dbbd48ed9f5073793b46740302aa202f43 Mon Sep 17 00:00:00 2001 From: Anton Kling Date: Tue, 28 Nov 2023 20:07:50 +0100 Subject: Kernel: Add basic IPC and move to microkernel design. The IPC design is currently a WIP and is nowhere near complete --- kernel/sched/scheduler.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'kernel/sched/scheduler.c') diff --git a/kernel/sched/scheduler.c b/kernel/sched/scheduler.c index 7d13277..ccc5956 100644 --- a/kernel/sched/scheduler.c +++ b/kernel/sched/scheduler.c @@ -17,7 +17,19 @@ u32 next_pid = 0; extern u32 read_eip(void); -process_t *get_current_task(void) { return current_task; } +process_t *get_current_task(void) { + return current_task; +} + +bool get_task_from_pid(u32 pid, process_t **out) { + for (process_t *tmp = ready_queue; tmp; tmp = tmp->next) { + if (tmp->pid == pid) { + *out = tmp; + return true; + } + } + return false; +} void set_signal_handler(int sig, void (*handler)(int)) { if (sig >= 20 || sig < 0) -- cgit v1.2.3