IBNOS
Classes | Macros
LinkedList

Classes

struct  linkedList
 

Macros

#define ll_add_head   ll_add_after
 
#define ll_add_tail   ll_add_before
 
#define LL_INIT(list)   { &(list), &(list) }
 Initializes a linkedList. More...
 
#define LL_ENTRY(element, type, field)   ((type *)((uint8_t *)(element) - offsetof(type, field)))
 
#define LL_FOR_EACH(element, list, type, field)
 Allows to iterate a linkedList similar to a for-loop. More...
 
#define LL_FOR_EACH_SAFE(element, next_element, list, type, field)
 Allows to iterate a linkedList similar to a for-loop (safe when deleting elements). More...
 

Detailed Description

Macro Definition Documentation

◆ ll_add_head

#define ll_add_head   ll_add_after

Definition at line 99 of file list.h.

◆ ll_add_tail

#define ll_add_tail   ll_add_before

Definition at line 100 of file list.h.

◆ LL_ENTRY

#define LL_ENTRY (   element,
  type,
  field 
)    ((type *)((uint8_t *)(element) - offsetof(type, field)))

Definition at line 127 of file list.h.

◆ LL_FOR_EACH

#define LL_FOR_EACH (   element,
  list,
  type,
  field 
)
Value:
for ((element) = LL_ENTRY((list)->next, type, field); \
&(element)->field != (list); \
(element) = LL_ENTRY((element)->field.next, type, field))
uint8_t type
Definition: gdt.h:126
#define LL_ENTRY(element, type, field)
Definition: list.h:127

Allows to iterate a linkedList similar to a for-loop.

Parameters
elementIterator variable (of the object type)
listPointer to the linkedList head structure
typeType of the iterator elements
fieldField of the object structure which represents the iterated linkedList

Definition at line 138 of file list.h.

◆ LL_FOR_EACH_SAFE

#define LL_FOR_EACH_SAFE (   element,
  next_element,
  list,
  type,
  field 
)
Value:
for ((element) = LL_ENTRY((list)->next, type, field), (next_element) = LL_ENTRY((element)->field.next, type, field); \
&(element)->field != (list); \
(element) = (next_element), (next_element) = LL_ENTRY((element)->field.next, type, field))
uint8_t type
Definition: gdt.h:126
#define LL_ENTRY(element, type, field)
Definition: list.h:127

Allows to iterate a linkedList similar to a for-loop (safe when deleting elements).

Similar to LL_FOR_EACH(), but wil not crash, even if elements are deleted while iterating through the linkedList.

Definition at line 148 of file list.h.

◆ LL_INIT

#define LL_INIT (   list)    { &(list), &(list) }

Initializes a linkedList.

Static version of ll_init()

Parameters
listlinkedList structure object
Returns
Initialization variables

Definition at line 124 of file list.h.