#ifndef TASK_H #define TASK_H #include #include #define TASK_NAME_LEN 15 struct task_state { uint32_t ret_addr; void *page_directory; uint32_t ebx; uint32_t ecx; uint32_t edx; uint32_t esi; uint32_t edi; uint32_t ebp; uint32_t esp; char name[TASK_NAME_LEN + 1]; } __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