croutine.h File Reference
#include "list.h"
Include dependency graph for croutine.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Data Structures | |
| struct | corCoRoutineControlBlock |
Macros | |
| #define | crSTART(pxCRCB) switch( ( ( CRCB_t * )( pxCRCB ) )->uxState ) { case 0: |
| #define | crEND() } |
| #define | crSET_STATE0(xHandle) ( ( CRCB_t * )( xHandle ) )->uxState = (__LINE__ * 2); return; case (__LINE__ * 2): |
| #define | crSET_STATE1(xHandle) ( ( CRCB_t * )( xHandle ) )->uxState = ((__LINE__ * 2)+1); return; case ((__LINE__ * 2)+1): |
| #define | crDELAY(xHandle, xTicksToDelay) |
| #define | crQUEUE_SEND(xHandle, pxQueue, pvItemToQueue, xTicksToWait, pxResult) |
| #define | crQUEUE_RECEIVE(xHandle, pxQueue, pvBuffer, xTicksToWait, pxResult) |
| #define | crQUEUE_SEND_FROM_ISR(pxQueue, pvItemToQueue, xCoRoutinePreviouslyWoken) xQueueCRSendFromISR( ( pxQueue ), ( pvItemToQueue ), ( xCoRoutinePreviouslyWoken ) ) |
| #define | crQUEUE_RECEIVE_FROM_ISR(pxQueue, pvBuffer, pxCoRoutineWoken) xQueueCRReceiveFromISR( ( pxQueue ), ( pvBuffer ), ( pxCoRoutineWoken ) ) |
Typedefs | |
| typedef void * | CoRoutineHandle_t |
| typedef void(* | crCOROUTINE_CODE) (CoRoutineHandle_t, UBaseType_t) |
| typedef struct corCoRoutineControlBlock | CRCB_t |
Functions | |
| BaseType_t | xCoRoutineCreate (crCOROUTINE_CODE pxCoRoutineCode, UBaseType_t uxPriority, UBaseType_t uxIndex) |
| void | vCoRoutineSchedule (void) |
| void | vCoRoutineAddToDelayedList (TickType_t xTicksToDelay, List_t *pxEventList) |
| BaseType_t | xCoRoutineRemoveFromEventList (const List_t *pxEventList) |
Macro Definition Documentation
| #define crDELAY | ( | xHandle, | |
| xTicksToDelay | |||
| ) |
Value:
if( ( xTicksToDelay ) > 0 ) \
{ \
vCoRoutineAddToDelayedList( ( xTicksToDelay ), NULL ); \
} \
crSET_STATE0( ( xHandle ) );
void vCoRoutineAddToDelayedList(TickType_t xTicksToDelay, List_t *pxEventList)
| #define crEND | ( | ) | } |
| #define crQUEUE_RECEIVE | ( | xHandle, | |
| pxQueue, | |||
| pvBuffer, | |||
| xTicksToWait, | |||
| pxResult | |||
| ) |
Value:
{ \
*( pxResult ) = xQueueCRReceive( ( pxQueue) , ( pvBuffer ), ( xTicksToWait ) ); \
if( *( pxResult ) == errQUEUE_BLOCKED ) \
{ \
crSET_STATE0( ( xHandle ) ); \
*( pxResult ) = xQueueCRReceive( ( pxQueue) , ( pvBuffer ), 0 ); \
} \
if( *( pxResult ) == errQUEUE_YIELD ) \
{ \
crSET_STATE1( ( xHandle ) ); \
*( pxResult ) = pdPASS; \
} \
}
BaseType_t xQueueCRReceive(QueueHandle_t xQueue, void *pvBuffer, TickType_t xTicksToWait)
| #define crQUEUE_RECEIVE_FROM_ISR | ( | pxQueue, | |
| pvBuffer, | |||
| pxCoRoutineWoken | |||
| ) | xQueueCRReceiveFromISR( ( pxQueue ), ( pvBuffer ), ( pxCoRoutineWoken ) ) |
| #define crQUEUE_SEND | ( | xHandle, | |
| pxQueue, | |||
| pvItemToQueue, | |||
| xTicksToWait, | |||
| pxResult | |||
| ) |
Value:
{ \
*( pxResult ) = xQueueCRSend( ( pxQueue) , ( pvItemToQueue) , ( xTicksToWait ) ); \
if( *( pxResult ) == errQUEUE_BLOCKED ) \
{ \
crSET_STATE0( ( xHandle ) ); \
*pxResult = xQueueCRSend( ( pxQueue ), ( pvItemToQueue ), 0 ); \
} \
if( *pxResult == errQUEUE_YIELD ) \
{ \
crSET_STATE1( ( xHandle ) ); \
*pxResult = pdPASS; \
} \
}
BaseType_t xQueueCRSend(QueueHandle_t xQueue, const void *pvItemToQueue, TickType_t xTicksToWait)
| #define crQUEUE_SEND_FROM_ISR | ( | pxQueue, | |
| pvItemToQueue, | |||
| xCoRoutinePreviouslyWoken | |||
| ) | xQueueCRSendFromISR( ( pxQueue ), ( pvItemToQueue ), ( xCoRoutinePreviouslyWoken ) ) |
| #define crSET_STATE0 | ( | xHandle | ) | ( ( CRCB_t * )( xHandle ) )->uxState = (__LINE__ * 2); return; case (__LINE__ * 2): |
| #define crSET_STATE1 | ( | xHandle | ) | ( ( CRCB_t * )( xHandle ) )->uxState = ((__LINE__ * 2)+1); return; case ((__LINE__ * 2)+1): |
| #define crSTART | ( | pxCRCB | ) | switch( ( ( CRCB_t * )( pxCRCB ) )->uxState ) { case 0: |
Typedef Documentation
| typedef void* CoRoutineHandle_t |
| typedef struct corCoRoutineControlBlock CRCB_t |
| typedef void(* crCOROUTINE_CODE) (CoRoutineHandle_t, UBaseType_t) |
Function Documentation
| void vCoRoutineAddToDelayedList | ( | TickType_t | xTicksToDelay, |
| List_t * | pxEventList | ||
| ) |
| void vCoRoutineSchedule | ( | void | ) |
| BaseType_t xCoRoutineCreate | ( | crCOROUTINE_CODE | pxCoRoutineCode, |
| UBaseType_t | uxPriority, | ||
| UBaseType_t | uxIndex | ||
| ) |
| BaseType_t xCoRoutineRemoveFromEventList | ( | const List_t * | pxEventList | ) |

1.8.11