#include "list.h"
Data Structures | |
struct | corCoRoutineControlBlock |
Macros | |
#define | crDELAY(xHandle, xTicksToDelay) |
#define | crEND() } |
#define | crQUEUE_RECEIVE(xHandle, pxQueue, pvBuffer, xTicksToWait, pxResult) |
#define | crQUEUE_RECEIVE_FROM_ISR(pxQueue, pvBuffer, pxCoRoutineWoken) xQueueCRReceiveFromISR( ( pxQueue ), ( pvBuffer ), ( pxCoRoutineWoken ) ) |
#define | crQUEUE_SEND(xHandle, pxQueue, pvItemToQueue, xTicksToWait, pxResult) |
#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: |
Typedefs | |
typedef void * | CoRoutineHandle_t |
typedef struct corCoRoutineControlBlock | CRCB_t |
typedef void(* | crCOROUTINE_CODE )(CoRoutineHandle_t, UBaseType_t) |
Functions | |
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) |
#define crDELAY | ( | xHandle, | |
xTicksToDelay | |||
) |
Referenced by graph_co_routine(), and main_co_routine().
#define crEND | ( | ) | } |
Referenced by about_co_routine(), graph_co_routine(), main_co_routine(), terminal_co_routine(), and uart_co_routine().
#define crQUEUE_RECEIVE | ( | xHandle, | |
pxQueue, | |||
pvBuffer, | |||
xTicksToWait, | |||
pxResult | |||
) |
Referenced by about_co_routine(), graph_co_routine(), terminal_co_routine(), and uart_co_routine().
#define crQUEUE_RECEIVE_FROM_ISR | ( | pxQueue, | |
pvBuffer, | |||
pxCoRoutineWoken | |||
) | xQueueCRReceiveFromISR( ( pxQueue ), ( pvBuffer ), ( pxCoRoutineWoken ) ) |
#define crQUEUE_SEND | ( | xHandle, | |
pxQueue, | |||
pvItemToQueue, | |||
xTicksToWait, | |||
pxResult | |||
) |
Referenced by main_co_routine().
#define crQUEUE_SEND_FROM_ISR | ( | pxQueue, | |
pvItemToQueue, | |||
xCoRoutinePreviouslyWoken | |||
) | xQueueCRSendFromISR( ( pxQueue ), ( pvItemToQueue ), ( xCoRoutinePreviouslyWoken ) ) |
Referenced by cdc_rx_handler().
#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: |
Referenced by about_co_routine(), graph_co_routine(), main_co_routine(), terminal_co_routine(), and uart_co_routine().
typedef void* CoRoutineHandle_t |
typedef struct corCoRoutineControlBlock CRCB_t |
typedef void(* crCOROUTINE_CODE)(CoRoutineHandle_t, UBaseType_t) |
void vCoRoutineAddToDelayedList | ( | TickType_t | xTicksToDelay, |
List_t * | pxEventList | ||
) |
References listSET_LIST_ITEM_VALUE, uxListRemove(), vListInsert(), xCoRoutineTickCount, corCoRoutineControlBlock::xEventListItem, and corCoRoutineControlBlock::xGenericListItem.
Referenced by xQueueCRReceive(), and xQueueCRSend().
void vCoRoutineSchedule | ( | void | ) |
BaseType_t xCoRoutineCreate | ( | crCOROUTINE_CODE | pxCoRoutineCode, |
UBaseType_t | uxPriority, | ||
UBaseType_t | uxIndex | ||
) |
References configMAX_CO_ROUTINE_PRIORITIES, corINITIAL_STATE, errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY, listSET_LIST_ITEM_OWNER, listSET_LIST_ITEM_VALUE, pdPASS, prvAddCoRoutineToReadyQueue, prvInitialiseCoRoutineLists(), pvPortMalloc(), corCoRoutineControlBlock::pxCoRoutineFunction, corCoRoutineControlBlock::uxIndex, corCoRoutineControlBlock::uxPriority, corCoRoutineControlBlock::uxState, vListInitialiseItem(), corCoRoutineControlBlock::xEventListItem, and corCoRoutineControlBlock::xGenericListItem.
Referenced by demo_co_routines_init().
BaseType_t xCoRoutineRemoveFromEventList | ( | const List_t * | pxEventList | ) |