All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Loading...
Searching...
No Matches
list.h File Reference

Intrusive linked list. More...

Detailed Description

Intrusive linked list.

Lists are represented as element pointing to the first actual list element.

Author
Kaspar Schleiser kaspa.nosp@m.r@sc.nosp@m.hleis.nosp@m.er.d.nosp@m.e
Víctor Ariño victo.nosp@m.r.ar.nosp@m.ino@z.nosp@m.ii.a.nosp@m.ero

Definition in file list.h.

+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  list_node
 List node structure. More...
 
typedef struct list_node list_node_t
 List node structure.
 
static void list_add (list_node_t *node, list_node_t *new_node)
 Insert object into list.
 
static list_node_tlist_remove_head (list_node_t *list)
 Removes the head of the list and returns it.
 
static list_node_tlist_remove (list_node_t *list, list_node_t *node)
 Removes the node from the list.
 

Typedef Documentation

◆ list_node_t

typedef struct list_node list_node_t

List node structure.

Used as is as reference to a list, or as member of any data structure that should be member of a list.

Actual list objects should have a list_node_t as member and then use the container_of() macro in list operations. See thread_add_to_list() as example.

Function Documentation

◆ list_add()

static void list_add ( list_node_t * node,
list_node_t * new_node )
inlinestatic

Insert object into list.

If called with a list reference as node, the new node will become the new list head.

Parameters
[in]nodelist node before new entry
[in]new_nodelist node to insert

Definition at line 53 of file list.h.

◆ list_remove()

static list_node_t * list_remove ( list_node_t * list,
list_node_t * node )
inlinestatic

Removes the node from the list.

Parameters
[in]listPointer to the list itself, where list->next points to the root node
[in]nodeList node to remove from the list
Returns
removed node, or NULL if empty or not found

Definition at line 86 of file list.h.

◆ list_remove_head()

static list_node_t * list_remove_head ( list_node_t * list)
inlinestatic

Removes the head of the list and returns it.

Parameters
[in]listPointer to the list itself, where list->next points to the root node
Returns
removed old list head, or NULL if empty

Definition at line 67 of file list.h.