32 #ifndef INC_FREERTOS_H 33 #error "include FreeRTOS.h must appear in source files before include croutine.h" 205 #define crSTART( pxCRCB ) switch( ( ( CRCB_t * )( pxCRCB ) )->uxState ) { case 0: 242 #define crSET_STATE0( xHandle ) ( ( CRCB_t * )( xHandle ) )->uxState = (__LINE__ * 2); return; case (__LINE__ * 2): 243 #define crSET_STATE1( xHandle ) ( ( CRCB_t * )( xHandle ) )->uxState = ((__LINE__ * 2)+1); return; case ((__LINE__ * 2)+1): 291 #define crDELAY( xHandle, xTicksToDelay ) \ 292 if( ( xTicksToDelay ) > 0 ) \ 294 vCoRoutineAddToDelayedList( ( xTicksToDelay ), NULL ); \ 296 crSET_STATE0( ( xHandle ) ); 381 #define crQUEUE_SEND( xHandle, pxQueue, pvItemToQueue, xTicksToWait, pxResult ) \ 383 *( pxResult ) = xQueueCRSend( ( pxQueue) , ( pvItemToQueue) , ( xTicksToWait ) ); \ 384 if( *( pxResult ) == errQUEUE_BLOCKED ) \ 386 crSET_STATE0( ( xHandle ) ); \ 387 *pxResult = xQueueCRSend( ( pxQueue ), ( pvItemToQueue ), 0 ); \ 389 if( *pxResult == errQUEUE_YIELD ) \ 391 crSET_STATE1( ( xHandle ) ); \ 392 *pxResult = pdPASS; \ 473 #define crQUEUE_RECEIVE( xHandle, pxQueue, pvBuffer, xTicksToWait, pxResult ) \ 475 *( pxResult ) = xQueueCRReceive( ( pxQueue) , ( pvBuffer ), ( xTicksToWait ) ); \ 476 if( *( pxResult ) == errQUEUE_BLOCKED ) \ 478 crSET_STATE0( ( xHandle ) ); \ 479 *( pxResult ) = xQueueCRReceive( ( pxQueue) , ( pvBuffer ), 0 ); \ 481 if( *( pxResult ) == errQUEUE_YIELD ) \ 483 crSET_STATE1( ( xHandle ) ); \ 484 *( pxResult ) = pdPASS; \ 582 #define crQUEUE_SEND_FROM_ISR( pxQueue, pvItemToQueue, xCoRoutinePreviouslyWoken ) xQueueCRSendFromISR( ( pxQueue ), ( pvItemToQueue ), ( xCoRoutinePreviouslyWoken ) ) 695 #define crQUEUE_RECEIVE_FROM_ISR( pxQueue, pvBuffer, pxCoRoutineWoken ) xQueueCRReceiveFromISR( ( pxQueue ), ( pvBuffer ), ( pxCoRoutineWoken ) )
ListItem_t xEventListItem
BaseType_t xCoRoutineCreate(crCOROUTINE_CODE pxCoRoutineCode, UBaseType_t uxPriority, UBaseType_t uxIndex)
unsigned long UBaseType_t
void vCoRoutineSchedule(void)
void vCoRoutineAddToDelayedList(TickType_t xTicksToDelay, List_t *pxEventList)
BaseType_t xCoRoutineRemoveFromEventList(const List_t *pxEventList)
crCOROUTINE_CODE pxCoRoutineFunction
ListItem_t xGenericListItem
void(* crCOROUTINE_CODE)(CoRoutineHandle_t, UBaseType_t)
struct corCoRoutineControlBlock CRCB_t