diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2018-12-02 07:46:33 +0100 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2018-12-02 07:48:29 +0100 |
commit | 25073e5012cdb4de13d815197815c33194ff7dc9 (patch) | |
tree | 5515012886c00115503fa0ba0b6f22d57908edee /src/basic/hash-funcs.h | |
parent | hash-funcs: introduce macro to create typesafe hash_ops (diff) | |
download | systemd-25073e5012cdb4de13d815197815c33194ff7dc9.tar.xz systemd-25073e5012cdb4de13d815197815c33194ff7dc9.zip |
hash-funcs: make basic hash_ops typesafe
Diffstat (limited to '')
-rw-r--r-- | src/basic/hash-funcs.h | 16 |
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 |