This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
dexter gerrit-no-reply at lists.osmocom.orgdexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/24801 )
Change subject: linuxlist: add functions to check entry presence and list end
......................................................................
linuxlist: add functions to check entry presence and list end
The current linuxlist implementation has not convinient way to check if
a given element is actually contained in a list. However, this may be
helpful when we must be sure that a pointer to a list element is still
valid.
Also it is not very easy to check if an element is actually the last
element of a list. However this is needed when iterating the list from
osmo_select_main()
Change-Id: Icf455bf6ba9d60bd311af17c9e80febaa42cacc9
Related: SYS#4971
---
M include/osmocom/core/linuxlist.h
1 file changed, 25 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/01/24801/1
diff --git a/include/osmocom/core/linuxlist.h b/include/osmocom/core/linuxlist.h
index f28f88b..6b50ae0 100644
--- a/include/osmocom/core/linuxlist.h
+++ b/include/osmocom/core/linuxlist.h
@@ -394,7 +394,32 @@
return i;
}
+/*! Check whether a given element actually exists in the list.
+ * \param head the llist head of the list to check.
+ * \param entry the element to check.
+ * \returns true if the element exists in the list, false otherwise.
+ */
+static inline bool llist_contains(struct llist_head *head, struct llist_head *entry)
+{
+ struct llist_head *llist_entry;
+ llist_for_each(llist_entry, head) {
+ if (llist_entry == entry)
+ return true;
+ }
+ return false;
+}
+/*! Check whether a given element is the last element of the list.
+ * \param head the llist head of the list to check.
+ * \param entry the element to check.
+ * \returns true if the element is the last element, false otherwise.
+ */
+static inline bool llist_is_last(struct llist_head *head, struct llist_head *entry)
+{
+ if (entry == head->prev)
+ return true;
+ return false;
+}
/*! Double linked lists with a single pointer list head.
* Mostly useful for hash tables where the two pointer list head is
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24801
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: Icf455bf6ba9d60bd311af17c9e80febaa42cacc9
Gerrit-Change-Number: 24801
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210629/01a2ffa9/attachment.htm>