blob: ecc004288c7e35c28a5a39fda5bd1e8ff9efa2ff (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#include "task.h"
void task_create(struct task_t *task, void (*func)(void), uint32_t flags, uint32_t *pagedir)
{
task->regs.eax = 0;
task->regs.ebx = 0;
task->regs.ecx = 0;
task->regs.edx = 0;
task->regs.esi = 0;
task->regs.edi = 0;
task->regs.eflags = flags;
task->regs.eip = (uint32_t)main;
task->regs.cr3 = (uint32_t)pagedir;
task->regs.esp = kmalloc(0x1000) + 0x1000;
task->next = NULL;
}
|