Lines Matching full:range
41 PageRange *range = g_malloc(sizeof(*range)); in page_range_tree_insert_new() local
45 *key = range->start = start; in page_range_tree_insert_new()
46 range->count = count; in page_range_tree_insert_new()
48 return g_tree_insert_node(tree.t, key, range); in page_range_tree_insert_new()
58 PageRange *range; in hvb_page_range_tree_insert() local
73 range = g_tree_node_value(node); in hvb_page_range_tree_insert()
74 assert(range); in hvb_page_range_tree_insert()
75 intersection = page_range_intersection_size(range, start, count); in hvb_page_range_tree_insert()
76 joinable = page_range_joinable_right(range, start, count); in hvb_page_range_tree_insert()
83 * already has a higher key (the start of its range). in hvb_page_range_tree_insert()
84 * the other case: there is a gap in the tree between the new range in hvb_page_range_tree_insert()
86 * anyway, let's just insert the new range into the tree. in hvb_page_range_tree_insert()
90 range = g_tree_node_value(node); in hvb_page_range_tree_insert()
91 assert(range); in hvb_page_range_tree_insert()
94 * the previous range in the tree either partially covers the new in hvb_page_range_tree_insert()
95 * range or ends just at its beginning - extend it in hvb_page_range_tree_insert()
101 count += start - range->start; in hvb_page_range_tree_insert()
102 range->count = MAX(range->count, count); in hvb_page_range_tree_insert()
113 range->start, range->count); in hvb_page_range_tree_insert()
115 range->start, range->count); in hvb_page_range_tree_insert()
125 count = rangecur->count + (rangecur->start - range->start); in hvb_page_range_tree_insert()
126 range->count = MAX(range->count, count); in hvb_page_range_tree_insert()
140 PageRange *range; in hvb_page_range_tree_pop() local
147 range = g_tree_node_value(node); in hvb_page_range_tree_pop()
148 assert(range); in hvb_page_range_tree_pop()
150 out->start = range->start; in hvb_page_range_tree_pop()
152 /* can't modify range->start as it is the node key */ in hvb_page_range_tree_pop()
153 if (range->count > maxcount) { in hvb_page_range_tree_pop()
154 out->start += range->count - maxcount; in hvb_page_range_tree_pop()
156 range->count -= maxcount; in hvb_page_range_tree_pop()
158 out->count = range->count; in hvb_page_range_tree_pop()
175 /* find the first node that can possibly intersect our range */ in hvb_page_range_tree_intree_any()
180 * already has a higher key (the start of its range). in hvb_page_range_tree_intree_any()
187 /* node range start <= range start */ in hvb_page_range_tree_intree_any()
190 /* node range start > range start */ in hvb_page_range_tree_intree_any()
195 PageRange *range = g_tree_node_value(node); in hvb_page_range_tree_intree_any() local
197 assert(range); in hvb_page_range_tree_intree_any()
199 * if this node starts beyond or at the end of our range so does in hvb_page_range_tree_intree_any()
202 if (range->start >= start + count) { in hvb_page_range_tree_intree_any()
206 if (page_range_intersection_size(range, start, count) > 0) { in hvb_page_range_tree_intree_any()