prelude-list

prelude-list

Synopsis

#define             PRELUDE_LIST                        (item)
                    prelude_list_t;
#define             prelude_list_entry                  (item, type, member)
#define             prelude_list_for_each               (list, pos)
#define             prelude_list_for_each_safe          (list, pos, bkp)
#define             prelude_list_for_each_reversed      (list, pos)
#define             prelude_list_for_each_reversed_safe (list, pos, bkp)
#define             prelude_list_for_each_continue      (list, pos)
#define             prelude_list_for_each_continue_safe (list, pos, bkp)
#define             prelude_list_get_next               (list, pos, class, member)
#define             prelude_list_get_next_safe          (list, pos, bkp, class, member)

Description

Details

PRELUDE_LIST()

#define PRELUDE_LIST(item) prelude_list_t (item) = { &(item), &(item) }

item :


prelude_list_t

typedef struct {
        struct prelude_list *next;
        struct prelude_list *prev;
} prelude_list_t;


prelude_list_entry()

#define             prelude_list_entry(item, type, member)

Retrieve the entry of type type from the prelude_list_t object tmp, using the item list member member. Returns the entry associated with item.

item :

Pointer to a prelude_list_t object to retrieve the entry from.

type :

Type of the entry to retrieve.

member :

List member in type used to link it to a list.

prelude_list_for_each()

#define             prelude_list_for_each(list, pos)

Iterate through all list entry. prelude_list_entry() can be used to retrieve and entry from the pos pointer. It is not safe to call prelude_list_del() while iterating using this function, see prelude_list_for_each_safe().

list :

Pointer to a prelude_list_t list.

pos :

Pointer to a prelude_list_t object pointing to the current list member.

prelude_list_for_each_safe()

#define             prelude_list_for_each_safe(list, pos, bkp)

Iterate through all list entry. prelude_list_entry() can be used to retrieve and entry from the pos pointer. Calling prelude_list_del() while iterating the list is safe.

list :

Pointer to a prelude_list_t list.

pos :

Pointer to a prelude_list_t object pointing to the current list member.

bkp :

Pointer to a prelude_list_t object pointing to the next list member.

prelude_list_for_each_reversed()

#define             prelude_list_for_each_reversed(list, pos)

Iterate through all list entry in reverse order. prelude_list_entry() can be used to retrieve and entry from the pos pointer. It is not safe to call prelude_list_del() while iterating using this function, see prelude_list_for_each_reversed_safe().

list :

Pointer to a prelude_list_t list.

pos :

Pointer to a prelude_list_t object pointing to the current list member.

prelude_list_for_each_reversed_safe()

#define             prelude_list_for_each_reversed_safe(list, pos, bkp)

Iterate through all list entry in reverse order. prelude_list_entry() can be used to retrieve and entry from the pos pointer. Calling prelude_list_del() while iterating the list is safe.

list :

Pointer to a prelude_list_t list.

pos :

Pointer to a prelude_list_t object pointing to the current list member.

bkp :

Pointer to a prelude_list_t object pointing to the next list member.

prelude_list_for_each_continue()

#define             prelude_list_for_each_continue(list, pos)

Iterate through all list entry starting from pos if it is not NULL, or from the start of list if it is. prelude_list_entry() can be used to retrieve and entry from the pos pointer. Calling prelude_list_del() while iterating the list is not safe.

list :

Pointer to a prelude_list_t list.

pos :

Pointer to a prelude_list_t object pointing to the current list member.

prelude_list_for_each_continue_safe()

#define             prelude_list_for_each_continue_safe(list, pos, bkp)

Iterate through all list entry starting from pos if it is not NULL, or from the start of list if it is. prelude_list_entry() can be used to retrieve and entry from the pos pointer. Calling prelude_list_del() while iterating the list is safe.

list :

Pointer to a prelude_list_t list.

pos :

Pointer to a prelude_list_t object pointing to the current list member.

bkp :

Pointer to a prelude_list_t object pointing to the next list member.

prelude_list_get_next()

#define             prelude_list_get_next(list, pos, class, member)

list :

pos :

class :

member :


prelude_list_get_next_safe()

#define             prelude_list_get_next_safe(list, pos, bkp, class, member)

list :

pos :

bkp :

class :

member :