diff options
Diffstat (limited to 'kernel/src/scheduler/process.c')
| -rw-r--r-- | kernel/src/scheduler/process.c | 44 |
1 files changed, 22 insertions, 22 deletions
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; } |
