mirror of
https://github.com/systemd/systemd.git
synced 2025-01-11 09:18:07 +03:00
util: introduce two trivial hash_ops
Will be used in a later commit.
This commit is contained in:
parent
11e9fec259
commit
5e71868ced
@ -71,6 +71,19 @@ const struct hash_ops trivial_hash_ops = {
|
|||||||
.compare = trivial_compare_func,
|
.compare = trivial_compare_func,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const struct hash_ops trivial_hash_ops_free = {
|
||||||
|
.hash = trivial_hash_func,
|
||||||
|
.compare = trivial_compare_func,
|
||||||
|
.free_key = free,
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct hash_ops trivial_hash_ops_free_free = {
|
||||||
|
.hash = trivial_hash_func,
|
||||||
|
.compare = trivial_compare_func,
|
||||||
|
.free_key = free,
|
||||||
|
.free_value = free,
|
||||||
|
};
|
||||||
|
|
||||||
void uint64_hash_func(const uint64_t *p, struct siphash *state) {
|
void uint64_hash_func(const uint64_t *p, struct siphash *state) {
|
||||||
siphash24_compress(p, sizeof(uint64_t), state);
|
siphash24_compress(p, sizeof(uint64_t), state);
|
||||||
}
|
}
|
||||||
|
@ -88,6 +88,8 @@ extern const struct hash_ops path_hash_ops_free;
|
|||||||
void trivial_hash_func(const void *p, struct siphash *state);
|
void trivial_hash_func(const void *p, struct siphash *state);
|
||||||
int trivial_compare_func(const void *a, const void *b) _const_;
|
int trivial_compare_func(const void *a, const void *b) _const_;
|
||||||
extern const struct hash_ops trivial_hash_ops;
|
extern const struct hash_ops trivial_hash_ops;
|
||||||
|
extern const struct hash_ops trivial_hash_ops_free;
|
||||||
|
extern const struct hash_ops trivial_hash_ops_free_free;
|
||||||
|
|
||||||
/* 32bit values we can always just embed in the pointer itself, but in order to support 32bit archs we need store 64bit
|
/* 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. */
|
* values indirectly, since they don't fit in a pointer. */
|
||||||
|
Loading…
Reference in New Issue
Block a user