table of contents
other versions
- wheezy 0.11.1-2
- jessie 0.11.1-2
- jessie-backports 1.0-1~bpo8+1
- testing 1.0.1-1
- unstable 1.0.1-1
qblist.h(3) | libqb | qblist.h(3) |
NAME¶
qblist.h - This is a kernel style list implementation.SYNOPSIS¶
#include <stdint.h>Data Structures¶
struct qb_list_head
Defines¶
#define QB_LIST_DECLARE(name) struct qb_list_head name = { &(name), &(name) }
Functions¶
static void qb_list_init (struct qb_list_head *head)
Detailed Description¶
This is a kernel style list implementation.Steven Dake <sdake@redhat.com>
Define Documentation¶
#define QB_INIT_LIST_HEAD(ptr) Value:¶
do { (ptr)->next = (ptr); (ptr)->prev = (ptr); } while (0)
#define QB_LIST_DECLARE(name) struct qb_list_head name = { &(name), &(name) }¶
Declare and initialize a list head.#define qb_list_entry(ptr, type, member) ((type *)((char *)(ptr)-(char*)(&((type *)0)->member)))¶
Get the struct for this entry. Parameters:ptr,: the &struct list_head
pointer.
type,: the type of the struct this is embedded in.
member,: the name of the list_struct within the struct.
#define qb_list_for_each(pos, head) for (pos = (head)->next; pos != (head); pos = pos->next)¶
Iterate over a list. Parameters:pos,: the &struct list_head to use
as a loop counter.
head,: the head for your list.
#define qb_list_for_each_entry(pos, head, member) Value:¶
for (pos = qb_list_entry((head)->next, typeof(*pos), member); &pos->member != (head); pos = qb_list_entry(pos->member.next, typeof(*pos), member))Iterate over list of given type. Parameters:
pos,: the type * to use as a loop
counter.
head,: the head for your list.
member,: the name of the list_struct within the struct.
#define qb_list_for_each_entry_reverse(pos, head, member) Value:¶
for (pos = qb_list_entry((head)->prev, typeof(*pos), member); &pos->member != (head); pos = qb_list_entry(pos->member.prev, typeof(*pos), member))Iterate backwards over list of given type. Parameters:
pos,: the type to use as a loop
counter.
head,: the head for your list.
member,: the name of the list_struct within the struct.
#define qb_list_for_each_entry_safe(pos, n, head, member) Value:¶
for (pos = qb_list_entry((head)->next, typeof(*pos), member), n = qb_list_entry(pos->member.next, typeof(*pos), member); &pos->member != (head); pos = n, n = qb_list_entry(n->member.next, typeof(*n), member))Iterate over list of given type safe against removal of list entry. Parameters:
pos,: the type * to use as a loop
cursor.
n,: another type * to use as temporary storage
head,: the head for your list.
member,: the name of the list_struct within the struct.
#define qb_list_for_each_entry_safe_reverse(pos, n, head, member) Value:¶
for (pos = qb_list_entry((head)->prev, typeof(*pos), member), n = qb_list_entry(pos->member.prev, typeof(*pos), member); &pos->member != (head); pos = n, n = qb_list_entry(n->member.prev, typeof(*n), member))Iterate backwards over list safe against removal. Parameters:
pos,: the type * to use as a loop
cursor.
n,: another type * to use as temporary storage
head,: the head for your list.
member,: the name of the list_struct within the struct.
#define qb_list_for_each_reverse(pos, head) for (pos = (head)->prev; pos != (head); pos = pos->prev)¶
Iterate over a list backwards. Parameters:pos,: the &struct list_head to use
as a loop counter.
head,: the head for your list.
#define qb_list_for_each_safe(pos, n, head) Value:¶
for (pos = (head)->next, n = pos->next; pos != (head); pos = n, n = pos->next)Iterate over a list safe against removal of list entry. Parameters:
pos,: the &struct list_head to use
as a loop counter.
n,: another &struct list_head to use as temporary storage
head,: the head for your list.
Function Documentation¶
static void qb_list_add (struct qb_list_head *element, struct qb_list_head *head) [inline, static]¶
Add this element to the list. Parameters:element the new element to insert.
head pointer to the list head
static void qb_list_add_tail (struct qb_list_head *element, struct qb_list_head *head) [inline, static]¶
Add to the list (but at the end of the list). Parameters:element pointer to the element to add
head pointer to the list head
See also:
qb_list_add()
static void qb_list_del (struct qb_list_head *_remove) [inline, static]¶
Delete an entry from the list. Parameters:_remove the list item to remove
static int32_t qb_list_empty (const struct qb_list_head *head) [inline, static]¶
A quick test to see if the list is empty (pointing to it's self). Parameters:head pointer to the list head
Returns:
boolean true/false
static void qb_list_init (struct qb_list_head *head) [inline, static]¶
Initialize the list entry. Points next and prev pointers to head. Parameters:head pointer to the list head
static int32_t qb_list_length (struct qb_list_head *head) [inline, static]¶
Count the number of items in the list. Parameters:head,: the head for your list.
Returns:
length of the list.
static void qb_list_splice (struct qb_list_head *list, struct qb_list_head *head) [inline, static]¶
Join two lists. Parameters:list the new list to add.
head the place to add it in the first list.
Note:
The 'list' is reinitialised
Author¶
Generated automatically by Doxygen for libqb from the source code.Tue Apr 3 2012 | Version 0.11.1 |