| qblist.h.3 | qblist.h.3 | |||
|---|---|---|---|---|
| qblist.h(3) libqb qblist .h(3) | qblist.h(3) libqb qblist .h(3) | |||
| NAME | NAME | |||
| qblist.h - | qblist.h - | |||
| This is a kernel style list implementation. | This is a kernel style list implementation'. | |||
| SYNOPSIS | SYNOPSIS | |||
| #include <stdint.h> | #include <stdint.h> | |||
| #include <qb/qbdefs.h> | ||||
| Data Structures | Data Structures | |||
| struct qb_list_head | struct qb_list_head | |||
| Defines | Defines | |||
| #define QB_LIST_DECLARE(name) struct qb_list_head name = { &(name) , &(name) } | #define QB_LIST_DECLARE(name) struct qb_list_head name = { &(name) , &(name) } | |||
| Declare and initialize a list head. | Declare and initialize a list head'. | |||
| #define QB_INIT_LIST_HEAD(ptr) | #define QB_INIT_LIST_HEAD(ptr) | |||
| #define qb_list_entry(ptr, type, member) ((type *)((char *)(ptr)-( char*)(&((type *)0)->member))) | #define qb_list_entry(ptr, type, member) ((type *)((char *)(ptr)-( char*)(&((type *)0)->member))) | |||
| Get the struct for this entry. | Get the struct for this entry'. | |||
| #define qb_list_for_each(pos, head) for (pos = (head)->next; pos ! = (head); pos = pos->next) | #define qb_list_for_each(pos, head) for (pos = (head)->next; pos ! = (head); pos = pos->next) | |||
| Iterate over a list. | Iterate over a list'. | |||
| #define qb_list_for_each_reverse(pos, head) for (pos = (head)->pre v; pos != (head); pos = pos->prev) | #define qb_list_for_each_reverse(pos, head) for (pos = (head)->pre v; pos != (head); pos = pos->prev) | |||
| Iterate over a list backwards. | Iterate over a list backwards'. | |||
| #define qb_list_for_each_safe(pos, n, head) | #define qb_list_for_each_safe(pos, n, head) | |||
| Iterate over a list safe against removal of list entry. | Iterate over a list safe against removal of list entry'. | |||
| #define qb_list_for_each_entry(pos, head, member) | #define qb_list_for_each_entry(pos, head, member) | |||
| Iterate over list of given type. | Iterate over list of given type'. | |||
| #define qb_list_for_each_entry_reverse(pos, head, member) | #define qb_list_for_each_entry_reverse(pos, head, member) | |||
| Iterate backwards over list of given type. | Iterate backwards over list of given type'. | |||
| #define qb_list_for_each_entry_safe(pos, n, head, member) | ||||
| Iterate over list of given type safe against removal of list ent | ||||
| ry'. | ||||
| #define qb_list_for_each_entry_safe_reverse(pos, n, head, member) | ||||
| Iterate backwards over list safe against removal'. | ||||
| Functions | Functions | |||
| static void qb_list_init (struct qb_list_head *head) | static void qb_list_init (struct qb_list_head *head) | |||
| Initialize the list entry. | Initialize the list entry'. | |||
| static void qb_list_add (struct qb_list_head *element, struct qb_lis t_head *head) | static void qb_list_add (struct qb_list_head *element, struct qb_lis t_head *head) | |||
| Add this element to the list. | Add this element to the list'. | |||
| static void qb_list_add_tail (struct qb_list_head *element, struct q b_list_head *head) | static void qb_list_add_tail (struct qb_list_head *element, struct q b_list_head *head) | |||
| Add to the list (but at the end of the list). | Add to the list (but at the end of the list)'. | |||
| static void qb_list_del (struct qb_list_head *_remove) | static void qb_list_del (struct qb_list_head *_remove) | |||
| Delete an entry from the list. | Delete an entry from the list'. | |||
| static int32_t qb_list_empty (const struct qb_list_head *head) | static int32_t qb_list_empty (const struct qb_list_head *head) | |||
| A quick test to see if the list is empty (pointing to it's self) . | A quick test to see if the list is empty (pointing to it's self) '. | |||
| static void qb_list_splice (struct qb_list_head *list, struct qb_lis t_head *head) | static void qb_list_splice (struct qb_list_head *list, struct qb_lis t_head *head) | |||
| Join two lists. | Join two lists'. | |||
| static int32_t qb_list_length (struct qb_list_head *head) | static int32_t qb_list_length (struct qb_list_head *head) | |||
| Count the number of items in the list. | Count the number of items in the list'. | |||
| Detailed Description | Detailed Description | |||
| This is a kernel style list implementation. | This is a kernel style list implementation'. | |||
| Author: | Author: | |||
| Steven Dake <sdake@redhat.com> | Steven Dake <sdake@redhat.com> | |||
| Define Documentation | Define Documentation | |||
| #define QB_INIT_LIST_HEAD(ptr) Value: | #define QB_INIT_LIST_HEAD(ptr) Value: | |||
| do { (ptr)->next = (ptr); (ptr)->prev = (ptr); } while (0) | do { (ptr)->next = (ptr); (ptr)->prev = (ptr); } while (0) | |||
| #define QB_LIST_DECLARE(name) struct qb_list_head name = { &(name), &( name) } | #define QB_LIST_DECLARE(name) struct qb_list_head name = { &(name), &( name) } | |||
| Declare and initialize a list head. | Declare and initialize a list head'. | |||
| #define qb_list_entry(ptr, type, member) ((type *)((char *)(ptr)-(char *)(&((type *)0)->member))) | #define qb_list_entry(ptr, type, member) ((type *)((char *)(ptr)-(char *)(&((type *)0)->member))) | |||
| Get the struct for this entry. Parameters: | Get the struct for this entry'. Parameters: | |||
| ptr,: the &struct list_head pointer. | ptr,: the &struct list_head pointer'. | |||
| type,: the type of the struct this is embedded in. | type,: the type of the struct this is embedded in'. | |||
| member,: the name of the list_struct within the struct. | member,: the name of the list_struct within the struct'. | |||
| #define qb_list_for_each(pos, head) for (pos = (head)->next; pos != (h ead); pos = pos->next) | #define qb_list_for_each(pos, head) for (pos = (head)->next; pos != (h ead); pos = pos->next) | |||
| Iterate over a list. Parameters: | Iterate over a list'. Parameters: | |||
| pos,: the &struct list_head to use as a loop counter. | pos,: the &struct list_head to use as a loop counter'. | |||
| head,: the head for your list. | head,: the head for your list'. | |||
| Referenced by qb_list_length(). | Referenced by qb_list_length(). | |||
| #define qb_list_for_each_entry(pos, head, member) Value: | #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)) | 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: | Iterate over list of given type'. Parameters: | |||
| pos,: the type * to use as a loop counter. | pos,: the type * to use as a loop counter'. | |||
| head,: the head for your list. | head,: the head for your list'. | |||
| member,: the name of the list_struct within the struct. | member,: the name of the list_struct within the struct'. | |||
| #define qb_list_for_each_entry_reverse(pos, head, member) Value: | #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)) | 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: | Iterate backwards over list of given type'. Parameters: | |||
| pos,: the type to use as a loop counter. | pos,: the type to use as a loop counter'. | |||
| head,: the head for your list. | head,: the head for your list'. | |||
| member,: the name of the list_struct within the struct. | 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, typeo | ||||
| f(*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, typeo | ||||
| f(*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; p os != (head); pos = pos->prev) | #define qb_list_for_each_reverse(pos, head) for (pos = (head)->prev; p os != (head); pos = pos->prev) | |||
| Iterate over a list backwards. Parameters: | Iterate over a list backwards'. Parameters: | |||
| pos,: the &struct list_head to use as a loop counter. | pos,: the &struct list_head to use as a loop counter'. | |||
| head,: the head for your list. | head,: the head for your list'. | |||
| #define qb_list_for_each_safe(pos, n, head) Value: | #define qb_list_for_each_safe(pos, n, head) Value: | |||
| for (pos = (head)->next, n = pos->next; pos != (head); pos = n, n = pos->next) | 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: | Iterate over a list safe against removal of list entry'. Parameters: | |||
| pos,: the &struct list_head to use as a loop counter. | pos,: the &struct list_head to use as a loop counter'. | |||
| n,: another &struct list_head to use as temporary storage | n,: another &struct list_head to use as temporary storage | |||
| head,: the head for your list. | head,: the head for your list'. | |||
| Function Documentation | Function Documentation | |||
| static void qb_list_add (struct qb_list_head * element, struct qb_list_h | static void qb_list_add (struct qb_list_head *element, struct qb_list_he | |||
| ead * head) [inline, static] | ad *head) [inline, static] | |||
| Add this element to the list. Parameters: | Add this element to the list'. Parameters: | |||
| element the new element to insert. | element the new element to insert'. | |||
| head pointer to the list head | head pointer to the list head | |||
| References qb_list_head::next, and qb_list_head::prev. | References qb_list_head::next, and qb_list_head::prev. | |||
| static void qb_list_add_tail (struct qb_list_head * element, struct qb_l | static void qb_list_add_tail (struct qb_list_head *element, struct qb_li | |||
| ist_head * head) [inline, static] | st_head *head) [inline, static] | |||
| Add to the list (but at the end of the list). Parameters: | Add to the list (but at the end of the list)'. Parameters: | |||
| element pointer to the element to add | element pointer to the element to add | |||
| head pointer to the list head | head pointer to the list head | |||
| See also: | See also: | |||
| qb_list_add() | qb_list_add() | |||
| References qb_list_head::next, and qb_list_head::prev. | References qb_list_head::prev, and qb_list_head::next. | |||
| static void qb_list_del (struct qb_list_head * _remove) [inline, static] | static void qb_list_del (struct qb_list_head *_remove) [inline, static] | |||
| Delete an entry from the list. Parameters: | Delete an entry from the list'. Parameters: | |||
| _remove the list item to remove | _remove the list item to remove | |||
| References qb_list_head::next, and qb_list_head::prev. | References qb_list_head::next, and qb_list_head::prev. | |||
| static int32_t qb_list_empty (const struct qb_list_head * head) [inline, | static int32_t qb_list_empty (const struct qb_list_head *head) [inline, | |||
| static] | static] | |||
| A quick test to see if the list is empty (pointing to it's self). Pa | A quick test to see if the list is empty (pointing to it's self)'. P | |||
| rameters: | arameters: | |||
| head pointer to the list head | head pointer to the list head | |||
| Returns: | Returns: | |||
| boolean true/false | boolean true/false | |||
| References qb_list_head::next. | References qb_list_head::next. | |||
| static void qb_list_init (struct qb_list_head * head) [inline, static] | static void qb_list_init (struct qb_list_head *head) [inline, static] | |||
| Initialize the list entry. Points next and prev pointers to head. | Initialize the list entry'. Points next and prev pointers to head'. | |||
| Parameters: | Parameters: | |||
| head pointer to the list head | head pointer to the list head | |||
| References qb_list_head::next, and qb_list_head::prev. | References qb_list_head::next, and qb_list_head::prev. | |||
| static int32_t qb_list_length (struct qb_list_head * head) [inline, stat | static int32_t qb_list_length (struct qb_list_head *head) [inline, stati | |||
| ic] | c] | |||
| Count the number of items in the list. Parameters: | Count the number of items in the list'. Parameters: | |||
| head,: the head for your list. | head,: the head for your list'. | |||
| Returns: | Returns: | |||
| length of the list. | length of the list'. | |||
| References qb_list_for_each. | References qb_list_for_each. | |||
| static void qb_list_splice (struct qb_list_head * list, struct qb_list_h | static void qb_list_splice (struct qb_list_head *list, struct qb_list_he | |||
| ead * head) [inline, static] | ad *head) [inline, static] | |||
| Join two lists. Parameters: | Join two lists'. Parameters: | |||
| list the new list to add. | list the new list to add'. | |||
| head the place to add it in the first list. | head the place to add it in the first list'. | |||
| Note: | Note: | |||
| The 'list' is reinitialised | The 'list' is reinitialised | |||
| References qb_list_head::next, and qb_list_head::prev. | References qb_list_head::next, and qb_list_head::prev. | |||
| Author | Author | |||
| Generated automatically by Doxygen for libqb from the source code. | Generated automatically by Doxygen for libqb from the source code'. | |||
| Version 0.4.1 Mon Jan 31 2011 qblist .h(3) | Version 0.8.1 Thu Jan 5 2012 qblist .h(3) | |||
| End of changes. 37 change blocks. | ||||
| 66 lines changed or deleted | 99 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||