Microchip® Advanced Software Framework

list.h File Reference

Data Structures

struct  xLIST
 
struct  xLIST_ITEM
 
struct  xMINI_LIST_ITEM
 

Macros

#define configLIST_VOLATILE
 
#define listCURRENT_LIST_LENGTH(pxList)   ( ( pxList )->uxNumberOfItems )
 
#define listFIRST_LIST_INTEGRITY_CHECK_VALUE
 
#define listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE
 
#define listGET_END_MARKER(pxList)   ( ( ListItem_t const * ) ( &( ( pxList )->xListEnd ) ) )
 
#define listGET_HEAD_ENTRY(pxList)   ( ( ( pxList )->xListEnd ).pxNext )
 
#define listGET_ITEM_VALUE_OF_HEAD_ENTRY(pxList)   ( ( ( pxList )->xListEnd ).pxNext->xItemValue )
 
#define listGET_LIST_ITEM_OWNER(pxListItem)   ( ( pxListItem )->pvOwner )
 
#define listGET_LIST_ITEM_VALUE(pxListItem)   ( ( pxListItem )->xItemValue )
 
#define listGET_NEXT(pxListItem)   ( ( pxListItem )->pxNext )
 
#define listGET_OWNER_OF_HEAD_ENTRY(pxList)   ( (&( ( pxList )->xListEnd ))->pxNext->pvOwner )
 
#define listGET_OWNER_OF_NEXT_ENTRY(pxTCB, pxList)
 
#define listIS_CONTAINED_WITHIN(pxList, pxListItem)   ( ( BaseType_t ) ( ( pxListItem )->pvContainer == ( void * ) ( pxList ) ) )
 
#define listLIST_IS_EMPTY(pxList)   ( ( BaseType_t ) ( ( pxList )->uxNumberOfItems == ( UBaseType_t ) 0 ) )
 
#define listLIST_IS_INITIALISED(pxList)   ( ( pxList )->xListEnd.xItemValue == portMAX_DELAY )
 
#define listLIST_ITEM_CONTAINER(pxListItem)   ( ( pxListItem )->pvContainer )
 
#define listSECOND_LIST_INTEGRITY_CHECK_VALUE
 
#define listSECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE
 
#define listSET_FIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE(pxItem)
 
#define listSET_LIST_INTEGRITY_CHECK_1_VALUE(pxList)
 
#define listSET_LIST_INTEGRITY_CHECK_2_VALUE(pxList)
 
#define listSET_LIST_ITEM_OWNER(pxListItem, pxOwner)   ( ( pxListItem )->pvOwner = ( void * ) ( pxOwner ) )
 
#define listSET_LIST_ITEM_VALUE(pxListItem, xValue)   ( ( pxListItem )->xItemValue = ( xValue ) )
 
#define listSET_SECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE(pxItem)
 
#define listTEST_LIST_INTEGRITY(pxList)
 
#define listTEST_LIST_ITEM_INTEGRITY(pxItem)
 

Typedefs

typedef struct xLIST List_t
 
typedef struct xLIST_ITEM ListItem_t
 
typedef struct xMINI_LIST_ITEM MiniListItem_t
 

Functions

UBaseType_t uxListRemove (ListItem_t *const pxItemToRemove) PRIVILEGED_FUNCTION
 
void vListInitialise (List_t *const pxList) PRIVILEGED_FUNCTION
 
void vListInitialiseItem (ListItem_t *const pxItem) PRIVILEGED_FUNCTION
 
void vListInsert (List_t *const pxList, ListItem_t *const pxNewListItem) PRIVILEGED_FUNCTION
 
void vListInsertEnd (List_t *const pxList, ListItem_t *const pxNewListItem) PRIVILEGED_FUNCTION
 

#define configLIST_VOLATILE
#define listCURRENT_LIST_LENGTH (   pxList)    ( ( pxList )->uxNumberOfItems )
#define listFIRST_LIST_INTEGRITY_CHECK_VALUE
#define listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE
#define listGET_END_MARKER (   pxList)    ( ( ListItem_t const * ) ( &( ( pxList )->xListEnd ) ) )

Referenced by xEventGroupSetBits().

#define listGET_HEAD_ENTRY (   pxList)    ( ( ( pxList )->xListEnd ).pxNext )

Referenced by xEventGroupSetBits().

#define listGET_ITEM_VALUE_OF_HEAD_ENTRY (   pxList)    ( ( ( pxList )->xListEnd ).pxNext->xItemValue )
#define listGET_LIST_ITEM_OWNER (   pxListItem)    ( ( pxListItem )->pvOwner )
#define listGET_LIST_ITEM_VALUE (   pxListItem)    ( ( pxListItem )->xItemValue )
#define listGET_NEXT (   pxListItem)    ( ( pxListItem )->pxNext )

Referenced by xEventGroupSetBits().

#define listGET_OWNER_OF_HEAD_ENTRY (   pxList)    ( (&( ( pxList )->xListEnd ))->pxNext->pvOwner )
#define listGET_OWNER_OF_NEXT_ENTRY (   pxTCB,
  pxList 
)
Value:
{ \
List_t * const pxConstList = ( pxList ); \
/* Increment the index to the next item and return the item, ensuring */ \
/* we don't return the marker used at the end of the list. */ \
( pxConstList )->pxIndex = ( pxConstList )->pxIndex->pxNext; \
if( ( void * ) ( pxConstList )->pxIndex == ( void * ) &( ( pxConstList )->xListEnd ) ) \
{ \
( pxConstList )->pxIndex = ( pxConstList )->pxIndex->pxNext; \
} \
( pxTCB ) = ( pxConstList )->pxIndex->pvOwner; \
}
void * pvOwner
Definition: list.h:146
struct xLIST List_t
ListItem_t *configLIST_VOLATILE pxIndex
Definition: list.h:168
struct xLIST_ITEM *configLIST_VOLATILE pxNext
Definition: list.h:144

Referenced by prvListTasksWithinSingleList().

#define listIS_CONTAINED_WITHIN (   pxList,
  pxListItem 
)    ( ( BaseType_t ) ( ( pxListItem )->pvContainer == ( void * ) ( pxList ) ) )
#define listLIST_IS_EMPTY (   pxList)    ( ( BaseType_t ) ( ( pxList )->uxNumberOfItems == ( UBaseType_t ) 0 ) )
#define listLIST_IS_INITIALISED (   pxList)    ( ( pxList )->xListEnd.xItemValue == portMAX_DELAY )
#define listLIST_ITEM_CONTAINER (   pxListItem)    ( ( pxListItem )->pvContainer )
#define listSECOND_LIST_INTEGRITY_CHECK_VALUE
#define listSECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE
#define listSET_FIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE (   pxItem)

Referenced by vListInitialiseItem().

#define listSET_LIST_INTEGRITY_CHECK_1_VALUE (   pxList)

Referenced by vListInitialise().

#define listSET_LIST_INTEGRITY_CHECK_2_VALUE (   pxList)

Referenced by vListInitialise().

#define listSET_LIST_ITEM_OWNER (   pxListItem,
  pxOwner 
)    ( ( pxListItem )->pvOwner = ( void * ) ( pxOwner ) )

Referenced by prvInitialiseNewTask().

#define listSET_SECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE (   pxItem)

Referenced by vListInitialiseItem().

#define listTEST_LIST_INTEGRITY (   pxList)

Referenced by vListInsert(), and vListInsertEnd().

#define listTEST_LIST_ITEM_INTEGRITY (   pxItem)

Referenced by vListInsert(), and vListInsertEnd().

typedef struct xLIST List_t
typedef struct xLIST_ITEM ListItem_t