From a36b01e05f09f642f261d42666af28a367fefc4e Mon Sep 17 00:00:00 2001 From: Aleksa Vuckovic Date: Sun, 4 Dec 2022 14:13:08 +0100 Subject: intrusive circular doubly linked list --- kernel/src/scheduler/process.c | 44 +++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 22 deletions(-) (limited to 'kernel/src/scheduler') diff --git a/kernel/src/scheduler/process.c b/kernel/src/scheduler/process.c index a8de836..92c6ab3 100644 --- a/kernel/src/scheduler/process.c +++ b/kernel/src/scheduler/process.c @@ -9,30 +9,30 @@ process_t current_process; void create_process(uint64_t rip, uint64_t param1, uint64_t param2) { process_t* process = (process_t*)kalloc(sizeof(process_t)); - registers_t regs = process->registers; - regs.rax = 0; - regs.rbx = 0; - regs.rcx = 0; - regs.rdx = 0; - regs.rsi = 0; - regs.rdi = 0; - regs.rsp = 0; - regs.rbp = 0; - regs.r8 = 0; - regs.r9 = 0; - regs.r10 = 0; - regs.r11 = 0; - regs.r12 = 0; - regs.r13 = 0; - regs.r14 = 0; - regs.r15 = 0; - regs.rflags = 0; + registers_t* regs = &process->registers; + regs->rax = 0; + regs->rbx = 0; + regs->rcx = 0; + regs->rdx = 0; + regs->rsi = 0; + regs->rdi = 0; + regs->rsp = 0; + regs->rbp = 0; + regs->r8 = 0; + regs->r9 = 0; + regs->r10 = 0; + regs->r11 = 0; + regs->r12 = 0; + regs->r13 = 0; + regs->r14 = 0; + regs->r15 = 0; + regs->rflags = 0; uint64_t stack_size = 4*4096; - regs.rsp = (uint64_t)kalloc(4*4096) + stack_size - 8; - regs.rip = rip; - regs.rdi = param1; - regs.rsi = param2; + regs->rsp = (uint64_t)kalloc(4*4096) + stack_size - 8; + regs->rip = rip; + regs->rdi = param1; + regs->rsi = param2; process->status = STATUS_READY; process->time_using_cpu = 0; } -- cgit v1.2.3