From 785d20a6b809e140448108e29b791d59c4650c91 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Tue, 16 Mar 2021 20:46:15 +0200 Subject: Mostly fix scheduler throwing page faults --- src/scheduler.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/scheduler.h') 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 #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; }; -- cgit v1.2.1