#pragma once #include "boucane.hpp" #define MAX_TASK 5 #define TASK_VMA 0x0 typedef struct { u32 rax, rbx, rcx, rdx; u32 cs, rip; u32 ss, rsp, rbp; u32 rsi, rdi; u32 ds, es, fs, gs; u32 eflags; u32 ss0, rsp0; } __attribute__((packed)) REGS; typedef struct { u32 id; u32 pid; u64* pml4; u32 size; REGS registers; } __attribute__((packed)) TASK; extern char show_ticks; extern "C" void clock(); void schedule(); void create_task(void*task, u32 size); void scheduler_start();