Lines Matching refs:hash

180 static inline unsigned long rht_marker(const struct rhashtable *ht, u32 hash)  in rht_marker()  argument
182 return NULLS_MARKER(ht->p.nulls_base + hash); in rht_marker()
185 #define INIT_RHT_NULLS_HEAD(ptr, ht, hash) \ argument
186 ((ptr) = (typeof(ptr)) rht_marker(ht, hash))
205 unsigned int hash) in rht_bucket_index() argument
207 return (hash >> RHT_HASH_RESERVED_SPACE) & (tbl->size - 1); in rht_bucket_index()
214 unsigned int hash; in rht_key_hashfn() local
218 hash = ht->p.hashfn(key, ht->key_len, tbl->hash_rnd); in rht_key_hashfn()
223 hash = params.hashfn(key, key_len, tbl->hash_rnd); in rht_key_hashfn()
225 hash = jhash(key, key_len, tbl->hash_rnd); in rht_key_hashfn()
227 hash = jhash2(key, key_len / sizeof(u32), in rht_key_hashfn()
233 hash = params.hashfn(key, key_len, tbl->hash_rnd); in rht_key_hashfn()
235 hash = jhash(key, key_len, tbl->hash_rnd); in rht_key_hashfn()
238 return rht_bucket_index(tbl, hash); in rht_key_hashfn()
318 unsigned int hash) in rht_bucket_lock() argument
320 return &tbl->locks[hash & tbl->locks_mask]; in rht_bucket_lock()
325 int lockdep_rht_bucket_is_held(const struct bucket_table *tbl, u32 hash);
333 u32 hash) in lockdep_rht_bucket_is_held() argument
364 #define rht_dereference_bucket(p, tbl, hash) \ argument
365 rcu_dereference_protected(p, lockdep_rht_bucket_is_held(tbl, hash))
367 #define rht_dereference_bucket_rcu(p, tbl, hash) \ argument
368 rcu_dereference_check(p, lockdep_rht_bucket_is_held(tbl, hash))
380 #define rht_for_each_continue(pos, head, tbl, hash) \ argument
381 for (pos = rht_dereference_bucket(head, tbl, hash); \
383 pos = rht_dereference_bucket((pos)->next, tbl, hash))
391 #define rht_for_each(pos, tbl, hash) \ argument
392 rht_for_each_continue(pos, (tbl)->buckets[hash], tbl, hash)
403 #define rht_for_each_entry_continue(tpos, pos, head, tbl, hash, member) \ argument
404 for (pos = rht_dereference_bucket(head, tbl, hash); \
406 pos = rht_dereference_bucket((pos)->next, tbl, hash))
416 #define rht_for_each_entry(tpos, pos, tbl, hash, member) \ argument
417 rht_for_each_entry_continue(tpos, pos, (tbl)->buckets[hash], \
418 tbl, hash, member)
432 #define rht_for_each_entry_safe(tpos, pos, next, tbl, hash, member) \ argument
433 for (pos = rht_dereference_bucket((tbl)->buckets[hash], tbl, hash), \
435 rht_dereference_bucket(pos->next, tbl, hash) : NULL; \
439 rht_dereference_bucket(pos->next, tbl, hash) : NULL)
452 #define rht_for_each_rcu_continue(pos, head, tbl, hash) \ argument
454 pos = rht_dereference_bucket_rcu(head, tbl, hash); \
468 #define rht_for_each_rcu(pos, tbl, hash) \ argument
469 rht_for_each_rcu_continue(pos, (tbl)->buckets[hash], tbl, hash)
484 #define rht_for_each_entry_rcu_continue(tpos, pos, head, tbl, hash, member) \ argument
486 pos = rht_dereference_bucket_rcu(head, tbl, hash); \
488 pos = rht_dereference_bucket_rcu(pos->next, tbl, hash))
502 #define rht_for_each_entry_rcu(tpos, pos, tbl, hash, member) \ argument
503 rht_for_each_entry_rcu_continue(tpos, pos, (tbl)->buckets[hash],\
504 tbl, hash, member)
536 unsigned int hash; in rhashtable_lookup_fast() local
542 hash = rht_key_hashfn(ht, tbl, key, params); in rhashtable_lookup_fast()
543 rht_for_each_rcu(he, tbl, hash) { in rhashtable_lookup_fast()
576 unsigned int hash; in __rhashtable_insert_fast() local
588 hash = rht_head_hashfn(ht, tbl, obj, params); in __rhashtable_insert_fast()
589 lock = rht_bucket_lock(tbl, hash); in __rhashtable_insert_fast()
592 if (tbl->rehash <= hash) in __rhashtable_insert_fast()
624 rht_for_each(head, tbl, hash) { in __rhashtable_insert_fast()
636 head = rht_dereference_bucket(tbl->buckets[hash], tbl, hash); in __rhashtable_insert_fast()
640 rcu_assign_pointer(tbl->buckets[hash], obj); in __rhashtable_insert_fast()
748 unsigned int hash; in __rhashtable_remove_fast() local
751 hash = rht_head_hashfn(ht, tbl, obj, params); in __rhashtable_remove_fast()
752 lock = rht_bucket_lock(tbl, hash); in __rhashtable_remove_fast()
756 pprev = &tbl->buckets[hash]; in __rhashtable_remove_fast()
757 rht_for_each(he, tbl, hash) { in __rhashtable_remove_fast()