Go to the documentation of this file.
33 #ifndef INC_FREERTOS_H
34 #error "include FreeRTOS.h" must appear in source files before "include queue.h"
64 #define queueSEND_TO_BACK ( ( BaseType_t ) 0 )
65 #define queueSEND_TO_FRONT ( ( BaseType_t ) 1 )
66 #define queueOVERWRITE ( ( BaseType_t ) 2 )
69 #define queueQUEUE_TYPE_BASE ( ( uint8_t ) 0U )
70 #define queueQUEUE_TYPE_SET ( ( uint8_t ) 0U )
71 #define queueQUEUE_TYPE_MUTEX ( ( uint8_t ) 1U )
72 #define queueQUEUE_TYPE_COUNTING_SEMAPHORE ( ( uint8_t ) 2U )
73 #define queueQUEUE_TYPE_BINARY_SEMAPHORE ( ( uint8_t ) 3U )
74 #define queueQUEUE_TYPE_RECURSIVE_MUTEX ( ( uint8_t ) 4U )
144 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
145 #define xQueueCreate( uxQueueLength, uxItemSize ) xQueueGenericCreate( ( uxQueueLength ), ( uxItemSize ), ( queueQUEUE_TYPE_BASE ) )
230 #if( configSUPPORT_STATIC_ALLOCATION == 1 )
231 #define xQueueCreateStatic( uxQueueLength, uxItemSize, pucQueueStorage, pxQueueBuffer ) xQueueGenericCreateStatic( ( uxQueueLength ), ( uxItemSize ), ( pucQueueStorage ), ( pxQueueBuffer ), ( queueQUEUE_TYPE_BASE ) )
312 #define xQueueSendToFront( xQueue, pvItemToQueue, xTicksToWait ) xQueueGenericSend( ( xQueue ), ( pvItemToQueue ), ( xTicksToWait ), queueSEND_TO_FRONT )
394 #define xQueueSendToBack( xQueue, pvItemToQueue, xTicksToWait ) xQueueGenericSend( ( xQueue ), ( pvItemToQueue ), ( xTicksToWait ), queueSEND_TO_BACK )
478 #define xQueueSend( xQueue, pvItemToQueue, xTicksToWait ) xQueueGenericSend( ( xQueue ), ( pvItemToQueue ), ( xTicksToWait ), queueSEND_TO_BACK )
561 #define xQueueOverwrite( xQueue, pvItemToQueue ) xQueueGenericSend( ( xQueue ), ( pvItemToQueue ), 0, queueOVERWRITE )
983 #define xQueueSendToFrontFromISR( xQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) xQueueGenericSendFromISR( ( xQueue ), ( pvItemToQueue ), ( pxHigherPriorityTaskWoken ), queueSEND_TO_FRONT )
1054 #define xQueueSendToBackFromISR( xQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) xQueueGenericSendFromISR( ( xQueue ), ( pvItemToQueue ), ( pxHigherPriorityTaskWoken ), queueSEND_TO_BACK )
1141 #define xQueueOverwriteFromISR( xQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) xQueueGenericSendFromISR( ( xQueue ), ( pvItemToQueue ), ( pxHigherPriorityTaskWoken ), queueOVERWRITE )
1215 #define xQueueSendFromISR( xQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) xQueueGenericSendFromISR( ( xQueue ), ( pvItemToQueue ), ( pxHigherPriorityTaskWoken ), queueSEND_TO_BACK )
1432 #define xQueueReset( xQueue ) xQueueGenericReset( xQueue, pdFALSE )
1456 #if( configQUEUE_REGISTRY_SIZE > 0 )
1470 #if( configQUEUE_REGISTRY_SIZE > 0 )
1485 #if( configQUEUE_REGISTRY_SIZE > 0 )
1494 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
1503 #if( configSUPPORT_STATIC_ALLOCATION == 1 )
BaseType_t xQueueGiveMutexRecursive(QueueHandle_t pxMutex) PRIVILEGED_FUNCTION
QueueSetMemberHandle_t xQueueSelectFromSet(QueueSetHandle_t xQueueSet, const TickType_t xTicksToWait) PRIVILEGED_FUNCTION
#define vQueueUnregisterQueue(xQueue)
Definition: FreeRTOS.h:284
#define traceQUEUE_RECEIVE_FROM_ISR_FAILED(pxQueue)
Definition: FreeRTOS.h:477
#define traceTAKE_MUTEX_RECURSIVE_FAILED(pxMutex)
Definition: FreeRTOS.h:425
#define errQUEUE_FULL
Definition: projdefs.h:51
BaseType_t xQueueGenericSend(QueueHandle_t xQueue, const void *const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition)
Definition: queue.c:726
#define uxQueueType
Definition: queue.c:68
UBaseType_t uxItemSize
Definition: queue.c:106
#define pxMutexHolder
Definition: queue.c:67
BaseType_t xTaskRemoveFromEventList(const List_t *const pxEventList) PRIVILEGED_FUNCTION
Definition: tasks.c:2983
void vTaskPlaceOnEventList(List_t *const pxEventList, const TickType_t xTicksToWait) PRIVILEGED_FUNCTION
Definition: tasks.c:2909
BaseType_t xQueueAddToSet(QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet) PRIVILEGED_FUNCTION
void * xQueueGetMutexHolder(QueueHandle_t xSemaphore) PRIVILEGED_FUNCTION
volatile UBaseType_t uxMessagesWaiting
Definition: queue.c:104
UBaseType_t uxQueueSpacesAvailable(const QueueHandle_t xQueue) PRIVILEGED_FUNCTION
Definition: queue.c:1912
BaseType_t xQueueCRSendFromISR(QueueHandle_t xQueue, const void *pvItemToQueue, BaseType_t xCoRoutinePreviouslyWoken)
void vPortFree(void *pv)
Definition: heap_1.c:123
BaseType_t xQueueReceive(QueueHandle_t xQueue, void *const pvBuffer, TickType_t xTicksToWait)
Definition: queue.c:1240
BaseType_t xQueueGiveFromISR(QueueHandle_t xQueue, BaseType_t *const pxHigherPriorityTaskWoken) PRIVILEGED_FUNCTION
Definition: queue.c:1075
void vListInitialise(List_t *const pxList)
Definition: list.c:38
UBaseType_t uxQueueGetQueueNumber(QueueHandle_t xQueue) PRIVILEGED_FUNCTION
BaseType_t xQueueRemoveFromSet(QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet) PRIVILEGED_FUNCTION
#define queueYIELD_IF_USING_PREEMPTION()
Definition: queue.c:81
#define traceGIVE_MUTEX_RECURSIVE_FAILED(pxMutex)
Definition: FreeRTOS.h:417
volatile int8_t cRxLock
Definition: queue.c:108
#define PRIVILEGED_DATA
Definition: mpu_wrappers.h:175
#define listCURRENT_LIST_LENGTH(pxList)
Definition: list.h:255
#define traceQUEUE_REGISTRY_ADD(xQueue, pcQueueName)
Definition: FreeRTOS.h:609
#define pdFAIL
Definition: projdefs.h:49
void vTaskInternalSetTimeOutState(TimeOut_t *const pxTimeOut) PRIVILEGED_FUNCTION
Definition: tasks.c:3097
xQUEUE Queue_t
Definition: queue.c:128
void vCoRoutineAddToDelayedList(TickType_t xTicksToDelay, List_t *pxEventList)
#define errQUEUE_BLOCKED
Definition: projdefs.h:55
#define queueQUEUE_TYPE_COUNTING_SEMAPHORE
Definition: queue.h:72
#define queueQUEUE_TYPE_SET
Definition: queue.h:70
union QueueDefinition::@2 u
static void prvCopyDataFromQueue(Queue_t *const pxQueue, void *const pvBuffer) PRIVILEGED_FUNCTION
Definition: queue.c:2120
BaseType_t xQueueCRReceive(QueueHandle_t xQueue, void *pvBuffer, TickType_t xTicksToWait)
BaseType_t xTaskCheckForTimeOut(TimeOut_t *const pxTimeOut, TickType_t *const pxTicksToWait) PRIVILEGED_FUNCTION
Definition: tasks.c:3105
BaseType_t xQueueGenericSendFromISR(QueueHandle_t xQueue, const void *const pvItemToQueue, BaseType_t *const pxHigherPriorityTaskWoken, const BaseType_t xCopyPosition) PRIVILEGED_FUNCTION
Definition: queue.c:924
UBaseType_t uxLength
Definition: queue.c:105
#define traceQUEUE_RECEIVE(pxQueue)
Definition: FreeRTOS.h:445
#define pcQueueGetName(xQueue)
Definition: FreeRTOS.h:285
#define queueLOCKED_UNMODIFIED
Definition: queue.c:54
volatile int8_t cTxLock
Definition: queue.c:109
#define traceQUEUE_PEEK_FAILED(pxQueue)
Definition: FreeRTOS.h:453
void vTaskSuspendAll(void) PRIVILEGED_FUNCTION
Definition: tasks.c:2031
BaseType_t xQueueCRSend(QueueHandle_t xQueue, const void *pvItemToQueue, TickType_t xTicksToWait)
BaseType_t xQueueCRReceiveFromISR(QueueHandle_t xQueue, void *pvBuffer, BaseType_t *pxTaskWoken)
BaseType_t xQueueSemaphoreTake(QueueHandle_t xQueue, TickType_t xTicksToWait) PRIVILEGED_FUNCTION
Definition: queue.c:1382
List_t xTasksWaitingToSend
Definition: queue.c:101
BaseType_t xQueueIsQueueFullFromISR(const QueueHandle_t xQueue) PRIVILEGED_FUNCTION
Definition: queue.c:2318
UBaseType_t uxQueueMessagesWaitingFromISR(const QueueHandle_t xQueue)
Definition: queue.c:1930
BaseType_t xQueueGenericReset(QueueHandle_t xQueue, BaseType_t xNewQueue)
Definition: queue.c:248
#define pdPASS
Definition: projdefs.h:48
#define traceTAKE_MUTEX_RECURSIVE(pxMutex)
Definition: FreeRTOS.h:421
#define PRIVILEGED_FUNCTION
Definition: mpu_wrappers.h:174
static void prvInitialiseNewQueue(const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, uint8_t *pucQueueStorage, const uint8_t ucQueueType, Queue_t *pxNewQueue) PRIVILEGED_FUNCTION
Definition: queue.c:409
int8_t * pcHead
Definition: queue.c:91
UBaseType_t uxRecursiveCallCount
Definition: queue.c:98
Definition: FreeRTOS.h:1048
uint32_t TickType_t
Definition: portmacro.h:64
#define queueUNLOCKED
Definition: queue.c:53
void * pvTaskIncrementMutexHeldCount(void) PRIVILEGED_FUNCTION
BaseType_t xQueueGiveFromISR(QueueHandle_t xQueue, BaseType_t *const pxHigherPriorityTaskWoken)
Definition: queue.c:1075
QueueHandle_t xQueueCreateCountingSemaphoreStatic(const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount, StaticQueue_t *pxStaticQueue) PRIVILEGED_FUNCTION
#define traceQUEUE_SEND_FROM_ISR_FAILED(pxQueue)
Definition: FreeRTOS.h:469
void vQueueWaitForMessageRestricted(QueueHandle_t xQueue, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely) PRIVILEGED_FUNCTION
#define traceQUEUE_PEEK_FROM_ISR(pxQueue)
Definition: FreeRTOS.h:457
#define traceQUEUE_SEND_FAILED(pxQueue)
Definition: FreeRTOS.h:441
int8_t * pcReadFrom
Definition: queue.c:97
BaseType_t xQueueReceiveFromISR(QueueHandle_t xQueue, void *const pvBuffer, BaseType_t *const pxHigherPriorityTaskWoken)
Definition: queue.c:1751
#define listGET_ITEM_VALUE_OF_HEAD_ENTRY(pxList)
Definition: list.h:217
BaseType_t xQueueTakeMutexRecursive(QueueHandle_t xMutex, TickType_t xTicksToWait) PRIVILEGED_FUNCTION
#define taskENTER_CRITICAL()
Definition: task.h:179
#define queueOVERWRITE
Definition: queue.h:66
#define pdFALSE
Definition: projdefs.h:45
void * xQueueGetMutexHolderFromISR(QueueHandle_t xSemaphore) PRIVILEGED_FUNCTION
BaseType_t xQueuePeekFromISR(QueueHandle_t xQueue, void *const pvBuffer)
Definition: queue.c:1842
void * QueueSetHandle_t
Definition: queue.h:54
#define configMAX_PRIORITIES
Definition: FreeRTOSConfig.h:22
#define traceCREATE_MUTEX(pxNewQueue)
Definition: FreeRTOS.h:405
struct xSTATIC_QUEUE StaticQueue_t
#define queueSEND_TO_BACK
Definition: queue.h:64
BaseType_t xQueueIsQueueEmptyFromISR(const QueueHandle_t xQueue) PRIVILEGED_FUNCTION
Definition: queue.c:2279
unsigned long UBaseType_t
Definition: portmacro.h:58
#define prvLockQueue(pxQueue)
Definition: queue.c:233
BaseType_t xQueuePeekFromISR(QueueHandle_t xQueue, void *const pvBuffer) PRIVILEGED_FUNCTION
Definition: queue.c:1842
#define traceQUEUE_PEEK(pxQueue)
Definition: FreeRTOS.h:449
BaseType_t xQueueReceive(QueueHandle_t xQueue, void *const pvBuffer, TickType_t xTicksToWait) PRIVILEGED_FUNCTION
Definition: queue.c:1240
#define portDISABLE_INTERRUPTS()
Definition: portmacro.h:105
#define traceQUEUE_PEEK_FROM_ISR_FAILED(pxQueue)
Definition: FreeRTOS.h:481
#define traceBLOCKING_ON_QUEUE_SEND(pxQueue)
Definition: FreeRTOS.h:371
BaseType_t xQueuePeek(QueueHandle_t xQueue, void *const pvBuffer, TickType_t xTicksToWait) PRIVILEGED_FUNCTION
Definition: queue.c:1601
#define traceCREATE_COUNTING_SEMAPHORE()
Definition: FreeRTOS.h:429
BaseType_t xQueueIsQueueFullFromISR(const QueueHandle_t xQueue)
Definition: queue.c:2318
#define listLIST_IS_EMPTY(pxList)
Definition: list.h:250
static BaseType_t prvCopyDataToQueue(Queue_t *const pxQueue, const void *pvItemToQueue, const BaseType_t xPosition) PRIVILEGED_FUNCTION
Definition: queue.c:2041
BaseType_t xQueueReceiveFromISR(QueueHandle_t xQueue, void *const pvBuffer, BaseType_t *const pxHigherPriorityTaskWoken) PRIVILEGED_FUNCTION
Definition: queue.c:1751
UBaseType_t uxQueueMessagesWaiting(const QueueHandle_t xQueue) PRIVILEGED_FUNCTION
Definition: queue.c:1896
#define traceGIVE_MUTEX_RECURSIVE(pxMutex)
Definition: FreeRTOS.h:413
#define traceQUEUE_RECEIVE_FROM_ISR(pxQueue)
Definition: FreeRTOS.h:473
#define configQUEUE_REGISTRY_SIZE
Definition: FreeRTOSConfig.h:27
void vTaskPriorityDisinheritAfterTimeout(TaskHandle_t const pxMutexHolder, UBaseType_t uxHighestPriorityWaitingTask) PRIVILEGED_FUNCTION
List_t xTasksWaitingToReceive
Definition: queue.c:102
#define taskSCHEDULER_SUSPENDED
Definition: task.h:219
static BaseType_t prvIsQueueFull(const Queue_t *pxQueue) PRIVILEGED_FUNCTION
Definition: queue.c:2297
QueueHandle_t xQueueCreateCountingSemaphore(const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount) PRIVILEGED_FUNCTION
UBaseType_t uxQueueMessagesWaiting(const QueueHandle_t xQueue)
Definition: queue.c:1896
#define errQUEUE_YIELD
Definition: projdefs.h:56
#define traceQUEUE_SEND_FROM_ISR(pxQueue)
Definition: FreeRTOS.h:465
#define errQUEUE_EMPTY
Definition: projdefs.h:50
#define portASSERT_IF_INTERRUPT_PRIORITY_INVALID()
Definition: FreeRTOS.h:779
QueueHandle_t xQueueCreateMutex(const uint8_t ucQueueType) PRIVILEGED_FUNCTION
#define portENABLE_INTERRUPTS()
Definition: portmacro.h:106
QueueHandle_t xQueueGenericCreate(const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, const uint8_t ucQueueType)
Definition: queue.c:359
#define portCLEAR_INTERRUPT_MASK_FROM_ISR(x)
Definition: portmacro.h:110
#define traceCREATE_COUNTING_SEMAPHORE_FAILED()
Definition: FreeRTOS.h:433
void vQueueDelete(QueueHandle_t xQueue)
Definition: queue.c:1942
#define traceBLOCKING_ON_QUEUE_RECEIVE(pxQueue)
Definition: FreeRTOS.h:355
#define portYIELD_WITHIN_API
Definition: FreeRTOS.h:723
#define traceQUEUE_SEND(pxQueue)
Definition: FreeRTOS.h:437
long BaseType_t
Definition: portmacro.h:57
#define pdTRUE
Definition: projdefs.h:46
void * QueueHandle_t
Definition: queue.h:47
#define queueMUTEX_GIVE_BLOCK_TIME
Definition: queue.c:74
uint8_t ucQueueGetQueueType(QueueHandle_t xQueue) PRIVILEGED_FUNCTION
#define traceQUEUE_RECEIVE_FAILED(pxQueue)
Definition: FreeRTOS.h:461
BaseType_t xQueueGenericSend(QueueHandle_t xQueue, const void *const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition) PRIVILEGED_FUNCTION
Definition: queue.c:726
void vTaskMissedYield(void) PRIVILEGED_FUNCTION
Definition: tasks.c:3168
QueueSetMemberHandle_t xQueueSelectFromSetFromISR(QueueSetHandle_t xQueueSet) PRIVILEGED_FUNCTION
#define traceQUEUE_DELETE(pxQueue)
Definition: FreeRTOS.h:485
static BaseType_t prvIsQueueEmpty(const Queue_t *pxQueue) PRIVILEGED_FUNCTION
Definition: queue.c:2258
TaskHandle_t xTaskGetCurrentTaskHandle(void) PRIVILEGED_FUNCTION
Definition: tasks.c:3755
#define vQueueAddToRegistry(xQueue, pcName)
Definition: FreeRTOS.h:283
BaseType_t xQueueGenericSendFromISR(QueueHandle_t xQueue, const void *const pvItemToQueue, BaseType_t *const pxHigherPriorityTaskWoken, const BaseType_t xCopyPosition)
Definition: queue.c:924
BaseType_t xCoRoutineRemoveFromEventList(const List_t *pxEventList)
#define traceCREATE_MUTEX_FAILED()
Definition: FreeRTOS.h:409
#define traceQUEUE_CREATE_FAILED(ucQueueType)
Definition: FreeRTOS.h:401
#define taskEXIT_CRITICAL()
Definition: task.h:194
BaseType_t xTaskPriorityInherit(TaskHandle_t const pxMutexHolder) PRIVILEGED_FUNCTION
#define queueSEMAPHORE_QUEUE_ITEM_LENGTH
Definition: queue.c:73
void vQueueSetQueueNumber(QueueHandle_t xQueue, UBaseType_t uxQueueNumber) PRIVILEGED_FUNCTION
int8_t * pcTail
Definition: queue.c:92
BaseType_t xTaskResumeAll(void) PRIVILEGED_FUNCTION
Definition: tasks.c:2104
BaseType_t xTaskGetSchedulerState(void) PRIVILEGED_FUNCTION
#define configASSERT(x)
Definition: FreeRTOS.h:235
BaseType_t xQueueIsQueueEmptyFromISR(const QueueHandle_t xQueue)
Definition: queue.c:2279
void vQueueDelete(QueueHandle_t xQueue) PRIVILEGED_FUNCTION
Definition: queue.c:1942
#define traceQUEUE_CREATE(pxNewQueue)
Definition: FreeRTOS.h:397
UBaseType_t uxQueueSpacesAvailable(const QueueHandle_t xQueue)
Definition: queue.c:1912
BaseType_t xQueuePeek(QueueHandle_t xQueue, void *const pvBuffer, TickType_t xTicksToWait)
Definition: queue.c:1601
UBaseType_t uxQueueMessagesWaitingFromISR(const QueueHandle_t xQueue) PRIVILEGED_FUNCTION
Definition: queue.c:1930
QueueSetHandle_t xQueueCreateSet(const UBaseType_t uxEventQueueLength) PRIVILEGED_FUNCTION
BaseType_t xTaskPriorityDisinherit(TaskHandle_t const pxMutexHolder) PRIVILEGED_FUNCTION
static void prvUnlockQueue(Queue_t *const pxQueue) PRIVILEGED_FUNCTION
Definition: queue.c:2138
BaseType_t xQueueSemaphoreTake(QueueHandle_t xQueue, TickType_t xTicksToWait)
Definition: queue.c:1382
int8_t * pcWriteTo
Definition: queue.c:93
QueueHandle_t xQueueCreateMutexStatic(const uint8_t ucQueueType, StaticQueue_t *pxStaticQueue) PRIVILEGED_FUNCTION
#define traceBLOCKING_ON_QUEUE_PEEK(pxQueue)
Definition: FreeRTOS.h:363
void * QueueSetMemberHandle_t
Definition: queue.h:61
BaseType_t xQueueGenericReset(QueueHandle_t xQueue, BaseType_t xNewQueue) PRIVILEGED_FUNCTION
Definition: queue.c:248
void vTaskPlaceOnEventListRestricted(List_t *const pxEventList, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely) PRIVILEGED_FUNCTION
#define tskIDLE_PRIORITY
Definition: task.h:155
#define portSET_INTERRUPT_MASK_FROM_ISR()
Definition: portmacro.h:109
struct QueueDefinition xQUEUE
#define queueQUEUE_IS_MUTEX
Definition: queue.c:69
#define mtCOVERAGE_TEST_MARKER()
Definition: FreeRTOS.h:787
void * pvPortMalloc(size_t xWantedSize)
Definition: heap_1.c:71