14#include "freertos/FreeRTOS.h"
21#define xQueueHandle QueueHandle_t
23typedef void* QueueHandle_t;
45typedef _queue_t StaticQueue_t;
46typedef _queue_t StaticSemaphore_t;
48QueueHandle_t xQueueGenericCreate (
const UBaseType_t uxQueueLength,
49 const UBaseType_t uxItemSize,
50 const uint8_t ucQueueType);
52QueueHandle_t xQueueCreateStatic(
const UBaseType_t uxQueueLength,
53 const UBaseType_t uxItemSize,
54 uint8_t *pucQueueStorageBuffer,
55 StaticQueue_t *pxQueueBuffer );
57BaseType_t xQueueGetStaticBuffers( QueueHandle_t xQueue,
58 uint8_t ** ppucQueueStorage,
59 StaticQueue_t ** ppxStaticQueue );
61QueueHandle_t xQueueCreateCountingSemaphore (
const UBaseType_t uxMaxCount,
62 const UBaseType_t uxInitialCount);
64QueueHandle_t xQueueCreateCountingSemaphoreStatic(
const UBaseType_t uxMaxCount,
65 const UBaseType_t uxInitialCount,
66 StaticQueue_t *pxStaticQueue);
68QueueHandle_t xQueueCreateWithCaps(
const UBaseType_t uxQueueLength,
69 const UBaseType_t uxItemSize,
70 const UBaseType_t uxMemoryCaps);
72void vQueueDelete (QueueHandle_t xQueue);
74#define vQueueDeleteWithCaps vQueueDelete
76BaseType_t xQueueReset (QueueHandle_t xQueue);
78BaseType_t xQueueGenericReceive (QueueHandle_t xQueue,
79 void *
const pvBuffer,
80 TickType_t xTicksToWait,
81 const BaseType_t xJustPeeking);
83BaseType_t xQueueGenericSend (QueueHandle_t xQueue,
84 const void *
const pvItemToQueue,
85 TickType_t xTicksToWait,
86 const BaseType_t xCopyPosition);
88BaseType_t xQueueReceiveFromISR (QueueHandle_t xQueue,
void *
const pvBuffer,
89 BaseType_t *
const pxHigherPriorityTaskWoken);
91BaseType_t xQueueGenericSendFromISR (QueueHandle_t xQueue,
92 const void *
const pvItemToQueue,
93 BaseType_t *
const pxHigherPriorityTaskWoken,
94 const BaseType_t xCopyPosition );
96BaseType_t xQueueGiveFromISR (QueueHandle_t xQueue,
97 BaseType_t *
const pxHigherPriorityTaskWoken);
99UBaseType_t uxQueueMessagesWaiting( QueueHandle_t xQueue );
116#define queueSEND_TO_BACK ( ( BaseType_t ) 0 )
117#define queueSEND_TO_FRONT ( ( BaseType_t ) 1 )
118#define queueOVERWRITE ( ( BaseType_t ) 2 )
120#define queueQUEUE_TYPE_BASE ( ( uint8_t ) 0U )
121#define queueQUEUE_TYPE_SET ( ( uint8_t ) 0U )
122#define queueQUEUE_TYPE_MUTEX ( ( uint8_t ) 1U )
123#define queueQUEUE_TYPE_COUNTING_SEMAPHORE ( ( uint8_t ) 2U )
124#define queueQUEUE_TYPE_BINARY_SEMAPHORE ( ( uint8_t ) 3U )
125#define queueQUEUE_TYPE_RECURSIVE_MUTEX ( ( uint8_t ) 4U )
127#define errQUEUE_EMPTY ( ( BaseType_t ) 0 )
128#define errQUEUE_FULL ( ( BaseType_t ) 0 )
129#define errQUEUE_BLOCKED ( -4 )
130#define errQUEUE_YIELD ( -5 )
132#define xQueueCreate( uxQueueLength, uxItemSize ) \
133 xQueueGenericCreate( ( uxQueueLength ), ( uxItemSize ), ( queueQUEUE_TYPE_BASE ) )
135#define xQueueReceive( xQueue, pvBuffer, xTicksToWait ) \
136 xQueueGenericReceive( ( xQueue ), ( pvBuffer ), ( xTicksToWait ), \
139#define xQueueSend( xQueue, pvItemToQueue, xTicksToWait ) \
140 xQueueGenericSend( ( xQueue ), ( pvItemToQueue ), ( xTicksToWait ), \
143#define xQueueSendToBack( xQueue, pvItemToQueue, xTicksToWait ) \
144 xQueueGenericSend( ( xQueue ), ( pvItemToQueue ), ( xTicksToWait ), \
147#define xQueueSendToFront( xQueue, pvItemToQueue, xTicksToWait ) \
148 xQueueGenericSend( ( xQueue ), ( pvItemToQueue ), ( xTicksToWait ), \
151#define xQueueSendFromISR( xQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) \
152 xQueueGenericSendFromISR( ( xQueue ), ( pvItemToQueue ), \
153 ( pxHigherPriorityTaskWoken ), \
156#define xQueueSendToBackFromISR( xQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) \
157 xQueueGenericSendFromISR( ( xQueue ), ( pvItemToQueue ), \
158 ( pxHigherPriorityTaskWoken ), \
161#define xQueueSendToFrontFromISR( xQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) \
162 xQueueGenericSendFromISR( ( xQueue ), ( pvItemToQueue ), \
163 ( pxHigherPriorityTaskWoken ), \
166#define xQueueOverwriteFromISR( xQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) \
167 xQueueGenericSendFromISR( ( xQueue ), ( pvItemToQueue ), \
168 ( pxHigherPriorityTaskWoken ), \
struct list_node list_node_t
List node structure.