35#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE
47#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
54 #if ( configUSE_TRACE_FACILITY == 1 )
58 #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
59 uint8_t ucStaticallyAllocated;
79#if ( configSUPPORT_STATIC_ALLOCATION == 1 )
88 #if ( configASSERT_DEFINED == 1 )
101 if( pxEventBits !=
NULL )
106 #if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
111 pxEventBits->ucStaticallyAllocated =
pdTRUE;
131#if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
152 if( pxEventBits !=
NULL )
157 #if ( configSUPPORT_STATIC_ALLOCATION == 1 )
162 pxEventBits->ucStaticallyAllocated =
pdFALSE;
191 #if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) )
203 if( ( ( uxOriginalBitValue | uxBitsToSet ) & uxBitsToWaitFor ) == uxBitsToWaitFor )
206 uxReturn = ( uxOriginalBitValue | uxBitsToSet );
236 xTimeoutOccurred =
pdTRUE;
244 if( xAlreadyYielded ==
pdFALSE )
270 if( ( uxReturn & uxBitsToWaitFor ) == uxBitsToWaitFor )
281 xTimeoutOccurred =
pdTRUE;
296 ( void ) xTimeoutOccurred;
310 BaseType_t xWaitConditionMet, xAlreadyYielded;
318 #if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) )
329 xWaitConditionMet =
prvTestWaitCondition( uxCurrentEventBits, uxBitsToWaitFor, xWaitForAllBits );
331 if( xWaitConditionMet !=
pdFALSE )
335 uxReturn = uxCurrentEventBits;
352 uxReturn = uxCurrentEventBits;
353 xTimeoutOccurred =
pdTRUE;
370 if( xWaitForAllBits !=
pdFALSE )
396 if( xAlreadyYielded ==
pdFALSE )
436 xTimeoutOccurred =
pdTRUE;
452 ( void ) xTimeoutOccurred;
486#if ( ( configUSE_TRACE_FACILITY == 1 ) && ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) )
525 EventBits_t uxBitsToClear = 0, uxBitsWaitedFor, uxControlBits;
546 while( pxListItem != pxListEnd )
568 else if( ( uxBitsWaitedFor & pxEventBits->
uxEventBits ) == uxBitsWaitedFor )
583 uxBitsToClear |= uxBitsWaitedFor;
617 const List_t * pxTasksWaitingForBits;
637 #if ( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 0 ) )
643 #elif ( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) )
647 if( pxEventBits->ucStaticallyAllocated == ( uint8_t )
pdFALSE )
660#if ( configSUPPORT_STATIC_ALLOCATION == 1 )
670 #if ( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
673 if( pxEventBits->ucStaticallyAllocated == ( uint8_t )
pdTRUE )
699 const uint32_t ulBitsToSet )
708 const uint32_t ulBitsToClear )
720 if( xWaitForAllBits ==
pdFALSE )
724 if( ( uxCurrentEventBits & uxBitsToWaitFor ) != (
EventBits_t ) 0 )
726 xWaitConditionMet =
pdTRUE;
737 if( ( uxCurrentEventBits & uxBitsToWaitFor ) == uxBitsToWaitFor )
739 xWaitConditionMet =
pdTRUE;
747 return xWaitConditionMet;
751#if ( ( configUSE_TRACE_FACILITY == 1 ) && ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) )
768#if ( configUSE_TRACE_FACILITY == 1 )
770 UBaseType_t uxEventGroupGetNumber(
void * xEventGroup )
775 if( xEventGroup ==
NULL )
781 xReturn = pxEventBits->uxEventGroupNumber;
790#if ( configUSE_TRACE_FACILITY == 1 )
792 void vEventGroupSetNumber(
void * xEventGroup,
795 ( (
EventGroup_t * ) xEventGroup )->uxEventGroupNumber = uxEventGroupNumber;
#define traceEVENT_GROUP_CREATE(xEventGroup)
#define traceEVENT_GROUP_SET_BITS(xEventGroup, uxBitsToSet)
#define traceEVENT_GROUP_SYNC_BLOCK(xEventGroup, uxBitsToSet, uxBitsToWaitFor)
#define traceEVENT_GROUP_CLEAR_BITS_FROM_ISR(xEventGroup, uxBitsToClear)
#define traceEVENT_GROUP_DELETE(xEventGroup)
#define traceEVENT_GROUP_CREATE_FAILED()
#define mtCOVERAGE_TEST_MARKER()
#define traceEVENT_GROUP_WAIT_BITS_END(xEventGroup, uxBitsToWaitFor, xTimeoutOccurred)
#define traceEVENT_GROUP_CLEAR_BITS(xEventGroup, uxBitsToClear)
#define traceEVENT_GROUP_SET_BITS_FROM_ISR(xEventGroup, uxBitsToSet)
#define traceEVENT_GROUP_WAIT_BITS_BLOCK(xEventGroup, uxBitsToWaitFor)
#define traceEVENT_GROUP_SYNC_END(xEventGroup, uxBitsToSet, uxBitsToWaitFor, xTimeoutOccurred)
#define portYIELD_WITHIN_API
struct xSTATIC_EVENT_GROUP StaticEventGroup_t
static BaseType_t prvTestWaitCondition(const EventBits_t uxCurrentEventBits, const EventBits_t uxBitsToWaitFor, const BaseType_t xWaitForAllBits) PRIVILEGED_FUNCTION
EventBits_t xEventGroupWaitBits(EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToWaitFor, const BaseType_t xClearOnExit, const BaseType_t xWaitForAllBits, TickType_t xTicksToWait)
void vEventGroupClearBitsCallback(void *pvEventGroup, const uint32_t ulBitsToClear)
void vEventGroupSetBitsCallback(void *pvEventGroup, const uint32_t ulBitsToSet)
event_groups.h
void vEventGroupDelete(EventGroupHandle_t xEventGroup)
event_groups.h
EventBits_t xEventGroupClearBits(EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToClear)
EventBits_t xEventGroupSetBits(EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet)
EventBits_t xEventGroupSync(EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet, const EventBits_t uxBitsToWaitFor, TickType_t xTicksToWait)
EventBits_t xEventGroupGetBitsFromISR(EventGroupHandle_t xEventGroup)
struct EventGroupDef_t EventGroup_t
#define eventCLEAR_EVENTS_ON_EXIT_BIT
#define xEventGroupClearBitsFromISR(xEventGroup, uxBitsToClear)
#define eventEVENT_BITS_CONTROL_BYTES
#define xEventGroupSetBitsFromISR(xEventGroup, uxBitsToSet, pxHigherPriorityTaskWoken)
#define eventUNBLOCKED_DUE_TO_BIT_SET
struct EventGroupDef_t * EventGroupHandle_t
#define eventWAIT_FOR_ALL_BITS
#define listCURRENT_LIST_LENGTH(pxList)
struct xLIST_ITEM ListItem_t
#define listGET_END_MARKER(pxList)
#define listGET_HEAD_ENTRY(pxList)
#define listGET_LIST_ITEM_VALUE(pxListItem)
#define listGET_NEXT(pxListItem)
void vListInitialise(List_t *const pxList) PRIVILEGED_FUNCTION
#define PRIVILEGED_FUNCTION
void vPortFree(void *pv) PRIVILEGED_FUNCTION
void * pvPortMalloc(size_t xSize) PRIVILEGED_FUNCTION
#define portSET_INTERRUPT_MASK_FROM_ISR()
unsigned long UBaseType_t
#define portCLEAR_INTERRUPT_MASK_FROM_ISR(x)
List_t xTasksWaitingForBits
List of tasks waiting for a bit to be set.
struct xLIST_ITEM *configLIST_VOLATILE pxNext
Pointer to the next ListItem_t in the list.
MiniListItem_t xListEnd
List item that contains the maximum possible item value meaning it is always at the end of the list a...
BaseType_t xTaskResumeAll(void) PRIVILEGED_FUNCTION
BaseType_t xTaskGetSchedulerState(void) PRIVILEGED_FUNCTION
#define taskSCHEDULER_SUSPENDED
void vTaskRemoveFromUnorderedEventList(ListItem_t *pxEventListItem, const TickType_t xItemValue) PRIVILEGED_FUNCTION
void vTaskSuspendAll(void) PRIVILEGED_FUNCTION
TickType_t uxTaskResetEventItemValue(void) PRIVILEGED_FUNCTION
void vTaskPlaceOnUnorderedEventList(List_t *pxEventList, const TickType_t xItemValue, const TickType_t xTicksToWait) PRIVILEGED_FUNCTION
#define taskEXIT_CRITICAL()
#define taskENTER_CRITICAL()
BaseType_t xTimerPendFunctionCallFromISR(PendedFunction_t xFunctionToPend, void *pvParameter1, uint32_t ulParameter2, BaseType_t *pxHigherPriorityTaskWoken) PRIVILEGED_FUNCTION
BaseType_t xTimerPendFunctionCallFromISR( PendedFunction_t xFunctionToPend, ...