Go to the source code of this file.
|
void | le_dls_Stack (le_dls_List_t *listPtr, le_dls_Link_t *newLinkPtr) |
|
void | le_dls_Queue (le_dls_List_t *listPtr, le_dls_Link_t *newLinkPtr) |
|
void | le_dls_AddAfter (le_dls_List_t *listPtr, le_dls_Link_t *currentLinkPtr, le_dls_Link_t *newLinkPtr) |
|
void | le_dls_AddBefore (le_dls_List_t *listPtr, le_dls_Link_t *currentLinkPtr, le_dls_Link_t *newLinkPtr) |
|
le_dls_Link_t * | le_dls_Pop (le_dls_List_t *listPtr) |
|
le_dls_Link_t * | le_dls_PopTail (le_dls_List_t *listPtr) |
|
void | le_dls_Remove (le_dls_List_t *listPtr, le_dls_Link_t *linkToRemovePtr) |
|
le_dls_Link_t * | le_dls_Peek (const le_dls_List_t *listPtr) |
|
le_dls_Link_t * | le_dls_PeekTail (const le_dls_List_t *listPtr) |
|
LE_DECLARE_INLINE bool | le_dls_IsEmpty (const le_dls_List_t *listPtr) |
|
le_dls_Link_t * | le_dls_PeekNext (const le_dls_List_t *listPtr, const le_dls_Link_t *currentLinkPtr) |
|
le_dls_Link_t * | le_dls_PeekPrev (const le_dls_List_t *listPtr, const le_dls_Link_t *currentLinkPtr) |
|
void | le_dls_Swap (le_dls_List_t *listPtr, le_dls_Link_t *linkPtr, le_dls_Link_t *otherLinkPtr) |
|
void | le_dls_Sort (le_dls_List_t *listPtr, le_dls_LessThanFunc_t comparatorPtr) |
|
bool | le_dls_IsInList (const le_dls_List_t *listPtr, const le_dls_Link_t *linkPtr) |
|
LE_DECLARE_INLINE bool | le_dls_IsHead (const le_dls_List_t *listPtr, const le_dls_Link_t *linkPtr) |
|
LE_DECLARE_INLINE bool | le_dls_IsTail (const le_dls_List_t *listPtr, const le_dls_Link_t *linkPtr) |
|
size_t | le_dls_NumLinks (const le_dls_List_t *listPtr) |
|
bool | le_dls_IsListCorrupted (const le_dls_List_t *listPtr) |
|
Legato Doubly Linked List API include file.
Copyright (C) Sierra Wireless Inc.
◆ LE_DLS_LIST_DECL_INIT
#define LE_DLS_LIST_DECL_INIT {NULL} |
When a list is created it must be initialized to this macro in the declaration, or have LE_DLS_LIST_INIT
assigned to it, before being used
◆ LE_DLS_LIST_INIT
When a list is created it must be initialized by assigning this macro to the list, or initializing to LE_DLS_LIST_DECL_INIT
in the declaration, before the list can be used.
◆ LE_DLS_LINK_INIT
When a link is created it must be initialized by assigning this macro to the link before it can be used.
◆ LE_DLS_FOREACH
#define LE_DLS_FOREACH |
( |
|
listPtr, |
|
|
|
iteratorPtr, |
|
|
|
type, |
|
|
|
member |
|
) |
| |
Value: &((iteratorPtr)->member); \
type, member))
le_dls_Link_t * le_dls_Peek(const le_dls_List_t *listPtr)
#define CONTAINER_OF(memberPtr, type, member)
Definition: le_basics.h:132
le_dls_Link_t * le_dls_PeekNext(const le_dls_List_t *listPtr, const le_dls_Link_t *currentLinkPtr)
Simple iteration through a doubly linked list
◆ le_dls_LessThanFunc_t
This is a comparator function for sorting a list.
This must return true if a
goes before b
in the list.
◆ le_dls_Stack()
Adds a link at the head of the list.
- Parameters
-
[in] | listPtr | List to add to. |
[in] | newLinkPtr | New link to add. |
◆ le_dls_Queue()
Adds a link to the tail of the list.
- Parameters
-
[in] | listPtr | List to add to. |
[in] | newLinkPtr | New link to add. |
◆ le_dls_AddAfter()
Adds a link after currentLinkPtr. User must ensure that currentLinkPtr is in the list otherwise the behaviour of this function is undefined.
- Parameters
-
[in] | listPtr | List to add to. |
[in] | currentLinkPtr | New link will be inserted after this link. |
[in] | newLinkPtr | New link to add. |
◆ le_dls_AddBefore()
Adds a link after currentLinkPtr. User must ensure that currentLinkPtr is in the list otherwise the behaviour of this function is undefined.
- Parameters
-
[in] | listPtr | List to add to. |
[in] | currentLinkPtr | New link will be inserted before this link. |
[in] | newLinkPtr | New link to add. |
◆ le_dls_Pop()
Removes and returns the link at the head of the list.
- Returns
- Removed link. NULL if the link is not available because the list is empty.
- Parameters
-
[in] | listPtr | List to remove from. |
◆ le_dls_PopTail()
Removes and returns the link at the tail of the list.
- Returns
- The removed link. NULL if the link is not available because the list is empty.
- Parameters
-
[in] | listPtr | List to remove from. |
◆ le_dls_Remove()
Removes the specified link from the list. Ensure the link is in the list otherwise the behaviour of this function is undefined.
- Parameters
-
[in] | listPtr | List to remove from. |
[in] | linkToRemovePtr | Link to remove. |
◆ le_dls_Peek()
Returns the link at the head of the list without removing it from the list.
- Returns
- Pointer to the head link if successful. NULL if the list is empty.
- Parameters
-
◆ le_dls_PeekTail()
Returns the link at the tail of the list without removing it from the list.
- Returns
- A pointer to the tail link if successful. NULL if the list is empty.
- Parameters
-
◆ le_dls_IsEmpty()
Checks if a list is empty.
- Returns
- true if empty, false if not empty.
- Parameters
-
◆ le_dls_PeekNext()
Returns the link next to currentLinkPtr (i.e., the link beside currentLinkPtr that is closer to the tail) without removing it from the list. User must ensure that currentLinkPtr is in the list otherwise the behaviour of this function is undefined.
- Returns
- Pointer to the next link if successful. NULL if there is no link next to the currentLinkPtr (currentLinkPtr is at the tail of the list).
- Parameters
-
[in] | listPtr | List containing currentLinkPtr. |
[in] | currentLinkPtr | Get the link that is relative to this link. |
◆ le_dls_PeekPrev()
Returns the link previous to currentLinkPtr without removing it from the list. User must ensure that currentLinkPtr is in the list otherwise the behaviour of this function is undefined.
- Returns
- Pointer to the previous link if successful. NULL if there is no link previous to the currentLinkPtr (currentLinkPtr is at the head of the list).
- Parameters
-
[in] | listPtr | List containing currentLinkPtr. |
[in] | currentLinkPtr | Get the link that is relative to this link. |
◆ le_dls_Swap()
Swaps the position of two links in the list. User must ensure that both links are in the list otherwise the behaviour of this function is undefined.
- Parameters
-
[in] | listPtr | List containing the links to swap. |
[in] | linkPtr | One of the two link pointers to swap. |
[in] | otherLinkPtr | Other link pointer to swap. |
◆ le_dls_Sort()
Sort a list in ascending order.
- Parameters
-
[in] | listPtr | List to sort |
[in] | comparatorPtr | Comparator function for sorting |
◆ le_dls_IsInList()
Checks if a link is in the list.
- Returns
- true if the link is in the list. false if the link is not in the list.
- Parameters
-
[in] | listPtr | List to check. |
[in] | linkPtr | Check if this link is in the list. |
◆ le_dls_IsHead()
Checks if a link is at the head of the list (next to be popped).
- Returns
- true if the link is at the head of the list.
- false if not.
- Parameters
-
[in] | listPtr | List to check. |
[in] | linkPtr | Check if this link is at the head of the list. |
◆ le_dls_IsTail()
Checks if a link is at the tail of the list (last to be popped).
- Returns
- true if the link is at the tail of the list.
- false if not.
- Parameters
-
[in] | listPtr | List to check. |
[in] | linkPtr | Check if this link is at the tail of the list. |
◆ le_dls_NumLinks()
Returns the number of links in a list.
- Returns
- Number of links.
- Parameters
-
[in] | listPtr | List to count. |
◆ le_dls_IsListCorrupted()
Checks if the list is corrupted.
- Returns
- true if the list is corrupted. false if the list is not corrupted.
- Parameters
-
[in] | listPtr | List to check. |