Rename urcu-ht to rculfhash
[urcu.git] / urcu / rculfhash.h
CommitLineData
a42cc659
MD
1#ifndef _URCU_RCULFHASH_H
2#define _URCU_RCULFHASH_H
ab7d5fc6 3
674f7a69 4#include <stdint.h>
ab7d5fc6 5
5e28c532
MD
6/*
7 * Caution !
8 * Ensure writer threads are registered as urcu readers and with with
9 * urcu-defer.
10 * Ensure reader threads are registered as urcu readers.
11 */
12
13typedef uint32_t (*ht_hash_fct)(void *key, uint32_t length, uint32_t initval);
674f7a69
MD
14
15/*
16 * init_size must be power of two.
17 */
18struct rcu_ht *ht_new(ht_hash_fct hash_fct, void (*free_fct)(void *data),
5e28c532
MD
19 unsigned long init_size, uint32_t keylen,
20 uint32_t hashseed);
ab7d5fc6 21
5e28c532 22int ht_delete_all(struct rcu_ht *ht);
ab7d5fc6 23
5e28c532 24int ht_destroy(struct rcu_ht *ht);
ab7d5fc6
MD
25
26void *ht_lookup(struct rcu_ht *ht, void *key);
27
28int ht_add(struct rcu_ht *ht, void *key, void *data);
29
30int ht_delete(struct rcu_ht *ht, void *key);
31
32void *ht_steal(struct rcu_ht *ht, void *key);
33
464a1ec9
MD
34void ht_resize(struct rcu_ht *ht, int growth);
35
5e28c532 36uint32_t ht_jhash(void *key, uint32_t length, uint32_t initval);
ab7d5fc6 37
a42cc659 38#endif /* _URCU_RCULFHASH_H */
This page took 0.023834 seconds and 4 git commands to generate.