Lines Matching defs:diskStructure
205 cd9660_set_defaults(iso9660_disk *diskStructure)
208 diskStructure->sectorSize = 2048;
211 diskStructure->verbose_level = 0;
212 diskStructure->keep_bad_images = 0;
213 diskStructure->follow_sym_links = 0;
214 diskStructure->isoLevel = 2;
216 diskStructure->rock_ridge_enabled = 0;
217 diskStructure->rock_ridge_renamed_dir_name = 0;
218 diskStructure->rock_ridge_move_count = 0;
219 diskStructure->rr_moved_dir = 0;
221 diskStructure->archimedes_enabled = 0;
222 diskStructure->chrp_boot = 0;
224 diskStructure->include_padding_areas = 1;
227 diskStructure->allow_deep_trees =
228 diskStructure->allow_start_dot =
229 diskStructure->allow_max_name =
230 diskStructure->allow_illegal_chars =
231 diskStructure->allow_lowercase =
232 diskStructure->allow_multidot =
233 diskStructure->omit_trailing_period = 0;
236 memset(&diskStructure->primaryDescriptor, 0, 2048);
238 memset(diskStructure->primaryDescriptor.publisher_id, 0x20,128);
239 memset(diskStructure->primaryDescriptor.preparer_id, 0x20,128);
240 memset(diskStructure->primaryDescriptor.application_id, 0x20,128);
241 memset(diskStructure->primaryDescriptor.copyright_file_id, 0x20,37);
242 memset(diskStructure->primaryDescriptor.abstract_file_id, 0x20,37);
243 memset(diskStructure->primaryDescriptor.bibliographic_file_id, 0x20,37);
245 strcpy(diskStructure->primaryDescriptor.system_id,"NetBSD");
250 diskStructure->has_generic_bootimage = 0;
251 diskStructure->generic_bootimage = NULL;
253 diskStructure->boot_image_directory = 0;
254 /*memset(diskStructure->boot_descriptor, 0, 2048);*/
256 diskStructure->is_bootable = 0;
257 TAILQ_INIT(&diskStructure->boot_images);
258 LIST_INIT(&diskStructure->boot_entries);
264 iso9660_disk *diskStructure = ecalloc(1, sizeof(*diskStructure));
270 { letter, name, &diskStructure->field, \
271 sizeof(diskStructure->field) == 8 ? OPT_INT64 : \
272 (sizeof(diskStructure->field) == 4 ? OPT_INT32 : \
273 (sizeof(diskStructure->field) == 2 ? OPT_INT16 : OPT_INT8)), \
329 fsopts->fs_specific = diskStructure;
332 cd9660_set_defaults(diskStructure);
378 iso9660_disk *diskStructure = fsopts->fs_specific;
405 diskStructure->primaryDescriptor.volume_id);
409 diskStructure->primaryDescriptor.application_id);
413 diskStructure->primaryDescriptor.publisher_id);
417 diskStructure->primaryDescriptor.preparer_id);
421 diskStructure->primaryDescriptor.volume_set_id);
430 rv = cd9660_add_boot_disk(diskStructure, buf);
438 rv = cd9660_add_generic_bootimage(diskStructure, buf);
450 diskStructure->boot_image_directory =
454 'd', diskStructure->boot_image_directory);
460 cd9660_eltorito_add_boot_option(diskStructure, name, 0);
469 cd9660_eltorito_add_boot_option(diskStructure,
498 iso9660_disk *diskStructure = fsopts->fs_specific;
500 if (diskStructure->verbose_level > 0)
502 diskStructure->isoLevel);
503 if (diskStructure->isoLevel < 2 &&
504 diskStructure->allow_multidot)
511 if (diskStructure->displayHelp) {
519 if (diskStructure->verbose_level > 0)
538 diskStructure->rootNode = real_root;
542 cd9660_convert_structure(diskStructure, root, real_root, 1,
551 if (diskStructure->verbose_level > 0)
556 cd9660_add_dot_records(diskStructure, real_root);
558 cd9660_setup_root_node(diskStructure);
560 if (diskStructure->verbose_level > 0)
564 if (diskStructure->archimedes_enabled)
565 archimedes_convert_tree(diskStructure->rootNode);
568 if (diskStructure->rock_ridge_enabled) {
569 cd9660_susp_initialize(diskStructure, diskStructure->rootNode,
570 diskStructure->rootNode, NULL);
574 diskStructure->pathTableLength = cd9660_generate_path_table(
575 diskStructure);
577 pathTableSectors = CD9660_BLOCKS(diskStructure->sectorSize,
578 diskStructure->pathTableLength);
580 firstAvailableSector = cd9660_setup_volume_descriptors(diskStructure);
581 if (diskStructure->is_bootable) {
582 firstAvailableSector = cd9660_setup_boot(diskStructure,
588 diskStructure->primaryLittleEndianTableSector = firstAvailableSector;
589 diskStructure->primaryBigEndianTableSector =
590 diskStructure->primaryLittleEndianTableSector + pathTableSectors;
593 diskStructure->secondaryBigEndianTableSector = -1;
594 diskStructure->secondaryLittleEndianTableSector = -1;
596 diskStructure->dataFirstSector =
597 diskStructure->primaryBigEndianTableSector + pathTableSectors;
598 if (diskStructure->verbose_level > 0)
602 diskStructure->pathTableLength, pathTableSectors);
604 startoffset = diskStructure->sectorSize*diskStructure->dataFirstSector;
606 totalSpace = cd9660_compute_offsets(diskStructure, real_root, startoffset);
608 diskStructure->totalSectors = diskStructure->dataFirstSector +
609 CD9660_BLOCKS(diskStructure->sectorSize, totalSpace);
612 if (diskStructure->rock_ridge_enabled) {
613 diskStructure->susp_continuation_area_start_sector =
614 diskStructure->totalSectors;
615 diskStructure->totalSectors +=
616 CD9660_BLOCKS(diskStructure->sectorSize,
617 diskStructure->susp_continuation_area_size);
618 cd9660_susp_finalize(diskStructure, diskStructure->rootNode);
622 cd9660_finalize_PVD(diskStructure);
625 /* diskStructure->totalSectors+=150; */
628 if (diskStructure->verbose_level > 0) {
632 diskStructure->primaryLittleEndianTableSector);
634 PRId64 "\n", __func__, diskStructure->dataFirstSector);
636 PRId64 "\n", __func__, diskStructure->totalSectors);
643 if (diskStructure->include_padding_areas)
644 diskStructure->totalSectors += 150;
646 cd9660_write_image(diskStructure, image);
648 if (diskStructure->verbose_level > 1) {
649 debug_print_volume_descriptor_information(diskStructure);
650 debug_print_tree(diskStructure, real_root, 0);
657 if (diskStructure->verbose_level > 0)
665 cd9660_finalize_PVD(iso9660_disk *diskStructure)
670 memcpy(diskStructure->primaryDescriptor.root_directory_record,
671 diskStructure->rootNode->dot_record->isoDirRecord, 34);
674 diskStructure->primaryDescriptor.root_directory_record[0] = 34;
677 cd9660_bothendian_dword(diskStructure->totalSectors,
678 (unsigned char *)diskStructure->primaryDescriptor.volume_space_size);
680 (unsigned char *)diskStructure->primaryDescriptor.volume_set_size);
683 diskStructure->primaryDescriptor.volume_sequence_number);
684 cd9660_bothendian_word(diskStructure->sectorSize,
686 diskStructure->primaryDescriptor.logical_block_size);
687 cd9660_bothendian_dword(diskStructure->pathTableLength,
688 (unsigned char *)diskStructure->primaryDescriptor.path_table_size);
690 cd9660_731(diskStructure->primaryLittleEndianTableSector,
691 (u_char *)diskStructure->primaryDescriptor.type_l_path_table);
692 cd9660_732(diskStructure->primaryBigEndianTableSector,
693 (u_char *)diskStructure->primaryDescriptor.type_m_path_table);
695 diskStructure->primaryDescriptor.file_structure_version[0] = 1;
698 cd9660_pad_string_spaces(diskStructure->primaryDescriptor.volume_id, 32);
699 cd9660_pad_string_spaces(diskStructure->primaryDescriptor.system_id, 32);
700 cd9660_pad_string_spaces(diskStructure->primaryDescriptor.volume_set_id,
702 cd9660_pad_string_spaces(diskStructure->primaryDescriptor.publisher_id,
704 cd9660_pad_string_spaces(diskStructure->primaryDescriptor.preparer_id,
706 cd9660_pad_string_spaces(diskStructure->primaryDescriptor.application_id,
709 diskStructure->primaryDescriptor.copyright_file_id, 37);
711 diskStructure->primaryDescriptor.abstract_file_id, 37);
713 diskStructure->primaryDescriptor.bibliographic_file_id, 37);
717 (unsigned char *)diskStructure->primaryDescriptor.creation_date,
720 (unsigned char *)diskStructure->primaryDescriptor.modification_date,
724 cd9660_set_date(diskStructure->primaryDescriptor.expiration_date,
727 memset(diskStructure->primaryDescriptor.expiration_date, '0' ,16);
728 diskStructure->primaryDescriptor.expiration_date[16] = 0;
731 (unsigned char *)diskStructure->primaryDescriptor.effective_date,
758 cd9660_setup_root_node(iso9660_disk *diskStructure)
760 cd9660_populate_iso_dir_record(diskStructure->rootNode->isoDirRecord,
767 cd9660_setup_volume_descriptors(iso9660_disk *diskStructure)
777 (unsigned char *)&diskStructure->primaryDescriptor;
783 diskStructure->firstVolumeDescriptor = temp;
787 if (diskStructure->is_bootable) {
793 if (diskStructure->verbose_level > 0)
795 cd9660_setup_boot_volume_descriptor(diskStructure, t);
828 cd9660_translate_node_common(iso9660_disk *diskStructure, cd9660node *newnode)
836 (void)cd9660_convert_filename(diskStructure, newnode->node->name,
864 cd9660_translate_node(iso9660_disk *diskStructure, fsnode *node,
868 if (diskStructure->verbose_level > 0)
880 if (cd9660_translate_node_common(diskStructure, newnode) == 0)
1014 cd9660_handle_collisions(iso9660_disk *diskStructure, cd9660node *colliding,
1050 iter = cd9660_rename_filename(diskStructure, iter, skip,
1058 cd9660_rename_filename(iso9660_disk *diskStructure, cd9660node *iter, int num,
1067 if (diskStructure->verbose_level > 0)
1071 if (diskStructure->isoLevel == 1)
1073 else if (diskStructure->isoLevel == 2)
1126 if (diskStructure->isoLevel == 1) {
1182 cd9660_copy_filenames(iso9660_disk *diskStructure, cd9660node *node)
1190 debug_print_tree(diskStructure, diskStructure->rootNode, 0);
1195 cd9660_copy_filenames(diskStructure, cn);
1262 cd9660_rrip_move_directory(iso9660_disk *diskStructure, cd9660node *dir)
1273 * and rename it to "diskStructure->rock_ridge_move_count" (as a string)
1277 if (diskStructure->rr_moved_dir == NULL) {
1278 diskStructure->rr_moved_dir = cd9660_create_directory(
1279 diskStructure, ISO_RRIP_DEFAULT_MOVE_DIR_NAME,
1280 diskStructure->rootNode, dir);
1281 if (diskStructure->rr_moved_dir == NULL)
1283 cd9660_time_915(diskStructure->rr_moved_dir->isoDirRecord->date,
1288 tfile = cd9660_create_file(diskStructure, dir->node->name, dir->parent,
1293 diskStructure->rock_ridge_move_count++;
1295 diskStructure->rock_ridge_move_count);
1309 dir->parent = diskStructure->rr_moved_dir;
1315 cd9660_sorted_child_insert(diskStructure->rr_moved_dir, dir);
1329 cd9660_add_dot_records(iso9660_disk *diskStructure, cd9660node *root)
1338 cd9660_add_dot_records(diskStructure, cn);
1340 cd9660_create_special_directory(diskStructure, CD9660_TYPE_DOT, root);
1341 cd9660_create_special_directory(diskStructure, CD9660_TYPE_DOTDOT,
1357 cd9660_convert_structure(iso9660_disk *diskStructure, fsnode *root,
1401 cd9660_translate_node(diskStructure, iterator,
1416 if ((!diskStructure->allow_deep_trees) &&
1417 (!diskStructure->rock_ridge_enabled)) {
1423 } else if (diskStructure->
1433 diskStructure,
1448 cd9660_convert_structure(diskStructure,
1488 cd9660_copy_filenames(diskStructure, parent_node);
1491 flag = cd9660_handle_collisions(diskStructure, parent_node,
1543 cd9660_generate_path_table(iso9660_disk *diskStructure)
1545 cd9660node *cn, *dirNode = diskStructure->rootNode;
1553 PTQUEUE_NEW(n, ptq_entry, -1, diskStructure->rootNode);
1622 cd9660_level1_convert_filename(iso9660_disk *diskStructure, const char *oldname,
1648 if (diskStructure->archimedes_enabled &&
1672 if (!found_ext && !diskStructure->omit_trailing_period)
1682 cd9660_level2_convert_filename(iso9660_disk *diskStructure, const char *oldname,
1702 if (diskStructure->allow_multidot) {
1715 if (diskStructure->archimedes_enabled &&
1724 else if (diskStructure->allow_multidot &&
1739 if (!found_ext && !diskStructure->omit_trailing_period)
1749 cd9660_joliet_convert_filename(iso9660_disk *diskStructure, const char *oldname,
1766 cd9660_convert_filename(iso9660_disk *diskStructure, const char *oldname,
1771 if (diskStructure->isoLevel == 1)
1773 else if (diskStructure->isoLevel == 2)
1775 return (*conversion_function)(diskStructure, oldname, newname, is_file);
1779 cd9660_compute_record_size(iso9660_disk *diskStructure, cd9660node *node)
1783 if (diskStructure->rock_ridge_enabled)
1792 cd9660_populate_dot_records(iso9660_disk *diskStructure, cd9660node *node)
1801 cd9660_compute_record_size(diskStructure, node->dot_record);
1803 if (node == diskStructure->rootNode) {
1818 cd9660_compute_record_size(diskStructure, node->dot_dot_record);
1828 cd9660_compute_offsets(iso9660_disk *diskStructure, cd9660node *node,
1854 diskStructure, node);
1857 CD9660_BLOCKS(diskStructure->sectorSize,startOffset);
1869 cd9660_compute_record_size(diskStructure, child);
1870 if ((cd9660_compute_record_size(diskStructure, child) +
1872 diskStructure->sectorSize) {
1878 cd9660_compute_record_size(diskStructure, child);
1882 diskStructure->sectorSize,node->isoDirRecord->size);
1888 used_bytes += node->fileSectorsUsed * diskStructure->sectorSize;
1894 r = cd9660_compute_offsets(diskStructure, child,
1905 cd9660_populate_dot_records(diskStructure, node);
1915 cd9660_compute_record_size(diskStructure, child);
1918 CD9660_BLOCKS(diskStructure->sectorSize,
1924 CD9660_BLOCKS(diskStructure->sectorSize,
1928 diskStructure->sectorSize;
1969 cd9660_create_virtual_entry(iso9660_disk *diskStructure, const char *name,
1985 cd9660_convert_filename(diskStructure, tfsnode->name,
2022 cd9660_create_file(iso9660_disk *diskStructure, const char *name,
2027 temp = cd9660_create_virtual_entry(diskStructure, name, parent, 1, 1);
2038 if (cd9660_translate_node_common(diskStructure, temp) == 0)
2050 cd9660_create_directory(iso9660_disk *diskStructure, const char *name,
2055 temp = cd9660_create_virtual_entry(diskStructure, name, parent, 0, 1);
2065 if (cd9660_translate_node_common(diskStructure, temp) == 0)
2071 cd9660_create_special_directory(iso9660_disk *diskStructure, u_char type,
2087 if ((temp = cd9660_create_virtual_entry(diskStructure, na, parent,
2119 cd9660_add_generic_bootimage(iso9660_disk *diskStructure, const char *bootimage)
2130 diskStructure->generic_bootimage = estrdup(bootimage);
2133 if (lstat(diskStructure->generic_bootimage, &stbuf) == -1)
2135 diskStructure->generic_bootimage);
2142 if (diskStructure->verbose_level > 0) {
2147 diskStructure->has_generic_bootimage = 1;