summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@google.com>2015-11-06 22:20:15 -0800
committerPatrick Georgi <pgeorgi@google.com>2015-11-13 00:52:58 +0100
commit1dcb10eeb6912824ddf257dab8121a2a87260a3d (patch)
treea646c78c3f7eca5f1a2f84ce4b0d55727ae0f63d
parent685ab2a2f2335a2366e2338f0425422dd3409403 (diff)
downloadcoreboot-1dcb10eeb6912824ddf257dab8121a2a87260a3d.tar.xz
libpayload: queue: Add a helper macro for checking singleton queue
Check if the simple queue consists of only 1 element. BUG=b:24676003 BRANCH=None TEST=Compiles successfully. Change-Id: Ib257a5e6b9042b42c549f8ad8b943e3b75fd8c9c Signed-off-by: Patrick Georgi <pgeorgi@chromium.org> Original-Commit-Id: 5435d6fec1c4fbb4c04ba5b8c15caff9ee4e50f0 Original-Change-Id: I7a8cb9c4e7e71956e85e65b3e7b8e0af4d354110 Original-Signed-off-by: Furquan Shaikh <furquan@google.com> Original-Reviewed-on: https://chromium-review.googlesource.com/311256 Original-Commit-Ready: Furquan Shaikh <furquan@chromium.org> Original-Tested-by: Furquan Shaikh <furquan@chromium.org> Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/12412 Reviewed-by: Furquan Shaikh <furquan@google.com> Tested-by: build bot (Jenkins)
-rw-r--r--payloads/libpayload/include/queue.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/payloads/libpayload/include/queue.h b/payloads/libpayload/include/queue.h
index f8f09bf12e..2b64669435 100644
--- a/payloads/libpayload/include/queue.h
+++ b/payloads/libpayload/include/queue.h
@@ -268,6 +268,9 @@ struct { \
#define SIMPLEQ_END(head) NULL
#define SIMPLEQ_EMPTY(head) (SIMPLEQ_FIRST(head) == SIMPLEQ_END(head))
#define SIMPLEQ_NEXT(elm, field) ((elm)->field.sqe_next)
+#define SIMPLEQ_TAIL_NEXT(head) ((head)->sqh_last)
+#define SIMPLEQ_SINGLETON(head, field) \
+ (&SIMPLEQ_NEXT(SIMPLEQ_FIRST(head), field) == SIMPLEQ_TAIL_NEXT(head))
#define SIMPLEQ_FOREACH(var, head, field) \
for((var) = SIMPLEQ_FIRST(head); \