summaryrefslogtreecommitdiff
path: root/kernel/src/scheduler/process.c
diff options
context:
space:
mode:
authorAleksa Vuckovic <aleksav013@gmail.com>2022-12-04 14:13:08 +0100
committerAleksa Vuckovic <aleksav013@gmail.com>2022-12-04 14:13:08 +0100
commita36b01e05f09f642f261d42666af28a367fefc4e (patch)
treed5e2a8782f2e44af43d66fd7d1dcade517889f6a /kernel/src/scheduler/process.c
parent0882221263aa14669946f57578d3ee014493f58f (diff)
intrusive circular doubly linked list
Diffstat (limited to 'kernel/src/scheduler/process.c')
-rw-r--r--kernel/src/scheduler/process.c44
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;
}