Lines Matching refs:split
1803 static inline bool mab_middle_node(struct maple_big_node *b_node, int split, in mab_middle_node() argument
1811 if (!b_node->slot[split] && (size >= 2 * slot_count - 1)) in mab_middle_node()
1826 unsigned char split, unsigned char slot_count) in mab_no_null_split() argument
1828 if (!b_node->slot[split]) { in mab_no_null_split()
1833 if ((split < slot_count - 1) && in mab_no_null_split()
1834 (b_node->b_end - split) > (mt_min_slots[b_node->type])) in mab_no_null_split()
1835 split++; in mab_no_null_split()
1837 split--; in mab_no_null_split()
1839 return split; in mab_no_null_split()
1855 int split = b_end / 2; /* Assume equal split. */ in mab_calc_split() local
1866 split = b_end - mt_min_slots[bn->type]; in mab_calc_split()
1869 return split; in mab_calc_split()
1872 if (!bn->slot[split]) in mab_calc_split()
1873 split--; in mab_calc_split()
1874 return split; in mab_calc_split()
1885 if (unlikely(mab_middle_node(bn, split, slot_count))) { in mab_calc_split()
1886 split = b_end / 3; in mab_calc_split()
1887 *mid_split = split * 2; in mab_calc_split()
1893 split = mab_no_null_split(bn, split, slot_count); in mab_calc_split()
1898 return split; in mab_calc_split()
2360 unsigned char split = 0; in mas_mab_to_node() local
2369 split = b_node->b_end; in mas_mab_to_node()
2371 split = mab_calc_split(mas, b_node, mid_split); in mas_mab_to_node()
2378 return split; in mas_mab_to_node()
2415 unsigned char *slot, unsigned char split) in mas_set_split_parent() argument
2420 if ((*slot) <= split) in mas_set_split_parent()
2423 mas_set_parent(mas, mas->node, right, (*slot) - split - 1); in mas_set_split_parent()
2441 unsigned char *split, in mte_mid_split_check() argument
2452 *split = mid_split; in mte_mid_split_check()
2467 unsigned char split, in mast_set_split_parents() argument
2482 mte_mid_split_check(&l, &r, right, slot, &split, mid_split); in mast_set_split_parents()
2483 mas_set_split_parent(mast->l, l, r, &slot, split); in mast_set_split_parents()
2485 mte_mid_split_check(&l, &r, right, slot, &split, mid_split); in mast_set_split_parents()
2486 mas_set_split_parent(mast->m, l, r, &slot, split); in mast_set_split_parents()
2488 mte_mid_split_check(&l, &r, right, slot, &split, mid_split); in mast_set_split_parents()
2489 mas_set_split_parent(mast->r, l, r, &slot, split); in mast_set_split_parents()
2653 struct maple_enode *right, unsigned char split, unsigned char mid_split) in mast_cp_to_nodes() argument
2662 if (split == mast->bn->b_end) { in mast_cp_to_nodes()
2667 mab_mas_cp(mast->bn, 0, split, mast->l, new_lmax); in mast_cp_to_nodes()
2670 mab_mas_cp(mast->bn, 1 + split, mid_split, mast->m, true); in mast_cp_to_nodes()
2671 mast->m->min = mast->bn->pivot[split] + 1; in mast_cp_to_nodes()
2672 split = mid_split; in mast_cp_to_nodes()
2677 mab_mas_cp(mast->bn, 1 + split, mast->bn->b_end, mast->r, false); in mast_cp_to_nodes()
2678 mast->r->min = mast->bn->pivot[split] + 1; in mast_cp_to_nodes()
2818 unsigned char split, mid_split; in mas_spanning_rebalance() local
2857 split = mas_mab_to_node(mas, mast->bn, &left, &right, &middle, in mas_spanning_rebalance()
2859 mast_set_split_parents(mast, left, middle, right, split, in mas_spanning_rebalance()
2861 mast_cp_to_nodes(mast, left, middle, right, split, mid_split); in mas_spanning_rebalance()
3001 unsigned char offset, tmp, split = mt_slots[mt] / 2; in mas_destroy_rebalance() local
3025 if (!l_slots[split]) in mas_destroy_rebalance()
3026 split++; in mas_destroy_rebalance()
3027 tmp = mas_data_end(&l_mas) - split; in mas_destroy_rebalance()
3029 memcpy(slots, l_slots + split + 1, sizeof(void *) * tmp); in mas_destroy_rebalance()
3030 memcpy(pivs, l_pivs + split + 1, sizeof(unsigned long) * tmp); in mas_destroy_rebalance()
3035 l_mas.max = l_pivs[split]; in mas_destroy_rebalance()
3054 l_pivs[split]); in mas_destroy_rebalance()
3057 tmp = split + 1; in mas_destroy_rebalance()
3060 ma_set_meta(left, mt, 0, split); in mas_destroy_rebalance()
3075 memcpy(slots, l_slots, sizeof(void *) * split); in mas_destroy_rebalance()
3076 memcpy(pivs, l_pivs, sizeof(unsigned long) * split); in mas_destroy_rebalance()
3077 ma_set_meta(new_left, mt, 0, split); in mas_destroy_rebalance()
3149 unsigned char split; in mast_fill_bnode() local
3166 split = mast->bn->b_end; in mast_fill_bnode()
3174 mas_mab_cp(mas, split + skip, mt_slot_count(mas->node) - 1, in mast_fill_bnode()
3189 struct ma_state *mas, unsigned char split) in mast_split_data() argument
3193 mab_mas_cp(mast->bn, 0, split, mast->l, true); in mast_split_data()
3195 mab_mas_cp(mast->bn, split + 1, mast->bn->b_end, mast->r, false); in mast_split_data()
3197 mast->l->max = mast->bn->pivot[split]; in mast_split_data()
3204 &p_slot, split); in mast_split_data()
3206 &p_slot, split); in mast_split_data()
3225 unsigned char end, space, split; in mas_push_data() local
3260 split = mt_slots[mast->bn->type] - 2; in mas_push_data()
3270 split = slot_total - split; in mas_push_data()
3272 split = mab_no_null_split(mast->bn, split, mt_slots[mast->bn->type]); in mas_push_data()
3277 mast_split_data(mast, mas, split); in mas_push_data()
3292 unsigned char mid_split, split = 0; in mas_split() local
3349 split = mab_calc_split(mas, b_node, &mid_split); in mas_split()
3350 mast_split_data(&mast, mas, split); in mas_split()