VSF Documented
task.h
Go to the documentation of this file.
1#ifndef __VSF_ESPIDF_FREERTOS_TASK_H__
2#define __VSF_ESPIDF_FREERTOS_TASK_H__
3
4#include "FreeRTOS.h"
6
7#ifdef __cplusplus
8extern "C" {
9#endif
10
11typedef struct StaticTask {
12 implement(vsf_linux_thread_t)
13 void (*freertos_entry)(void *);
14 void *arg;
15#if VSF_FREERTOS_CFG_USE_NOTIFY == ENABLED
19#endif
20 // is_static and is_stack_static are needed for compatibility only, actually not used
24
26typedef void (*TaskFunction_t)(void *);
28
29extern void vTaskDelay(const TickType_t xTicksToDelay);
30extern void vTaskDelayUntil(TickType_t * const pxPreviousWakeTime,
31 const TickType_t xTimeIncrement);
32extern TickType_t xTaskGetTickCount(void);
34extern void vTaskYield(void);
35
36#define taskYIELD() vTaskYield()
37
38extern BaseType_t xTaskCreate(TaskFunction_t pxTaskCode,
39 const char * const pcName,
40 const uint32_t usStackDepth,
41 void * const pvParameters,
42 UBaseType_t uxPriority,
43 TaskHandle_t * const pxCreatedTask);
44
46 const char * const pcName,
47 const uint32_t ulStackDepth,
48 void * const pvParameters,
49 UBaseType_t uxPriority,
50 StackType_t * const puxStackBuffer,
51 StaticTask_t * const pxTaskBuffer);
52
53extern void vTaskDelete(TaskHandle_t xTaskToDelete);
55
56extern void vTaskSuspendAll(void);
57extern BaseType_t xTaskResumeAll(void);
58extern void vTaskEnterCritical(void);
59extern void vTaskExitCritical(void);
61extern void vTaskExitCriticalFromISR(UBaseType_t uxSavedInterruptState);
62
63typedef enum {
70
71extern BaseType_t xTaskNotify(TaskHandle_t xTaskToNotify,
72 uint32_t ulValue,
73 eNotifyAction eAction);
74extern BaseType_t xTaskNotifyFromISR(TaskHandle_t xTaskToNotify,
75 uint32_t ulValue,
76 eNotifyAction eAction,
77 BaseType_t *pxHigherPriorityTaskWoken);
78extern BaseType_t xTaskNotifyGive(TaskHandle_t xTaskToNotify);
79extern void vTaskNotifyGiveFromISR(TaskHandle_t xTaskToNotify,
80 BaseType_t *pxHigherPriorityTaskWoken);
81extern uint32_t ulTaskNotifyTake(BaseType_t xClearCountOnExit,
82 TickType_t xTicksToWait);
83extern BaseType_t xTaskNotifyWait(uint32_t ulBitsToClearOnEntry,
84 uint32_t ulBitsToClearOnExit,
85 uint32_t *pulNotificationValue,
86 TickType_t xTicksToWait);
87
88#ifdef __cplusplus
89}
90#endif
91
92#endif
Definition task.h:65
Definition vsf_linux.h:181
Definition vsf_eda.h:867
long BaseType_t
Definition esp_ringbuf.h:57
uint8_t StackType_t
Definition task.h:27
void vTaskSuspendAll(void)
Definition freertos_critical_port.c:158
void vTaskNotifyGiveFromISR(TaskHandle_t xTaskToNotify, BaseType_t *pxHigherPriorityTaskWoken)
Definition freertos_notify_port.c:180
BaseType_t xTaskCreate(TaskFunction_t pxTaskCode, const char *const pcName, const uint32_t usStackDepth, void *const pvParameters, UBaseType_t uxPriority, TaskHandle_t *const pxCreatedTask)
Definition freertos_task_port.c:52
uint32_t ulTaskNotifyTake(BaseType_t xClearCountOnExit, TickType_t xTicksToWait)
Definition freertos_notify_port.c:187
UBaseType_t vTaskEnterCriticalFromISR(void)
Definition freertos_critical_port.c:134
TaskHandle_t xTaskGetCurrentTaskHandle(void)
Definition freertos_task_port.c:160
BaseType_t xTaskNotifyFromISR(TaskHandle_t xTaskToNotify, uint32_t ulValue, eNotifyAction eAction, BaseType_t *pxHigherPriorityTaskWoken)
Definition freertos_notify_port.c:147
StaticTask_t * TaskHandle_t
Definition task.h:25
TickType_t xTaskGetTickCount(void)
Definition freertos_task_port.c:123
BaseType_t xTaskNotifyWait(uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t *pulNotificationValue, TickType_t xTicksToWait)
Definition freertos_notify_port.c:235
BaseType_t xTaskNotifyGive(TaskHandle_t xTaskToNotify)
Definition freertos_notify_port.c:175
void vTaskDelay(const TickType_t xTicksToDelay)
Definition freertos_task_port.c:102
void(* TaskFunction_t)(void *)
Definition task.h:26
void vTaskExitCritical(void)
Definition freertos_critical_port.c:95
void vTaskDelayUntil(TickType_t *const pxPreviousWakeTime, const TickType_t xTimeIncrement)
Definition freertos_task_port.c:107
void vTaskYield(void)
Definition freertos_task_port.c:133
TickType_t xTaskGetTickCountFromISR(void)
Definition freertos_task_port.c:128
struct StaticTask StaticTask_t
BaseType_t xTaskResumeAll(void)
Definition freertos_critical_port.c:167
eNotifyAction
Definition task.h:63
@ eIncrement
Definition task.h:66
@ eSetValueWithOverwrite
Definition task.h:67
@ eSetBits
Definition task.h:65
@ eNoAction
Definition task.h:64
@ eSetValueWithoutOverwrite
Definition task.h:68
TaskHandle_t xTaskCreateStatic(TaskFunction_t pxTaskCode, const char *const pcName, const uint32_t ulStackDepth, void *const pvParameters, UBaseType_t uxPriority, StackType_t *const puxStackBuffer, StaticTask_t *const pxTaskBuffer)
Definition freertos_task_port.c:94
void vTaskExitCriticalFromISR(UBaseType_t uxSavedInterruptState)
Definition freertos_critical_port.c:139
void vTaskEnterCritical(void)
Definition freertos_critical_port.c:84
BaseType_t xTaskNotify(TaskHandle_t xTaskToNotify, uint32_t ulValue, eNotifyAction eAction)
Definition freertos_notify_port.c:127
void vTaskDelete(TaskHandle_t xTaskToDelete)
Definition freertos_task_port.c:147
uint32_t TickType_t
Definition rtos_al.h:59
uint32_t UBaseType_t
Definition rtos_al.h:60
unsigned uint32_t
Definition stdint.h:9
unsigned char uint8_t
Definition stdint.h:5
Definition task.h:11
bool is_stack_static
Definition task.h:22
uint32_t notify_value
Definition task.h:17
vsf_linux_thread_t void(* freertos_entry)(void *)
Definition task.h:13
vsf_sem_t notify_sem
Definition task.h:16
bool is_static
Definition task.h:21
void * arg
Definition task.h:14
bool notify_pending
Definition task.h:18
Generated from commit: vsfteam/vsf@c3767bf