os/include/kernel/task.h

39 lines
533 B
C

#include <stdint.h>
#include <stddef.h>
struct CPUState {
size_t eax;
size_t ebx;
size_t ecx;
size_t edx;
size_t eip;
size_t esp;
size_t ebp;
size_t cs;
size_t ds;
size_t eflags;
};
struct Task {
struct CPUState state;
};
void switch_task(
size_t eax,
size_t ebx,
size_t ecx,
size_t edx,
size_t ebp,
size_t esp_real,
size_t eip,
size_t cs,
size_t eflags,
size_t esp_fake,
size_t ds
);
void setup_tasks();
void add_task(struct Task task);