diff --git a/headers/task.h b/headers/task.h index 55115f7..5033ce8 100644 --- a/headers/task.h +++ b/headers/task.h @@ -14,8 +14,8 @@ enum owner { OWNER_KERNEL, OWNER_USER }; #define STACK_SIZE PAGE_SIZE * 4 struct task { - u32 *esp; - u32 *esp0; + u8 *esp; + u8 *esp0; u32 *cr3; // physical u32 *heap; // virtual u32 *eip; diff --git a/src/multitasking/fork.c b/src/multitasking/fork.c index f871d34..84629eb 100644 --- a/src/multitasking/fork.c +++ b/src/multitasking/fork.c @@ -12,7 +12,7 @@ u16 fork(void) child->daddy = current_task; current_task->child = child; memcpy(child->esp0, current_task->esp0, STACK_SIZE); - u32 *daddy_esp = 0; + u8 *daddy_esp; asm("movl %%esp, %0" : "=m"(daddy_esp)); child->esp = child->esp0 + (daddy_esp - current_task->esp0); toris();