72 #define MPU_WRAPPERS_INCLUDED_FROM_API_FILE
84 #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
86 #if ( INCLUDE_xEventGroupSetBitFromISR == 1 ) && ( configUSE_TIMERS == 0 )
87 #error configUSE_TIMERS must be set to 1 to make the xEventGroupSetBitFromISR() function available.
90 #if ( INCLUDE_xEventGroupSetBitFromISR == 1 ) && ( INCLUDE_xTimerPendFunctionCall == 0 )
91 #error INCLUDE_xTimerPendFunctionCall must also be set to one to make the xEventGroupSetBitFromISR() function available.
97 #if configUSE_16_BIT_TICKS == 1
98 #define eventCLEAR_EVENTS_ON_EXIT_BIT 0x0100U
99 #define eventUNBLOCKED_DUE_TO_BIT_SET 0x0200U
100 #define eventWAIT_FOR_ALL_BITS 0x0400U
101 #define eventEVENT_BITS_CONTROL_BYTES 0xff00U
103 #define eventCLEAR_EVENTS_ON_EXIT_BIT 0x01000000UL
104 #define eventUNBLOCKED_DUE_TO_BIT_SET 0x02000000UL
105 #define eventWAIT_FOR_ALL_BITS 0x04000000UL
106 #define eventEVENT_BITS_CONTROL_BYTES 0xff000000UL
114 #if( configUSE_TRACE_FACILITY == 1 )
139 if( pxEventBits != NULL )
163 #if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) )
175 if( ( ( uxOriginalBitValue | uxBitsToSet ) & uxBitsToWaitFor ) == uxBitsToWaitFor )
178 uxReturn = ( uxOriginalBitValue | uxBitsToSet );
215 if( xAlreadyYielded ==
pdFALSE )
241 if( ( uxReturn & uxBitsToWaitFor ) == uxBitsToWaitFor )
252 xTimeoutOccurred =
pdTRUE;
261 uxReturn &= ~eventEVENT_BITS_CONTROL_BYTES;
274 BaseType_t xWaitConditionMet, xAlreadyYielded;
281 #if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) )
292 xWaitConditionMet = prvTestWaitCondition( uxCurrentEventBits, uxBitsToWaitFor, xWaitForAllBits );
294 if( xWaitConditionMet !=
pdFALSE )
298 uxReturn = uxCurrentEventBits;
315 uxReturn = uxCurrentEventBits;
332 if( xWaitForAllBits !=
pdFALSE )
358 if( xAlreadyYielded ==
pdFALSE )
382 if( prvTestWaitCondition( uxReturn, uxBitsToWaitFor, xWaitForAllBits ) !=
pdFALSE )
409 uxReturn &= ~eventEVENT_BITS_CONTROL_BYTES;
443 #if ( ( configUSE_TRACE_FACILITY == 1 ) && ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) )
479 EventBits_t uxBitsToClear = 0, uxBitsWaitedFor, uxControlBits;
499 while( pxListItem != pxListEnd )
507 uxBitsWaitedFor &= ~eventEVENT_BITS_CONTROL_BYTES;
521 else if( ( uxBitsWaitedFor & pxEventBits->
uxEventBits ) == uxBitsWaitedFor )
536 uxBitsToClear |= uxBitsWaitedFor;
610 if( xWaitForAllBits ==
pdFALSE )
614 if( ( uxCurrentEventBits & uxBitsToWaitFor ) != (
EventBits_t ) 0 )
616 xWaitConditionMet =
pdTRUE;
627 if( ( uxCurrentEventBits & uxBitsToWaitFor ) == uxBitsToWaitFor )
629 xWaitConditionMet =
pdTRUE;
637 return xWaitConditionMet;
641 #if ( ( configUSE_TRACE_FACILITY == 1 ) && ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) )
656 #if (configUSE_TRACE_FACILITY == 1)
658 UBaseType_t uxEventGroupGetNumber(
void* xEventGroup )
663 if( xEventGroup == NULL )
669 xReturn = pxEventBits->uxEventGroupNumber;
#define xEventGroupSetBitsFromISR(xEventGroup, uxBitsToSet, pxHigherPriorityTaskWoken)
void vPortFree(void *pv) PRIVILEGED_FUNCTION
#define listGET_LIST_ITEM_VALUE(pxListItem)
#define traceEVENT_GROUP_SYNC_BLOCK(xEventGroup, uxBitsToSet, uxBitsToWaitFor)
void vEventGroupSetBitsCallback(void *pvEventGroup, const uint32_t ulBitsToSet)
#define mtCOVERAGE_TEST_MARKER()
#define taskEXIT_CRITICAL()
List_t xTasksWaitingForBits
void vTaskSuspendAll(void) PRIVILEGED_FUNCTION
EventBits_t xEventGroupClearBits(EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToClear)
#define traceEVENT_GROUP_CLEAR_BITS_FROM_ISR(xEventGroup, uxBitsToClear)
void * pvPortMalloc(size_t xSize) PRIVILEGED_FUNCTION
#define portCLEAR_INTERRUPT_MASK_FROM_ISR(uxSavedStatusValue)
#define portYIELD_WITHIN_API
void vTaskPlaceOnUnorderedEventList(List_t *pxEventList, const TickType_t xItemValue, const TickType_t xTicksToWait) PRIVILEGED_FUNCTION
void vEventGroupClearBitsCallback(void *pvEventGroup, const uint32_t ulBitsToClear)
unsigned long UBaseType_t
#define traceEVENT_GROUP_WAIT_BITS_BLOCK(xEventGroup, uxBitsToWaitFor)
EventBits_t xEventGroupGetBitsFromISR(EventGroupHandle_t xEventGroup)
#define traceEVENT_GROUP_SYNC_END(xEventGroup, uxBitsToSet, uxBitsToWaitFor, xTimeoutOccurred)
#define portSET_INTERRUPT_MASK_FROM_ISR()
struct xLIST_ITEM *configLIST_VOLATILE pxNext
#define traceEVENT_GROUP_CREATE_FAILED()
BaseType_t xTaskRemoveFromUnorderedEventList(ListItem_t *pxEventListItem, const TickType_t xItemValue) PRIVILEGED_FUNCTION
EventGroupHandle_t xEventGroupCreate(void)
#define traceEVENT_GROUP_CLEAR_BITS(xEventGroup, uxBitsToClear)
#define traceEVENT_GROUP_SET_BITS(xEventGroup, uxBitsToSet)
void vEventGroupDelete(EventGroupHandle_t xEventGroup)
#define eventCLEAR_EVENTS_ON_EXIT_BIT
#define listGET_NEXT(pxListItem)
EventBits_t xEventGroupSetBits(EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet)
EventBits_t xEventGroupWaitBits(EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToWaitFor, const BaseType_t xClearOnExit, const BaseType_t xWaitForAllBits, TickType_t xTicksToWait)
#define traceEVENT_GROUP_CREATE(xEventGroup)
TickType_t uxTaskResetEventItemValue(void) PRIVILEGED_FUNCTION
#define xEventGroupClearBitsFromISR(xEventGroup, uxBitsToClear)
#define traceEVENT_GROUP_WAIT_BITS_END(xEventGroup, uxBitsToWaitFor, xTimeoutOccurred)
BaseType_t xTimerPendFunctionCallFromISR(PendedFunction_t xFunctionToPend, void *pvParameter1, uint32_t ulParameter2, BaseType_t *pxHigherPriorityTaskWoken)
#define traceEVENT_GROUP_DELETE(xEventGroup)
BaseType_t xTaskResumeAll(void) PRIVILEGED_FUNCTION
#define eventWAIT_FOR_ALL_BITS
BaseType_t xTaskGetSchedulerState(void) PRIVILEGED_FUNCTION
#define taskENTER_CRITICAL()
#define eventEVENT_BITS_CONTROL_BYTES
void * EventGroupHandle_t
#define listGET_HEAD_ENTRY(pxList)
#define traceEVENT_GROUP_SET_BITS_FROM_ISR(xEventGroup, uxBitsToSet)
#define listGET_END_MARKER(pxList)
#define taskSCHEDULER_SUSPENDED
#define eventUNBLOCKED_DUE_TO_BIT_SET
EventBits_t xEventGroupSync(EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet, const EventBits_t uxBitsToWaitFor, TickType_t xTicksToWait)
void vListInitialise(List_t *const pxList)
#define listCURRENT_LIST_LENGTH(pxList)
struct xEventGroupDefinition EventGroup_t