Lines Matching defs:rs
39 static void rangeset_check(struct rangeset *rs);
41 #define rangeset_check(rs)
54 SYSINIT(rs, SI_SUB_LOCK, SI_ORDER_ANY, rs_rangeset_init, NULL);
59 struct rangeset *rs;
61 rs = __containerof(ptree, struct rangeset, rs_trie);
62 return (uma_zalloc(rs_node_zone, rs->rs_alloc_flags));
75 rangeset_init(struct rangeset *rs, rs_dup_data_t dup_data,
79 pctrie_init(&rs->rs_trie);
80 rs->rs_dup_data = dup_data;
81 rs->rs_free_data = free_data;
82 rs->rs_data_ctx = data_ctx;
83 rs->rs_alloc_flags = alloc_flags;
87 rangeset_fini(struct rangeset *rs)
90 rangeset_check(rs);
91 rangeset_remove_all(rs);
95 rangeset_check_empty(struct rangeset *rs, uint64_t start, uint64_t end)
99 rangeset_check(rs);
100 r = RANGESET_PCTRIE_LOOKUP_LE(&rs->rs_trie, end);
105 rangeset_insert(struct rangeset *rs, uint64_t start, uint64_t end,
111 rangeset_check(rs);
112 error = rangeset_remove(rs, start, end);
118 error = RANGESET_PCTRIE_INSERT(&rs->rs_trie, r);
119 rangeset_check(rs);
124 rangeset_remove_pred(struct rangeset *rs, uint64_t start, uint64_t end,
130 rangeset_check(rs);
133 r = RANGESET_PCTRIE_LOOKUP_LE(&rs->rs_trie, end - 1);
139 * rs re s e
148 * rs s re e
150 if (pred(rs->rs_data_ctx, r))
157 * s rs re e
160 if (pred(rs->rs_data_ctx, r)) {
161 RANGESET_PCTRIE_REMOVE(&rs->rs_trie,
163 rs->rs_free_data(rs->rs_data_ctx, r);
170 * s rs e re
173 if (pred(rs->rs_data_ctx, r)) {
174 RANGESET_PCTRIE_REMOVE(&rs->rs_trie,
177 error = RANGESET_PCTRIE_INSERT(&rs->rs_trie, r);
193 * rs s e re
195 if (pred(rs->rs_data_ctx, r)) {
201 rn = rs->rs_dup_data(rs->rs_data_ctx, r);
208 error = RANGESET_PCTRIE_INSERT(&rs->rs_trie, rn);
210 rs->rs_free_data(rs->rs_data_ctx, rn);
217 rangeset_check(rs);
229 rangeset_remove(struct rangeset *rs, uint64_t start, uint64_t end)
232 return (rangeset_remove_pred(rs, start, end, rangeset_true_pred));
238 struct rangeset *rs = rsv;
240 rs->rs_free_data(rs->rs_data_ctx, r);
244 rangeset_remove_all(struct rangeset *rs)
246 RANGESET_PCTRIE_RECLAIM_CALLBACK(&rs->rs_trie,
247 rangeset_remove_leaf, rs);
251 rangeset_containing(struct rangeset *rs, uint64_t place)
255 rangeset_check(rs);
256 r = RANGESET_PCTRIE_LOOKUP_LE(&rs->rs_trie, place);
263 rangeset_empty(struct rangeset *rs, uint64_t start, uint64_t end)
267 r = RANGESET_PCTRIE_LOOKUP_GE(&rs->rs_trie, start + 1);
272 rangeset_beginning(struct rangeset *rs, uint64_t place)
275 rangeset_check(rs);
276 return (RANGESET_PCTRIE_LOOKUP(&rs->rs_trie, place));
311 rangeset_check(struct rangeset *rs)
317 r = RANGESET_PCTRIE_LOOKUP_GE(&rs->rs_trie, cursor);
321 ("invalid interval rs %p elem %p (%#jx, %#jx)",
322 rs, r, (uintmax_t)r->re_start, (uintmax_t)r->re_end));
325 ("non-ascending neighbors rs %p "
327 rs, rp, (uintmax_t)rp->re_start,
342 struct rangeset *rs;
351 rs = (struct rangeset *)addr;
352 db_printf("rangeset %p\n", rs);
354 r = RANGESET_PCTRIE_LOOKUP_GE(&rs->rs_trie, cursor);