Microchip® Advanced Software Framework

croutine.c File Reference
#include "FreeRTOS.h"
#include "task.h"
#include "croutine.h"

Macros

#define corINITIAL_STATE   ( 0 )
 
#define prvAddCoRoutineToReadyQueue(pxCRCB)
 

Functions

static void prvCheckDelayedList (void)
 
static void prvCheckPendingReadyList (void)
 
static void prvInitialiseCoRoutineLists (void)
 
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)
 

Variables

CRCB_tpxCurrentCoRoutine = NULL
 
static List_tpxDelayedCoRoutineList
 
static List_tpxOverflowDelayedCoRoutineList
 
static List_t pxReadyCoRoutineLists [configMAX_CO_ROUTINE_PRIORITIES]
 
static UBaseType_t uxTopCoRoutineReadyPriority = 0
 
static TickType_t xCoRoutineTickCount = 0
 
static List_t xDelayedCoRoutineList1
 
static List_t xDelayedCoRoutineList2
 
static TickType_t xLastTickCount = 0
 
static TickType_t xPassedTicks = 0
 
static List_t xPendingReadyCoRoutineList
 

#define corINITIAL_STATE   ( 0 )

Referenced by xCoRoutineCreate().

#define prvAddCoRoutineToReadyQueue (   pxCRCB)
Value:
{ \
if( pxCRCB->uxPriority > uxTopCoRoutineReadyPriority ) \
{ \
uxTopCoRoutineReadyPriority = pxCRCB->uxPriority; \
} \
vListInsertEnd( ( List_t * ) &( pxReadyCoRoutineLists[ pxCRCB->uxPriority ] ), &( pxCRCB->xGenericListItem ) ); \
}
static List_t pxReadyCoRoutineLists[configMAX_CO_ROUTINE_PRIORITIES]
Definition: croutine.c:46
void vListInsertEnd(List_t *const pxList, ListItem_t *const pxNewListItem)
Definition: list.c:75
Definition: list.h:164
static UBaseType_t uxTopCoRoutineReadyPriority
Definition: croutine.c:55

Referenced by prvCheckDelayedList(), prvCheckPendingReadyList(), and xCoRoutineCreate().

static void prvInitialiseCoRoutineLists ( void  )
static
void vCoRoutineAddToDelayedList ( TickType_t  xTicksToDelay,
List_t pxEventList 
)

CRCB_t* pxCurrentCoRoutine = NULL
List_t* pxDelayedCoRoutineList
static

Referenced by prvCheckDelayedList().

List_t* pxOverflowDelayedCoRoutineList
static

Referenced by prvCheckDelayedList().

List_t pxReadyCoRoutineLists[configMAX_CO_ROUTINE_PRIORITIES]
static
UBaseType_t uxTopCoRoutineReadyPriority = 0
static

Referenced by vCoRoutineSchedule().

TickType_t xCoRoutineTickCount = 0
static
List_t xDelayedCoRoutineList1
static
List_t xDelayedCoRoutineList2
static
TickType_t xLastTickCount = 0
static

Referenced by prvCheckDelayedList().

TickType_t xPassedTicks = 0
static

Referenced by prvCheckDelayedList().

List_t xPendingReadyCoRoutineList
static