1.1 --- a/patches/glibc/2_9/190-queue-header-updates.patch Sat Apr 11 19:03:02 2009 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,89 +0,0 @@
1.4 -Original patch from: gentoo/src/patchsets/glibc/2.9/1010_all_glibc-queue-header-updates.patch
1.5 -
1.6 --= BEGIN original header =-
1.7 -grab some updates from FreeBSD
1.8 -
1.9 -http://bugs.gentoo.org/201979
1.10 -
1.11 --= END original header =-
1.12 -
1.13 -diff -durN glibc-2_9.orig/misc/sys/queue.h glibc-2_9/misc/sys/queue.h
1.14 ---- glibc-2_9.orig/misc/sys/queue.h 2008-03-05 06:50:30.000000000 +0100
1.15 -+++ glibc-2_9/misc/sys/queue.h 2009-02-02 22:00:48.000000000 +0100
1.16 -@@ -136,6 +136,11 @@
1.17 - (var); \
1.18 - (var) = ((var)->field.le_next))
1.19 -
1.20 -+#define LIST_FOREACH_SAFE(var, head, field, tvar) \
1.21 -+ for ((var) = LIST_FIRST((head)); \
1.22 -+ (var) && ((tvar) = LIST_NEXT((var), field), 1); \
1.23 -+ (var) = (tvar))
1.24 -+
1.25 - /*
1.26 - * List access methods.
1.27 - */
1.28 -@@ -197,6 +202,16 @@
1.29 - #define SLIST_FOREACH(var, head, field) \
1.30 - for((var) = (head)->slh_first; (var); (var) = (var)->field.sle_next)
1.31 -
1.32 -+#define SLIST_FOREACH_SAFE(var, head, field, tvar) \
1.33 -+ for ((var) = SLIST_FIRST((head)); \
1.34 -+ (var) && ((tvar) = SLIST_NEXT((var), field), 1); \
1.35 -+ (var) = (tvar))
1.36 -+
1.37 -+#define SLIST_FOREACH_PREVPTR(var, varp, head, field) \
1.38 -+ for ((varp) = &SLIST_FIRST((head)); \
1.39 -+ ((var) = *(varp)) != NULL; \
1.40 -+ (varp) = &SLIST_NEXT((var), field))
1.41 -+
1.42 - /*
1.43 - * Singly-linked List access methods.
1.44 - */
1.45 -@@ -242,6 +257,12 @@
1.46 - (head)->stqh_last = &(elm)->field.stqe_next; \
1.47 - } while (/*CONSTCOND*/0)
1.48 -
1.49 -+#define STAILQ_LAST(head, type, field) \
1.50 -+ (STAILQ_EMPTY((head)) ? \
1.51 -+ NULL : \
1.52 -+ ((struct type *)(void *) \
1.53 -+ ((char *)((head)->stqh_last) - __offsetof(struct type, field))))
1.54 -+
1.55 - #define STAILQ_INSERT_AFTER(head, listelm, elm, field) do { \
1.56 - if (((elm)->field.stqe_next = (listelm)->field.stqe_next) == NULL)\
1.57 - (head)->stqh_last = &(elm)->field.stqe_next; \
1.58 -@@ -286,6 +307,11 @@
1.59 - #define STAILQ_FIRST(head) ((head)->stqh_first)
1.60 - #define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next)
1.61 -
1.62 -+#define STAILQ_FOREACH_SAFE(var, head, field, tvar) \
1.63 -+ for ((var) = STAILQ_FIRST((head)); \
1.64 -+ (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \
1.65 -+ (var) = (tvar))
1.66 -+
1.67 -
1.68 - /*
1.69 - * Simple queue definitions.
1.70 -@@ -437,11 +463,22 @@
1.71 - (var); \
1.72 - (var) = ((var)->field.tqe_next))
1.73 -
1.74 -+#define TAILQ_FOREACH_SAFE(var, head, field, tvar) \
1.75 -+ for ((var) = TAILQ_FIRST((head)); \
1.76 -+ (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
1.77 -+ (var) = (tvar))
1.78 -+
1.79 - #define TAILQ_FOREACH_REVERSE(var, head, headname, field) \
1.80 - for ((var) = (*(((struct headname *)((head)->tqh_last))->tqh_last)); \
1.81 - (var); \
1.82 - (var) = (*(((struct headname *)((var)->field.tqe_prev))->tqh_last)))
1.83 -
1.84 -+#define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \
1.85 -+ for ((var) = TAILQ_LAST((head), headname); \
1.86 -+ (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \
1.87 -+ (var) = (tvar))
1.88 -+
1.89 -+
1.90 - #define TAILQ_CONCAT(head1, head2, field) do { \
1.91 - if (!TAILQ_EMPTY(head2)) { \
1.92 - *(head1)->tqh_last = (head2)->tqh_first; \