Lines Matching refs:table

71 		struct __chash_table table;				\
84 struct __chash_table table; member
110 #define DECLARE_CHASH_TABLE(table, bts, key_sz, val_sz) \ argument
111 STRUCT_CHASH_TABLE(bts, key_sz, val_sz) table
153 .table = { \
167 __CHASH_TABLE_INIT(((tbl).table), (tbl).data, bts, key_sz, val_sz)
169 int chash_table_alloc(struct chash_table *table, u8 bits, u8 key_size,
171 void chash_table_free(struct chash_table *table);
182 #define chash_table_dump_stats(tbl) __chash_table_dump_stats(&(*tbl).table)
184 void __chash_table_dump_stats(struct __chash_table *table);
194 #define chash_table_reset_stats(tbl) __chash_table_reset_stats(&(*tbl).table)
196 static inline void __chash_table_reset_stats(struct __chash_table *table) in __chash_table_reset_stats() argument
198 (void)table __CHASH_STATS_INIT((*table)); in __chash_table_reset_stats()
217 __chash_table_copy_in(&(*tbl).table, key, value)
219 int __chash_table_copy_in(struct __chash_table *table, u64 key,
233 __chash_table_copy_out(&(*tbl).table, key, value, false)
235 int __chash_table_copy_out(struct __chash_table *table, u64 key,
250 __chash_table_copy_out(&(*tbl).table, key, value, true)
256 struct __chash_table *table; member
266 #define CHASH_ITER_INIT(table, s) { \ argument
267 table, \
288 (iter).slot = ((iter).slot + 1) & (iter).table->size_mask; \
293 BUG_ON((unsigned)iter.slot >= (1 << iter.table->bits)); in chash_iter_is_valid()
294 return !!(iter.table->valid_bitmap[iter.slot >> _CHASH_LONG_SHIFT] & in chash_iter_is_valid()
299 BUG_ON((unsigned)iter.slot >= (1 << iter.table->bits)); in chash_iter_is_empty()
300 return !(iter.table->occup_bitmap[iter.slot >> _CHASH_LONG_SHIFT] & in chash_iter_is_empty()
306 BUG_ON((unsigned)iter.slot >= (1 << iter.table->bits)); in chash_iter_set_valid()
307 iter.table->valid_bitmap[iter.slot >> _CHASH_LONG_SHIFT] |= iter.mask; in chash_iter_set_valid()
308 iter.table->occup_bitmap[iter.slot >> _CHASH_LONG_SHIFT] |= iter.mask; in chash_iter_set_valid()
312 BUG_ON((unsigned)iter.slot >= (1 << iter.table->bits)); in chash_iter_set_invalid()
313 iter.table->valid_bitmap[iter.slot >> _CHASH_LONG_SHIFT] &= ~iter.mask; in chash_iter_set_invalid()
317 BUG_ON((unsigned)iter.slot >= (1 << iter.table->bits)); in chash_iter_set_empty()
318 iter.table->occup_bitmap[iter.slot >> _CHASH_LONG_SHIFT] &= ~iter.mask; in chash_iter_set_empty()
323 BUG_ON(iter.table->key_size != 4); in chash_iter_key32()
324 BUG_ON((unsigned)iter.slot >= (1 << iter.table->bits)); in chash_iter_key32()
325 return iter.table->keys32[iter.slot]; in chash_iter_key32()
329 BUG_ON(iter.table->key_size != 8); in chash_iter_key64()
330 BUG_ON((unsigned)iter.slot >= (1 << iter.table->bits)); in chash_iter_key64()
331 return iter.table->keys64[iter.slot]; in chash_iter_key64()
335 BUG_ON((unsigned)iter.slot >= (1 << iter.table->bits)); in chash_iter_key()
336 return (iter.table->key_size == 4) ? in chash_iter_key()
337 iter.table->keys32[iter.slot] : iter.table->keys64[iter.slot]; in chash_iter_key()
342 BUG_ON(iter.table->key_size != 4); in chash_iter_hash32()
343 return hash_32(chash_iter_key32(iter), iter.table->bits); in chash_iter_hash32()
348 BUG_ON(iter.table->key_size != 8); in chash_iter_hash64()
349 return hash_64(chash_iter_key64(iter), iter.table->bits); in chash_iter_hash64()
354 return (iter.table->key_size == 4) ? in chash_iter_hash()
355 hash_32(chash_iter_key32(iter), iter.table->bits) : in chash_iter_hash()
356 hash_64(chash_iter_key64(iter), iter.table->bits); in chash_iter_hash()
361 BUG_ON((unsigned)iter.slot >= (1 << iter.table->bits)); in chash_iter_value()
362 return iter.table->values + in chash_iter_value()
363 ((unsigned long)iter.slot * iter.table->value_size); in chash_iter_value()