qapi: New QAPI_LIST_LENGTH()
authorSteve Sistare <steven.sistare@oracle.com>
Tue, 27 Feb 2024 15:33:19 +0000 (16:33 +0100)
committerMarkus Armbruster <armbru@redhat.com>
Mon, 4 Mar 2024 06:12:40 +0000 (07:12 +0100)
Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-ID: <20240227153321.467343-2-armbru@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
include/qapi/util.h

index 81a2b13a3339c7f6341cc43f8679542949684cfe..20dfea8a545c0dec905b68579489c6f94fcd818d 100644 (file)
@@ -56,4 +56,17 @@ int parse_qapi_name(const char *name, bool complete);
     (tail) = &(*(tail))->next; \
 } while (0)
 
+/*
+ * For any GenericList @list, return its length.
+ */
+#define QAPI_LIST_LENGTH(list)                                      \
+    ({                                                              \
+        size_t _len = 0;                                            \
+        typeof(list) _tail;                                         \
+        for (_tail = list; _tail != NULL; _tail = _tail->next) {    \
+            _len++;                                                 \
+        }                                                           \
+        _len;                                                       \
+    })
+
 #endif