Lines Matching refs:hash

181 static inline unsigned long rht_marker(const struct rhashtable *ht, u32 hash)  in rht_marker()  argument
183 return NULLS_MARKER(ht->p.nulls_base + hash); in rht_marker()
186 #define INIT_RHT_NULLS_HEAD(ptr, ht, hash) \ argument
187 ((ptr) = (typeof(ptr)) rht_marker(ht, hash))
206 unsigned int hash) in rht_bucket_index() argument
208 return (hash >> RHT_HASH_RESERVED_SPACE) & (tbl->size - 1); in rht_bucket_index()
215 unsigned int hash; in rht_key_hashfn() local
219 hash = ht->p.hashfn(key, ht->key_len, tbl->hash_rnd); in rht_key_hashfn()
224 hash = params.hashfn(key, key_len, tbl->hash_rnd); in rht_key_hashfn()
226 hash = jhash(key, key_len, tbl->hash_rnd); in rht_key_hashfn()
228 hash = jhash2(key, key_len / sizeof(u32), in rht_key_hashfn()
234 hash = params.hashfn(key, key_len, tbl->hash_rnd); in rht_key_hashfn()
236 hash = jhash(key, key_len, tbl->hash_rnd); in rht_key_hashfn()
239 return rht_bucket_index(tbl, hash); in rht_key_hashfn()
319 unsigned int hash) in rht_bucket_lock() argument
321 return &tbl->locks[hash & tbl->locks_mask]; in rht_bucket_lock()
326 int lockdep_rht_bucket_is_held(const struct bucket_table *tbl, u32 hash);
334 u32 hash) in lockdep_rht_bucket_is_held() argument
366 #define rht_dereference_bucket(p, tbl, hash) \ argument
367 rcu_dereference_protected(p, lockdep_rht_bucket_is_held(tbl, hash))
369 #define rht_dereference_bucket_rcu(p, tbl, hash) \ argument
370 rcu_dereference_check(p, lockdep_rht_bucket_is_held(tbl, hash))
382 #define rht_for_each_continue(pos, head, tbl, hash) \ argument
383 for (pos = rht_dereference_bucket(head, tbl, hash); \
385 pos = rht_dereference_bucket((pos)->next, tbl, hash))
393 #define rht_for_each(pos, tbl, hash) \ argument
394 rht_for_each_continue(pos, (tbl)->buckets[hash], tbl, hash)
405 #define rht_for_each_entry_continue(tpos, pos, head, tbl, hash, member) \ argument
406 for (pos = rht_dereference_bucket(head, tbl, hash); \
408 pos = rht_dereference_bucket((pos)->next, tbl, hash))
418 #define rht_for_each_entry(tpos, pos, tbl, hash, member) \ argument
419 rht_for_each_entry_continue(tpos, pos, (tbl)->buckets[hash], \
420 tbl, hash, member)
434 #define rht_for_each_entry_safe(tpos, pos, next, tbl, hash, member) \ argument
435 for (pos = rht_dereference_bucket((tbl)->buckets[hash], tbl, hash), \
437 rht_dereference_bucket(pos->next, tbl, hash) : NULL; \
441 rht_dereference_bucket(pos->next, tbl, hash) : NULL)
454 #define rht_for_each_rcu_continue(pos, head, tbl, hash) \ argument
456 pos = rht_dereference_bucket_rcu(head, tbl, hash); \
470 #define rht_for_each_rcu(pos, tbl, hash) \ argument
471 rht_for_each_rcu_continue(pos, (tbl)->buckets[hash], tbl, hash)
486 #define rht_for_each_entry_rcu_continue(tpos, pos, head, tbl, hash, member) \ argument
488 pos = rht_dereference_bucket_rcu(head, tbl, hash); \
490 pos = rht_dereference_bucket_rcu(pos->next, tbl, hash))
504 #define rht_for_each_entry_rcu(tpos, pos, tbl, hash, member) \ argument
505 rht_for_each_entry_rcu_continue(tpos, pos, (tbl)->buckets[hash],\
506 tbl, hash, member)
538 unsigned int hash; in rhashtable_lookup_fast() local
544 hash = rht_key_hashfn(ht, tbl, key, params); in rhashtable_lookup_fast()
545 rht_for_each_rcu(he, tbl, hash) { in rhashtable_lookup_fast()
578 unsigned int hash; in __rhashtable_insert_fast() local
590 hash = rht_head_hashfn(ht, tbl, obj, params); in __rhashtable_insert_fast()
591 lock = rht_bucket_lock(tbl, hash); in __rhashtable_insert_fast()
594 if (tbl->rehash <= hash) in __rhashtable_insert_fast()
628 rht_for_each(head, tbl, hash) { in __rhashtable_insert_fast()
640 head = rht_dereference_bucket(tbl->buckets[hash], tbl, hash); in __rhashtable_insert_fast()
644 rcu_assign_pointer(tbl->buckets[hash], obj); in __rhashtable_insert_fast()
752 unsigned int hash; in __rhashtable_remove_fast() local
755 hash = rht_head_hashfn(ht, tbl, obj, params); in __rhashtable_remove_fast()
756 lock = rht_bucket_lock(tbl, hash); in __rhashtable_remove_fast()
760 pprev = &tbl->buckets[hash]; in __rhashtable_remove_fast()
761 rht_for_each(he, tbl, hash) { in __rhashtable_remove_fast()