diff options
Diffstat (limited to 'src/scheduler.h')
-rw-r--r-- | src/scheduler.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/scheduler.h b/src/scheduler.h new file mode 100644 index 0000000..9e5e9f2 --- /dev/null +++ b/src/scheduler.h @@ -0,0 +1,17 @@ +#pragma once + +#include <types.h> +#include "idt.h" + +class Scheduler : public InterruptHandler { +public: + Scheduler(uint16_t cs); + + bool 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; +}; |