SAM4S-EK_FreeRTOS+FAT-SL  1.0
An example project to test the functionality of FreeRTOS+FAT-SL using SD card as data storage medium
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules
list.h File Reference

Go to the source code of this file.

Classes

struct  xLIST_ITEM
 
struct  xMINI_LIST_ITEM
 
struct  xLIST
 

Macros

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

Macro Definition Documentation

#define configLIST_VOLATILE

Definition at line 127 of file list.h.

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

Definition at line 246 of file list.h.

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

Definition at line 232 of file list.h.

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

Definition at line 216 of file list.h.

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

Definition at line 208 of file list.h.

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

Definition at line 180 of file list.h.

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

Definition at line 199 of file list.h.

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

Definition at line 224 of file list.h.

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

Definition at line 298 of file list.h.

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

Definition at line 268 of file list.h.

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

Definition at line 309 of file list.h.

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

Definition at line 241 of file list.h.

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

Definition at line 324 of file list.h.

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

Definition at line 317 of file list.h.

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

Definition at line 171 of file list.h.

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

Definition at line 189 of file list.h.

Typedef Documentation

typedef struct xLIST List_t
typedef struct xLIST_ITEM ListItem_t

Definition at line 144 of file list.h.

Definition at line 152 of file list.h.

Function Documentation

UBaseType_t uxListRemove ( ListItem_t *const  pxItemToRemove)

Definition at line 179 of file list.c.

void vListInitialise ( List_t *const  pxList)

Definition at line 75 of file list.c.

void vListInitialiseItem ( ListItem_t *const  pxItem)

Definition at line 95 of file list.c.

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

Definition at line 121 of file list.c.

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

Definition at line 102 of file list.c.