Lines Matching defs:dscr
219 static int udf_quick_check_fids(struct udf_fsck_node *node, union dscrptr *dscr);
613 union dscrptr *dscr;
638 dscr = (union dscrptr *) (context.part_unalloc_bits[partnr]);
640 bpos = &dscr->sbd.data[cnt / 8];
1371 union dscrptr *dscr;
1404 dscr = NULL;
1410 free(dscr);
1411 error = udf_read_dscr_phys(lbnum, &dscr);
1417 if (dscr == NULL) {
1423 if (udf_rw16(dscr->tag.id) == TAGID_TERM) {
1428 if (udf_rw16(dscr->tag.id) != TAGID_LOGVOL_INTEGRITY) {
1432 lvint = &dscr->lvid;
1470 memcpy(wpos, dscr, sector_size);
1471 memcpy(context.logvol_integrity, dscr, sector_size);
1480 free(dscr);
1631 union dscrptr *dscr;
1655 error = udf_read_dscr_virt(bitmap_lb, cnt, &dscr);
1658 if (!dscr) {
1662 tagid = udf_rw16(dscr->tag.id);
1666 free(dscr);
1670 if (udf_tagsize(dscr, context.sector_size) > bitmap_len) {
1673 udf_tagsize(dscr, context.sector_size),
1676 context.part_unalloc_bits[cnt] = &dscr->sbd;
1739 udf_file_mtime(union dscrptr *dscr)
1741 int tag_id = udf_rw16(dscr->tag.id);
1745 return &dscr->fe.mtime;
1747 return &dscr->efe.mtime;
1753 udf_print_vat_details(union dscrptr *dscr)
1757 udf_file_mtime(dscr), "\n");
1762 udf_check_for_vat(union dscrptr *dscr)
1768 tag_id = udf_rw16(dscr->tag.id);
1774 vat_length = udf_rw64(dscr->fe.inf_len);
1775 icbtag = &dscr->fe.icbtag;
1777 vat_length = udf_rw64(dscr->efe.inf_len);
1778 icbtag = &dscr->efe.icbtag;
1792 udf_extract_vat(union dscrptr *dscr, uint8_t **vat_contents)
1816 error = udf_readin_file(dscr, context.data_part, vat_contents, &stats);
1823 tag_id = udf_rw16(dscr->tag.id);
1825 vat_length = udf_rw64(dscr->fe.inf_len);
1826 icbtag = &dscr->fe.icbtag;
1827 mtime = &dscr->fe.mtime;
1828 vat_unique_id = udf_rw64(dscr->fe.unique_id);
1829 ea_start = dscr->fe.data;
1831 vat_length = udf_rw64(dscr->efe.inf_len);
1832 icbtag = &dscr->efe.icbtag;
1833 mtime = &dscr->efe.mtime;
1834 vat_unique_id = udf_rw64(dscr->efe.unique_id);
1835 ea_start = dscr->efe.data; /* for completion */
1873 error = udf_extattr_search_intern(dscr, 2048, extstr, &offset, &a_l);
1960 if (!is_zero(&dscr->efe.streamdir_icb, sizeof(struct long_ad))) {
1965 if (!is_zero(&dscr->efe.ex_attr_icb, sizeof(struct long_ad))) {
1970 if (dscr->efe.obj_size != dscr->efe.inf_len) {
2204 union dscrptr *dscr;
2211 error = udf_read_dscr_phys(lb_num, &dscr);
2214 if (!error && dscr) {
2215 if (udf_rw16(dscr->tag.id) == TAGID_SPARING_TABLE) {
2217 context.sparing_table = &dscr->spt;
2218 dscr = NULL;
2222 free(dscr);
2387 union dscrptr *dscr;
2636 udf_rw16(fsd_loc.loc.part_num), &dscr);
2642 if (udf_rw16(dscr->tag.id) != TAGID_FSD) {
2649 context.fileset_desc = &dscr->fsd;
2656 #define UDF_UPDATE_DSCR(name, dscr) \
2662 memcpy(name, dscr, dscr_size);
2665 udf_process_vds_descriptor(union dscrptr *dscr, int dscr_size) {
2671 switch (udf_rw16(dscr->tag.id)) {
2673 UDF_UPDATE_DSCR(context.primary_vol, dscr);
2690 UDF_UPDATE_DSCR(context.logical_vol, dscr);
2702 UDF_UPDATE_DSCR(context.unallocated, dscr);
2705 UDF_UPDATE_DSCR(context.implementation, dscr);
2709 if ((udf_rw16(dscr->pd.flags) & UDF_PART_FLAG_ALLOCATED) == 0) {
2713 raw_phys_part = udf_rw16(dscr->pd.part_num);
2720 UDF_UPDATE_DSCR(context.partitions[phys_part], dscr);
2729 udf_rw16(dscr->tag.id));
2735 udf_read_vds_extent(union dscrptr *dscr, int vds_size) {
2740 pos = (uint8_t *) dscr;
2743 dscr = (union dscrptr *) pos;
2746 if (is_zero(dscr, sector_size))
2750 if (udf_rw16(dscr->tag.id) == TAGID_TERM)
2753 if (udf_check_tag(dscr))
2756 dscr_size = udf_tagsize(dscr, sector_size);
2757 if (udf_check_tag_payload(dscr, dscr_size))
2760 udf_process_vds_descriptor(dscr, dscr_size);
2854 union dscrptr *zero_dscr, *dscr;
2938 dscr = (union dscrptr *) context.anchors[0];
2940 if ((error = udf_write_dscr_phys(dscr, loc, 1))) {
3156 udf_quick_check_fids(struct udf_fsck_node *node, union dscrptr *dscr)
3163 error = udf_process_file(dscr, context.fids_part,
3185 udf_extract_node_info(struct udf_fsck_node *node, union dscrptr *dscr,
3193 if (udf_rw16(dscr->tag.id) == TAGID_FENTRY) {
3194 fe = (struct file_entry *) dscr;
3206 if (udf_rw16(dscr->tag.id) == TAGID_EXTFENTRY) {
3207 efe = (struct extfile_entry *) dscr;
3241 error = udf_process_file(dscr, udf_rw16(node->loc.loc.part_num), NULL,
3255 free(dscr);
3262 error = udf_readin_file(dscr, udf_rw16(node->loc.loc.part_num),
3266 //if (dscr->efe.unique_id == 109) node->directory[125] = 0xff;
3267 //if (dscr->efe.unique_id == 310) memset(node->directory+1024, 0, 300);
3280 error = udf_quick_check_fids(node, dscr);
3300 udf_fixup_lengths_pass1(struct udf_fsck_node *node, union dscrptr *dscr)
3338 if (udf_rw16(dscr->tag.desc_crc_len) !=
3339 udf_tagsize(dscr, 1) - sizeof(struct desc_tag)) {
3342 udf_node_path(node), udf_rw16(dscr->tag.desc_crc_len),
3343 udf_tagsize(dscr, 1) - sizeof(struct desc_tag));
3439 udf_process_node_pass1(struct udf_fsck_node *node, union dscrptr *dscr)
3462 udf_fixup_lengths_pass1(node, dscr);
3539 error = udf_process_file(dscr, udf_rw16(node->loc.loc.part_num), NULL,
3547 error = udf_process_file(dscr, udf_rw16(node->loc.loc.part_num), NULL,
3560 udf_node_pass3_repairdir(struct udf_fsck_node *node, union dscrptr *dscr)
3650 error = udf_process_file(dscr, context.fids_part,
3661 udf_node_pass3_writeout_update(struct udf_fsck_node *node, union dscrptr *dscr)
3668 if (udf_rw16(dscr->tag.id) == TAGID_FENTRY) {
3669 fe = (struct file_entry *) dscr;
3675 if (udf_rw16(dscr->tag.id) == TAGID_EXTFENTRY) {
3676 efe = (struct extfile_entry *) dscr;
3682 /* streamdir directly cleared in dscr */
3686 crc_len = udf_tagsize(dscr, 1) - sizeof(struct desc_tag);
3687 dscr->tag.desc_crc_len = udf_rw16(crc_len);
3690 error = udf_write_dscr_virt(dscr, udf_rw32(node->loc.loc.lb_num),
3853 union dscrptr *dscr;
3900 error = udf_read_node_dscr(cur_node, &dscr);
3902 error = udf_extract_node_info(cur_node, dscr, 0);
3917 free(dscr);
3941 error = udf_process_node_pass1(cur_node, dscr);
3942 free(dscr);
3959 error = udf_read_node_dscr(cur_node, &dscr);
3968 dscr,
3975 free(dscr);
4131 error = udf_read_node_dscr(cur_node, &dscr);
4136 udf_node_pass3_repairdir(cur_node, dscr);
4140 assert(udf_rw16(dscr->tag.id) == TAGID_EXTFENTRY);
4141 bzero(&dscr->efe.streamdir_icb, sizeof(struct long_ad));
4146 udf_node_pass3_writeout_update(cur_node, dscr);
4147 free(dscr);