Initial commit

This commit is contained in:
Gericom
2025-11-22 17:21:45 +01:00
commit 5d6f67c612
517 changed files with 63025 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
#include "common.h"
#include "Task.h"
void TaskBase::Execute()
{
u32 irqs = rtos_disableIrqs();
if (_state == TaskState::NotStarted)
{
_state = TaskState::Running;
rtos_restoreIrqs(irqs);
TaskState finalState = ExecuteDirect();
SetFinalState(finalState);
}
else
rtos_restoreIrqs(irqs);
}
void TaskBase::SetFinalState(TaskState finalState)
{
u32 irqs = rtos_disableIrqs();
if (_state == TaskState::Running)
{
_state = finalState;
rtos_wakeupQueue(&_threadQueue);
}
rtos_restoreIrqs(irqs);
}
bool TaskBase::Wait()
{
u32 irq = rtos_disableIrqs();
if (!IsCompleted())
rtos_queueThread(rtos_getCurThread(), &_threadQueue);
rtos_restoreIrqs(irq);
return IsCompletedSuccessfully();
}