Lines Matching refs:offset
135 ck_rhs_entry(struct ck_rhs_map *map, long offset) in ck_rhs_entry() argument
139 return (map->entries.no_entries.entries[offset]); in ck_rhs_entry()
141 return (map->entries.descs[offset].entry); in ck_rhs_entry()
145 ck_rhs_entry_addr(struct ck_rhs_map *map, long offset) in ck_rhs_entry_addr() argument
149 return (&map->entries.no_entries.entries[offset]); in ck_rhs_entry_addr()
151 return (&map->entries.descs[offset].entry); in ck_rhs_entry_addr()
155 ck_rhs_desc(struct ck_rhs_map *map, long offset) in ck_rhs_desc() argument
159 return ((struct ck_rhs_entry_desc *)(void *)&map->entries.no_entries.descs[offset]); in ck_rhs_desc()
161 return (&map->entries.descs[offset]); in ck_rhs_desc()
165 ck_rhs_wanted_inc(struct ck_rhs_map *map, long offset) in ck_rhs_wanted_inc() argument
169 map->entries.no_entries.descs[offset].wanted++; in ck_rhs_wanted_inc()
171 map->entries.descs[offset].wanted++; in ck_rhs_wanted_inc()
175 ck_rhs_probes(struct ck_rhs_map *map, long offset) in ck_rhs_probes() argument
179 return (map->entries.no_entries.descs[offset].probes); in ck_rhs_probes()
181 return (map->entries.descs[offset].probes); in ck_rhs_probes()
185 ck_rhs_set_probes(struct ck_rhs_map *map, long offset, unsigned int value) in ck_rhs_set_probes() argument
189 map->entries.no_entries.descs[offset].probes = value; in ck_rhs_set_probes()
191 map->entries.descs[offset].probes = value; in ck_rhs_set_probes()
195 ck_rhs_probe_bound(struct ck_rhs_map *map, long offset) in ck_rhs_probe_bound() argument
199 return (map->entries.no_entries.descs[offset].probe_bound); in ck_rhs_probe_bound()
201 return (map->entries.descs[offset].probe_bound); in ck_rhs_probe_bound()
205 ck_rhs_probe_bound_addr(struct ck_rhs_map *map, long offset) in ck_rhs_probe_bound_addr() argument
209 return (&map->entries.no_entries.descs[offset].probe_bound); in ck_rhs_probe_bound_addr()
211 return (&map->entries.descs[offset].probe_bound); in ck_rhs_probe_bound_addr()
216 ck_rhs_in_rh(struct ck_rhs_map *map, long offset) in ck_rhs_in_rh() argument
220 return (map->entries.no_entries.descs[offset].in_rh); in ck_rhs_in_rh()
222 return (map->entries.descs[offset].in_rh); in ck_rhs_in_rh()
226 ck_rhs_set_rh(struct ck_rhs_map *map, long offset) in ck_rhs_set_rh() argument
230 map->entries.no_entries.descs[offset].in_rh = true; in ck_rhs_set_rh()
232 map->entries.descs[offset].in_rh = true; in ck_rhs_set_rh()
236 ck_rhs_unset_rh(struct ck_rhs_map *map, long offset) in ck_rhs_unset_rh() argument
240 map->entries.no_entries.descs[offset].in_rh = false; in ck_rhs_unset_rh()
242 map->entries.descs[offset].in_rh = false; in ck_rhs_unset_rh()
274 iterator->offset = 0; in ck_rhs_iterator_init()
284 if (i->offset >= map->capacity) in ck_rhs_next()
288 value = CK_CC_DECONST_PTR(ck_rhs_entry(map, i->offset)); in ck_rhs_next()
294 i->offset++; in ck_rhs_next()
298 } while (++i->offset < map->capacity); in ck_rhs_next()
426 unsigned long offset, in ck_rhs_map_probe_next() argument
431 offset = (offset &~ map->offset_mask) + in ck_rhs_map_probe_next()
432 ((offset + 1) & map->offset_mask); in ck_rhs_map_probe_next()
433 return offset; in ck_rhs_map_probe_next()
435 return (offset + probes) & map->mask; in ck_rhs_map_probe_next()
439 ck_rhs_map_probe_prev(struct ck_rhs_map *map, unsigned long offset, in ck_rhs_map_probe_prev() argument
444 offset = (offset &~ map->offset_mask) + ((offset - 1) & in ck_rhs_map_probe_prev()
446 return offset; in ck_rhs_map_probe_prev()
448 return ((offset - probes) & map->mask); in ck_rhs_map_probe_prev()
457 unsigned long offset = h & m->mask; in ck_rhs_map_bound_set() local
463 desc = &m->entries.descs[offset]; in ck_rhs_map_bound_set()
480 unsigned long offset = h & m->mask; in ck_rhs_map_bound_get() local
486 r = CK_RHS_LOAD(&m->entries.descs[offset].probe_bound); in ck_rhs_map_bound_get()
499 unsigned long k, offset, probes; in ck_rhs_grow() local
523 offset = h & update->mask; in ck_rhs_grow()
527 const void **cursor = ck_rhs_entry_addr(update, offset); in ck_rhs_grow()
541 ck_rhs_set_probes(update, offset, probes); in ck_rhs_grow()
544 } else if (ck_rhs_probes(update, offset) < probes) { in ck_rhs_grow()
555 old_probes = ck_rhs_probes(update, offset); in ck_rhs_grow()
556 ck_rhs_set_probes(update, offset, probes); in ck_rhs_grow()
560 ck_rhs_wanted_inc(update, offset); in ck_rhs_grow()
561 offset = ck_rhs_map_probe_next(update, offset, probes); in ck_rhs_grow()
593 unsigned long offset, probes, opl; in ck_rhs_map_probe_rm() local
611 offset = h & map->mask; in ck_rhs_map_probe_rm()
615 offset = ck_rhs_map_probe_next(map, *priority, in ck_rhs_map_probe_rm()
632 k = ck_pr_load_ptr(&map->entries.no_entries.entries[offset]); in ck_rhs_map_probe_rm()
637 struct ck_rhs_entry_desc *desc = (void *)&map->entries.no_entries.descs[offset]; in ck_rhs_map_probe_rm()
641 pr = offset; in ck_rhs_map_probe_rm()
656 offset = ck_rhs_map_probe_next(map, offset, probes); in ck_rhs_map_probe_rm()
668 offset = ck_rhs_map_probe_next(map, offset, probes); in ck_rhs_map_probe_rm()
675 offset = ck_rhs_map_probe_next(map, offset, probes); in ck_rhs_map_probe_rm()
679 offset = -1; in ck_rhs_map_probe_rm()
688 return offset; in ck_rhs_map_probe_rm()
705 unsigned long offset, probes, opl; in ck_rhs_map_probe() local
724 offset = h & map->mask; in ck_rhs_map_probe()
728 offset = ck_rhs_map_probe_next(map, *priority, in ck_rhs_map_probe()
747 k = ck_pr_load_ptr(&map->entries.descs[offset].entry); in ck_rhs_map_probe()
751 struct ck_rhs_entry_desc *desc = &map->entries.descs[offset]; in ck_rhs_map_probe()
755 pr = offset; in ck_rhs_map_probe()
770 offset = ck_rhs_map_probe_next(map, offset, probes); in ck_rhs_map_probe()
782 offset = ck_rhs_map_probe_next(map, offset, probes); in ck_rhs_map_probe()
789 offset = ck_rhs_map_probe_next(map, offset, probes); in ck_rhs_map_probe()
793 offset = -1; in ck_rhs_map_probe()
802 return offset; in ck_rhs_map_probe()
846 long offset; in ck_rhs_add_wanted() local
851 offset = h & map->mask; in ck_rhs_add_wanted()
855 while (offset != end_offset) { in ck_rhs_add_wanted()
856 if (offset == old_slot) in ck_rhs_add_wanted()
859 desc = ck_rhs_desc(map, offset); in ck_rhs_add_wanted()
863 offset = ck_rhs_map_probe_next(map, offset, probes); in ck_rhs_add_wanted()
869 ck_rhs_remove_wanted(struct ck_rhs *hs, long offset, long limit) in ck_rhs_remove_wanted() argument
872 int probes = ck_rhs_probes(map, offset); in ck_rhs_remove_wanted()
878 offset = ck_rhs_map_probe_prev(map, offset, probes); in ck_rhs_remove_wanted()
879 if (offset == limit) in ck_rhs_remove_wanted()
882 desc = ck_rhs_desc(map, offset); in ck_rhs_remove_wanted()
887 return offset; in ck_rhs_remove_wanted()
891 ck_rhs_get_first_offset(struct ck_rhs_map *map, unsigned long offset, unsigned int probes) in ck_rhs_get_first_offset() argument
894 offset -= ((probes - 1) &~ map->offset_mask); in ck_rhs_get_first_offset()
895 offset &= map->mask; in ck_rhs_get_first_offset()
896 offset = (offset &~ map->offset_mask) + in ck_rhs_get_first_offset()
897 ((offset - map->offset_mask) & map->offset_mask); in ck_rhs_get_first_offset()
900 return ((offset &~ map->offset_mask) + ((offset - (probes - 1)) & map->offset_mask)); in ck_rhs_get_first_offset()
998 unsigned long offset = 0, tmp_offset; in ck_rhs_do_backward_shift_delete() local
1006 offset = ck_rhs_map_probe_next(map, slot, probe); in ck_rhs_do_backward_shift_delete()
1008 new_desc = ck_rhs_desc(map, offset); in ck_rhs_do_backward_shift_delete()
1012 offset = ck_rhs_map_probe_next(map, offset, in ck_rhs_do_backward_shift_delete()
1024 h = ck_rhs_remove_wanted(hs, offset, slot); in ck_rhs_do_backward_shift_delete()
1026 ck_rhs_entry(map, offset)); in ck_rhs_do_backward_shift_delete()
1043 tmp_offset = ck_rhs_map_probe_next(map, offset, in ck_rhs_do_backward_shift_delete()
1058 slot = offset; in ck_rhs_do_backward_shift_delete()