projects
/
urcu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rculfhash: remove hash from nodes
[urcu.git]
/
urcu
/
rculfhash.h
diff --git
a/urcu/rculfhash.h
b/urcu/rculfhash.h
index d671af3e35ecc9b0e57a7955902ac230e244c987..bec7776c2fd6f3f2f2eb58c9c058dafd18e2d3f0 100644
(file)
--- a/
urcu/rculfhash.h
+++ b/
urcu/rculfhash.h
@@
-5,12
+5,13
@@
#include <urcu-call-rcu.h>
struct rcu_ht_node {
#include <urcu-call-rcu.h>
struct rcu_ht_node {
+ /* cache-hot for iteration */
struct rcu_ht_node *next;
struct rcu_ht_node *next;
- void *key;
- size_t key_len;
- unsigned long hash;
unsigned long reverse_hash;
unsigned long reverse_hash;
+ void *key;
+ unsigned int key_len;
unsigned int dummy;
unsigned int dummy;
+ /* cache-cold for iteration */
struct rcu_head head;
};
struct rcu_head head;
};
@@
-46,6
+47,10
@@
struct rcu_ht *ht_new(ht_hash_fct hash_fct,
void (*func)(struct rcu_head *head)));
int ht_destroy(struct rcu_ht *ht);
void (*func)(struct rcu_head *head)));
int ht_destroy(struct rcu_ht *ht);
+/* Count the number of nodes in the hash table. Call with rcu_read_lock held. */
+void ht_count_nodes(struct rcu_ht *ht,
+ unsigned long *count,
+ unsigned long *removed);
/* Call with rcu_read_lock held. */
struct rcu_ht_node *ht_lookup(struct rcu_ht *ht, void *key, size_t key_len);
/* Call with rcu_read_lock held. */
struct rcu_ht_node *ht_lookup(struct rcu_ht *ht, void *key, size_t key_len);
This page took
0.022923 seconds
and
4
git commands to generate.