Lines Matching refs:hash
46 void batadv_hash_set_lock_class(struct batadv_hashtable *hash,
50 void batadv_hash_destroy(struct batadv_hashtable *hash);
56 static inline void batadv_hash_delete(struct batadv_hashtable *hash, in batadv_hash_delete() argument
65 for (i = 0; i < hash->size; i++) { in batadv_hash_delete()
66 head = &hash->table[i]; in batadv_hash_delete()
67 list_lock = &hash->list_locks[i]; in batadv_hash_delete()
79 batadv_hash_destroy(hash); in batadv_hash_delete()
90 static inline uint32_t batadv_hash_bytes(uint32_t hash, const void *data, in batadv_hash_bytes() argument
97 hash += key[i]; in batadv_hash_bytes()
98 hash += (hash << 10); in batadv_hash_bytes()
99 hash ^= (hash >> 6); in batadv_hash_bytes()
101 return hash; in batadv_hash_bytes()
115 static inline int batadv_hash_add(struct batadv_hashtable *hash, in batadv_hash_add() argument
127 if (!hash) in batadv_hash_add()
130 index = choose(data, hash->size); in batadv_hash_add()
131 head = &hash->table[index]; in batadv_hash_add()
132 list_lock = &hash->list_locks[index]; in batadv_hash_add()
160 static inline void *batadv_hash_remove(struct batadv_hashtable *hash, in batadv_hash_remove() argument
170 index = choose(data, hash->size); in batadv_hash_remove()
171 head = &hash->table[index]; in batadv_hash_remove()
173 spin_lock_bh(&hash->list_locks[index]); in batadv_hash_remove()
182 spin_unlock_bh(&hash->list_locks[index]); in batadv_hash_remove()