projects
/
urcu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rculfhash: document algorithms
[urcu.git]
/
urcu
/
rculfhash.h
diff --git
a/urcu/rculfhash.h
b/urcu/rculfhash.h
index 6bb1ccf619b381e59f0f8d5098b643e569626233..b98b4932922e02fab3cd53e6630a46ca3b848a06 100644
(file)
--- a/
urcu/rculfhash.h
+++ b/
urcu/rculfhash.h
@@
-4,13
+4,20
@@
#include <stdint.h>
#include <urcu-call-rcu.h>
#include <stdint.h>
#include <urcu-call-rcu.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct _rcu_ht_node {
+ struct rcu_ht_node *next; /* ptr | DUMMY_FLAG | REMOVED_FLAG */
+ unsigned long reverse_hash;
+};
+
struct rcu_ht_node {
/* cache-hot for iteration */
struct rcu_ht_node {
/* cache-hot for iteration */
- struct rcu_ht_node *next;
- unsigned long reverse_hash;
+ struct _rcu_ht_node p; /* needs to be first field */
void *key;
unsigned int key_len;
void *key;
unsigned int key_len;
- unsigned int dummy;
/* cache-cold for iteration */
struct rcu_head head;
};
/* cache-cold for iteration */
struct rcu_head head;
};
@@
-33,7
+40,6
@@
void ht_node_init(struct rcu_ht_node *node, void *key,
{
node->key = key;
node->key_len = key_len;
{
node->key = key;
node->key_len = key_len;
- node->dummy = 0;
}
/*
}
/*
@@
-71,4
+77,8
@@
int ht_remove(struct rcu_ht *ht, struct rcu_ht_node *node);
void ht_resize(struct rcu_ht *ht, int growth);
void ht_resize(struct rcu_ht *ht, int growth);
+#ifdef __cplusplus
+}
+#endif
+
#endif /* _URCU_RCULFHASH_H */
#endif /* _URCU_RCULFHASH_H */
This page took
0.022985 seconds
and
4
git commands to generate.