From e786375a1c408cc3bf73ea900a1927583950ebeb Mon Sep 17 00:00:00 2001 From: schilkp Date: Thu, 6 Jun 2024 09:19:51 +0200 Subject: [PATCH] Add traceTASK_NOTIFY_STATE_CLEAR and traceTASK_NOTIFY_VALUE_CLEAR hooks. Both xTaskGenericNotifyStateClear and ulTaskGenericNotifyValueClear did not feature any tracing hooks besides the ENTER and EXIT calls. This adds the relevant hooks to inform a tracer that the notification state/value has changed. --- include/FreeRTOS.h | 8 ++++++++ tasks.c | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/include/FreeRTOS.h b/include/FreeRTOS.h index 8d587cebf..f27518497 100644 --- a/include/FreeRTOS.h +++ b/include/FreeRTOS.h @@ -1029,6 +1029,14 @@ #define traceTASK_NOTIFY_GIVE_FROM_ISR( uxIndexToNotify ) #endif +#ifndef traceTASK_NOTIFY_STATE_CLEAR + #define traceTASK_NOTIFY_STATE_CLEAR( pxTCB, uxIndexToNotify ) +#endif + +#ifndef traceTASK_NOTIFY_VALUE_CLEAR + #define traceTASK_NOTIFY_VALUE_CLEAR( pxTCB, uxIndexToNotify, ulBitsToClear ) +#endif + #ifndef traceISR_EXIT_TO_SCHEDULER #define traceISR_EXIT_TO_SCHEDULER() #endif diff --git a/tasks.c b/tasks.c index e250ba768..b98c23db7 100644 --- a/tasks.c +++ b/tasks.c @@ -8248,6 +8248,8 @@ TickType_t uxTaskResetEventItemValue( void ) * its notification state cleared. */ pxTCB = prvGetTCBFromHandle( xTask ); + traceTASK_NOTIFY_STATE_CLEAR( pxTCB, uxIndexToClear ); + taskENTER_CRITICAL(); { if( pxTCB->ucNotifyState[ uxIndexToClear ] == taskNOTIFICATION_RECEIVED ) @@ -8287,6 +8289,8 @@ TickType_t uxTaskResetEventItemValue( void ) * its notification state cleared. */ pxTCB = prvGetTCBFromHandle( xTask ); + traceTASK_NOTIFY_VALUE_CLEAR( pxTCB, uxIndexToClear, ulBitsToClear ); + taskENTER_CRITICAL(); { /* Return the notification as it was before the bits were cleared,