Go to the documentation of this file.
20 #include <util/atomic.h>
26 bool taskChanged =
false;
40 ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
50 if ((
TCB_Cfg[TaskID]->waitEvents &
TCB_Cfg[TaskID]->pendingEvents) != 0
77 ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
95 if (TaskID >= INVALID_TASK) {
113 ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
137 ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
enum tasks_e TaskType
Type for task reference.
uint8_t EventMaskType
Data type of the event mask.
enum StatusType_e StatusType
Type for status.
@ EXTENDED
The task is a extended task.
EventMaskType * EventMaskRefType
Reference to an event mask.
Operating system control.
StatusType Events_ClearEvent(EventMaskType events)
Clear events.
volatile TaskType currentTask
Task currently being executed.
#define OS_SET_ERROR_INFO1(serviceId, paramPtr1, size1)
Set error info with up to one parameter.
void OS_Schedule(void)
Schedule task.
volatile struct task_s * TCB_Cfg[]
Current task control blocks.
TaskStateType curState
Current state of the task.
EventMaskType pendingEvents
Mask of currently pending events.
volatile bool isISR
Is currently ISR context?
@ READY
The task is ready to be scheduled.
StatusType Events_WaitEvent(EventMaskType events)
Wait for events.
@ SUSPENDED
The task is suspended and will not be scheduled.
const EventMaskType events
Mask of assigned task events.
@ WAITING
The task is waiting for an event.
StatusType Events_GetEvent(TaskType TaskID, EventMaskRefType events)
Get events.
EventMaskType waitEvents
Mask of events the task is currently waiting on.
#define OS_SET_ERROR_INFO2(serviceId, paramPtr1, size1, paramPtr2, size2)
Set error info with up to two parameters.
bool forceScheduling
Force the next rescheduling.
StatusType Events_SetEvent(TaskType TaskID, EventMaskType events)
Set events.
Operating System Control Block.
void Resource_ReleaseInternalResource(void)
Release internal resource of the current task if one is assigned.
#define OS_CALL_ERROR_HOOK(error)
Call error hook if configured.