Lines Matching refs:type
147 enum maple_type type; member
241 static __always_inline bool ma_is_dense(const enum maple_type type) in ma_is_dense() argument
243 return type < maple_leaf_64; in ma_is_dense()
246 static __always_inline bool ma_is_leaf(const enum maple_type type) in ma_is_leaf() argument
248 return type < maple_range_64; in ma_is_leaf()
349 enum maple_type type) in mt_mk_node() argument
352 (type << MAPLE_ENODE_TYPE_SHIFT) | MAPLE_ENODE_NULL); in mt_mk_node()
505 unsigned long type; in mas_set_parent() local
515 type = MAPLE_PARENT_RANGE64; in mas_set_parent()
520 shift = type = 0; in mas_set_parent()
525 val |= (slot << shift) | type; in mas_set_parent()
664 enum maple_type type) in ma_pivots() argument
666 switch (type) { in ma_pivots()
686 enum maple_type type) in ma_gaps() argument
688 switch (type) { in ma_gaps()
711 unsigned char piv, enum maple_type type) in mas_safe_pivot() argument
713 if (piv >= mt_pivots[type]) in mas_safe_pivot()
746 enum maple_type type = mte_node_type(mn); in mte_set_pivot() local
748 BUG_ON(piv >= mt_pivots[type]); in mte_set_pivot()
749 switch (type) { in mte_set_pivot()
897 enum maple_type type) in mt_clear_meta() argument
904 switch (type) { in mt_clear_meta()
917 meta = ma_meta(mn, type); in mt_clear_meta()
1018 enum maple_type type; in mas_descend() local
1024 type = mte_node_type(mas->node); in mas_descend()
1025 pivots = ma_pivots(node, type); in mas_descend()
1026 slots = ma_slots(node, type); in mas_descend()
1030 mas->max = mas_safe_pivot(mas, pivots, mas->offset, type); in mas_descend()
1423 enum maple_type type, unsigned long *pivots, unsigned long max) in ma_data_end() argument
1430 if (type == maple_arange_64) in ma_data_end()
1431 return ma_meta_end(node, type); in ma_data_end()
1433 offset = mt_pivots[type] - 1; in ma_data_end()
1435 return ma_meta_end(node, type); in ma_data_end()
1440 return mt_pivots[type]; in ma_data_end()
1454 enum maple_type type; in mas_data_end() local
1459 type = mte_node_type(mas->node); in mas_data_end()
1461 if (type == maple_arange_64) in mas_data_end()
1462 return ma_meta_end(node, type); in mas_data_end()
1464 pivots = ma_pivots(node, type); in mas_data_end()
1468 offset = mt_pivots[type] - 1; in mas_data_end()
1470 return ma_meta_end(node, type); in mas_data_end()
1475 return mt_pivots[type]; in mas_data_end()
1702 enum maple_type type = mte_node_type(parent); in mas_adopt_children() local
1704 void __rcu **slots = ma_slots(node, type); in mas_adopt_children()
1705 unsigned long *pivots = ma_pivots(node, type); in mas_adopt_children()
1709 offset = ma_data_end(node, type, pivots, mas->max); in mas_adopt_children()
1809 if (b_node->type == maple_arange_64) in mab_shift_right()
1852 (b_node->b_end - split) > (mt_min_slots[b_node->type])) in mab_no_null_split()
1874 unsigned char slot_count = mt_slots[bn->type]; in mab_calc_split()
1884 split = b_end - mt_min_slots[bn->type]; in mab_calc_split()
1886 if (!ma_is_leaf(bn->type)) in mab_calc_split()
2081 b_node->type = wr_mas->type; in mas_store_b_node()
2110 piv = mas_safe_pivot(mas, wr_mas->pivots, offset_end, wr_mas->type); in mas_store_b_node()
2113 mas_bulk_rebalance(mas, b_node->b_end, wr_mas->type); in mas_store_b_node()
2214 if (unlikely(ma_is_dense(wr_mas->type))) { in mas_wr_node_walk()
2221 wr_mas->pivots = ma_pivots(wr_mas->node, wr_mas->type); in mas_wr_node_walk()
2222 count = mas->end = ma_data_end(wr_mas->node, wr_mas->type, in mas_wr_node_walk()
2330 wr_mas.type = mte_node_type(mast->orig_r->node); in mast_ascend()
2336 wr_mas.type = mte_node_type(mast->orig_l->node); in mast_ascend()
2339 mast->bn->type = wr_mas.type; in mast_ascend()
2355 return mt_mk_node(ma_mnode_ptr(mas_pop_node(mas)), b_node->type); in mas_new_ma_node()
2376 unsigned char slot_count = mt_slots[b_node->type]; in mas_mab_to_node()
2762 enum maple_type type; in mtree_range_walk() local
2774 type = mte_node_type(next); in mtree_range_walk()
2775 pivots = ma_pivots(node, type); in mtree_range_walk()
2776 end = ma_data_end(node, type, pivots, max); in mtree_range_walk()
2796 slots = ma_slots(node, type); in mtree_range_walk()
2800 } while (!ma_is_leaf(type)); in mtree_range_walk()
2856 unlikely(mast->bn->b_end <= mt_min_slots[mast->bn->type])) in mas_spanning_rebalance()
2872 mast->bn->type = mte_node_type(mast->orig_l->node); in mas_spanning_rebalance()
2885 mast->bn->type = mte_node_type(left); in mas_spanning_rebalance()
2932 mab_mas_cp(mast->bn, 0, mt_slots[mast->bn->type] - 1, &l_mas, true); in mas_spanning_rebalance()
2994 mast.bn->type = mte_node_type(mas->node); in mas_rebalance()
3146 mast->bn->type = maple_arange_64; in mas_split_final_node()
3148 mast->bn->type = maple_range_64; in mas_split_final_node()
3160 mab_mas_cp(mast->bn, 0, mt_slots[mast->bn->type] - 1, mast->l, true); in mas_split_final_node()
3201 mast->bn->type = mte_node_type(mas->node); in mast_fill_bnode()
3262 if (ma_is_leaf(mast->bn->type)) in mas_push_data()
3282 split = mt_slots[mast->bn->type] - 2; in mas_push_data()
3294 split = mab_no_null_split(mast->bn, split, mt_slots[mast->bn->type]); in mas_push_data()
3349 if (mt_slots[b_node->type] > b_node->b_end) { in mas_split()
3403 enum store_type type = wr_mas->mas->store_type; in mas_commit_b_node() local
3405 WARN_ON_ONCE(type != wr_rebalance && type != wr_split_store); in mas_commit_b_node()
3407 if (type == wr_rebalance) in mas_commit_b_node()
3421 enum maple_type type = maple_leaf_64; in mas_root_expand() local
3428 pivots = ma_pivots(node, type); in mas_root_expand()
3429 slots = ma_slots(node, type); in mas_root_expand()
3431 mas->node = mt_mk_node(node, type); in mas_root_expand()
3493 enum maple_type type = wr_mas->type; in mas_is_span_wr() local
3500 if (ma_is_leaf(type)) { in mas_is_span_wr()
3521 wr_mas->type = mte_node_type(wr_mas->mas->node); in mas_wr_walk_descend()
3523 wr_mas->slots = ma_slots(wr_mas->node, wr_mas->type); in mas_wr_walk_descend()
3553 if (ma_is_leaf(wr_mas->type)) in mas_wr_walk()
3556 if (mas->end < mt_slots[wr_mas->type] - 1) in mas_wr_walk()
3563 } else if (mas->end > mt_min_slots[wr_mas->type] + 1) in mas_wr_walk()
3580 if (ma_is_leaf(wr_mas->type)) in mas_wr_walk_index()
3620 r_wr_mas->type, r_mas->offset + 1); in mas_extend_spanning_null()
3654 enum maple_type type; in mtree_lookup_walk() local
3661 type = mte_node_type(next); in mtree_lookup_walk()
3662 pivots = ma_pivots(node, type); in mtree_lookup_walk()
3663 end = mt_pivots[type]; in mtree_lookup_walk()
3670 slots = ma_slots(node, type); in mtree_lookup_walk()
3674 } while (!ma_is_leaf(type)); in mtree_lookup_walk()
3695 enum maple_type type = maple_leaf_64; in mas_new_root() local
3710 pivots = ma_pivots(node, type); in mas_new_root()
3711 slots = ma_slots(node, type); in mas_new_root()
3713 mas->node = mt_mk_node(node, type); in mas_new_root()
3834 unsigned char copy_size, node_pivots = mt_pivots[wr_mas->type]; in mas_wr_node_store()
3841 mas_bulk_rebalance(mas, mas->end, wr_mas->type); in mas_wr_node_store()
3852 dst_pivots = ma_pivots(newnode, wr_mas->type); in mas_wr_node_store()
3853 dst_slots = ma_slots(newnode, wr_mas->type); in mas_wr_node_store()
3892 mas->node = mt_mk_node(newnode, wr_mas->type); in mas_wr_node_store()
4031 if (new_end < mt_pivots[wr_mas->type]) { in mas_wr_append()
4033 ma_set_meta(wr_mas->node, wr_mas->type, 0, new_end); in mas_wr_append()
4257 if (new_end < mt_min_slots[wr_mas->type]) { in mas_wr_store_type()
4263 if (new_end >= mt_slots[wr_mas->type]) in mas_wr_store_type()
4518 enum maple_type type; in mas_prev_slot() local
4525 type = mte_node_type(mas->node); in mas_prev_slot()
4526 pivots = ma_pivots(node, type); in mas_prev_slot()
4559 type = mte_node_type(mas->node); in mas_prev_slot()
4560 pivots = ma_pivots(node, type); in mas_prev_slot()
4564 slots = ma_slots(node, type); in mas_prev_slot()
4688 enum maple_type type; in mas_next_slot() local
4695 type = mte_node_type(mas->node); in mas_next_slot()
4696 pivots = ma_pivots(node, type); in mas_next_slot()
4740 type = mte_node_type(mas->node); in mas_next_slot()
4741 pivots = ma_pivots(node, type); in mas_next_slot()
4745 slots = ma_slots(node, type); in mas_next_slot()
4779 enum maple_type type = mte_node_type(mas->node); in mas_rev_awalk() local
4790 if (ma_is_dense(type)) { in mas_rev_awalk()
4796 pivots = ma_pivots(node, type); in mas_rev_awalk()
4797 slots = ma_slots(node, type); in mas_rev_awalk()
4798 gaps = ma_gaps(node, type); in mas_rev_awalk()
4805 max = mas_safe_pivot(mas, pivots, offset, type); in mas_rev_awalk()
4840 if (unlikely(ma_is_leaf(type))) { in mas_rev_awalk()
4865 enum maple_type type = mte_node_type(mas->node); in mas_anode_descend() local
4873 if (ma_is_dense(type)) { in mas_anode_descend()
4879 pivots = ma_pivots(node, type); in mas_anode_descend()
4880 slots = ma_slots(node, type); in mas_anode_descend()
4881 gaps = ma_gaps(node, type); in mas_anode_descend()
4884 data_end = ma_data_end(node, type, pivots, mas->max); in mas_anode_descend()
4886 pivot = mas_safe_pivot(mas, pivots, offset, type); in mas_anode_descend()
4900 if (ma_is_leaf(type)) { in mas_anode_descend()
5196 enum maple_type type; in mte_dead_leaves() local
5202 type = mte_node_type(entry); in mte_dead_leaves()
5205 if (!node || !type) in mte_dead_leaves()
5209 node->type = type; in mte_dead_leaves()
5232 slots = ma_slots(node, node->type); in mte_dead_walk()
5236 } while (!ma_is_leaf(next->type)); in mte_dead_walk()
5253 enum maple_type type; in mt_free_walk() local
5257 if (ma_is_leaf(node->type)) in mt_free_walk()
5261 enode = mt_mk_node(node, node->type); in mt_free_walk()
5271 type = mte_node_type(enode); in mt_free_walk()
5272 slots = ma_slots(mte_to_node(enode), type); in mt_free_walk()
5273 if ((offset < mt_slots[type]) && in mt_free_walk()
5280 slots = ma_slots(node, node->type); in mt_free_walk()
5293 enum maple_type type; in mte_destroy_descend() local
5299 type = mte_node_type(*enode); in mte_destroy_descend()
5300 slots = ma_slots(node, type); in mte_destroy_descend()
5306 node->type = type; in mte_destroy_descend()
5326 node->type = mte_node_type(enode); in mt_destroy_walk()
5334 enum maple_type type; in mt_destroy_walk() local
5346 type = mte_node_type(enode); in mt_destroy_walk()
5347 slots = ma_slots(mte_to_node(enode), type); in mt_destroy_walk()
5348 if (offset >= mt_slots[type]) in mt_destroy_walk()
5370 mt_clear_meta(mt, node, node->type); in mt_destroy_walk()
6610 enum maple_type type; in mas_dup_free() local
6631 type = mte_node_type(mas->node); in mas_dup_free()
6632 slots = ma_slots(node, type); in mas_dup_free()
6680 enum maple_type type; in mas_dup_alloc() local
6687 type = mte_node_type(mas->node); in mas_dup_alloc()
6688 new_slots = ma_slots(new_node, type); in mas_dup_alloc()
6698 slots = ma_slots(node, type); in mas_dup_alloc()
6725 enum maple_type type; in mas_dup_build() local
6744 type = mte_node_type(mas->node); in mas_dup_build()
6745 root = mt_mk_node(node, type); in mas_dup_build()
7257 unsigned int type = mte_node_type(entry); in mt_dump_node() local
7263 depth, type, node ? node->parent : NULL); in mt_dump_node()
7264 switch (type) { in mt_dump_node()
7434 enum maple_type type = mte_node_type(mas->node); in mas_validate_child_slot() local
7435 void __rcu **slots = ma_slots(mte_to_node(mas->node), type); in mas_validate_child_slot()
7436 unsigned long *pivots = ma_pivots(mte_to_node(mas->node), type); in mas_validate_child_slot()
7443 for (i = 0; i < mt_slots[type]; i++) { in mas_validate_child_slot()
7466 if (i < mt_pivots[type] && pivots[i] == mas->max) in mas_validate_child_slot()
7480 enum maple_type type = mte_node_type(mas->node); in mas_validate_limits() local
7481 void __rcu **slots = ma_slots(mte_to_node(mas->node), type); in mas_validate_limits()
7482 unsigned long *pivots = ma_pivots(mas_mn(mas), type); in mas_validate_limits()
7484 for (i = 0; i < mt_slots[type]; i++) { in mas_validate_limits()
7487 piv = mas_safe_pivot(mas, pivots, i, type); in mas_validate_limits()
7522 for (i += 1; i < mt_slots[type]; i++) { in mas_validate_limits()
7525 if (entry && (i != mt_slots[type] - 1)) { in mas_validate_limits()
7531 if (i < mt_pivots[type]) { in mas_validate_limits()
7539 MAS_WARN_ON(mas, i < mt_pivots[type] - 1); in mas_validate_limits()
7698 wr_mas->type, wr_mas->offset_end, wr_mas->mas->end, in mas_wr_dump()