mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-20 05:21:59 -04:00
Allow the static qualifier to be removed and rename a list so it does not then clash with the name used in tasks.c once the static has been removed.
This commit is contained in:
parent
1d4e319aa7
commit
d091cf740f
|
@ -51,18 +51,27 @@
|
||||||
#include "task.h"
|
#include "task.h"
|
||||||
#include "croutine.h"
|
#include "croutine.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Some kernel aware debuggers require data to be viewed to be global, rather
|
||||||
|
* than file scope.
|
||||||
|
*/
|
||||||
|
#ifdef portREMOVE_STATIC_QUALIFIER
|
||||||
|
#define static
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Lists for ready and blocked co-routines. --------------------*/
|
/* Lists for ready and blocked co-routines. --------------------*/
|
||||||
static xList pxReadyCoRoutineLists[ configMAX_CO_ROUTINE_PRIORITIES ]; /*< Prioritised ready co-routines. */
|
static xList pxReadyCoRoutineLists[ configMAX_CO_ROUTINE_PRIORITIES ]; /*< Prioritised ready co-routines. */
|
||||||
static xList xDelayedCoRoutineList1; /*< Delayed co-routines. */
|
static xList xDelayedCoRoutineList1; /*< Delayed co-routines. */
|
||||||
static xList xDelayedCoRoutineList2; /*< Delayed co-routines (two lists are used - one for delays that have overflowed the current tick count. */
|
static xList xDelayedCoRoutineList2; /*< Delayed co-routines (two lists are used - one for delays that have overflowed the current tick count. */
|
||||||
static xList * pxDelayedCoRoutineList; /*< Points to the delayed co-routine list currently being used. */
|
static xList * pxDelayedCoRoutineList; /*< Points to the delayed co-routine list currently being used. */
|
||||||
static xList * pxOverflowDelayedCoRoutineList; /*< Points to the delayed co-routine list currently being used to hold co-routines that have overflowed the current tick count. */
|
static xList * pxOverflowDelayedCoRoutineList; /*< Points to the delayed co-routine list currently being used to hold co-routines that have overflowed the current tick count. */
|
||||||
static xList xPendingReadyList; /*< Holds co-routines that have been readied by an external event. They cannot be added directly to the ready lists as the ready lists cannot be accessed by interrupts. */
|
static xList xPendingReadyCoRoutineList; /*< Holds co-routines that have been readied by an external event. They cannot be added directly to the ready lists as the ready lists cannot be accessed by interrupts. */
|
||||||
|
|
||||||
/* Other file private variables. --------------------------------*/
|
/* Other file private variables. --------------------------------*/
|
||||||
corCRCB * pxCurrentCoRoutine = NULL;
|
corCRCB * pxCurrentCoRoutine = NULL;
|
||||||
static unsigned portBASE_TYPE uxTopCoRoutineReadyPriority = 0;
|
static unsigned portBASE_TYPE uxTopCoRoutineReadyPriority = 0;
|
||||||
static portTickType xCoRoutineTickCount = 0;
|
static portTickType xCoRoutineTickCount = 0, xLastTickCount = 0, xPassedTicks = 0;
|
||||||
|
|
||||||
/* The initial state of the co-routine when it is created. */
|
/* The initial state of the co-routine when it is created. */
|
||||||
#define corINITIAL_STATE ( 0 )
|
#define corINITIAL_STATE ( 0 )
|
||||||
|
@ -209,14 +218,14 @@ static void prvCheckPendingReadyList( void )
|
||||||
/* Are there any co-routines waiting to get moved to the ready list? These
|
/* Are there any co-routines waiting to get moved to the ready list? These
|
||||||
are co-routines that have been readied by an ISR. The ISR cannot access
|
are co-routines that have been readied by an ISR. The ISR cannot access
|
||||||
the ready lists itself. */
|
the ready lists itself. */
|
||||||
while( !listLIST_IS_EMPTY( &xPendingReadyList ) )
|
while( !listLIST_IS_EMPTY( &xPendingReadyCoRoutineList ) )
|
||||||
{
|
{
|
||||||
corCRCB *pxUnblockedCRCB;
|
corCRCB *pxUnblockedCRCB;
|
||||||
|
|
||||||
/* The pending ready list can be accessed by an ISR. */
|
/* The pending ready list can be accessed by an ISR. */
|
||||||
portDISABLE_INTERRUPTS();
|
portDISABLE_INTERRUPTS();
|
||||||
{
|
{
|
||||||
pxUnblockedCRCB = ( corCRCB * ) listGET_OWNER_OF_HEAD_ENTRY( (&xPendingReadyList) );
|
pxUnblockedCRCB = ( corCRCB * ) listGET_OWNER_OF_HEAD_ENTRY( (&xPendingReadyCoRoutineList) );
|
||||||
vListRemove( &( pxUnblockedCRCB->xEventListItem ) );
|
vListRemove( &( pxUnblockedCRCB->xEventListItem ) );
|
||||||
}
|
}
|
||||||
portENABLE_INTERRUPTS();
|
portENABLE_INTERRUPTS();
|
||||||
|
@ -229,7 +238,6 @@ static void prvCheckPendingReadyList( void )
|
||||||
|
|
||||||
static void prvCheckDelayedList( void )
|
static void prvCheckDelayedList( void )
|
||||||
{
|
{
|
||||||
static portTickType xLastTickCount, xPassedTicks;
|
|
||||||
corCRCB *pxCRCB;
|
corCRCB *pxCRCB;
|
||||||
|
|
||||||
xPassedTicks = xTaskGetTickCount() - xLastTickCount;
|
xPassedTicks = xTaskGetTickCount() - xLastTickCount;
|
||||||
|
@ -325,7 +333,7 @@ unsigned portBASE_TYPE uxPriority;
|
||||||
|
|
||||||
vListInitialise( ( xList * ) &xDelayedCoRoutineList1 );
|
vListInitialise( ( xList * ) &xDelayedCoRoutineList1 );
|
||||||
vListInitialise( ( xList * ) &xDelayedCoRoutineList2 );
|
vListInitialise( ( xList * ) &xDelayedCoRoutineList2 );
|
||||||
vListInitialise( ( xList * ) &xPendingReadyList );
|
vListInitialise( ( xList * ) &xPendingReadyCoRoutineList );
|
||||||
|
|
||||||
/* Start with pxDelayedCoRoutineList using list1 and the
|
/* Start with pxDelayedCoRoutineList using list1 and the
|
||||||
pxOverflowDelayedCoRoutineList using list2. */
|
pxOverflowDelayedCoRoutineList using list2. */
|
||||||
|
@ -343,7 +351,7 @@ signed portBASE_TYPE xReturn;
|
||||||
event lists and the pending ready list. */
|
event lists and the pending ready list. */
|
||||||
pxUnblockedCRCB = ( corCRCB * ) listGET_OWNER_OF_HEAD_ENTRY( pxEventList );
|
pxUnblockedCRCB = ( corCRCB * ) listGET_OWNER_OF_HEAD_ENTRY( pxEventList );
|
||||||
vListRemove( &( pxUnblockedCRCB->xEventListItem ) );
|
vListRemove( &( pxUnblockedCRCB->xEventListItem ) );
|
||||||
vListInsertEnd( ( xList * ) &( xPendingReadyList ), &( pxUnblockedCRCB->xEventListItem ) );
|
vListInsertEnd( ( xList * ) &( xPendingReadyCoRoutineList ), &( pxUnblockedCRCB->xEventListItem ) );
|
||||||
|
|
||||||
if( pxUnblockedCRCB->uxPriority >= pxCurrentCoRoutine->uxPriority )
|
if( pxUnblockedCRCB->uxPriority >= pxCurrentCoRoutine->uxPriority )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue