summaryrefslogtreecommitdiffstats
path: root/src/basic/hash-funcs.h
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2018-12-02 07:46:33 +0100
committerYu Watanabe <watanabe.yu+github@gmail.com>2018-12-02 07:48:29 +0100
commit25073e5012cdb4de13d815197815c33194ff7dc9 (patch)
tree5515012886c00115503fa0ba0b6f22d57908edee /src/basic/hash-funcs.h
parenthash-funcs: introduce macro to create typesafe hash_ops (diff)
downloadsystemd-25073e5012cdb4de13d815197815c33194ff7dc9.tar.xz
systemd-25073e5012cdb4de13d815197815c33194ff7dc9.zip
hash-funcs: make basic hash_ops typesafe
Diffstat (limited to '')
-rw-r--r--src/basic/hash-funcs.h16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/basic/hash-funcs.h b/src/basic/hash-funcs.h
index 30e8979fe6..61c36a2119 100644
--- a/src/basic/hash-funcs.h
+++ b/src/basic/hash-funcs.h
@@ -26,12 +26,12 @@ struct hash_ops {
#define DEFINE_PRIVATE_HASH_OPS(name, type, hash_func, compare_func) \
_DEFINE_HASH_OPS(UNIQ, name, type, hash_func, compare_func, static)
-void string_hash_func(const void *p, struct siphash *state);
-int string_compare_func(const void *a, const void *b) _pure_;
+void string_hash_func(const char *p, struct siphash *state);
+#define string_compare_func strcmp
extern const struct hash_ops string_hash_ops;
-void path_hash_func(const void *p, struct siphash *state);
-int path_compare_func(const void *a, const void *b) _pure_;
+void path_hash_func(const char *p, struct siphash *state);
+int path_compare_func(const char *a, const char *b) _pure_;
extern const struct hash_ops path_hash_ops;
/* This will compare the passed pointers directly, and will not dereference them. This is hence not useful for strings
@@ -42,15 +42,15 @@ extern const struct hash_ops trivial_hash_ops;
/* 32bit values we can always just embed in the pointer itself, but in order to support 32bit archs we need store 64bit
* values indirectly, since they don't fit in a pointer. */
-void uint64_hash_func(const void *p, struct siphash *state);
-int uint64_compare_func(const void *a, const void *b) _pure_;
+void uint64_hash_func(const uint64_t *p, struct siphash *state);
+int uint64_compare_func(const uint64_t *a, const uint64_t *b) _pure_;
extern const struct hash_ops uint64_hash_ops;
/* On some archs dev_t is 32bit, and on others 64bit. And sometimes it's 64bit on 32bit archs, and sometimes 32bit on
* 64bit archs. Yuck! */
#if SIZEOF_DEV_T != 8
-void devt_hash_func(const void *p, struct siphash *state) _pure_;
-int devt_compare_func(const void *a, const void *b) _pure_;
+void devt_hash_func(const dev_t *p, struct siphash *state) _pure_;
+int devt_compare_func(const dev_t *a, const dev_t *b) _pure_;
extern const struct hash_ops devt_hash_ops;
#else
#define devt_hash_func uint64_hash_func