#ifndef TASK_H #define TASK_H #include #include struct task_state { uint32_t ret_addr; void *page_directory; //maybe put scheduling or priviledge information here? uint32_t ebx; uint32_t ecx; uint32_t edx; uint32_t esi; uint32_t edi; uint32_t ebp; uint32_t esp; } __attribute__ ((packed)); extern struct task_state *active_task; void init_tasks(); void new_task(struct task_state state); void advance_active_task(); void delete_task(struct task_state *state); #endif