xorriso  1.5.4.pl02
About: GNU xorriso creates, loads, manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions. It is suitable for incremental data backup and for production of bootable ISO 9660 images. GNU xorriso is a statical compilation of the libraries libburn, libisofs, libisoburn, and libjte.
  Fossies Dox: xorriso-1.5.4.pl02.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

iso_write_opts Struct Reference

#include <ecma119.h>

Data Fields

int will_cancel
 
int iso_level
 
unsigned int rockridge:1
 
unsigned int joliet:1
 
unsigned int iso1999:1
 
unsigned int hfsplus:1
 
unsigned int fat:1
 
unsigned int aaip:1
 
unsigned int always_gmt:1
 
unsigned int allow_dir_id_ext:1
 
unsigned int omit_version_numbers:2
 
unsigned int allow_deep_paths:1
 
unsigned int allow_longer_paths:1
 
unsigned int max_37_char_filenames:1
 
unsigned int no_force_dots:2
 
unsigned int allow_lowercase:1
 
unsigned int allow_full_ascii:1
 
unsigned int allow_7bit_ascii:1
 
unsigned int relaxed_vol_atts:1
 
unsigned int joliet_longer_paths:1
 
unsigned int joliet_long_names:1
 
unsigned int joliet_utf16:1
 
unsigned int rrip_version_1_10:1
 
unsigned int rrip_1_10_px_ino:1
 
unsigned int hardlinks:1
 
unsigned int aaip_susp_1_10:1
 
unsigned int dir_rec_mtime:3
 
char * rr_reloc_dir
 
int rr_reloc_flags
 
unsigned int md5_session_checksum:1
 
unsigned int md5_file_checksums:2
 
unsigned int sort_files:1
 
unsigned int replace_dir_mode:2
 
unsigned int replace_file_mode:2
 
unsigned int replace_uid:2
 
unsigned int replace_gid:2
 
mode_t dir_mode
 
mode_t file_mode
 
uid_t uid
 
gid_t gid
 
unsigned int old_empty:1
 
unsigned int untranslated_name_len
 
unsigned int replace_timestamps:2
 
time_t timestamp
 
char * output_charset
 
unsigned int appendable: 1
 
uint32_t ms_block
 
uint8_t * overwrite
 
size_t fifo_size
 
uint32_t data_start_lba
 
char scdbackup_tag_parm [100]
 
char * scdbackup_tag_written
 
char * system_area_data
 
int system_area_size
 
int system_area_options
 
time_t vol_creation_time
 
time_t vol_modification_time
 
time_t vol_expiration_time
 
time_t vol_effective_time
 
char vol_uuid [17]
 
uint32_t partition_offset
 
int partition_secs_per_head
 
int partition_heads_per_cyl
 
uint32_t tail_blocks
 
char * prep_partition
 
int prep_part_flag
 
char * efi_boot_partition
 
int efi_boot_part_flag
 
char * appended_partitions [8]
 
uint8_t appended_part_types [8]
 
int appended_part_flags [8]
 
uint8_t appended_part_type_guids [8][16]
 
uint8_t appended_part_gpt_flags [8]
 
int appended_as_gpt
 
int appended_as_apm
 
int part_like_isohybrid
 
int iso_mbr_part_type
 
uint8_t iso_gpt_type_guid [16]
 
int iso_gpt_flag
 
char ascii_disc_label [129]
 
uint8_t hfsp_serial_number [8]
 
int hfsp_block_size
 
int apm_block_size
 
uint8_t gpt_disk_guid [16]
 
int gpt_disk_guid_mode
 

Detailed Description

Holds the options for the image generation.

Definition at line 99 of file ecma119.h.

Field Documentation

◆ aaip

unsigned int iso_write_opts::aaip

◆ aaip_susp_1_10

unsigned int iso_write_opts::aaip_susp_1_10

Write AAIP as extension according to SUSP 1.10 rather than SUSP 1.12. I.e. without announcing it by an ER field and thus without the need to precede the RRIP fields by an ES and to precede the AA field by ES. This saves bytes and might avoid problems with readers which dislike ER fields other than the ones for RRIP. On the other hand, SUSP 1.12 frowns on such unannounced extensions and prescribes ER and ES. It does this since year 1994.

In effect only if above flag .aaip is set to 1.

Definition at line 234 of file ecma119.h.

Referenced by aaip_add_AL(), iso_write_opts_set_aaip_susp_1_10(), rrip_calc_len(), and rrip_get_susp_fields().

◆ allow_7bit_ascii

unsigned int iso_write_opts::allow_7bit_ascii

If not allow_full_ascii is set: allow all 7 bit characters that would be allowed by allow_full_ascii. But still map lowercase to uppercase if not allow_lowercase is set to 1.

Definition at line 182 of file ecma119.h.

Referenced by iso_get_ecma119_name(), and iso_write_opts_set_allow_7bit_ascii().

◆ allow_deep_paths

unsigned int iso_write_opts::allow_deep_paths

Allow ISO-9660 directory hierarchy to be deeper than 8 levels.

Definition at line 141 of file ecma119.h.

Referenced by create_tree(), ecma119_tree_create(), iso_image_create_burn_source(), and iso_write_opts_set_allow_deep_paths().

◆ allow_dir_id_ext

unsigned int iso_write_opts::allow_dir_id_ext

Convert directory names for ECMA-119 the same way as other file names but do not force dots or add version numbers. This violates ECMA-119 by allowing one "." and especially ISO level 1 by allowing DOS style 8.3 names rather than only 8 characters.

Definition at line 128 of file ecma119.h.

Referenced by iso_get_ecma119_name(), iso_write_opts_new(), iso_write_opts_set_allow_dir_id_ext(), and mangle_single_dir().

◆ allow_full_ascii

unsigned int iso_write_opts::allow_full_ascii

Allow all ASCII characters to be appear on an ISO-9660 filename. Note that "/" and "\0" characters are never allowed, even in RR names.

Definition at line 175 of file ecma119.h.

Referenced by iso_get_ecma119_name(), and iso_write_opts_set_allow_full_ascii().

◆ allow_longer_paths

unsigned int iso_write_opts::allow_longer_paths

Allow path in the ISO-9660 tree to have more than 255 characters.

Definition at line 146 of file ecma119.h.

Referenced by create_tree(), and iso_write_opts_set_allow_longer_paths().

◆ allow_lowercase

unsigned int iso_write_opts::allow_lowercase

Allow lowercase characters in ISO-9660 filenames. By default, only uppercase characters, numbers and a few other characters are allowed.

Definition at line 169 of file ecma119.h.

Referenced by iso_get_ecma119_name(), and iso_write_opts_set_allow_lowercase().

◆ always_gmt

unsigned int iso_write_opts::always_gmt

◆ apm_block_size

◆ appendable

unsigned int iso_write_opts::appendable

This flags control the type of the image to create. Libisofs support two kind of images: stand-alone and appendable.

A stand-alone image is an image that is valid alone, and that can be mounted by its own. This is the kind of image you will want to create in most cases. A stand-alone image can be burned in an empty CD or DVD, or write to an .iso file for future burning or distribution.

On the other side, an appendable image is not self contained, it refers to several files that are stored outside the image. Its usage is for multisession discs, where you add data in a new session, while the previous session data can still be accessed. In those cases, the old data is not written again. Instead, the new image refers to it, and thus it's only valid when appended to the original. Note that in those cases the image will be written after the original, and thus you will want to use a ms_block greater than 0.

Note that if you haven't import a previous image (by means of iso_image_import()), the image will always be a stand-alone image, as there is no previous data to refer to.

Definition at line 364 of file ecma119.h.

Referenced by add_zf_field(), checksum_copy_old_nodes(), checksum_prepare_nodes(), ecma119_image_new(), filesrc_writer_pre_compute(), iso_file_src_create(), iso_interval_reader_keep(), iso_write_opts_set_appendable(), and write_section_entry().

◆ appended_as_apm

int iso_write_opts::appended_as_apm

◆ appended_as_gpt

◆ appended_part_flags

int iso_write_opts::appended_part_flags[8]

◆ appended_part_gpt_flags

uint8_t iso_write_opts::appended_part_gpt_flags[8]

◆ appended_part_type_guids

uint8_t iso_write_opts::appended_part_type_guids[8][16]

◆ appended_part_types

uint8_t iso_write_opts::appended_part_types[8]

◆ appended_partitions

◆ ascii_disc_label

char iso_write_opts::ascii_disc_label[129]

◆ data_start_lba

uint32_t iso_write_opts::data_start_lba

This is not an option setting but a value returned after the options were used to compute the layout of the image. It tells the LBA of the first plain file data block in the image.

Definition at line 412 of file ecma119.h.

Referenced by ecma119_image_new(), and iso_write_opts_get_data_start().

◆ dir_mode

mode_t iso_write_opts::dir_mode

Definition at line 303 of file ecma119.h.

Referenced by ecma119_image_new(), and iso_write_opts_set_default_dir_mode().

◆ dir_rec_mtime

unsigned int iso_write_opts::dir_rec_mtime

Store as ECMA-119 Directory Record timestamp the mtime of the source rather than the image creation time. (The ECMA-119 prescription seems to expect that we do have a creation timestamp with the source. mkisofs writes mtimes and the result seems more suitable if mounted without Rock Ridge support.) bit0= ECMA-119, bit1= Joliet, bit2= ISO 9660:1999

Definition at line 244 of file ecma119.h.

Referenced by iso_write_opts_set_dir_rec_mtime(), and write_one_dir_record().

◆ efi_boot_part_flag

int iso_write_opts::efi_boot_part_flag

◆ efi_boot_partition

◆ fat

unsigned int iso_write_opts::fat

◆ fifo_size

size_t iso_write_opts::fifo_size

Size, in number of blocks, of the FIFO buffer used between the writer thread and the burn_source. You have to provide at least a 32 blocks buffer.

Definition at line 405 of file ecma119.h.

Referenced by ecma119_image_new(), iso_write_opts_new(), and iso_write_opts_set_fifo_size().

◆ file_mode

mode_t iso_write_opts::file_mode

Mode to use on dirs when replace_dir_mode == 2.

Definition at line 304 of file ecma119.h.

Referenced by ecma119_image_new(), and iso_write_opts_set_default_file_mode().

◆ gid

gid_t iso_write_opts::gid

uid to use when replace_uid == 2.

Definition at line 306 of file ecma119.h.

Referenced by ecma119_image_new(), and iso_write_opts_set_default_gid().

◆ gpt_disk_guid

uint8_t iso_write_opts::gpt_disk_guid[16]

Definition at line 544 of file ecma119.h.

Referenced by gpt_disk_guid_setup(), iso_write_opts_new(), and iso_write_opts_set_gpt_guid().

◆ gpt_disk_guid_mode

int iso_write_opts::gpt_disk_guid_mode

Definition at line 545 of file ecma119.h.

Referenced by gpt_disk_guid_setup(), iso_write_opts_new(), and iso_write_opts_set_gpt_guid().

◆ hardlinks

unsigned int iso_write_opts::hardlinks

◆ hfsp_block_size

◆ hfsp_serial_number

uint8_t iso_write_opts::hfsp_serial_number[8]

Definition at line 529 of file ecma119.h.

Referenced by iso_write_opts_new(), iso_write_opts_set_hfsp_serial_number(), and write_sb().

◆ hfsplus

unsigned int iso_write_opts::hfsplus

Definition at line 109 of file ecma119.h.

Referenced by ecma119_image_new(), iso_write_opts_new(), and iso_write_opts_set_hfsplus().

◆ iso1999

unsigned int iso_write_opts::iso1999

Definition at line 108 of file ecma119.h.

Referenced by ecma119_image_new(), and iso_write_opts_set_iso1999().

◆ iso_gpt_flag

int iso_write_opts::iso_gpt_flag

Definition at line 519 of file ecma119.h.

Referenced by iso_write_gpt(), iso_write_opts_new(), and iso_write_opts_set_iso_type_guid().

◆ iso_gpt_type_guid

uint8_t iso_write_opts::iso_gpt_type_guid[16]

Definition at line 516 of file ecma119.h.

Referenced by iso_write_gpt(), iso_write_opts_new(), and iso_write_opts_set_iso_type_guid().

◆ iso_level

int iso_write_opts::iso_level

ISO level to write at. (ECMA-119, 10)

Definition at line 103 of file ecma119.h.

Referenced by create_file_src(), create_node(), iso_get_ecma119_name(), iso_write_opts_new(), iso_write_opts_set_iso_level(), and mangle_tree().

◆ iso_mbr_part_type

◆ joliet

unsigned int iso_write_opts::joliet

Definition at line 107 of file ecma119.h.

Referenced by ecma119_image_new(), iso_write_opts_new(), and iso_write_opts_set_joliet().

◆ joliet_long_names

unsigned int iso_write_opts::joliet_long_names

Allow Joliet names up to 103 characters rather than 64.

Definition at line 199 of file ecma119.h.

Referenced by iso_get_joliet_name(), iso_write_opts_set_joliet_long_names(), and mangle_single_dir().

◆ joliet_longer_paths

unsigned int iso_write_opts::joliet_longer_paths

Allow paths in the Joliet tree to have more than 240 characters.

Definition at line 194 of file ecma119.h.

Referenced by create_tree(), and iso_write_opts_set_joliet_longer_paths().

◆ joliet_utf16

unsigned int iso_write_opts::joliet_utf16

Use UTF-16BE rather than its subset UCS-2

Definition at line 204 of file ecma119.h.

Referenced by iso_conv_name_chars(), iso_get_joliet_name(), iso_write_opts_new(), and iso_write_opts_set_joliet_utf16().

◆ max_37_char_filenames

unsigned int iso_write_opts::max_37_char_filenames

Allow a single file or directory hierarchy to have up to 37 characters. This is larger than the 31 characters allowed by ISO level 2, and the extra space is taken from the version number, so this also forces omit_version_numbers.

Definition at line 154 of file ecma119.h.

Referenced by iso_get_ecma119_name(), iso_write_opts_set_max_37_char_filenames(), mangle_tree(), and need_version_number().

◆ md5_file_checksums

unsigned int iso_write_opts::md5_file_checksums

Compute MD5 checksums for IsoFile objects and write them to blocks after the data area of the session. The layout and position of these blocks will be recorded in xattr "isofs.ca" of the root node. The indice of the MD5 sums will be recorded with the IsoFile directory entries as xattr "isofs.cx". See also API call iso_file_get_md5(). bit0= compute individual checksums bit1= pre-compute checksum and compare it with actual one. Raise MISHAP if mismatch.

Definition at line 282 of file ecma119.h.

Referenced by ecma119_image_new(), ecma119_writer_write_dirs(), iso_file_src_create(), iso_filesrc_write_data(), and iso_write_opts_set_record_md5().

◆ md5_session_checksum

unsigned int iso_write_opts::md5_session_checksum

Compute MD5 checksum for the whole session and record it as index 0 of the checksum blocks after the data area of the session. The layout and position of these blocks will be recorded in xattr "isofs.ca" of the root node. See see also API call iso_image_get_session_md5().

Definition at line 270 of file ecma119.h.

Referenced by checksum_writer_create(), ecma119_image_new(), ecma119_writer_compute_data_blocks(), ecma119_writer_write_dirs(), iso_write_opts_set_record_md5(), and write_head_part().

◆ ms_block

uint32_t iso_write_opts::ms_block

Start block of the image. It is supposed to be the lba where the first block of the image will be written on disc. All references inside the ISO image will take this into account, thus providing a mountable image.

For appendable images, that are written to a new session, you should pass here the lba of the next writable address on disc.

In stand alone images this is usually 0. However, you may want to provide a different ms_block if you don't plan to burn the image in the first session on disc, such as in some CD-Extra disc whether the data image is written in a new session after some audio tracks.

Definition at line 379 of file ecma119.h.

Referenced by checksum_writer_compute_data_blocks(), ecma119_image_new(), ecma119_writer_write_data(), gpt_tail_writer_compute_data_blocks(), iso_compute_append_partitions(), iso_interval_reader_keep(), iso_md5_write_tag(), iso_write_opts_set_ms_block(), iso_write_system_area(), patch_boot_info_table(), and write_section_entry().

◆ no_force_dots

unsigned int iso_write_opts::no_force_dots

ISO-9660 forces filenames to have a ".", that separates file name from extension. libisofs adds it if original filename doesn't has one. Set this to 1 to prevent this behavior bit0= ECMA-119 bit1= Joliet

Definition at line 163 of file ecma119.h.

Referenced by iso_get_ecma119_name(), iso_get_joliet_name(), and iso_write_opts_set_no_force_dots().

◆ old_empty

unsigned int iso_write_opts::old_empty

◆ omit_version_numbers

unsigned int iso_write_opts::omit_version_numbers

Omit the version number (";1") at the end of the ISO-9660 identifiers. Version numbers are usually not used. bit0= ECMA-119 and Joliet (for historical reasons) bit1= Joliet

Definition at line 136 of file ecma119.h.

Referenced by calc_dirent_len(), iso_conv_name_chars(), iso_write_opts_set_omit_version_numbers(), need_version_number(), write_one_dir(), and write_one_dir_record().

◆ output_charset

char* iso_write_opts::output_charset

Charset for the RR filenames that will be created. NULL to use default charset, the locale one.

Definition at line 340 of file ecma119.h.

Referenced by ecma119_image_new(), iso_conv_name_chars(), iso_write_opts_clone(), iso_write_opts_free(), and iso_write_opts_set_output_charset().

◆ overwrite

uint8_t* iso_write_opts::overwrite

When not NULL, it should point to a buffer of at least 64KiB, where libisofs will write the contents that should be written at the beginning of a overwritable media, to grow the image. The growing of an image is a way, used by first time in growisofs by Andy Polyakov, to allow the appending of new data to non-multisession media, such as DVD+RW, in the same way you append a new session to a multisession disc, i.e., without need to write again the contents of the previous image.

Note that if you want this kind of image growing, you will also need to set appendable to "1" and provide a valid ms_block after the previous image.

You should initialize the buffer either with 0s, or with the contents of the first blocks of the image you're growing. In most cases, 0 is good enough.

Definition at line 398 of file ecma119.h.

Referenced by ecma119_image_new(), and iso_write_opts_set_overwrite_buf().

◆ part_like_isohybrid

◆ partition_heads_per_cyl

int iso_write_opts::partition_heads_per_cyl

◆ partition_offset

◆ partition_secs_per_head

int iso_write_opts::partition_secs_per_head

◆ prep_part_flag

int iso_write_opts::prep_part_flag

◆ prep_partition

◆ relaxed_vol_atts

unsigned int iso_write_opts::relaxed_vol_atts

Allow all characters to be part of Volume and Volset identifiers on the Primary Volume Descriptor. This breaks ISO-9660 constraints, but should work on modern systems.

Definition at line 189 of file ecma119.h.

Referenced by ecma119_writer_write_vol_desc(), and iso_write_opts_set_relaxed_vol_atts().

◆ replace_dir_mode

unsigned int iso_write_opts::replace_dir_mode

The following options set the default values for files and directory permissions, gid and uid. All these take one of three values: 0, 1 or 2. If 0, the corresponding attribute will be kept as set in the IsoNode. Unless you have changed it, it corresponds to the value on disc, so it is suitable for backup purposes. If set to 1, the corresponding attrib. will be changed by a default suitable value. Finally, if you set it to 2, the attrib. will be changed with the value specified in the options below. Note that for mode attributes, only the permissions are set, the file type remains unchanged.

Definition at line 298 of file ecma119.h.

Referenced by ecma119_image_new(), iso_write_opts_new(), and iso_write_opts_set_replace_mode().

◆ replace_file_mode

unsigned int iso_write_opts::replace_file_mode

◆ replace_gid

unsigned int iso_write_opts::replace_gid

◆ replace_timestamps

unsigned int iso_write_opts::replace_timestamps

0 to use IsoNode timestamps, 1 to use recording time, 2 to use values from timestamp field. This has only meaning if RR extensions are enabled.

Definition at line 333 of file ecma119.h.

Referenced by ecma119_image_new(), iso_write_opts_new(), and iso_write_opts_set_replace_timestamps().

◆ replace_uid

unsigned int iso_write_opts::replace_uid

◆ rockridge

unsigned int iso_write_opts::rockridge

◆ rr_reloc_dir

char* iso_write_opts::rr_reloc_dir

This describes the directory where to store Rock Ridge relocated directories. If not relaxation "allow_deep_paths" is in effect, it is necessary to relocate directories so that no ECMA-119 file path has more than 8 components. For Rock Ridge the relocated directories are linked forth and back to a placeholder at their original position in path level 8 (entries CL and PL). Directories marked by entry RE are to be considered artefacts of relocation and shall not be read into a Rock Ridge tree. For plain ECMA-119, the relocation directory is just a normal directory which contains normal files and directories.

Definition at line 258 of file ecma119.h.

Referenced by create_tree(), iso_write_opts_clone(), iso_write_opts_free(), iso_write_opts_new(), iso_write_opts_set_rr_reloc(), make_reloc_dir_if_needed(), and reorder_tree().

◆ rr_reloc_flags

◆ rrip_1_10_px_ino

unsigned int iso_write_opts::rrip_1_10_px_ino

Write field PX with file serial number even with RRIP-1.10

Definition at line 216 of file ecma119.h.

Referenced by iso_write_opts_set_rrip_1_10_px_ino(), rrip_add_PX(), and rrip_calc_len().

◆ rrip_version_1_10

unsigned int iso_write_opts::rrip_version_1_10

Write Rock Ridge info as of specification RRIP-1.10 rather than RRIP-1.12: signature "RRIP_1991A" rather than "IEEE_1282", field PX without file serial number

Definition at line 211 of file ecma119.h.

Referenced by iso_write_opts_set_rrip_version_1_10(), rrip_add_ER(), rrip_add_PX(), rrip_calc_len(), and rrip_get_susp_fields().

◆ scdbackup_tag_parm

char iso_write_opts::scdbackup_tag_parm[100]

If not empty: A text holding parameters "name" and "timestamp" for a scdbackup stream checksum tag. See scdbackup/README appendix VERIFY. It makes sense only for single session images which start at LBA 0. Such a tag may be part of a libisofs checksum tag block after the session tag line. It then covers the whole session up to its own start position.

Definition at line 422 of file ecma119.h.

Referenced by iso_md5_write_scdbackup_tag(), iso_md5_write_tag(), and iso_write_opts_set_scdbackup_tag().

◆ scdbackup_tag_written

char* iso_write_opts::scdbackup_tag_written

◆ sort_files

unsigned int iso_write_opts::sort_files

If files should be sorted based on their weight.

Definition at line 285 of file ecma119.h.

Referenced by filesrc_writer_pre_compute(), iso_write_opts_new(), and iso_write_opts_set_sort_files().

◆ system_area_data

char* iso_write_opts::system_area_data

◆ system_area_options

int iso_write_opts::system_area_options

◆ system_area_size

int iso_write_opts::system_area_size

◆ tail_blocks

uint32_t iso_write_opts::tail_blocks

◆ timestamp

time_t iso_write_opts::timestamp

Definition at line 334 of file ecma119.h.

Referenced by ecma119_image_new(), and iso_write_opts_set_default_timestamp().

◆ uid

uid_t iso_write_opts::uid

Mode to use on files when replace_file_mode == 2.

Definition at line 305 of file ecma119.h.

Referenced by ecma119_image_new(), and iso_write_opts_set_default_uid().

◆ untranslated_name_len

unsigned int iso_write_opts::untranslated_name_len

Extra Caution: This option breaks any assumptions about names that are supported by ECMA-119 specifications. Omit any translation which would make a file name compliant to the ECMA-119 rules. This includes and exceeds omit_version_numbers, max_37_char_filenames, no_force_dots bit0, allow_lowercase. The maximum name length is given by this variable. There is a length limit of ISO_UNTRANSLATED_NAMES_MAX characters, because ECMA-119 allows 254 byte in a directory record, some of them are occupied by ECMA-119, some more are needed for SUSP CE, and some are fixely occupied by libisofs Rock Ridge code. The default value 0 disables this feature.

Definition at line 326 of file ecma119.h.

Referenced by iso_get_ecma119_name(), iso_write_opts_new(), iso_write_opts_set_untranslated_name_len(), mangle_single_dir(), mangle_tree(), and need_version_number().

◆ vol_creation_time

time_t iso_write_opts::vol_creation_time

◆ vol_effective_time

time_t iso_write_opts::vol_effective_time

◆ vol_expiration_time

time_t iso_write_opts::vol_expiration_time

◆ vol_modification_time

time_t iso_write_opts::vol_modification_time

◆ vol_uuid

◆ will_cancel


The documentation for this struct was generated from the following file: