Lines Matching defs:diskStructure
191 cd9660_set_defaults(iso9660_disk *diskStructure)
194 diskStructure->sectorSize = 2048;
197 diskStructure->isoLevel = 2;
199 diskStructure->rock_ridge_enabled = 0;
200 diskStructure->rock_ridge_renamed_dir_name = 0;
201 diskStructure->rock_ridge_move_count = 0;
202 diskStructure->rr_moved_dir = 0;
204 diskStructure->include_padding_areas = 1;
207 diskStructure->allow_deep_trees =
208 diskStructure->allow_multidot =
209 diskStructure->omit_trailing_period = 0;
212 memset(&diskStructure->primaryDescriptor, 0, 2048);
214 memset(diskStructure->primaryDescriptor.publisher_id, 0x20,128);
215 memset(diskStructure->primaryDescriptor.preparer_id, 0x20,128);
216 memset(diskStructure->primaryDescriptor.application_id, 0x20,128);
217 memset(diskStructure->primaryDescriptor.copyright_file_id, 0x20,37);
218 memset(diskStructure->primaryDescriptor.abstract_file_id, 0x20,37);
219 memset(diskStructure->primaryDescriptor.bibliographic_file_id, 0x20,37);
221 strlcpy(diskStructure->primaryDescriptor.system_id,"OpenBSD", sizeof(diskStructure->primaryDescriptor.system_id));
226 diskStructure->has_generic_bootimage = 0;
227 diskStructure->generic_bootimage = NULL;
229 /*memset(diskStructure->boot_descriptor, 0, 2048);*/
231 diskStructure->is_bootable = 0;
232 TAILQ_INIT(&diskStructure->boot_images);
233 LIST_INIT(&diskStructure->boot_entries);
239 iso9660_disk *diskStructure = ecalloc(1, sizeof(*diskStructure));
245 { name, &diskStructure->field, \
246 sizeof(diskStructure->field) == 8 ? OPT_INT64 : \
247 (sizeof(diskStructure->field) == 4 ? OPT_INT32 : \
248 (sizeof(diskStructure->field) == 2 ? OPT_INT16 : OPT_INT8)), \
252 { name, &diskStructure->field, OPT_BOOL }
275 fsopts->fs_specific = diskStructure;
278 cd9660_set_defaults(diskStructure);
324 iso9660_disk *diskStructure = fsopts->fs_specific;
343 diskStructure->primaryDescriptor.application_id);
350 cd9660_eltorito_add_boot_option(diskStructure,
360 rv = cd9660_add_boot_disk(diskStructure, buf);
367 rv = cd9660_add_generic_bootimage(diskStructure, buf);
370 diskStructure->primaryDescriptor.volume_id);
373 diskStructure->primaryDescriptor.preparer_id);
376 diskStructure->primaryDescriptor.publisher_id);
379 diskStructure->primaryDescriptor.volume_set_id);
384 cd9660_eltorito_add_boot_option(diskStructure, name, 0);
411 iso9660_disk *diskStructure = fsopts->fs_specific;
413 if (diskStructure->isoLevel < 2 &&
414 diskStructure->allow_multidot)
436 diskStructure->rootNode = real_root;
440 cd9660_convert_structure(diskStructure, root, real_root, 1,
451 cd9660_add_dot_records(diskStructure, real_root);
453 cd9660_setup_root_node(diskStructure);
456 if (diskStructure->rock_ridge_enabled) {
457 cd9660_susp_initialize(diskStructure, diskStructure->rootNode,
458 diskStructure->rootNode, NULL);
462 diskStructure->pathTableLength = cd9660_generate_path_table(
463 diskStructure);
465 pathTableSectors = CD9660_BLOCKS(diskStructure->sectorSize,
466 diskStructure->pathTableLength);
468 firstAvailableSector = cd9660_setup_volume_descriptors(diskStructure);
469 if (diskStructure->is_bootable) {
470 firstAvailableSector = cd9660_setup_boot(diskStructure,
476 diskStructure->primaryLittleEndianTableSector = firstAvailableSector;
477 diskStructure->primaryBigEndianTableSector =
478 diskStructure->primaryLittleEndianTableSector + pathTableSectors;
481 diskStructure->secondaryBigEndianTableSector = -1;
482 diskStructure->secondaryLittleEndianTableSector = -1;
484 diskStructure->dataFirstSector =
485 diskStructure->primaryBigEndianTableSector + pathTableSectors;
487 startoffset = diskStructure->sectorSize*diskStructure->dataFirstSector;
489 totalSpace = cd9660_compute_offsets(diskStructure, real_root, startoffset);
491 diskStructure->totalSectors = diskStructure->dataFirstSector +
492 CD9660_BLOCKS(diskStructure->sectorSize, totalSpace);
495 if (diskStructure->rock_ridge_enabled) {
496 diskStructure->susp_continuation_area_start_sector =
497 diskStructure->totalSectors;
498 diskStructure->totalSectors +=
499 CD9660_BLOCKS(diskStructure->sectorSize,
500 diskStructure->susp_continuation_area_size);
501 cd9660_susp_finalize(diskStructure, diskStructure->rootNode);
505 cd9660_finalize_PVD(diskStructure);
508 /* diskStructure->totalSectors+=150; */
514 if (diskStructure->include_padding_areas)
515 diskStructure->totalSectors += 150;
517 ret = cd9660_write_image(diskStructure, image);
530 cd9660_finalize_PVD(iso9660_disk *diskStructure)
535 memcpy(diskStructure->primaryDescriptor.root_directory_record,
536 diskStructure->rootNode->dot_record->isoDirRecord, 34);
539 diskStructure->primaryDescriptor.root_directory_record[0] = 34;
542 cd9660_bothendian_dword(diskStructure->totalSectors,
543 (unsigned char *)diskStructure->primaryDescriptor.volume_space_size);
545 (unsigned char *)diskStructure->primaryDescriptor.volume_set_size);
548 diskStructure->primaryDescriptor.volume_sequence_number);
549 cd9660_bothendian_word(diskStructure->sectorSize,
551 diskStructure->primaryDescriptor.logical_block_size);
552 cd9660_bothendian_dword(diskStructure->pathTableLength,
553 (unsigned char *)diskStructure->primaryDescriptor.path_table_size);
555 cd9660_731(diskStructure->primaryLittleEndianTableSector,
556 (u_char *)diskStructure->primaryDescriptor.type_l_path_table);
557 cd9660_732(diskStructure->primaryBigEndianTableSector,
558 (u_char *)diskStructure->primaryDescriptor.type_m_path_table);
560 diskStructure->primaryDescriptor.file_structure_version[0] = 1;
563 cd9660_pad_string_spaces(diskStructure->primaryDescriptor.volume_id, 32);
564 cd9660_pad_string_spaces(diskStructure->primaryDescriptor.system_id, 32);
565 cd9660_pad_string_spaces(diskStructure->primaryDescriptor.volume_set_id,
567 cd9660_pad_string_spaces(diskStructure->primaryDescriptor.publisher_id,
569 cd9660_pad_string_spaces(diskStructure->primaryDescriptor.preparer_id,
571 cd9660_pad_string_spaces(diskStructure->primaryDescriptor.application_id,
574 diskStructure->primaryDescriptor.copyright_file_id, 37);
576 diskStructure->primaryDescriptor.abstract_file_id, 37);
578 diskStructure->primaryDescriptor.bibliographic_file_id, 37);
582 (unsigned char *)diskStructure->primaryDescriptor.creation_date,
585 (unsigned char *)diskStructure->primaryDescriptor.modification_date,
589 cd9660_set_date(diskStructure->primaryDescriptor.expiration_date,
592 memset(diskStructure->primaryDescriptor.expiration_date, '0' ,16);
593 diskStructure->primaryDescriptor.expiration_date[16] = 0;
596 (unsigned char *)diskStructure->primaryDescriptor.effective_date,
620 cd9660_setup_root_node(iso9660_disk *diskStructure)
622 cd9660_populate_iso_dir_record(diskStructure->rootNode->isoDirRecord,
629 cd9660_setup_volume_descriptors(iso9660_disk *diskStructure)
639 (unsigned char *)&diskStructure->primaryDescriptor;
645 diskStructure->firstVolumeDescriptor = temp;
649 if (diskStructure->is_bootable) {
655 cd9660_setup_boot_volume_descriptor(diskStructure, t);
688 cd9660_translate_node_common(iso9660_disk *diskStructure, cd9660node *newnode)
697 (void)cd9660_convert_filename(diskStructure, newnode->node->name,
731 cd9660_translate_node(iso9660_disk *diskStructure, fsnode *node,
745 if (cd9660_translate_node_common(diskStructure, newnode) == 0)
879 cd9660_handle_collisions(iso9660_disk *diskStructure, cd9660node *colliding,
915 iter = cd9660_rename_filename(diskStructure, iter, skip,
923 cd9660_rename_filename(iso9660_disk *diskStructure, cd9660node *iter, int num,
933 if (diskStructure->isoLevel == 1)
935 else if (diskStructure->isoLevel == 2)
988 if (diskStructure->isoLevel == 1) {
1044 cd9660_copy_filenames(iso9660_disk *diskStructure, cd9660node *node)
1052 debug_print_tree(diskStructure, diskStructure->rootNode, 0);
1057 cd9660_copy_filenames(diskStructure, cn);
1124 cd9660_rrip_move_directory(iso9660_disk *diskStructure, cd9660node *dir)
1135 * and rename it to "diskStructure->rock_ridge_move_count" (as a string)
1139 if (diskStructure->rr_moved_dir == NULL) {
1140 diskStructure->rr_moved_dir = cd9660_create_directory(
1141 diskStructure, ISO_RRIP_DEFAULT_MOVE_DIR_NAME,
1142 diskStructure->rootNode, dir);
1143 if (diskStructure->rr_moved_dir == NULL)
1145 cd9660_time_915(diskStructure->rr_moved_dir->isoDirRecord->date,
1150 tfile = cd9660_create_file(diskStructure, dir->node->name, dir->parent,
1155 diskStructure->rock_ridge_move_count++;
1157 diskStructure->rock_ridge_move_count);
1171 dir->parent = diskStructure->rr_moved_dir;
1177 cd9660_sorted_child_insert(diskStructure->rr_moved_dir, dir);
1191 cd9660_add_dot_records(iso9660_disk *diskStructure, cd9660node *root)
1200 cd9660_add_dot_records(diskStructure, cn);
1202 cd9660_create_special_directory(diskStructure, CD9660_TYPE_DOT, root);
1203 cd9660_create_special_directory(diskStructure, CD9660_TYPE_DOTDOT,
1219 cd9660_convert_structure(iso9660_disk *diskStructure, fsnode *root,
1263 cd9660_translate_node(diskStructure, iterator,
1278 if ((!diskStructure->allow_deep_trees) &&
1279 (!diskStructure->rock_ridge_enabled)) {
1285 } else if (diskStructure->
1295 diskStructure,
1310 cd9660_convert_structure(diskStructure,
1350 cd9660_copy_filenames(diskStructure, parent_node);
1353 flag = cd9660_handle_collisions(diskStructure, parent_node,
1405 cd9660_generate_path_table(iso9660_disk *diskStructure)
1407 cd9660node *cn, *dirNode = diskStructure->rootNode;
1415 PTQUEUE_NEW(n, ptq_entry, -1, diskStructure->rootNode);
1485 cd9660_level1_convert_filename(iso9660_disk *diskStructure, const char *oldname,
1531 if (!found_ext && !diskStructure->omit_trailing_period)
1541 cd9660_level2_convert_filename(iso9660_disk *diskStructure, const char *oldname,
1562 if (diskStructure->allow_multidot) {
1579 else if (diskStructure->allow_multidot &&
1594 if (!found_ext && !diskStructure->omit_trailing_period)
1611 cd9660_convert_filename(iso9660_disk *diskStructure, const char *oldname,
1614 if (diskStructure->isoLevel == 1)
1615 return cd9660_level1_convert_filename(diskStructure,
1617 else if (diskStructure->isoLevel == 2)
1618 return cd9660_level2_convert_filename(diskStructure,
1624 cd9660_compute_record_size(iso9660_disk *diskStructure, cd9660node *node)
1628 if (diskStructure->rock_ridge_enabled)
1637 cd9660_populate_dot_records(iso9660_disk *diskStructure, cd9660node *node)
1646 cd9660_compute_record_size(diskStructure, node->dot_record);
1648 if (node == diskStructure->rootNode) {
1663 cd9660_compute_record_size(diskStructure, node->dot_dot_record);
1673 cd9660_compute_offsets(iso9660_disk *diskStructure, cd9660node *node,
1699 diskStructure, node);
1702 CD9660_BLOCKS(diskStructure->sectorSize,startOffset);
1714 cd9660_compute_record_size(diskStructure, child);
1715 if ((cd9660_compute_record_size(diskStructure, child) +
1717 diskStructure->sectorSize) {
1723 cd9660_compute_record_size(diskStructure, child);
1727 diskStructure->sectorSize,node->isoDirRecord->size);
1733 used_bytes += node->fileSectorsUsed * diskStructure->sectorSize;
1739 r = cd9660_compute_offsets(diskStructure, child,
1750 cd9660_populate_dot_records(diskStructure, node);
1760 cd9660_compute_record_size(diskStructure, child);
1763 CD9660_BLOCKS(diskStructure->sectorSize,
1769 CD9660_BLOCKS(diskStructure->sectorSize,
1773 diskStructure->sectorSize;
1814 cd9660_create_virtual_entry(iso9660_disk *diskStructure, const char *name,
1830 cd9660_convert_filename(diskStructure, tfsnode->name,
1867 cd9660_create_file(iso9660_disk *diskStructure, const char *name,
1872 temp = cd9660_create_virtual_entry(diskStructure, name, parent, 1, 1);
1883 if (cd9660_translate_node_common(diskStructure, temp) == 0)
1895 cd9660_create_directory(iso9660_disk *diskStructure, const char *name,
1900 temp = cd9660_create_virtual_entry(diskStructure, name, parent, 0, 1);
1910 if (cd9660_translate_node_common(diskStructure, temp) == 0)
1916 cd9660_create_special_directory(iso9660_disk *diskStructure, u_char type,
1932 if ((temp = cd9660_create_virtual_entry(diskStructure, na, parent,
1964 cd9660_add_generic_bootimage(iso9660_disk *diskStructure, const char *bootimage)
1975 diskStructure->generic_bootimage = estrdup(bootimage);
1977 if (unveil(diskStructure->generic_bootimage, "r") == -1)
1978 err(1, "unveil %s", diskStructure->generic_bootimage);
1980 if (lstat(diskStructure->generic_bootimage, &stbuf) == -1)
1982 diskStructure->generic_bootimage);
1989 diskStructure->has_generic_bootimage = 1;