#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(); }; }