list.h File Reference

Go to the source code of this file.

Data Structures

struct  xLIST_ITEM
 
struct  xMINI_LIST_ITEM
 
struct  xLIST
 

Macros

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

Typedefs

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

Functions

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
 
UBaseType_t uxListRemove (ListItem_t *const pxItemToRemove) PRIVILEGED_FUNCTION
 

Macro Definition Documentation

#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 
)
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; \
}
ListItem_t *configLIST_VOLATILE pxIndex
Definition: list.h:209
void * pvOwner
Definition: list.h:187
struct xLIST_ITEM *configLIST_VOLATILE pxNext
Definition: list.h:185
struct xLIST List_t
#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)

Typedef Documentation

typedef struct xLIST List_t
typedef struct xLIST_ITEM ListItem_t

Function Documentation

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