unsigned long lttng_condition_buffer_usage_hash(
const struct lttng_condition *_condition)
{
- unsigned long hash = 0;
+ unsigned long hash;
+ unsigned long condition_type;
struct lttng_condition_buffer_usage *condition;
condition = container_of(_condition,
struct lttng_condition_buffer_usage, parent);
+ condition_type = (unsigned long) condition->parent.type;
+ hash = hash_key_ulong((void *) condition_type, lttng_ht_seed);
if (condition->session_name) {
hash ^= hash_key_str(condition->session_name, lttng_ht_seed);
}
unsigned long lttng_condition_session_consumed_size_hash(
const struct lttng_condition *_condition)
{
- unsigned long hash = 0;
+ unsigned long hash;
+ unsigned long condition_type =
+ (unsigned long) LTTNG_CONDITION_TYPE_SESSION_CONSUMED_SIZE;
struct lttng_condition_session_consumed_size *condition;
uint64_t val;
condition = container_of(_condition,
struct lttng_condition_session_consumed_size, parent);
+ hash = hash_key_ulong((void *) condition_type, lttng_ht_seed);
if (condition->session_name) {
hash ^= hash_key_str(condition->session_name, lttng_ht_seed);
}
return hash;
}
+
/*
* The lttng_condition hashing code is kept in this file (rather than
* condition.c) since it makes use of GPLv2 code (hashtable utils), which we
#if (CAA_BITS_PER_LONG == 64)
/*
* Hash function for number value.
+ * Pass the value itself as the key, not its address.
*/
LTTNG_HIDDEN
unsigned long hash_key_ulong(const void *_key, unsigned long seed)
#else
/*
* Hash function for number value.
+ * Pass the value itself as the key, not its address.
*/
LTTNG_HIDDEN
unsigned long hash_key_ulong(const void *_key, unsigned long seed)