- Small fixes
[tinc] / lib / rbl.h
index a181007..ab6b5f9 100644 (file)
--- a/lib/rbl.h
+++ b/lib/rbl.h
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: rbl.h,v 1.1.2.4 2000/11/19 02:04:29 guus Exp $
+    $Id: rbl.h,v 1.1.2.6 2000/11/19 22:12:46 guus Exp $
 */
 
-typedef int (*rbl_compare_t) (const void *, const void *);
-typedef void (*rbl_action_t) (const void *);
-
 typedef struct rbl_t
 {
   /* 'red-black tree' part */
@@ -46,6 +43,10 @@ typedef struct rbl_t
    
 } rbl_t;
 
+typedef int (*rbl_compare_t) (const void *, const void *);
+typedef void (*rbl_action_t) (const void *);
+typedef void (*rbl_action_rbl_t) (const struct rbl_t *);
+
 typedef struct rbltree_t
 {
   /* callback functions */
@@ -75,13 +76,18 @@ extern void free_rbltree(rbltree_t *);
 extern rbl_t *new_rbl(void);
 extern void free_rbl(rbl_t *);
 
-extern rbl_t *rbl_search(rbltree_t *, void *);
-extern rbl_t *rbl_search_closest(rbltree_t *, void *);
+extern void *rbl_search(rbltree_t *, void *);
+extern void *rbl_search_closest(rbltree_t *, void *);
+extern rbl_t *rbl_search_rbl(rbltree_t *, void *);
+extern rbl_t *rbl_search_closest_rbl(rbltree_t *, void *);
 extern rbl_t *rbl_insert(rbltree_t *, void *);
 extern rbl_t *rbl_unlink(rbltree_t *, void *);
 extern void rbl_delete(rbltree_t *, void *);
 extern rbl_t *rbl_insert_rbl(rbltree_t *, rbl_t *);
 extern rbl_t *rbl_unlink_rbl(rbl_t *);
 extern void rbl_delete_rbl(rbl_t *);
+extern void rbl_unlink_rbltree(rbltree_t *);
+extern void rbl_delete_rbltree(rbltree_t *);
 
 extern void rbl_foreach(rbltree_t *, rbl_action_t);
+extern void rbl_foreach_rbl(rbltree_t *, rbl_action_rbl_t);