]> xenbits.xensource.com Git - legacy/linux-2.6.18-xen.git/commitdiff
linux-2.6.18: add list_first_entry()
authorKeir Fraser <keir@xen.org>
Wed, 3 Nov 2010 17:34:34 +0000 (17:34 +0000)
committerKeir Fraser <keir@xen.org>
Wed, 3 Nov 2010 17:34:34 +0000 (17:34 +0000)
... to address build failure after c/s 1045:bd2bf7a84686.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
include/linux/list.h

index 65a5b5ceda4947d1478bba79abbda826963d128e..3beb546ee4db4cf940f5312dc3208cfe55145570 100644 (file)
@@ -353,6 +353,17 @@ static inline void list_splice_init(struct list_head *list,
 #define list_entry(ptr, type, member) \
        container_of(ptr, type, member)
 
+/**
+ * list_first_entry - get the first element from a list
+ * @ptr:       the list head to take the element from.
+ * @type:      the type of the struct this is embedded in.
+ * @member:    the name of the list_struct within the struct.
+ *
+ * Note, that list is expected to be not empty.
+ */
+#define list_first_entry(ptr, type, member) \
+       list_entry((ptr)->next, type, member)
+
 /**
  * list_for_each       -       iterate over a list
  * @pos:       the &struct list_head to use as a loop cursor.