*
* Userspace RCU library - RCU Judy Array Internal Header
*
- * Copyright 2012 - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+ * Copyright (C) 2000 - 2002 Hewlett-Packard Company
+ * Copyright 2012-2013 - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
__attribute__((visibility("protected")))
void rcuja_free_all_children(struct cds_ja_shadow_node *shadow_node,
- struct cds_ja_inode_flag *node_flag,
- void (*rcu_free_node)(struct cds_ja_node *node));
+ struct cds_ja_inode_flag *node_flag);
__attribute__((visibility("protected")))
struct cds_ja_shadow_node *rcuja_shadow_lookup_lock(struct cds_lfht *ht,
__attribute__((visibility("protected")))
void rcuja_shadow_prune(struct cds_lfht *ht,
- unsigned int flags,
- void (*rcu_free_node)(struct cds_ja_node *node));
+ unsigned int flags);
__attribute__((visibility("protected")))
struct cds_lfht *rcuja_create_ht(const struct rcu_flavor_struct *flavor);
* Receives a struct cds_ja_node * as parameter, which is used as start
* of duplicate list and loop cursor.
*/
-#define cds_ja_for_each_duplicate(pos) \
- for (; (pos) != NULL; (pos) = (pos)->next)
-
-/*
- * Iterate through duplicates returned by cds_ja_lookup*()
- * Safe against removal of entries during traversal.
- */
-#define cds_ja_for_each_duplicate_safe(_pos, _next) \
- for (; (_pos) != NULL ? ((_next) = (_pos)->next, 1) : 0; \
- (_pos) = (_next))
+#define cds_ja_for_each_duplicate(pos) \
+ for (; (pos) != NULL; (pos) = (pos)->next)
//#define DEBUG