Sound Open Firmware
Loading...
Searching...
No Matches
list.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  list_item

Macros

#define LIST_INIT(head)
#define list_is_empty(item)
#define __list_object(item, type, offset)
#define list_item(item, type, member)
#define list_first_item(list, type, member)
#define list_next_item(object, member)
#define list_for_item(item, list)
#define list_for_item_prev(item, list)
#define list_for_item_safe(item, tmp, list)

Functions

static void list_init (struct list_item *list)
static void list_item_prepend (struct list_item *item, struct list_item *list)
static void list_item_append (struct list_item *item, struct list_item *list)
static void list_item_del (struct list_item *item)
static int list_item_is_last (struct list_item *item, struct list_item *list)
static void list_relink (struct list_item *new_list, struct list_item *old_list)
 Re-links the list when head address changed (list moved).

Macro Definition Documentation

◆ __list_object

#define __list_object ( item,
type,
offset )
Value:
((type *)((char *)(item) - (offset)))
uint32_t type
Definition tlv.h:0

◆ list_first_item

#define list_first_item ( list,
type,
member )
Value:
__list_object((list)->next, type, offsetof(type, member))
#define __list_object(item, type, offset)
Definition list.h:76

◆ list_for_item

#define list_for_item ( item,
list )
Value:
for (item = (list)->next; item != (list); item = item->next)

◆ list_for_item_prev

#define list_for_item_prev ( item,
list )
Value:
for (item = (list)->prev; item != (list); item = item->prev)

◆ list_for_item_safe

#define list_for_item_safe ( item,
tmp,
list )
Value:
for (item = (list)->next, tmp = item->next;\
item != (list); \
item = tmp, tmp = item->next)

◆ LIST_INIT

#define LIST_INIT ( head)
Value:
{&head, &head}

◆ list_is_empty

#define list_is_empty ( item)
Value:
((item)->next == item)

◆ list_item

#define list_item ( item,
type,
member )
Value:
__list_object(item, type, offsetof(type, member))

◆ list_next_item

#define list_next_item ( object,
member )
Value:
list_item((object)->member.next, __typeof__(*(object)), member)
#define list_item(item, type, member)
Definition list.h:80

Function Documentation

◆ list_init()

void list_init ( struct list_item * list)
inlinestatic

◆ list_item_append()

void list_item_append ( struct list_item * item,
struct list_item * list )
inlinestatic

◆ list_item_del()

void list_item_del ( struct list_item * item)
inlinestatic

◆ list_item_is_last()

int list_item_is_last ( struct list_item * item,
struct list_item * list )
inlinestatic

◆ list_item_prepend()

void list_item_prepend ( struct list_item * item,
struct list_item * list )
inlinestatic

◆ list_relink()

void list_relink ( struct list_item * new_list,
struct list_item * old_list )
inlinestatic

Re-links the list when head address changed (list moved).

Parameters
new_listNew address of the head.
old_listOld address of the head.