#pragma once #include #include "idt.h" class Scheduler : public InterruptHandler { public: Scheduler(uint16_t cs); [[nodiscard]] uint16_t add_task(uint8_t* stack, uint16_t cs, void (*entry)()); [[nodiscard]] cpu_state_t* trigger(cpu_state_t*) override; private: uint16_t current_task = 0; uint16_t last_task_id = 0; uint16_t num_tasks = 0; };