[DTrace-devel] [PATCH 14/20] Add dt_list_length()
Kris Van Hees
kris.van.hees at oracle.com
Tue Jun 1 22:48:11 PDT 2021
Implement a function dt_list_length() to determine the number of
elements in a list.
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
---
libdtrace/dt_list.c | 12 ++++++++++++
libdtrace/dt_list.h | 1 +
2 files changed, 13 insertions(+)
diff --git a/libdtrace/dt_list.c b/libdtrace/dt_list.c
index 0f3855f9..79c29d18 100644
--- a/libdtrace/dt_list.c
+++ b/libdtrace/dt_list.c
@@ -88,3 +88,15 @@ dt_list_delete(dt_list_t *dlp, void *existing)
else
dlp->dl_prev = p->dl_prev;
}
+
+size_t
+dt_list_length(dt_list_t *dlp)
+{
+ dt_list_t *p;
+ size_t len = 0;
+
+ for (p = dt_list_next(dlp); p != NULL; p = dt_list_next(p))
+ len++;
+
+ return len;
+}
diff --git a/libdtrace/dt_list.h b/libdtrace/dt_list.h
index 49b290f5..293906b2 100644
--- a/libdtrace/dt_list.h
+++ b/libdtrace/dt_list.h
@@ -26,6 +26,7 @@ extern void dt_list_append(dt_list_t *, void *);
extern void dt_list_prepend(dt_list_t *, void *);
extern void dt_list_insert(dt_list_t *, void *, void *);
extern void dt_list_delete(dt_list_t *, void *);
+extern size_t dt_list_length(dt_list_t *);
#ifdef __cplusplus
}
--
2.31.1
More information about the DTrace-devel
mailing list