/** @file list.c @brief ENet linked list functions */ #define ENET_BUILDING_LIB 1 #include "enet/list.h" /** @defgroup list ENet linked list utility functions @ingroup private @{ */ void enet_list_clear (ENetList * list) { list -> sentinel.next = & list -> sentinel; list -> sentinel.previous = & list -> sentinel; } ENetListIterator enet_list_insert (ENetListIterator position, void * data) { ENetListIterator result = (ENetListIterator) data; result -> previous = position -> previous; result -> next = position; result -> previous -> next = result; position -> previous = result; return result; } void * enet_list_remove (ENetListIterator position) { position -> previous -> next = position -> next; position -> next -> previous = position -> previous; return position; } size_t enet_list_size (ENetList * list) { size_t size = 0; ENetListIterator position; for (position = enet_list_begin (list); position != enet_list_end (list); position = enet_list_next (position)) ++ size; return size; } /** @} */