diff --git a/include/FreeRTOS.h b/include/FreeRTOS.h index 83f687f35..6878ce871 100644 --- a/include/FreeRTOS.h +++ b/include/FreeRTOS.h @@ -769,10 +769,24 @@ #define traceQUEUE_SEND( pxQueue ) #endif +#ifndef traceQUEUE_SEND_EXT + +/* Extended version of traceQUEUE_SEND that also reports the copy position + * of the sent data. */ + #define traceQUEUE_SEND_EXT( pxQueue, xCopyPosition ) traceQUEUE_SEND( pxQueue ) +#endif + #ifndef traceQUEUE_SEND_FAILED #define traceQUEUE_SEND_FAILED( pxQueue ) #endif +#ifndef traceQUEUE_SEND_FAILED_EXT + +/* Extended version of traceQUEUE_SEND_FAILED that also reports the requested + * copy position of the sent data. */ + #define traceQUEUE_SEND_FAILED_EXT( pxQueue, xCopyPosition ) traceQUEUE_SEND_FAILED( pxQueue ) +#endif + #ifndef traceQUEUE_RECEIVE #define traceQUEUE_RECEIVE( pxQueue ) #endif @@ -797,10 +811,24 @@ #define traceQUEUE_SEND_FROM_ISR( pxQueue ) #endif +#ifndef traceQUEUE_SEND_FROM_ISR_EXT + +/* Extended version of traceQUEUE_SEND_FROM_ISR that also reports the copy + * position of the sent data. */ + #define traceQUEUE_SEND_FROM_ISR_EXT( pxQueue, xCopyPosition ) traceQUEUE_SEND_FROM_ISR( pxQueue ) +#endif + #ifndef traceQUEUE_SEND_FROM_ISR_FAILED #define traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue ) #endif +#ifndef traceQUEUE_SEND_FROM_ISR_FAILED_EXT + +/* Extended version of traceQUEUE_SEND_FROM_ISR_FAILED that also reports the requested + * copy position of the sent data. */ + #define traceQUEUE_SEND_FROM_ISR_FAILED_EXT( pxQueue, xCopyPosition ) traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue ) +#endif + #ifndef traceQUEUE_RECEIVE_FROM_ISR #define traceQUEUE_RECEIVE_FROM_ISR( pxQueue ) #endif diff --git a/queue.c b/queue.c index cec527a55..5b97e7cf2 100644 --- a/queue.c +++ b/queue.c @@ -970,7 +970,7 @@ BaseType_t xQueueGenericSend( QueueHandle_t xQueue, * queue is full. */ if( ( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) || ( xCopyPosition == queueOVERWRITE ) ) { - traceQUEUE_SEND( pxQueue ); + traceQUEUE_SEND_EXT( pxQueue, xCopyPosition ); #if ( configUSE_QUEUE_SETS == 1 ) { @@ -1084,7 +1084,7 @@ BaseType_t xQueueGenericSend( QueueHandle_t xQueue, /* Return to the original privilege level before exiting * the function. */ - traceQUEUE_SEND_FAILED( pxQueue ); + traceQUEUE_SEND_FAILED_EXT( pxQueue, xCopyPosition ); traceRETURN_xQueueGenericSend( errQUEUE_FULL ); return errQUEUE_FULL; @@ -1149,7 +1149,7 @@ BaseType_t xQueueGenericSend( QueueHandle_t xQueue, prvUnlockQueue( pxQueue ); ( void ) xTaskResumeAll(); - traceQUEUE_SEND_FAILED( pxQueue ); + traceQUEUE_SEND_FAILED_EXT( pxQueue, xCopyPosition ); traceRETURN_xQueueGenericSend( errQUEUE_FULL ); return errQUEUE_FULL; @@ -1204,7 +1204,7 @@ BaseType_t xQueueGenericSendFromISR( QueueHandle_t xQueue, const int8_t cTxLock = pxQueue->cTxLock; const UBaseType_t uxPreviousMessagesWaiting = pxQueue->uxMessagesWaiting; - traceQUEUE_SEND_FROM_ISR( pxQueue ); + traceQUEUE_SEND_FROM_ISR_EXT( pxQueue, xCopyPosition ); /* Semaphores use xQueueGiveFromISR(), so pxQueue will not be a * semaphore or mutex. That means prvCopyDataToQueue() cannot result @@ -1318,7 +1318,7 @@ BaseType_t xQueueGenericSendFromISR( QueueHandle_t xQueue, } else { - traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue ); + traceQUEUE_SEND_FROM_ISR_FAILED_EXT( pxQueue, xCopyPosition ); xReturn = errQUEUE_FULL; } } @@ -1386,7 +1386,7 @@ BaseType_t xQueueGiveFromISR( QueueHandle_t xQueue, { const int8_t cTxLock = pxQueue->cTxLock; - traceQUEUE_SEND_FROM_ISR( pxQueue ); + traceQUEUE_SEND_FROM_ISR_EXT( pxQueue, queueSEND_TO_BACK ); /* A task can only have an inherited priority if it is a mutex * holder - and if there is a mutex holder then the mutex cannot be @@ -1491,7 +1491,7 @@ BaseType_t xQueueGiveFromISR( QueueHandle_t xQueue, } else { - traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue ); + traceQUEUE_SEND_FROM_ISR_FAILED_EXT( pxQueue, xCopyPosition ); xReturn = errQUEUE_FULL; } }