blob: 9e5e9f2fba8ec4d3549fb0bc2d093344c144ea9d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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;
};
|