-xListItem *pxListItem, *pxNext;\r
-xListItem const *pxListEnd;\r
-xList *pxList;\r
-xEventBitsType uxBitsToClear = 0, uxBitsWaitedFor, uxControlBits;\r
-xEVENT_BITS *pxEventBits = ( xEVENT_BITS * ) xEventGroup;\r
-portBASE_TYPE xMatchFound = pdFALSE;\r
+UBaseType_t uxSavedInterruptStatus;\r
+EventGroup_t *pxEventBits = ( EventGroup_t * ) xEventGroup;\r
+EventBits_t uxReturn;\r
+\r
+ /* Check the user is not attempting to clear the bits used by the kernel\r
+ itself. */\r
+ configASSERT( ( uxBitsToClear & eventEVENT_BITS_CONTROL_BYTES ) == 0 );\r
+\r
+ uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();\r
+ {\r
+ traceEVENT_GROUP_CLEAR_BITS_FROM_ISR( xEventGroup, uxBitsToClear );\r
+\r
+ /* The value returned is the event group value prior to the bits being\r
+ cleared. */\r
+ uxReturn = pxEventBits->uxEventBits;\r
+\r
+ /* Clear the bits. */\r
+ pxEventBits->uxEventBits &= ~uxBitsToClear;\r
+ }\r
+ portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus );\r
+\r
+ return uxReturn;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+EventBits_t xEventGroupSetBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet )\r
+{\r
+ListItem_t *pxListItem, *pxNext;\r
+ListItem_t const *pxListEnd;\r
+List_t *pxList;\r
+EventBits_t uxBitsToClear = 0, uxBitsWaitedFor, uxControlBits;\r
+EventGroup_t *pxEventBits = ( EventGroup_t * ) xEventGroup;\r
+BaseType_t xMatchFound = pdFALSE;\r