blob: a3148bb3b625549e6d8acf1bff1cb377bee71778 (
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);
[[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;
};
|