- #pragma once
-
- #include "gp/indexed_array.hpp"
- #include "gp/vfs/process_data.hpp"
- #include "gp/vfs/runqueue.hpp"
-
- namespace gp{
-
- class system;
-
- struct scheduler {
- topic_list::node_ptr previous;
- topic_list::node_ptr current;
- size_t id;
- system& sys;
-
- no_inline_decl(
- void yield_to(topic_list::node_ptr target)
- );
-
- scheduler(class system&, size_t token);
-
- [[noreturn]] void startup();
-
- void yield();
- };
-
- }
|