STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
list.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  xLIST_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)
#define listGET_LIST_ITEM_OWNER(pxListItem)
#define listSET_LIST_ITEM_VALUE(pxListItem, xValue)
#define listGET_LIST_ITEM_VALUE(pxListItem)
#define listGET_ITEM_VALUE_OF_HEAD_ENTRY(pxList)
#define listGET_HEAD_ENTRY(pxList)
#define listGET_NEXT(pxListItem)
#define listGET_END_MARKER(pxList)
#define listLIST_IS_EMPTY(pxList)
#define listCURRENT_LIST_LENGTH(pxList)
#define listGET_OWNER_OF_NEXT_ENTRY(pxTCB, pxList)
#define listREMOVE_ITEM(pxItemToRemove)
#define listINSERT_END(pxList, pxNewListItem)
#define listGET_OWNER_OF_HEAD_ENTRY(pxList)
#define listIS_CONTAINED_WITHIN(pxList, pxListItem)
#define listLIST_ITEM_CONTAINER(pxListItem)
#define listLIST_IS_INITIALISED(pxList)

Typedefs

typedef struct xLIST_ITEM ListItem_t
typedef struct xLIST_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

Definition at line 94 of file list.h.

◆ listCURRENT_LIST_LENGTH

#define listCURRENT_LIST_LENGTH ( pxList)
Value:
( ( pxList )->uxNumberOfItems )

Definition at line 263 of file list.h.

Referenced by portTASK_FUNCTION(), vEventGroupDelete(), and xTaskIncrementTick().

◆ listFIRST_LIST_INTEGRITY_CHECK_VALUE

#define listFIRST_LIST_INTEGRITY_CHECK_VALUE

Definition at line 112 of file list.h.

◆ listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE

#define listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE

Definition at line 110 of file list.h.

◆ listGET_END_MARKER

#define listGET_END_MARKER ( pxList)
Value:
( ( ListItem_t const * ) ( &( ( pxList )->xListEnd ) ) )
struct xLIST_ITEM ListItem_t
Definition list.h:154

Definition at line 249 of file list.h.

Referenced by xEventGroupSetBits().

◆ listGET_HEAD_ENTRY

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

Definition at line 233 of file list.h.

Referenced by xEventGroupSetBits().

◆ listGET_ITEM_VALUE_OF_HEAD_ENTRY

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

Definition at line 225 of file list.h.

Referenced by prvResetNextTaskUnblockTime().

◆ listGET_LIST_ITEM_OWNER

#define listGET_LIST_ITEM_OWNER ( pxListItem)
Value:
( ( pxListItem )->pvOwner )

Definition at line 197 of file list.h.

Referenced by vTaskRemoveFromUnorderedEventList().

◆ listGET_LIST_ITEM_VALUE

#define listGET_LIST_ITEM_VALUE ( pxListItem)
Value:
( ( pxListItem )->xItemValue )

Definition at line 216 of file list.h.

Referenced by uxTaskResetEventItemValue(), xEventGroupSetBits(), and xTaskIncrementTick().

◆ listGET_NEXT

#define listGET_NEXT ( pxListItem)
Value:
( ( pxListItem )->pxNext )

Definition at line 241 of file list.h.

Referenced by xEventGroupSetBits().

◆ listGET_OWNER_OF_HEAD_ENTRY

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

Definition at line 390 of file list.h.

Referenced by prvCheckTasksWaitingTermination(), xTaskIncrementTick(), xTaskRemoveFromEventList(), and xTaskResumeAll().

◆ listGET_OWNER_OF_NEXT_ENTRY

#define listGET_OWNER_OF_NEXT_ENTRY ( pxTCB,
pxList )
Value:
do { \
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 )->xListEnd.pxNext; \
} \
( pxTCB ) = ( pxConstList )->pxIndex->pvOwner; \
} while( 0 )
struct xLIST List_t

Definition at line 285 of file list.h.

◆ listINSERT_END

#define listINSERT_END ( pxList,
pxNewListItem )
Value:
do { \
ListItem_t * const pxIndex = ( pxList )->pxIndex; \
\
/* Only effective when configASSERT() is also defined, these tests may catch \
* the list data structures being overwritten in memory. They will not catch \
* data errors caused by incorrect configuration or use of FreeRTOS. */ \
listTEST_LIST_INTEGRITY( ( pxList ) ); \
listTEST_LIST_ITEM_INTEGRITY( ( pxNewListItem ) ); \
\
/* Insert a new list item into ( pxList ), but rather than sort the list, \
* makes the new list item the last item to be removed by a call to \
* listGET_OWNER_OF_NEXT_ENTRY(). */ \
( pxNewListItem )->pxNext = pxIndex; \
( pxNewListItem )->pxPrevious = pxIndex->pxPrevious; \
\
pxIndex->pxPrevious->pxNext = ( pxNewListItem ); \
pxIndex->pxPrevious = ( pxNewListItem ); \
\
/* Remember which list the item is in. */ \
( pxNewListItem )->pxContainer = ( pxList ); \
\
( ( pxList )->uxNumberOfItems )++; \
} while( 0 )
#define pxContainer
Definition FreeRTOS.h:1115
struct xLIST_ITEM *configLIST_VOLATILE pxNext
Pointer to the next ListItem_t in the list.
Definition list.h:148
struct xLIST_ITEM *configLIST_VOLATILE pxPrevious
Pointer to the previous ListItem_t in the list.
Definition list.h:149

Definition at line 353 of file list.h.

Referenced by prvAddCurrentTaskToDelayedList(), vTaskPlaceOnUnorderedEventList(), and xTaskRemoveFromEventList().

◆ listIS_CONTAINED_WITHIN

#define listIS_CONTAINED_WITHIN ( pxList,
pxListItem )
Value:
( ( ( pxListItem )->pxContainer == ( pxList ) ) ? ( pdTRUE ) : ( pdFALSE ) )
#define pdFALSE
Definition projdefs.h:45
#define pdTRUE
Definition projdefs.h:46

Definition at line 401 of file list.h.

◆ listLIST_IS_EMPTY

#define listLIST_IS_EMPTY ( pxList)

◆ listLIST_IS_INITIALISED

#define listLIST_IS_INITIALISED ( pxList)
Value:
( ( pxList )->xListEnd.xItemValue == portMAX_DELAY )
#define portMAX_DELAY
Definition portmacro.h:64

Definition at line 416 of file list.h.

◆ listLIST_ITEM_CONTAINER

#define listLIST_ITEM_CONTAINER ( pxListItem)
Value:
( ( pxListItem )->pxContainer )

Definition at line 409 of file list.h.

Referenced by xTaskIncrementTick().

◆ listREMOVE_ITEM

#define listREMOVE_ITEM ( pxItemToRemove)
Value:
do { \
/* The list item knows which list it is in. Obtain the list from the list \
* item. */ \
List_t * const pxList = ( pxItemToRemove )->pxContainer; \
\
( pxItemToRemove )->pxNext->pxPrevious = ( pxItemToRemove )->pxPrevious; \
( pxItemToRemove )->pxPrevious->pxNext = ( pxItemToRemove )->pxNext; \
/* Make sure the index is left pointing to a valid item. */ \
if( pxList->pxIndex == ( pxItemToRemove ) ) \
{ \
pxList->pxIndex = ( pxItemToRemove )->pxPrevious; \
} \
\
( pxItemToRemove )->pxContainer = NULL; \
( pxList->uxNumberOfItems )--; \
} while( 0 )
#define NULL
Definition usbd_def.h:44
ListItem_t *configLIST_VOLATILE pxIndex
Used to walk through the list.
Definition list.h:176
listFIRST_LIST_INTEGRITY_CHECK_VALUE volatile UBaseType_t uxNumberOfItems
< Set to a known value if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1.
Definition list.h:175

Definition at line 314 of file list.h.

Referenced by vTaskRemoveFromUnorderedEventList(), xTaskIncrementTick(), xTaskRemoveFromEventList(), and xTaskResumeAll().

◆ listSECOND_LIST_INTEGRITY_CHECK_VALUE

#define listSECOND_LIST_INTEGRITY_CHECK_VALUE

Definition at line 113 of file list.h.

◆ listSECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE

#define listSECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE

Definition at line 111 of file list.h.

◆ listSET_FIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE

#define listSET_FIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE ( pxItem)

Definition at line 114 of file list.h.

Referenced by vListInitialise(), and vListInitialiseItem().

◆ listSET_LIST_INTEGRITY_CHECK_1_VALUE

#define listSET_LIST_INTEGRITY_CHECK_1_VALUE ( pxList)

Definition at line 116 of file list.h.

Referenced by vListInitialise().

◆ listSET_LIST_INTEGRITY_CHECK_2_VALUE

#define listSET_LIST_INTEGRITY_CHECK_2_VALUE ( pxList)

Definition at line 117 of file list.h.

Referenced by vListInitialise().

◆ listSET_LIST_ITEM_OWNER

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

Definition at line 188 of file list.h.

◆ listSET_LIST_ITEM_VALUE

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

Definition at line 206 of file list.h.

Referenced by prvAddCurrentTaskToDelayedList(), uxTaskResetEventItemValue(), vTaskPlaceOnUnorderedEventList(), and vTaskRemoveFromUnorderedEventList().

◆ listSET_SECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE

#define listSET_SECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE ( pxItem)

Definition at line 115 of file list.h.

Referenced by vListInitialise(), and vListInitialiseItem().

◆ listTEST_LIST_INTEGRITY

#define listTEST_LIST_INTEGRITY ( pxList)

Definition at line 119 of file list.h.

Referenced by vListInsert(), and vListInsertEnd().

◆ listTEST_LIST_ITEM_INTEGRITY

#define listTEST_LIST_ITEM_INTEGRITY ( pxItem)

Definition at line 118 of file list.h.

Referenced by vListInsert(), and vListInsertEnd().

Typedef Documentation

◆ List_t

typedef struct xLIST List_t

◆ ListItem_t

typedef struct xLIST_ITEM ListItem_t

Definition at line 154 of file list.h.

◆ MiniListItem_t

typedef struct xLIST_ITEM MiniListItem_t

Definition at line 166 of file list.h.

Function Documentation

◆ uxListRemove()

◆ vListInitialise()

◆ vListInitialiseItem()

void vListInitialiseItem ( ListItem_t *const pxItem)

◆ vListInsert()

◆ vListInsertEnd()