aboutsummaryrefslogtreecommitdiff
path: root/src/scheduler.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/scheduler.h')
-rw-r--r--src/scheduler.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/scheduler.h b/src/scheduler.h
index a3148bb..14b844c 100644
--- a/src/scheduler.h
+++ b/src/scheduler.h
@@ -2,16 +2,22 @@
#include <types.h>
#include "idt.h"
+#include "vmm.h"
class Scheduler : public InterruptHandler {
public:
+ struct task {
+ cpu_state_t* cpu = nullptr;
+ vmm* mm = nullptr;
+
+ task() = default;
+ task(uint8_t* stack, void (*entry)(), uint16_t cs);
+ };
+
Scheduler(uint16_t cs);
- [[nodiscard]] uint16_t add_task(uint8_t* stack, uint16_t cs, void (*entry)());
+ [[nodiscard]] uint16_t add_task(task);
[[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;
};