Lines Matching full:vn

54 	struct virtual_node *vn = tb->tb_vn;  in create_virtual_node()  local
61 vn->vn_size = in create_virtual_node()
66 vn->vn_nr_item = (vn->vn_size - DC_SIZE) / (DC_SIZE + KEY_SIZE); in create_virtual_node()
71 vn->vn_nr_item = in create_virtual_node()
72 B_NR_ITEMS(Sh) + ((vn->vn_mode == M_INSERT) ? 1 : 0) - in create_virtual_node()
73 ((vn->vn_mode == M_DELETE) ? 1 : 0); in create_virtual_node()
76 vn->vn_vi = (struct virtual_item *)(tb->tb_vn + 1); in create_virtual_node()
77 memset(vn->vn_vi, 0, vn->vn_nr_item * sizeof(struct virtual_item)); in create_virtual_node()
78 vn->vn_free_ptr += vn->vn_nr_item * sizeof(struct virtual_item); in create_virtual_node()
85 && (vn->vn_mode != M_DELETE || vn->vn_affected_item_num)) in create_virtual_node()
86 vn->vn_vi[0].vi_type |= VI_TYPE_LEFT_MERGEABLE; in create_virtual_node()
92 for (new_num = 0; new_num < vn->vn_nr_item; new_num++) { in create_virtual_node()
94 struct virtual_item *vi = vn->vn_vi + new_num; in create_virtual_node()
96 ((new_num != vn->vn_affected_item_num) ? 0 : 1); in create_virtual_node()
98 if (is_affected && vn->vn_mode == M_INSERT) in create_virtual_node()
102 j = old_item_num(new_num, vn->vn_affected_item_num, in create_virtual_node()
103 vn->vn_mode); in create_virtual_node()
108 vi->vi_uarea = vn->vn_free_ptr; in create_virtual_node()
114 vn->vn_free_ptr += in create_virtual_node()
115 op_create_vi(vn, vi, is_affected, tb->insert_size[0]); in create_virtual_node()
116 if (tb->vn_buf + tb->vn_buf_size < vn->vn_free_ptr) in create_virtual_node()
124 if (vn->vn_mode == M_PASTE || vn->vn_mode == M_CUT) { in create_virtual_node()
125 vn->vn_vi[new_num].vi_item_len += tb->insert_size[0]; in create_virtual_node()
127 vi->vi_new_data = vn->vn_data; in create_virtual_node()
132 if (vn->vn_mode == M_INSERT) { in create_virtual_node()
133 struct virtual_item *vi = vn->vn_vi + vn->vn_affected_item_num; in create_virtual_node()
135 RFALSE(vn->vn_ins_ih == NULL, in create_virtual_node()
138 vi->vi_ih = vn->vn_ins_ih; in create_virtual_node()
139 vi->vi_item = vn->vn_data; in create_virtual_node()
140 vi->vi_uarea = vn->vn_free_ptr; in create_virtual_node()
142 op_create_vi(vn, vi, 0 /*not pasted or cut */ , in create_virtual_node()
155 && (vn->vn_mode != M_DELETE in create_virtual_node()
156 || vn->vn_affected_item_num != B_NR_ITEMS(Sh) - 1)) in create_virtual_node()
157 vn->vn_vi[vn->vn_nr_item - 1].vi_type |= in create_virtual_node()
162 !(vn->vn_mode != M_DELETE in create_virtual_node()
163 || vn->vn_affected_item_num != B_NR_ITEMS(Sh) - 1)) { in create_virtual_node()
181 key, vn->vn_affected_item_num, in create_virtual_node()
182 vn->vn_mode, M_DELETE); in create_virtual_node()
197 struct virtual_node *vn = tb->tb_vn; in check_left() local
211 if (!cur_free || !vn->vn_nr_item) { in check_left()
221 vi = vn->vn_vi; in check_left()
223 (vn->vn_size - in check_left()
227 RFALSE(vn->vn_mode == M_INSERT || vn->vn_mode == M_PASTE, in check_left()
230 tb->lnum[0] = vn->vn_nr_item; in check_left()
242 for (i = 0; i < vn->vn_nr_item; in check_left()
283 struct virtual_node *vn = tb->tb_vn; in check_right() local
297 if (!cur_free || !vn->vn_nr_item) { in check_right()
307 vi = vn->vn_vi + vn->vn_nr_item - 1; in check_right()
309 (vn->vn_size - in check_right()
313 RFALSE(vn->vn_mode == M_INSERT || vn->vn_mode == M_PASTE, in check_right()
316 tb->rnum[h] = vn->vn_nr_item; in check_right()
328 for (i = vn->vn_nr_item - 1; i >= 0; in check_right()
380 struct virtual_node *vn = tb->tb_vn; in get_num_ver() local
447 end_item = vn->vn_nr_item - to - 1; in get_num_ver()
458 struct virtual_item *vi = vn->vn_vi + i; in get_num_ver()
566 op_unit_num(&vn->vn_vi[split_item_num]) - snum012[4] - in get_num_ver()
569 if (vn->vn_vi[split_item_num].vi_index != TYPE_DIRENTRY && in get_num_ver()
570 vn->vn_vi[split_item_num].vi_index != TYPE_INDIRECT) in get_num_ver()
594 op_unit_num(&vn->vn_vi[split_item_num]) - snum012[3] - in get_num_ver()
654 struct virtual_node *vn = tb->tb_vn; in is_leaf_removable() local
665 remain_items = vn->vn_nr_item; in is_leaf_removable()
672 set_parameters(tb, 0, to_left, vn->vn_nr_item - to_left, 0, in is_leaf_removable()
684 size = op_unit_num(&vn->vn_vi[to_left]); in is_leaf_removable()
698 struct virtual_node *vn = tb->tb_vn; in are_leaves_removable() local
705 if (vn->vn_nr_item) { in are_leaves_removable()
706 if (vn->vn_vi[0].vi_type & VI_TYPE_LEFT_MERGEABLE) in are_leaves_removable()
709 if (vn->vn_vi[vn->vn_nr_item - 1]. in are_leaves_removable()
748 if (MAX_CHILD_SIZE(S0) + vn->vn_size <= rfree + lfree + ih_size) { in are_leaves_removable()
763 to_l = (MAX_NR_KEY(Sh)+1 - lpar + vn->vn_nr_item + 1) / 2 -\
783 to_r = (MAX_NR_KEY(Sh)+1 - rpar + vn->vn_nr_item + 1) / 2 - (MAX_NR_KEY(Sh) + 1 - rpar);\
1326 struct virtual_node *vn = tb->tb_vn; in ip_check_balance() local
1408 if (can_node_be_removed(vn->vn_mode, lfree, sfree, rfree, tb, h) == in ip_check_balance()
1434 if (h && (tb->rnum[h] + tb->lnum[h] >= vn->vn_nr_item + 1)) { in ip_check_balance()
1447 vn->vn_nr_item + 1) / 2 - (MAX_NR_KEY(Sh) + 1 - in ip_check_balance()
1449 set_parameters(tb, h, vn->vn_nr_item + 1 - to_r, to_r, 0, NULL, in ip_check_balance()
1459 (tb->lnum[h] >= vn->vn_nr_item + 1 || in ip_check_balance()
1460 tb->rnum[h] >= vn->vn_nr_item + 1), in ip_check_balance()
1462 RFALSE(!h && ((tb->lnum[h] >= vn->vn_nr_item && (tb->lbytes == -1)) || in ip_check_balance()
1463 (tb->rnum[h] >= vn->vn_nr_item && (tb->rbytes == -1))), in ip_check_balance()
1483 tb->s0num = vn->vn_nr_item; in ip_check_balance()
1523 nver = get_num_ver(vn->vn_mode, tb, h, in ip_check_balance()
1524 0, -1, h ? vn->vn_nr_item : 0, -1, in ip_check_balance()
1534 nver1 = get_num_ver(vn->vn_mode, tb, h, in ip_check_balance()
1550 lnver = get_num_ver(vn->vn_mode, tb, h, in ip_check_balance()
1552 -1, h ? vn->vn_nr_item : 0, -1, in ip_check_balance()
1557 lnver1 = get_num_ver(vn->vn_mode, tb, h, in ip_check_balance()
1575 rnver = get_num_ver(vn->vn_mode, tb, h, in ip_check_balance()
1577 h ? (vn->vn_nr_item - rpar) : (rpar - in ip_check_balance()
1586 rnver1 = get_num_ver(vn->vn_mode, tb, h, in ip_check_balance()
1605 lrnver = get_num_ver(vn->vn_mode, tb, h, in ip_check_balance()
1608 h ? (vn->vn_nr_item - rpar) : (rpar - in ip_check_balance()
1617 lrnver1 = get_num_ver(vn->vn_mode, tb, h, in ip_check_balance()
1728 struct virtual_node *vn = tb->tb_vn; in dc_check_balance_internal() local
1751 if (vn->vn_nr_item > 0) { in dc_check_balance_internal()
1779 if (vn->vn_nr_item >= MIN_NR_KEY(Sh)) { in dc_check_balance_internal()
1784 if (vn->vn_nr_item == MIN_NR_KEY(Sh)) { in dc_check_balance_internal()
1786 if (tb->lnum[h] >= vn->vn_nr_item + 1) { in dc_check_balance_internal()
1803 if (tb->rnum[h] >= vn->vn_nr_item + 1) { in dc_check_balance_internal()
1824 if (tb->rnum[h] + tb->lnum[h] >= vn->vn_nr_item + 1) { in dc_check_balance_internal()
1829 tb->rnum[h] + vn->vn_nr_item + 1) / 2 - in dc_check_balance_internal()
1831 set_parameters(tb, h, vn->vn_nr_item + 1 - to_r, to_r, in dc_check_balance_internal()
1846 if (tb->lnum[h] >= vn->vn_nr_item + 1) in dc_check_balance_internal()
1848 || tb->rnum[h] < vn->vn_nr_item + 1 || !tb->FR[h]) { in dc_check_balance_internal()
1864 if (tb->rnum[h] >= vn->vn_nr_item + 1) { in dc_check_balance_internal()
1879 if (tb->rnum[h] + tb->lnum[h] >= vn->vn_nr_item + 1) { in dc_check_balance_internal()
1884 vn->vn_nr_item + 1) / 2 - (MAX_NR_KEY(Sh) + 1 - in dc_check_balance_internal()
1886 set_parameters(tb, h, vn->vn_nr_item + 1 - to_r, to_r, 0, NULL, in dc_check_balance_internal()
1899 (MAX_NR_KEY(Sh) + 1 - tb->lnum[h] + vn->vn_nr_item + in dc_check_balance_internal()
1900 1) / 2 - (vn->vn_nr_item + 1); in dc_check_balance_internal()
1906 -((MAX_NR_KEY(Sh) + 1 - tb->rnum[h] + vn->vn_nr_item + in dc_check_balance_internal()
1907 1) / 2 - (vn->vn_nr_item + 1)), 1, NULL, -1, -1); in dc_check_balance_internal()
1927 struct virtual_node *vn = tb->tb_vn; in dc_check_balance_leaf() local
1986 if (tb->lnum[0] >= vn->vn_nr_item && tb->lbytes == -1) in dc_check_balance_leaf()
1987 …if (is_left_neighbor_in_cache(tb, h) || ((tb->rnum[0] - ((tb->rbytes == -1) ? 0 : 1)) < vn->vn_nr_… in dc_check_balance_leaf()
1999 if (tb->rnum[0] >= vn->vn_nr_item && tb->rbytes == -1) { in dc_check_balance_leaf()
2012 tb->s0num = vn->vn_nr_item; in dc_check_balance_leaf()
2068 struct virtual_node *vn; in check_balance() local
2070 vn = tb->tb_vn = (struct virtual_node *)(tb->vn_buf); in check_balance()
2071 vn->vn_free_ptr = (char *)(tb->tb_vn + 1); in check_balance()
2072 vn->vn_mode = mode; in check_balance()
2073 vn->vn_affected_item_num = inum; in check_balance()
2074 vn->vn_pos_in_item = pos_in_item; in check_balance()
2075 vn->vn_ins_ih = ins_ih; in check_balance()
2076 vn->vn_data = data; in check_balance()
2078 RFALSE(mode == M_INSERT && !vn->vn_ins_ih, in check_balance()