patch-2.4.10 linux/include/linux/list.h
Next file: linux/include/linux/lockd/xdr.h
Previous file: linux/include/linux/kernel.h
Back to the patch index
Back to the overall index
- Lines: 37
- Date:
Sun Sep 23 10:31:02 2001
- Orig file:
v2.4.9/linux/include/linux/list.h
- Orig date:
Fri Feb 16 16:06:17 2001
diff -u --recursive --new-file v2.4.9/linux/include/linux/list.h linux/include/linux/list.h
@@ -3,6 +3,8 @@
#if defined(__KERNEL__) || defined(_LVM_H_INCLUDE)
+#include <linux/prefetch.h>
+
/*
* Simple doubly linked list implementation.
*
@@ -90,6 +92,7 @@
static __inline__ void list_del(struct list_head *entry)
{
__list_del(entry->prev, entry->next);
+ entry->next = entry->prev = 0;
}
/**
@@ -147,7 +150,18 @@
* @head: the head for your list.
*/
#define list_for_each(pos, head) \
- for (pos = (head)->next; pos != (head); pos = pos->next)
+ for (pos = (head)->next, prefetch(pos->next); pos != (head); \
+ pos = pos->next, prefetch(pos->next))
+
+/**
+ * list_for_each_safe - iterate over a list safe against removal of list entry
+ * @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.
+ */
+#define list_for_each_safe(pos, n, head) \
+ for (pos = (head)->next, n = pos->next; pos != (head); \
+ pos = n, n = pos->next)
#endif /* __KERNEL__ || _LVM_H_INCLUDE */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)