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