qblist.h man page on Scientific

Man page or keyword search:  
man Server   26626 pages
apropos Keyword Search (all sections)
Output format
Scientific logo
[printable version]

qblist.h(3)			     libqb			   qblist.h(3)

NAME
       qblist.h -

       This is a kernel style list implementation.

SYNOPSIS
       #include <stdint.h>
       #include <qb/qbdefs.h>

   Data Structures
       struct qb_list_head

   Defines
       #define QB_LIST_DECLARE(name)   struct qb_list_head name = { &(name),
	   &(name) }
	   Declare and initialize a list head.
       #define QB_INIT_LIST_HEAD(ptr)
       #define qb_list_entry(ptr, type, member)	  ((type *)((char
	   *)(ptr)-(char*)(&((type *)0)->member)))
	   Get the struct for this entry.
       #define qb_list_first_entry(ptr, type, member)
	   qb_list_entry((ptr)->next, type, member)
	   Get the first element from a list.
       #define qb_list_for_each(pos, head)   for (pos = (head)->next; pos !=
	   (head); pos = pos->next)
	   Iterate over a list.
       #define qb_list_for_each_reverse(pos, head)   for (pos = (head)->prev;
	   pos != (head); pos = pos->prev)
	   Iterate over a list backwards.
       #define qb_list_for_each_safe(pos, n, head)
	   Iterate over a list safe against removal of list entry.
       #define qb_list_for_each_entry(pos, head, member)
	   Iterate over list of given type.
       #define qb_list_for_each_entry_reverse(pos, head, member)
	   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 entry.
       #define qb_list_for_each_entry_safe_reverse(pos, n, head, member)
	   Iterate backwards over list safe against removal.
       #define qb_list_for_each_entry_from(pos, head, member)
	   Iterate over list of given type from the current point.

   Functions
       static void qb_list_init (struct qb_list_head *head)
	   Initialize the list entry.
       static void qb_list_add (struct qb_list_head *element, struct
	   qb_list_head *head)
	   Add this element to the list.
       static void qb_list_add_tail (struct qb_list_head *element, struct
	   qb_list_head *head)
	   Add to the list (but at the end of the list).
       static void qb_list_del (struct qb_list_head *_remove)
	   Delete an entry from the list.
       static void qb_list_replace (struct qb_list_head *old, struct
	   qb_list_head *new)
	   Replace old entry by new one.
       static int qb_list_is_last (const struct qb_list_head *list, const
	   struct qb_list_head *head)
	   Tests whether list is the last entry in list 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).
       static void qb_list_splice (struct qb_list_head *list, struct
	   qb_list_head *head)
	   Join two lists.
       static void qb_list_splice_tail (struct qb_list_head *list, struct
	   qb_list_head *head)
	   Join two lists, each list being a queue.
       static int32_t qb_list_length (struct qb_list_head *head)
	   Count the number of items in the list.

Detailed Description
       This is a kernel style list implementation.

       Author:
	   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_first_entry(ptr, type, member)   qb_list_entry((ptr)->next,
       type, member)
       Get the first element from a list. 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.

       Referenced by qb_list_length().

   #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_from(pos, head, member) Value:
       for (; &pos->member != (head);							      pos = qb_list_entry(pos->member.next, typeof(*pos), member))

       Iterate over list of given type from the current point. Parameters:
	   pos,: the type * to use as a loop cursor.
	   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

       References qb_list_head::next, and qb_list_head::prev.

   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()

       References qb_list_head::next, and qb_list_head::prev.

   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

       References qb_list_head::next, and qb_list_head::prev.

   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

       References qb_list_head::next.

       Referenced by qb_list_splice(), and qb_list_splice_tail().

   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

       References qb_list_head::next, and qb_list_head::prev.

   static int qb_list_is_last (const struct qb_list_head * list, const struct
       qb_list_head * head) [inline, static]
       Tests whether list is the last entry in list head. Parameters:
	   list,: the entry to test
	   head,: the head of the list

       Returns:
	   boolean true/false

       References qb_list_head::next.

   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.

       References qb_list_for_each.

   static void qb_list_replace (struct qb_list_head * old, struct qb_list_head
       * new) [inline, static]
       Replace old entry by new one. Parameters:
	   old,: the element to be replaced
	   new,: the new element to insert

       References qb_list_head::next, and qb_list_head::prev.

   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

       References qb_list_head::next, qb_list_head::prev, and qb_list_empty().

   static void qb_list_splice_tail (struct qb_list_head * list, struct
       qb_list_head * head) [inline, static]
       Join two lists, each list being a queue. Parameters:
	   list,: the new list to add.
	   head,: the place to add it in the first list.

       References qb_list_head::next, qb_list_head::prev, and qb_list_empty().

Author
       Generated automatically by Doxygen for libqb from the source code.

Version 0.16.0			  21 Nov 2013			   qblist.h(3)
[top]

List of man pages available for Scientific

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net