aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/curl/lib/llist.h
diff options
context:
space:
mode:
authorAlexander Smirnov <alex@ydb.tech>2024-10-16 12:11:24 +0000
committerAlexander Smirnov <alex@ydb.tech>2024-10-16 12:11:24 +0000
commit40811e93f3fdf9342a9295369994012420fac548 (patch)
treea8d85e094a9c21e10aa250f537c101fc2016a049 /contrib/libs/curl/lib/llist.h
parent30ebe5357bb143648c6be4d151ecd4944af81ada (diff)
parent28a0c4a9f297064538a018c512cd9bbd00a1a35d (diff)
downloadydb-40811e93f3fdf9342a9295369994012420fac548.tar.gz
Merge branch 'rightlib' into mergelibs-241016-1210
Diffstat (limited to 'contrib/libs/curl/lib/llist.h')
-rw-r--r--contrib/libs/curl/lib/llist.h67
1 files changed, 15 insertions, 52 deletions
diff --git a/contrib/libs/curl/lib/llist.h b/contrib/libs/curl/lib/llist.h
index 26581869a3..320580e33c 100644
--- a/contrib/libs/curl/lib/llist.h
+++ b/contrib/libs/curl/lib/llist.h
@@ -27,63 +27,26 @@
#include "curl_setup.h"
#include <stddef.h>
-typedef void (*Curl_llist_dtor)(void *user, void *elem);
+typedef void (*Curl_llist_dtor)(void *, void *);
-/* none of these struct members should be referenced directly, use the
- dedicated functions */
-
-struct Curl_llist {
- struct Curl_llist_node *_head;
- struct Curl_llist_node *_tail;
- Curl_llist_dtor _dtor;
- size_t _size;
-#ifdef DEBUGBUILD
- int _init; /* detect API usage mistakes */
-#endif
+struct Curl_llist_element {
+ void *ptr;
+ struct Curl_llist_element *prev;
+ struct Curl_llist_element *next;
};
-struct Curl_llist_node {
- struct Curl_llist *_list; /* the list where this belongs */
- void *_ptr;
- struct Curl_llist_node *_prev;
- struct Curl_llist_node *_next;
-#ifdef DEBUGBUILD
- int _init; /* detect API usage mistakes */
-#endif
+struct Curl_llist {
+ struct Curl_llist_element *head;
+ struct Curl_llist_element *tail;
+ Curl_llist_dtor dtor;
+ size_t size;
};
void Curl_llist_init(struct Curl_llist *, Curl_llist_dtor);
-void Curl_llist_insert_next(struct Curl_llist *, struct Curl_llist_node *,
- const void *, struct Curl_llist_node *node);
-void Curl_llist_append(struct Curl_llist *,
- const void *, struct Curl_llist_node *node);
-void Curl_node_uremove(struct Curl_llist_node *, void *);
-void Curl_node_remove(struct Curl_llist_node *);
+void Curl_llist_insert_next(struct Curl_llist *, struct Curl_llist_element *,
+ const void *, struct Curl_llist_element *node);
+void Curl_llist_remove(struct Curl_llist *, struct Curl_llist_element *,
+ void *);
+size_t Curl_llist_count(struct Curl_llist *);
void Curl_llist_destroy(struct Curl_llist *, void *);
-
-/* Curl_llist_head() returns the first 'struct Curl_llist_node *', which
- might be NULL */
-struct Curl_llist_node *Curl_llist_head(struct Curl_llist *list);
-
-/* Curl_llist_tail() returns the last 'struct Curl_llist_node *', which
- might be NULL */
-struct Curl_llist_node *Curl_llist_tail(struct Curl_llist *list);
-
-/* Curl_llist_count() returns a size_t the number of nodes in the list */
-size_t Curl_llist_count(struct Curl_llist *list);
-
-/* Curl_node_elem() returns the custom data from a Curl_llist_node */
-void *Curl_node_elem(struct Curl_llist_node *n);
-
-/* Curl_node_next() returns the next element in a list from a given
- Curl_llist_node */
-struct Curl_llist_node *Curl_node_next(struct Curl_llist_node *n);
-
-/* Curl_node_prev() returns the previous element in a list from a given
- Curl_llist_node */
-struct Curl_llist_node *Curl_node_prev(struct Curl_llist_node *n);
-
-/* Curl_node_llist() return the list the node is in or NULL. */
-struct Curl_llist *Curl_node_llist(struct Curl_llist_node *n);
-
#endif /* HEADER_CURL_LLIST_H */