57 #ifndef INC_FREERTOS_H    58         #error FreeRTOS.h must be included before list.h    92 #ifndef configLIST_VOLATILE    93         #define configLIST_VOLATILE   105 #if( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 0 )   107         #define listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE   108         #define listSECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE   109         #define listFIRST_LIST_INTEGRITY_CHECK_VALUE   110         #define listSECOND_LIST_INTEGRITY_CHECK_VALUE   111         #define listSET_FIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE( pxItem )   112         #define listSET_SECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE( pxItem )   113         #define listSET_LIST_INTEGRITY_CHECK_1_VALUE( pxList )   114         #define listSET_LIST_INTEGRITY_CHECK_2_VALUE( pxList )   115         #define listTEST_LIST_ITEM_INTEGRITY( pxItem )   116         #define listTEST_LIST_INTEGRITY( pxList )   119         #define listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE                               TickType_t xListItemIntegrityValue1;   120         #define listSECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE                              TickType_t xListItemIntegrityValue2;   121         #define listFIRST_LIST_INTEGRITY_CHECK_VALUE                                    TickType_t xListIntegrityValue1;   122         #define listSECOND_LIST_INTEGRITY_CHECK_VALUE                                   TickType_t xListIntegrityValue2;   125         #define listSET_FIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE( pxItem )         ( pxItem )->xListItemIntegrityValue1 = pdINTEGRITY_CHECK_VALUE   126         #define listSET_SECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE( pxItem )        ( pxItem )->xListItemIntegrityValue2 = pdINTEGRITY_CHECK_VALUE   127         #define listSET_LIST_INTEGRITY_CHECK_1_VALUE( pxList )          ( pxList )->xListIntegrityValue1 = pdINTEGRITY_CHECK_VALUE   128         #define listSET_LIST_INTEGRITY_CHECK_2_VALUE( pxList )          ( pxList )->xListIntegrityValue2 = pdINTEGRITY_CHECK_VALUE   132         #define listTEST_LIST_ITEM_INTEGRITY( pxItem )          configASSERT( ( ( pxItem )->xListItemIntegrityValue1 == pdINTEGRITY_CHECK_VALUE ) && ( ( pxItem )->xListItemIntegrityValue2 == pdINTEGRITY_CHECK_VALUE ) )   133         #define listTEST_LIST_INTEGRITY( pxList )                       configASSERT( ( ( pxList )->xListIntegrityValue1 == pdINTEGRITY_CHECK_VALUE ) && ( ( pxList )->xListIntegrityValue2 == pdINTEGRITY_CHECK_VALUE ) )   180 #define listSET_LIST_ITEM_OWNER( pxListItem, pxOwner )          ( ( pxListItem )->pvOwner = ( void * ) ( pxOwner ) )   189 #define listGET_LIST_ITEM_OWNER( pxListItem )   ( ( pxListItem )->pvOwner )   198 #define listSET_LIST_ITEM_VALUE( pxListItem, xValue )   ( ( pxListItem )->xItemValue = ( xValue ) )   208 #define listGET_LIST_ITEM_VALUE( pxListItem )   ( ( pxListItem )->xItemValue )   217 #define listGET_ITEM_VALUE_OF_HEAD_ENTRY( pxList )      ( ( ( pxList )->xListEnd ).pxNext->xItemValue )   225 #define listGET_HEAD_ENTRY( pxList )    ( ( ( pxList )->xListEnd ).pxNext )   233 #define listGET_NEXT( pxListItem )      ( ( pxListItem )->pxNext )   241 #define listGET_END_MARKER( pxList )    ( ( ListItem_t const * ) ( &( ( pxList )->xListEnd ) ) )   250 #define listLIST_IS_EMPTY( pxList )     ( ( BaseType_t ) ( ( pxList )->uxNumberOfItems == ( UBaseType_t ) 0 ) )   255 #define listCURRENT_LIST_LENGTH( pxList )       ( ( pxList )->uxNumberOfItems )   277 #define listGET_OWNER_OF_NEXT_ENTRY( pxTCB, pxList )                                                                            \   279 List_t * const pxConstList = ( pxList );                                                                                                        \   282         ( pxConstList )->pxIndex = ( pxConstList )->pxIndex->pxNext;                                                    \   283         if( ( void * ) ( pxConstList )->pxIndex == ( void * ) &( ( pxConstList )->xListEnd ) )  \   285                 ( pxConstList )->pxIndex = ( pxConstList )->pxIndex->pxNext;                                            \   287         ( pxTCB ) = ( pxConstList )->pxIndex->pvOwner;                                                                                  \   307 #define listGET_OWNER_OF_HEAD_ENTRY( pxList )  ( (&( ( pxList )->xListEnd ))->pxNext->pvOwner )   318 #define listIS_CONTAINED_WITHIN( pxList, pxListItem ) ( ( BaseType_t ) ( ( pxListItem )->pvContainer == ( void * ) ( pxList ) ) )   326 #define listLIST_ITEM_CONTAINER( pxListItem ) ( ( pxListItem )->pvContainer )   333 #define listLIST_IS_INITIALISED( pxList ) ( ( pxList )->xListEnd.xItemValue == portMAX_DELAY ) listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE configLIST_VOLATILE TickType_t xItemValue
 
#define listSECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE
 
listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE configLIST_VOLATILE TickType_t xItemValue
 
struct xLIST_ITEM *configLIST_VOLATILE pxNext
 
void *configLIST_VOLATILE pvContainer
 
UBaseType_t uxListRemove(ListItem_t *const pxItemToRemove) PRIVILEGED_FUNCTION
 
ListItem_t *configLIST_VOLATILE pxIndex
 
void vListInsertEnd(List_t *const pxList, ListItem_t *const pxNewListItem) PRIVILEGED_FUNCTION
 
struct xLIST_ITEM *configLIST_VOLATILE pxNext
 
unsigned long UBaseType_t
 
#define configLIST_VOLATILE
 
struct xLIST_ITEM *configLIST_VOLATILE pxPrevious
 
struct xLIST_ITEM *configLIST_VOLATILE pxPrevious
 
void vListInsert(List_t *const pxList, ListItem_t *const pxNewListItem) PRIVILEGED_FUNCTION
 
#define listFIRST_LIST_INTEGRITY_CHECK_VALUE
 
#define listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE
 
#define PRIVILEGED_FUNCTION
 
#define listSECOND_LIST_INTEGRITY_CHECK_VALUE
 
void vListInitialise(List_t *const pxList) PRIVILEGED_FUNCTION
 
void vListInitialiseItem(ListItem_t *const pxItem) PRIVILEGED_FUNCTION
 
listFIRST_LIST_INTEGRITY_CHECK_VALUE volatile UBaseType_t uxNumberOfItems