13 #include "project_settings.h"
17 #ifdef USE_MODULE_SUBSYS
70 #define LIST_ALLOCATE(t, list_name, max_elements)\
71 t CAT2(list_name, _array)[max_elements];\
72 list_link_t CAT2(list_name, _links)[max_elements];\
75 #define LIST_INIT(list_name, max_elements, item_size)\
76 List_Init(&list_name, item_size, &CAT2(list_name, _array)[0], max_elements, &CAT2(list_name, _links)[0])
void List_LinkItem(list_t *list, void *item)
Definition: list.c:173
void * List_GetNext(list_t *list, void *item)
Get the Next Item in the List.
Definition: list.c:226
void * List_Add(list_t *list, void *item)
List_Add is used to add an item to a list. Uses List_AddIndirect to find where the item should go in ...
Definition: list.c:81
list_link_t * first
first
Definition: list.h:52
void * List_AddIndirect(list_t *list)
List_AddIndirect is used to obtain a valid position for which an item can be saved to...
Definition: list.c:94
struct list_link_t * previous
previous
Definition: list.h:35
list_link_t * links
links
Definition: list.h:56
void List_SetSortFunction(list_t *list, uint8_t(*sort_fn)(void *a, void *b))
list_link_t * unlinked[2]
unlinked
Definition: list.h:65
list_link_t * working[2]
working
Definition: list.h:64
uint16_t item_size
item_size
Definition: list.h:58
uint16_t unlinked_count
count of unlinked list items
Definition: list.h:66
void List_Link(list_t *list)
Definition: list.c:117
uint8_t(* list_sort_fn_t)(void *, void *)
Definition: list.h:28
struct list_link_t list_link_t
void * List_GetLast(list_t *list)
Get the Last Item in the List.
Definition: list.c:221
void List_SetIdentifyFunction(list_t *list, uint8_t(*identify_fn)(void *identifier, void *item))
list_link_t * last
last
Definition: list.h:53
struct list_link_t * next
next
Definition: list.h:34
void * List_GetFirst(list_t *list)
Definition: list.c:216
void List_ResortFirst(list_t *list)
Definition: list.c:149
list_sort_fn_t sort_fn
sort_fn
Definition: list.h:59
void List_Init(list_t *list, uint16_t item_size, void *item_array, uint16_t item_array_length, list_link_t *link_array)
Definition: list.c:27
void List_UnlinkItem(list_t *list, void *item)
Definition: list.c:316
uint8_t(* list_identify_fn_t)(void *, void *)
Definition: list.h:30
uint16_t * item_array
item_array
Definition: list.h:57
void * item_ptr
item_ptr
Definition: list.h:33
uint16_t array_length
array_length
Definition: list.h:55
list_identify_fn_t identify_fn
identify_fn
Definition: list.h:60
void List_Remove(list_t *list, void *item)
Definition: list.c:289
void List_RemoveFirst(list_t *list)
Definition: list.c:275
void List_RunFunction(list_t *list, void(*function)(void *))
Definition: list.c:441
void * List_GetItem(list_t *list, void *identifier)
Definition: list.c:236
void List_ResortLast(list_t *list)
Definition: list.c:161
void List_RemoveAll(list_t *list)
Definition: list.c:298
void List_UnlinkFirst(list_t *list)
Definition: list.c:324
uint16_t length
length
Definition: list.h:54
void * List_AddAndLink(list_t *list, void *item)
Definition: list.c:65
void List_UnlinkLast(list_t *list)
Definition: list.c:332
void List_RemoveLast(list_t *list)
Definition: list.c:282