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. */ \
if( ( void * ) ( pxConstList )->pxIndex == ( void * ) &( ( pxConstList )->xListEnd ) ) \
{ \
( pxConstList )->pxIndex = ( pxConstList )->pxIndex->pxNext; \
} \
( pxTCB ) = ( pxConstList )->pxIndex->pvOwner; \
}
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_ITEM ListItem_t |
typedef struct xMINI_LIST_ITEM MiniListItem_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 | ||
) |