Lines Matching refs:vn

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