16 #ifndef LAZULI_LAZULI_H 17 #define LAZULI_LAZULI_H 51 __LZ_SCHEDULING_POLICY_ENUM_BEGIN = -1,
80 __LZ_SCHEDULING_POLICY_ENUM_END
bool Lz_RegisterTask(void(*const taskEntryPoint)(void), Lz_TaskConfiguration *taskConfiguration)
Register a new task.
char int8_t
Represents a signed integer type with width of exactly 8 bits.
char const * name
A pointer to an allocated const string containing the name to give to the task.
Cyclic real-time scheduling.
#define _EXTERN_C_DECL_BEGIN
Open C++ header file declarations.
Lz_SchedulingPolicy
Defines the possible scheduling policies for a Lazuli user task.
lz_u_resolution_unit_t period
The period (T) of the task.
Include appropriate config file.
lz_u_resolution_unit_t completion
The completion time (C) of the task (worst case execution time).
size_t stackSize
The size of the stack needed by the task.
void Lz_TaskConfiguration_Init(Lz_TaskConfiguration *const taskConfiguration)
Initialize an Lz_TaskConfiguration with default values for all parameters.
uint16_t lz_u_resolution_unit_t
Represents the type used for the system clock resolution unit, as an unsigned integer.
unsigned int uint16_t
Represents a unsigned integer type with width of exactly 16 bits.
void Lz_Task_WaitInterrupt(uint8_t interruptCode)
Wait for a specific interrupt to occur.
unsigned char uint8_t
Represents a unsigned integer type with width of exactly 8 bits.
Represents the configuration of a task.
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_Terminate(void)
Terminate the calling task.
Priority time sliced real-time scheduling.
lz_task_priority_t priority
The priority of task.
Basic type definitions and useful macros.
void Lz_Task_WaitActivation(void)
Set the calling task to wait for its next activation.
char const * Lz_Task_GetName(void)
Get the name of the calling task.
int8_t lz_task_priority_t
Represents the priority of a task, as a signed integer.
#define _EXTERN_C_DECL_END
Close C++ header file declarations.
void Lz_Run(void)
Run the scheduler.