Lines Matching refs:rl

602 static void rl_set(runlist *rl, VCN vcn, LCN lcn, s64 len)
604 rl->vcn = vcn;
605 rl->lcn = lcn;
606 rl->length = len;
609 static int rl_items(runlist *rl)
613 while (rl[i++].length)
626 static void dump_runlist(runlist *rl)
628 while (rl->length)
629 dump_run(rl++);
648 static void collect_resize_constraints(ntfs_resize_t *resize, runlist *rl)
656 last_lcn = rl->lcn + (rl->length - 1);
680 if (atype != AT_DATA || rl->vcn)
703 if (rl[1].length != 0 || rl->vcn)
723 static void collect_relocation_info(ntfs_resize_t *resize, runlist *rl)
728 lcn = rl->lcn;
729 lcn_length = rl->length;
778 runlist *rl;
788 if (!(rl = ntfs_mapping_pairs_decompress(vol, a, NULL))) {
797 for (i = 0; rl[i].length; i++) {
798 s64 lcn = rl[i].lcn;
799 s64 lcn_length = rl[i].length;
838 free(rl);
1049 runlist *rl;
1054 if (!(rl = ntfs_mapping_pairs_decompress(resize->vol,
1058 for (i = 0; rl[i].length; i++) {
1060 if (rl[i].lcn == LCN_HOLE || rl[i].lcn == LCN_RL_NOT_MAPPED)
1063 collect_resize_constraints(resize, rl + i);
1065 collect_relocation_info(resize, rl + i);
1067 free(rl);
1114 static void rl_fixup(runlist **rl)
1116 runlist *tmp = *rl;
1125 (*rl)++;
1126 for (tmp = *rl; tmp->length; tmp++)
1130 for (tmp = *rl; tmp->length; tmp++) {
1145 runlist *rl)
1151 rl_fixup(&rl);
1153 if ((mp_size = ntfs_get_size_for_mapping_pairs(vol, rl, 0)) == -1)
1215 if (ntfs_mapping_pairs_build(vol, mp, mp_size, rl, 0, NULL))
1229 static void set_bitmap_clusters(struct bitmap *bm, runlist *rl, u8 bit)
1231 for (; rl->length; rl++)
1232 set_bitmap_range(bm, rl->lcn, rl->length, bit);
1235 static void release_bitmap_clusters(struct bitmap *bm, runlist *rl)
1238 set_bitmap_clusters(bm, rl, 0);
1312 runlist *rl = NULL;
1330 if (!(rl = (runlist *)realloc(rl, rl_size)))
1333 rl_set(rl + runs, vcn, rle.lcn, rle.length);
1340 rl_set(rl + runs, vcn, -1LL, 0LL);
1344 dump_runlist(rl);
1346 return rl;
1464 static void rl_split_run(runlist **rl, int run, s64 pos)
1470 items = rl_items(*rl);
1480 rle = *rl + run;
1482 memmove(rl_new, *rl, size_head);
1494 free(*rl);
1495 *rl = rl_new;
1498 static void rl_insert_at_run(runlist **rl, int run, runlist *ins)
1505 items = rl_items(*rl);
1510 if (!(*rl = (runlist *)realloc(*rl, new_size)))
1513 rle = *rl + run;
1525 // (*rl + run)->lcn = ins->lcn;
1528 static void relocate_run(ntfs_resize_t *resize, runlist **rl, int run)
1535 lcn = (*rl + run)->lcn;
1536 lcn_length = (*rl + run)->length;
1543 rl_split_run(rl, run, new_vol_size);
1558 (unsigned long long)(*rl + run)->vcn,
1563 rl_insert_at_run(rl, run, relocate_rl);
1575 runlist *rl;
1583 if (!(rl = ntfs_mapping_pairs_decompress(resize->vol, a, NULL)))
1586 for (i = 0; rl[i].length; i++) {
1587 s64 lcn = rl[i].lcn;
1588 s64 lcn_length = rl[i].length;
1600 relocate_run(resize, &rl, i);
1604 replace_attribute_runlist(resize->vol, resize->ctx, rl);
1608 free(rl);
1793 static void rl_expand(runlist **rl, const VCN last_vcn)
1796 runlist *p = *rl;
1813 p = realloc(*rl, (++len + 1) * sizeof(runlist_element));
1820 *rl = p;
1826 static void rl_truncate(runlist **rl, const VCN last_vcn)
1831 len = rl_items(*rl) - 1;
1835 vcn = (*rl)[len].vcn;
1838 rl_expand(rl, last_vcn);
1841 if (ntfs_rl_truncate(rl, last_vcn) == -1)
1898 runlist **rl,
1907 if (!(*rl = ntfs_mapping_pairs_decompress(vol, a, NULL)))
1910 release_bitmap_clusters(bm, *rl);
1911 free(*rl);
1916 if (!(*rl = alloc_cluster(bm, nr_bm_clusters, new_size, 0)))
1938 runlist *rl;
1952 realloc_bitmap_data_attr(resize, &rl, nr_bm_clusters);
1956 realloc_bitmap_data_attr(resize, &rl, nr_bm_clusters);
1964 replace_attribute_runlist(vol, resize->ctx, rl);
1971 size = ntfs_rl_pwrite(vol, rl, 0, bm_bsize, resize->lcn_bitmap.bm);
1979 free(rl);
2018 runlist *rl;
2043 if (!(rl = ntfs_mapping_pairs_decompress(vol, ctx->attr, NULL)))
2046 for (i = 0; rl[i].length; i++) {
2048 if (rl[i].lcn == LCN_HOLE || rl[i].lcn == LCN_RL_NOT_MAPPED)
2051 badclusters += rl[i].length;
2053 rl[i].lcn, rl[i].lcn + rl[i].length - 1,
2054 rl[i].length);
2070 free(rl);