Cucumber/Kernel/include/Tier1/CRoundRobinScheduler.h

26 lines
750 B
C
Raw Normal View History

2011-04-14 19:43:46 +00:00
#ifndef __CROUNDROBINSCHEDULER_H__
#define __CROUNDROBINSCHEDULER_H__
#include "Tier1/IScheduler.h"
#include "Tier1/Util/CLinearList.h"
namespace cb {
class CRoundRobinScheduler : public IScheduler {
public:
void Enable(bool Enabled);
void AddTask(CTask *Task);
2011-06-27 15:59:54 +00:00
void NextTask(u32 edi, u32 esi, u32 ebp, u32 esp, u32 ebx, u32 edx, u32 ecx, u32 eax, u32 eip);
2011-04-14 19:43:46 +00:00
CTask *GetCurrentTask(void);
2011-05-08 15:16:00 +00:00
void SetSemaphoreAvailable(CSemaphore *Semaphore);
2011-06-27 15:59:54 +00:00
void PrioritizeTask(CTask *Task);
2011-04-14 19:43:46 +00:00
private:
CTask *m_CurrentTask;
CLinearList<CTask *> m_TaskQueue;
2011-05-08 15:16:00 +00:00
u32 m_iTaskQueuePosition;
2011-06-27 15:59:54 +00:00
CTask *m_PrioritizedTask;
2011-04-14 19:43:46 +00:00
};
};
#endif