16#ifndef LAZULI_LAZULI_H
17#define LAZULI_LAZULI_H
51#define CYCLIC_RT ((lz_scheduling_policy_t)0U)
58#define PRIORITY_RT ((lz_scheduling_policy_t)1U)
63#define LZ_SCHEDULING_POLICY_MAX PRIORITY_RT
unsigned int uint16_t
Represents a unsigned integer type with width of exactly 16 bits.
unsigned char uint8_t
Represents a unsigned integer type with width of exactly 8 bits.
char int8_t
Represents a signed integer type with width of exactly 8 bits.
Basic type definitions and useful macros.
#define _EXTERN_C_DECL_BEGIN
Open C++ header file declarations.
#define _EXTERN_C_DECL_END
Close C++ header file declarations.
Include appropriate config file.
void Lz_TaskConfiguration_Init(Lz_TaskConfiguration *const taskConfiguration)
Initialize an Lz_TaskConfiguration with default values for all parameters.
void Lz_WaitTimer(lz_u_resolution_unit_t units)
Set the calling task to wait for the specified number of time resolution units (time slices),...
void Lz_Task_WaitInterrupt(uint8_t interruptCode)
Wait for a specific interrupt to occur.
void Lz_Task_WaitActivation(void)
Set the calling task to wait for its next activation.
uint8_t lz_scheduling_policy_t
Represents the type used for scheduling policies of a Lazuli user task.
void Lz_Task_Terminate(void)
Terminate the calling task.
void Lz_Run(void)
Run the scheduler.
int8_t lz_task_priority_t
Represents the priority of a task, as a signed integer.
bool Lz_RegisterTask(void(*const taskEntryPoint)(void), Lz_TaskConfiguration *taskConfiguration)
Register a new task.
char const * Lz_Task_GetName(void)
Get the name of the calling task.
uint16_t lz_u_resolution_unit_t
Represents the type used for the system clock resolution unit, as an unsigned integer.
Represents the configuration of a task.
lz_scheduling_policy_t schedulingPolicy
The scheduling policy of the task.
char const * name
A pointer to an allocated const string containing the name to give to the task.
lz_u_resolution_unit_t completion
The completion time (C) of the task (worst case execution time).
lz_task_priority_t priority
The priority of task.
size_t stackSize
The size of the stack needed by the task.
lz_u_resolution_unit_t period
The period (T) of the task.