Base task definition and context description.
More...
#include <stdint.h>
#include <Lazuli/common.h>
#include <Lazuli/lazuli.h>
#include <Lazuli/list.h>
Go to the source code of this file.
|
| typedef u_read_write_atomic_t | lz_task_to_scheduler_message_t |
| | Defines the type used to contain a message that a Task can pass to the scheduler after its time slice has expired.
|
| |
| typedef void(* | FuncVoidVoid) (void) |
| | This type definition is needed to exclude confusion with the 'volatile' type qualifier used in the struct declaration below.
|
| |
Base task definition and context description.
- Copyright
- 2017-2020, Remi Andruccioli remi..nosp@m.andr.nosp@m.uccio.nosp@m.li@g.nosp@m.mail..nosp@m.com
Describes all types and functions related to tasks.
Definition in file task.h.
◆ NO_MESSAGE
No message has to be passed to the scheduler.
Definition at line 40 of file task.h.
◆ WAIT_ACTIVATION
Set the task to wait for its next activation.
i.e. It finished its work without consuming all of its completion time.
Definition at line 46 of file task.h.
◆ WAIT_INTERRUPT
Set the task to wait for an interrupt.
A parameter representing the interrupt number must accompany this message.
Definition at line 52 of file task.h.
◆ TERMINATE_TASK
Terminate the task.
This handles the case of a normal termination of a task.
Definition at line 57 of file task.h.
◆ WAIT_MUTEX
Wait for a mutex to be unlocked.
A parameter pointing to the mutex must accompany this message.
Definition at line 63 of file task.h.
◆ WAIT_SOFTWARE_TIMER
Set the task to wait for the specified number of time resolution units, using the software timer.
A parameter pointing to the specified number of units must accompany this message.
Definition at line 71 of file task.h.
◆ ABORT_TASK
Abort the curent running task.
Called by the kernel if some unrecoverable error occured (e.g. A division by zero).
Definition at line 77 of file task.h.
◆ lz_task_to_scheduler_message_t
Defines the type used to contain a message that a Task can pass to the scheduler after its time slice has expired.
This type is declared read/write atomic because in the definition of struct Task a message can come along with data, pointed by taskToSchedulerMessageParameter. By writing the pointer first, then writing the message code, we can ensure the integrity of the full message (i.e.: message code + data), assuming the execution is "in-order".
Definition at line 35 of file task.h.
◆ FuncVoidVoid
| typedef void(* FuncVoidVoid) (void) |
This type definition is needed to exclude confusion with the 'volatile' type qualifier used in the struct declaration below.
Definition at line 194 of file task.h.