diff options
author | Robert Schwebel <r.schwebel@pengutronix.de> | 2008-09-18 20:43:23 +0000 |
---|---|---|
committer | Robert Schwebel <r.schwebel@pengutronix.de> | 2008-09-18 20:43:23 +0000 |
commit | 6c3caacdcf2ab834970dfb491cca109c2f22c578 (patch) | |
tree | 8929c4c2cb5f3787a025f91956f00f12b5db897a /patches/glibc-2.8/generic/gentoo/1010_all_glibc-queue-header-updates.patch | |
parent | e94b5b02d3207cf8f4d3f970769172972260d3ff (diff) | |
download | OSELAS.Toolchain-6c3caacdcf2ab834970dfb491cca109c2f22c578.tar.gz OSELAS.Toolchain-6c3caacdcf2ab834970dfb491cca109c2f22c578.tar.xz |
* patches: we do 2.8
git-svn-id: https://svn.pengutronix.de/svn/oselas/toolchain/trunks/OSELAS.Toolchain-trunk@7453 f8d472c7-5700-0410-ac5a-87979cec3adf
Diffstat (limited to 'patches/glibc-2.8/generic/gentoo/1010_all_glibc-queue-header-updates.patch')
-rw-r--r-- | patches/glibc-2.8/generic/gentoo/1010_all_glibc-queue-header-updates.patch | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/patches/glibc-2.8/generic/gentoo/1010_all_glibc-queue-header-updates.patch b/patches/glibc-2.8/generic/gentoo/1010_all_glibc-queue-header-updates.patch new file mode 100644 index 0000000..9110f1c --- /dev/null +++ b/patches/glibc-2.8/generic/gentoo/1010_all_glibc-queue-header-updates.patch @@ -0,0 +1,89 @@ +grab some updates from FreeBSD + +http://bugs.gentoo.org/201979 + +--- + misc/sys/queue.h | 37 +++++++++++++++++++++++++++++++++++++ + 1 file changed, 37 insertions(+) + +Index: glibc-2.8-20080811/misc/sys/queue.h +=================================================================== +--- glibc-2.8-20080811.orig/misc/sys/queue.h ++++ glibc-2.8-20080811/misc/sys/queue.h +@@ -136,6 +136,11 @@ struct { \ + (var); \ + (var) = ((var)->field.le_next)) + ++#define LIST_FOREACH_SAFE(var, head, field, tvar) \ ++ for ((var) = LIST_FIRST((head)); \ ++ (var) && ((tvar) = LIST_NEXT((var), field), 1); \ ++ (var) = (tvar)) ++ + /* + * List access methods. + */ +@@ -197,6 +202,16 @@ struct { \ + #define SLIST_FOREACH(var, head, field) \ + for((var) = (head)->slh_first; (var); (var) = (var)->field.sle_next) + ++#define SLIST_FOREACH_SAFE(var, head, field, tvar) \ ++ for ((var) = SLIST_FIRST((head)); \ ++ (var) && ((tvar) = SLIST_NEXT((var), field), 1); \ ++ (var) = (tvar)) ++ ++#define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ ++ for ((varp) = &SLIST_FIRST((head)); \ ++ ((var) = *(varp)) != NULL; \ ++ (varp) = &SLIST_NEXT((var), field)) ++ + /* + * Singly-linked List access methods. + */ +@@ -242,6 +257,12 @@ struct { \ + (head)->stqh_last = &(elm)->field.stqe_next; \ + } while (/*CONSTCOND*/0) + ++#define STAILQ_LAST(head, type, field) \ ++ (STAILQ_EMPTY((head)) ? \ ++ NULL : \ ++ ((struct type *)(void *) \ ++ ((char *)((head)->stqh_last) - __offsetof(struct type, field)))) ++ + #define STAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ + if (((elm)->field.stqe_next = (listelm)->field.stqe_next) == NULL)\ + (head)->stqh_last = &(elm)->field.stqe_next; \ +@@ -286,6 +307,11 @@ struct { \ + #define STAILQ_FIRST(head) ((head)->stqh_first) + #define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) + ++#define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ ++ for ((var) = STAILQ_FIRST((head)); \ ++ (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \ ++ (var) = (tvar)) ++ + + /* + * Simple queue definitions. +@@ -437,11 +463,22 @@ struct { \ + (var); \ + (var) = ((var)->field.tqe_next)) + ++#define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ ++ for ((var) = TAILQ_FIRST((head)); \ ++ (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \ ++ (var) = (tvar)) ++ + #define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ + for ((var) = (*(((struct headname *)((head)->tqh_last))->tqh_last)); \ + (var); \ + (var) = (*(((struct headname *)((var)->field.tqe_prev))->tqh_last))) + ++#define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ ++ for ((var) = TAILQ_LAST((head), headname); \ ++ (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \ ++ (var) = (tvar)) ++ ++ + #define TAILQ_CONCAT(head1, head2, field) do { \ + if (!TAILQ_EMPTY(head2)) { \ + *(head1)->tqh_last = (head2)->tqh_first; \ |