list.h File Reference
This graph shows which files directly or indirectly include this file:

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

## configLIST_VOLATILE

#define configLIST_VOLATILE

## listCURRENT_LIST_LENGTH

#define listCURRENT_LIST_LENGTH | ( |  | pxList | ) | ( ( pxList )->uxNumberOfItems )

## listFIRST_LIST_INTEGRITY_CHECK_VALUE

#define listFIRST_LIST_INTEGRITY_CHECK_VALUE

## listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE

#define listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE

## listGET_END_MARKER

#define listGET_END_MARKER | ( |  | pxList | ) | ( ( ListItem_t const * ) ( &( ( pxList )->xListEnd ) ) )

## listGET_HEAD_ENTRY

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

## listGET_ITEM_VALUE_OF_HEAD_ENTRY

#define listGET_ITEM_VALUE_OF_HEAD_ENTRY | ( |  | pxList | ) | ( ( ( pxList )->xListEnd ).pxNext->xItemValue )

## listGET_LIST_ITEM_OWNER

#define listGET_LIST_ITEM_OWNER | ( |  | pxListItem | ) | ( ( pxListItem )->pvOwner )

## listGET_LIST_ITEM_VALUE

#define listGET_LIST_ITEM_VALUE | ( |  | pxListItem | ) | ( ( pxListItem )->xItemValue )

## listGET_NEXT

#define listGET_NEXT | ( |  | pxListItem | ) | ( ( pxListItem )->pxNext )

## listGET_OWNER_OF_HEAD_ENTRY

#define listGET_OWNER_OF_HEAD_ENTRY | ( |  | pxList | ) | ( (&( ( pxList )->xListEnd ))->pxNext->pvOwner )

## listGET_OWNER_OF_NEXT_ENTRY

#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; \
}

## listIS_CONTAINED_WITHIN

#define listIS_CONTAINED_WITHIN | ( |  | pxList,
|  |  | pxListItem
| ) |  | ( ( BaseType_t ) ( ( pxListItem )->pvContainer == ( void * ) ( pxList ) ) )

## listLIST_IS_EMPTY

#define listLIST_IS_EMPTY | ( |  | pxList | ) | ( ( BaseType_t ) ( ( pxList )->uxNumberOfItems == ( UBaseType_t ) 0 ) )

## listLIST_IS_INITIALISED

#define listLIST_IS_INITIALISED | ( |  | pxList | ) | ( ( pxList )->xListEnd.xItemValue == portMAX_DELAY )

## listLIST_ITEM_CONTAINER

#define listLIST_ITEM_CONTAINER | ( |  | pxListItem | ) | ( ( pxListItem )->pvContainer )

## listSECOND_LIST_INTEGRITY_CHECK_VALUE

#define listSECOND_LIST_INTEGRITY_CHECK_VALUE

## listSECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE

#define listSECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE

## listSET_FIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE

#define listSET_FIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE | ( |  | pxItem | ) |

## listSET_LIST_INTEGRITY_CHECK_1_VALUE

#define listSET_LIST_INTEGRITY_CHECK_1_VALUE | ( |  | pxList | ) |

## listSET_LIST_INTEGRITY_CHECK_2_VALUE

#define listSET_LIST_INTEGRITY_CHECK_2_VALUE | ( |  | pxList | ) |

## listSET_LIST_ITEM_OWNER

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

## listSET_LIST_ITEM_VALUE

#define listSET_LIST_ITEM_VALUE | ( |  | pxListItem,
|  |  | xValue
| ) |  | ( ( pxListItem )->xItemValue = ( xValue ) )

## listSET_SECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE

#define listSET_SECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE | ( |  | pxItem | ) |

## listTEST_LIST_INTEGRITY

#define listTEST_LIST_INTEGRITY | ( |  | pxList | ) |

## listTEST_LIST_ITEM_INTEGRITY

#define listTEST_LIST_ITEM_INTEGRITY | ( |  | pxItem | ) |

## Typedef Documentation

## List_t

typedef struct xLIST List_t

## ListItem_t

typedef struct xLIST_ITEM ListItem_t

## MiniListItem_t

typedef struct xMINI_LIST_ITEM MiniListItem_t

## Function Documentation

## uxListRemove()

UBaseType_t uxListRemove | ( | ListItem_t *const | pxItemToRemove | ) |

Here is the caller graph for this function:

## vListInitialise()

void vListInitialise | ( | List_t *const | pxList | ) |

Here is the caller graph for this function:

## vListInitialiseItem()

void vListInitialiseItem | ( | ListItem_t *const | pxItem | ) |

Here is the caller graph for this function:

## vListInsert()

void vListInsert | ( | List_t *const | pxList,
|  | ListItem_t *const | pxNewListItem
| ) |  |

Here is the caller graph for this function:

## vListInsertEnd()

void vListInsertEnd | ( | List_t *const | pxList,
|  | ListItem_t *const | pxNewListItem
| ) |  |

Here is the caller graph for this function: