rcuja: API change: move rcu_head to user code
[userspace-rcu.git] / rcuja / rcuja-internal.h
index 73ac41b69218bb68852a7a1385b3658f503b22d2..9b1daca61cb7541009f8db64b9014215a5ff1fe4 100644 (file)
@@ -94,6 +94,10 @@ struct cds_ja {
         */
        struct cds_lfht *ht;
        unsigned long nr_fallback;      /* Number of fallback nodes used */
+
+       /* For debugging */
+       unsigned long node_fallback_count_distribution[JA_ENTRY_PER_NODE];
+       unsigned long nr_nodes_allocated, nr_nodes_freed;
 };
 
 static inline
@@ -145,7 +149,7 @@ struct cds_ja_inode *ja_node_ptr(struct cds_ja_inode_flag *node);
 __attribute__((visibility("protected")))
 void rcuja_free_all_children(struct cds_ja_shadow_node *shadow_node,
                struct cds_ja_inode_flag *node_flag,
-               void (*free_node_cb)(struct rcu_head *head));
+               void (*rcu_free_node)(struct cds_ja_node *node));
 
 __attribute__((visibility("protected")))
 struct cds_ja_shadow_node *rcuja_shadow_lookup_lock(struct cds_lfht *ht,
@@ -175,7 +179,7 @@ int rcuja_shadow_clear(struct cds_lfht *ht,
 __attribute__((visibility("protected")))
 void rcuja_shadow_prune(struct cds_lfht *ht,
                unsigned int flags,
-               void (*free_node_cb)(struct rcu_head *head));
+               void (*rcu_free_node)(struct cds_ja_node *node));
 
 __attribute__((visibility("protected")))
 struct cds_lfht *rcuja_create_ht(const struct rcu_flavor_struct *flavor);
@@ -184,7 +188,7 @@ __attribute__((visibility("protected")))
 int rcuja_delete_ht(struct cds_lfht *ht);
 
 __attribute__((visibility("protected")))
-void free_cds_ja_node(struct cds_ja_inode *node);
+void free_cds_ja_node(struct cds_ja *ja, struct cds_ja_inode *node);
 
 //#define DEBUG
 
This page took 0.025808 seconds and 4 git commands to generate.