queue: add QSIMPLEQ_PREPEND()

QSIMPLEQ_CONCAT(a, b) joins a = a + b.  The new QSIMPLEQ_PREPEND(a, b)
API joins a = b + a.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 20180322152834.12656-2-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Stefan Hajnoczi 2018-03-22 15:28:32 +00:00
parent f58d9620aa
commit 67a74148d8

View File

@ -324,6 +324,14 @@ struct { \
} \
} while (/*CONSTCOND*/0)
#define QSIMPLEQ_PREPEND(head1, head2) do { \
if (!QSIMPLEQ_EMPTY((head2))) { \
*(head2)->sqh_last = (head1)->sqh_first; \
(head1)->sqh_first = (head2)->sqh_first; \
QSIMPLEQ_INIT((head2)); \
} \
} while (/*CONSTCOND*/0)
#define QSIMPLEQ_LAST(head, type, field) \
(QSIMPLEQ_EMPTY((head)) ? \
NULL : \