Home | History | Annotate | Download | only in c-ares
      1 #ifndef __ARES_LLIST_H
      2 #define __ARES_LLIST_H
      3 
      4 
      5 /* Copyright 1998 by the Massachusetts Institute of Technology.
      6  *
      7  * Permission to use, copy, modify, and distribute this
      8  * software and its documentation for any purpose and without
      9  * fee is hereby granted, provided that the above copyright
     10  * notice appear in all copies and that both that copyright
     11  * notice and this permission notice appear in supporting
     12  * documentation, and that the name of M.I.T. not be used in
     13  * advertising or publicity pertaining to distribution of the
     14  * software without specific, written prior permission.
     15  * M.I.T. makes no representations about the suitability of
     16  * this software for any purpose.  It is provided "as is"
     17  * without express or implied warranty.
     18  */
     19 
     20 
     21 /* Node definition for circular, doubly-linked list */
     22 struct list_node {
     23   struct list_node *prev;
     24   struct list_node *next;
     25   void* data;
     26 };
     27 
     28 void ares__init_list_head(struct list_node* head);
     29 
     30 void ares__init_list_node(struct list_node* node, void* d);
     31 
     32 int ares__is_list_empty(struct list_node* head);
     33 
     34 void ares__insert_in_list(struct list_node* new_node,
     35                           struct list_node* old_node);
     36 
     37 void ares__remove_from_list(struct list_node* node);
     38 
     39 void ares__swap_lists(struct list_node* head_a,
     40                       struct list_node* head_b);
     41 
     42 #endif /* __ARES_LLIST_H */
     43