embedded-software
reusable software modules for embedded systems
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
list.h File Reference
#include <stdint.h>
#include "project_settings.h"
#include "library.h"
Include dependency graph for 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_link_t
 
struct  list_t
 

Macros

#define LIST_ALLOCATE(t, list_name,max_elements)
 
#define LIST_INIT(list_name, max_elements, item_size)   List_Init(&list_name, item_size, &CAT2(list_name, _array)[0], max_elements, &CAT2(list_name, _links)[0])
 

Typedefs

typedef uint8_t(* list_sort_fn_t )(void *, void *)
 
typedef uint8_t(* list_identify_fn_t )(void *, void *)
 
typedef struct list_link_t list_link_t
 
typedef struct list_t list_t
 

Functions

void List_Init (list_t *list, uint16_t item_size, void *item_array, uint16_t item_array_length, list_link_t *link_array)
 
void List_SetSortFunction (list_t *list, uint8_t(*sort_fn)(void *a, void *b))
 
void List_SetIdentifyFunction (list_t *list, uint8_t(*identify_fn)(void *identifier, void *item))
 
void * List_AddAndLink (list_t *list, void *item)
 
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 the list. More...
 
void * List_AddIndirect (list_t *list)
 List_AddIndirect is used to obtain a valid position for which an item can be saved to. More...
 
void List_Link (list_t *list)
 
void List_ResortFirst (list_t *list)
 
void List_ResortLast (list_t *list)
 
void List_LinkItem (list_t *list, void *item)
 
void * List_GetFirst (list_t *list)
 
void * List_GetLast (list_t *list)
 Get the Last Item in the List. More...
 
void * List_GetNext (list_t *list, void *item)
 Get the Next Item in the List. More...
 
void * List_GetItem (list_t *list, void *identifier)
 
void List_RemoveFirst (list_t *list)
 
void List_RemoveLast (list_t *list)
 
void List_Remove (list_t *list, void *item)
 
void List_RemoveAll (list_t *list)
 
void List_UnlinkItem (list_t *list, void *item)
 
void List_UnlinkFirst (list_t *list)
 
void List_UnlinkLast (list_t *list)
 
void List_RunFunction (list_t *list, void(*function)(void *))