chiark / gitweb /
journal: introduce entry array chain cache
[elogind.git] / src / shared / hashmap.h
index ed41817ddae8658cfa392e4b2526d518341c4074..6fd71cf519fa2fcd4895a3eb43592ed71615bda4 100644 (file)
@@ -44,6 +44,9 @@ int string_compare_func(const void *a, const void *b);
 unsigned trivial_hash_func(const void *p);
 int trivial_compare_func(const void *a, const void *b);
 
+unsigned uint64_hash_func(const void *p);
+int uint64_compare_func(const void *a, const void *b);
+
 Hashmap *hashmap_new(hash_func_t hash_func, compare_func_t compare_func);
 void hashmap_free(Hashmap *h);
 void hashmap_free_free(Hashmap *h);
@@ -51,8 +54,10 @@ Hashmap *hashmap_copy(Hashmap *h);
 int hashmap_ensure_allocated(Hashmap **h, hash_func_t hash_func, compare_func_t compare_func);
 
 int hashmap_put(Hashmap *h, const void *key, void *value);
+int hashmap_update(Hashmap *h, const void *key, void *value);
 int hashmap_replace(Hashmap *h, const void *key, void *value);
 void* hashmap_get(Hashmap *h, const void *key);
+void* hashmap_get2(Hashmap *h, const void *key, void **rkey);
 bool hashmap_contains(Hashmap *h, const void *key);
 void* hashmap_remove(Hashmap *h, const void *key);
 void* hashmap_remove_value(Hashmap *h, const void *key, void *value);