23 #include "pedigree/kernel/Atomic.h" 24 #include "pedigree/kernel/Spinlock.h" 25 #include "pedigree/kernel/compiler.h" 26 #include "pedigree/kernel/processor/types.h" 27 #include "pedigree/kernel/utilities/List.h" 28 #include "pedigree/kernel/utilities/Tree.h" 29 #include "pedigree/kernel/utilities/new" 55 bool initialise(
Process *pKernelProcess);
62 void removeThread(
Thread *pThread);
65 bool threadInSchedule(
Thread *pThread);
70 size_t addProcess(
Process *pProcess);
73 void removeProcess(
Process *pProcess);
80 size_t getNumProcesses();
86 void threadStatusChanged(
Thread *pThread);
88 Process *getKernelProcess()
const 90 return m_pKernelProcess;
95 return m_pBspScheduler;
136 #endif // SCHEDULER_H PerProcessorScheduler * m_pBspScheduler
Process * m_pKernelProcess
This class manages how processes and threads are scheduled across processors.
Tree< PerProcessorScheduler *, List< Thread * > * > m_PTMap
static Scheduler m_Instance
Atomic< size_t > m_NextPid
static Scheduler & instance()
Tree< Thread *, PerProcessorScheduler * > m_TPMap
List< Process *, 0 > m_Processes