Annotation of embedaddon/curl/lib/llist.h, revision 1.1
1.1 ! misho 1: #ifndef HEADER_CURL_LLIST_H
! 2: #define HEADER_CURL_LLIST_H
! 3: /***************************************************************************
! 4: * _ _ ____ _
! 5: * Project ___| | | | _ \| |
! 6: * / __| | | | |_) | |
! 7: * | (__| |_| | _ <| |___
! 8: * \___|\___/|_| \_\_____|
! 9: *
! 10: * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
! 11: *
! 12: * This software is licensed as described in the file COPYING, which
! 13: * you should have received as part of this distribution. The terms
! 14: * are also available at https://curl.haxx.se/docs/copyright.html.
! 15: *
! 16: * You may opt to use, copy, modify, merge, publish, distribute and/or sell
! 17: * copies of the Software, and permit persons to whom the Software is
! 18: * furnished to do so, under the terms of the COPYING file.
! 19: *
! 20: * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
! 21: * KIND, either express or implied.
! 22: *
! 23: ***************************************************************************/
! 24:
! 25: #include "curl_setup.h"
! 26: #include <stddef.h>
! 27:
! 28: typedef void (*curl_llist_dtor)(void *, void *);
! 29:
! 30: struct curl_llist_element {
! 31: void *ptr;
! 32: struct curl_llist_element *prev;
! 33: struct curl_llist_element *next;
! 34: };
! 35:
! 36: struct curl_llist {
! 37: struct curl_llist_element *head;
! 38: struct curl_llist_element *tail;
! 39: curl_llist_dtor dtor;
! 40: size_t size;
! 41: };
! 42:
! 43: void Curl_llist_init(struct curl_llist *, curl_llist_dtor);
! 44: void Curl_llist_insert_next(struct curl_llist *, struct curl_llist_element *,
! 45: const void *, struct curl_llist_element *node);
! 46: void Curl_llist_remove(struct curl_llist *, struct curl_llist_element *,
! 47: void *);
! 48: size_t Curl_llist_count(struct curl_llist *);
! 49: void Curl_llist_destroy(struct curl_llist *, void *);
! 50: #endif /* HEADER_CURL_LLIST_H */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>