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)  

isoburn.c File Reference
#include <sys/types.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <libburn/libburn.h>
#include <libisofs/libisofs.h>
#include "libisoburn.h"
#include "isoburn.h"
Include dependency graph for isoburn.c:

Go to the source code of this file.

Functions

int isoburn_toc_entry_new (struct isoburn_toc_entry **objpt, struct isoburn_toc_entry *boss, int flag)
 
int isoburn_toc_entry_destroy (struct isoburn_toc_entry **o, int flag)
 
int isoburn_new (struct isoburn **objpt, int flag)
 
int isoburn_destroy (struct isoburn **objpt, int flag)
 
int isoburn_destroy_all (struct isoburn **objpt, int flag)
 
int isoburn_get_target_image (struct isoburn *o, IsoImage **pt, int flag)
 
int isoburn_get_prev (struct isoburn *o, struct isoburn **pt, int flag)
 
int isoburn_get_next (struct isoburn *o, struct isoburn **pt, int flag)
 
int isoburn_link (struct isoburn *o, struct isoburn *link, int flag)
 
int isoburn_count (struct isoburn *o, int flag)
 
int isoburn_by_idx (struct isoburn *o, int idx, struct isoburn **pt, int flag)
 
int isoburn_find_by_drive (struct isoburn **pt, struct burn_drive *d, int flag)
 
int isoburn_msgs_submit (struct isoburn *o, int error_code, char msg_text[], int os_errno, char severity[], int flag)
 
int isoburn_adjust_target_iso_head (struct isoburn *o, uint32_t offst, int flag)
 
static int isoburn_make_iso_write_opts (struct isoburn *out_o, struct isoburn_imgen_opts *opts, int fifo_chunks, IsoWriteOpts *wopts, int flag)
 
static int isoburn_prepare_disc_aux (struct burn_drive *in_d, struct burn_drive *out_d, struct burn_disc **disc, struct isoburn_imgen_opts *opts, int flag)
 
int isoburn_prepare_disc (struct burn_drive *d, struct burn_disc **disc, struct isoburn_imgen_opts *opts)
 
int isoburn_prepare_new_image (struct burn_drive *d, struct burn_disc **disc, struct isoburn_imgen_opts *opts, struct burn_drive *out_drive)
 
int isoburn_prepare_blind_grow (struct burn_drive *d, struct burn_disc **disc, struct isoburn_imgen_opts *opts, struct burn_drive *out_drive, int nwa)
 
int isoburn_cancel_prepared_write (struct burn_drive *d, struct burn_drive *output_drive, int flag)
 
int isoburn_sync_after_write (struct burn_drive *d, struct burn_drive *output_drive, int flag)
 
void isoburn_version (int *major, int *minor, int *micro)
 
int isoburn_is_compatible (int major, int minor, int micro, int flag)
 
int isoburn_ropt_new (struct isoburn_read_opts **new_o, int flag)
 
int isoburn_ropt_destroy (struct isoburn_read_opts **o, int flag)
 
int isoburn_ropt_set_data_cache (struct isoburn_read_opts *o, int cache_tiles, int tile_blocks, int flag)
 
int isoburn_ropt_get_data_cache (struct isoburn_read_opts *o, int *cache_tiles, int *tile_blocks, int *set_flag, int flag)
 
int isoburn_ropt_set_extensions (struct isoburn_read_opts *o, int ext)
 
int isoburn_ropt_get_extensions (struct isoburn_read_opts *o, int *ext)
 
int isoburn_ropt_set_default_perms (struct isoburn_read_opts *o, uid_t uid, gid_t gid, mode_t mode)
 
int isoburn_ropt_get_default_perms (struct isoburn_read_opts *o, uid_t *uid, gid_t *gid, mode_t *mode)
 
int isoburn_ropt_set_default_dirperms (struct isoburn_read_opts *o, mode_t mode)
 
int isoburn_ropt_get_default_dirperms (struct isoburn_read_opts *o, mode_t *mode)
 
int isoburn_ropt_set_input_charset (struct isoburn_read_opts *o, char *input_charset)
 
int isoburn_ropt_get_input_charset (struct isoburn_read_opts *o, char **input_charset)
 
int isoburn_ropt_set_auto_incharset (struct isoburn_read_opts *o, int mode)
 
int isoburn_ropt_get_auto_incharset (struct isoburn_read_opts *o, int *mode)
 
int isoburn_ropt_set_displacement (struct isoburn_read_opts *o, uint32_t displacement, int displacement_sign)
 
int isoburn_ropt_get_displacement (struct isoburn_read_opts *o, uint32_t *displacement, int *displacement_sign)
 
int isoburn_ropt_set_truncate_mode (struct isoburn_read_opts *o, int mode, int length)
 
int isoburn_ropt_get_truncate_mode (struct isoburn_read_opts *o, int *mode, int *length)
 
int isoburn_ropt_get_size_what (struct isoburn_read_opts *o, uint32_t *size, int *has_what)
 
int isoburn_ropt_get_tree_loaded (struct isoburn_read_opts *o, int *tree, int *rr)
 
int isoburn_igopt_new (struct isoburn_imgen_opts **new_o, int flag)
 
int isoburn_igopt_destroy (struct isoburn_imgen_opts **o, int flag)
 
int isoburn_igopt_set_level (struct isoburn_imgen_opts *o, int level)
 
int isoburn_igopt_get_level (struct isoburn_imgen_opts *o, int *level)
 
int isoburn_igopt_set_extensions (struct isoburn_imgen_opts *o, int ext)
 
int isoburn_igopt_get_extensions (struct isoburn_imgen_opts *o, int *ext)
 
int isoburn_igopt_set_relaxed (struct isoburn_imgen_opts *o, int relax)
 
int isoburn_igopt_get_relaxed (struct isoburn_imgen_opts *o, int *relax)
 
int isoburn_igopt_set_rr_reloc (struct isoburn_imgen_opts *o, char *name, int flags)
 
int isoburn_igopt_get_rr_reloc (struct isoburn_imgen_opts *o, char **name, int *flags)
 
int isoburn_igopt_set_untranslated_name_len (struct isoburn_imgen_opts *o, int len)
 
int isoburn_igopt_get_untranslated_name_len (struct isoburn_imgen_opts *o, int *len)
 
int isoburn_igopt_set_sort_files (struct isoburn_imgen_opts *o, int value)
 
int isoburn_igopt_get_sort_files (struct isoburn_imgen_opts *o, int *value)
 
int isoburn_igopt_set_over_mode (struct isoburn_imgen_opts *o, int replace_dir_mode, int replace_file_mode, mode_t dir_mode, mode_t file_mode)
 
int isoburn_igopt_get_over_mode (struct isoburn_imgen_opts *o, int *replace_dir_mode, int *replace_file_mode, mode_t *dir_mode, mode_t *file_mode)
 
int isoburn_igopt_set_over_ugid (struct isoburn_imgen_opts *o, int replace_uid, int replace_gid, uid_t uid, gid_t gid)
 
int isoburn_igopt_get_over_ugid (struct isoburn_imgen_opts *o, int *replace_uid, int *replace_gid, uid_t *uid, gid_t *gid)
 
int isoburn_igopt_set_out_charset (struct isoburn_imgen_opts *o, char *output_charset)
 
int isoburn_igopt_get_out_charset (struct isoburn_imgen_opts *o, char **output_charset)
 
int isoburn_igopt_set_fifo_size (struct isoburn_imgen_opts *o, int fifo_size)
 
int isoburn_igopt_get_fifo_size (struct isoburn_imgen_opts *o, int *fifo_size)
 
int isoburn_igopt_get_effective_lba (struct isoburn_imgen_opts *o, int *lba)
 
int isoburn_igopt_get_data_start (struct isoburn_imgen_opts *o, int *lba)
 
int isoburn_igopt_set_scdbackup_tag (struct isoburn_imgen_opts *o, char *name, char *timestamp, char *tag_written)
 
int isoburn_igopt_get_scdbackup_tag (struct isoburn_imgen_opts *o, char name[81], char timestamp[19], char **tag_written)
 
int isoburn_igopt_set_system_area (struct isoburn_imgen_opts *opts, char data[32768], int options)
 
int isoburn_igopt_get_system_area (struct isoburn_imgen_opts *opts, char data[32768], int *options)
 
int isoburn_igopt_set_pvd_times (struct isoburn_imgen_opts *opts, time_t vol_creation_time, time_t vol_modification_time, time_t vol_expiration_time, time_t vol_effective_time, char *vol_uuid)
 
int isoburn_igopt_get_pvd_times (struct isoburn_imgen_opts *opts, time_t *vol_creation_time, time_t *vol_modification_time, time_t *vol_expiration_time, time_t *vol_effective_time, char vol_uuid[17])
 
int isoburn_igopt_set_part_offset (struct isoburn_imgen_opts *opts, uint32_t block_offset_2k, int secs_512_per_head, int heads_per_cyl)
 
int isoburn_igopt_get_part_offset (struct isoburn_imgen_opts *opts, uint32_t *block_offset_2k, int *secs_512_per_head, int *heads_per_cyl)
 
int isoburn_igopt_attach_jte (struct isoburn_imgen_opts *opts, void *libjte_handle)
 
int isoburn_igopt_detach_jte (struct isoburn_imgen_opts *opts, void **libjte_handle)
 
int isoburn_igopt_set_tail_blocks (struct isoburn_imgen_opts *opts, uint32_t num_blocks)
 
int isoburn_igopt_get_tail_blocks (struct isoburn_imgen_opts *opts, uint32_t *num_blocks)
 
int isoburn_igopt_set_prep_partition (struct isoburn_imgen_opts *o, char *path, int flag)
 
int isoburn_igopt_get_prep_partition (struct isoburn_imgen_opts *opts, char **path, int flag)
 
int isoburn_igopt_set_efi_bootp (struct isoburn_imgen_opts *o, char *path, int flag)
 
int isoburn_igopt_get_efi_bootp (struct isoburn_imgen_opts *opts, char **path, int flag)
 
int isoburn_igopt_set_partition_img (struct isoburn_imgen_opts *opts, int partition_number, uint8_t partition_type, char *image_path)
 
int isoburn_igopt_get_partition_img (struct isoburn_imgen_opts *opts, int num_entries, uint8_t partition_types[], char *image_paths[])
 
int isoburn_igopt_set_part_flag (struct isoburn_imgen_opts *opts, int partition_number, int flag)
 
int isoburn_igopt_get_part_flags (struct isoburn_imgen_opts *opts, int num_entries, int part_flags[])
 
int isoburn_igopt_set_appended_as_gpt (struct isoburn_imgen_opts *opts, int gpt)
 
int isoburn_igopt_get_appended_as_gpt (struct isoburn_imgen_opts *opts, int *gpt)
 
int isoburn_igopt_set_part_type_guid (struct isoburn_imgen_opts *opts, int partition_number, uint8_t guid[16], int valid)
 
int isoburn_igopt_get_part_type_guid (struct isoburn_imgen_opts *opts, int num_entries, uint8_t guids[][16], int valids[])
 
int isoburn_igopt_set_appended_as_apm (struct isoburn_imgen_opts *opts, int apm)
 
int isoburn_igopt_get_appended_as_apm (struct isoburn_imgen_opts *opts, int *apm)
 
int isoburn_igopt_set_part_like_isohybrid (struct isoburn_imgen_opts *opts, int alike)
 
int isoburn_igopt_get_part_like_isohybrid (struct isoburn_imgen_opts *opts, int *alike)
 
int isoburn_igopt_set_iso_mbr_part_type (struct isoburn_imgen_opts *opts, int part_type)
 
int isoburn_igopt_get_iso_mbr_part_type (struct isoburn_imgen_opts *opts, int *part_type)
 
int isoburn_igopt_set_iso_type_guid (struct isoburn_imgen_opts *opts, uint8_t guid[16], int valid)
 
int isoburn_igopt_get_iso_type_guid (struct isoburn_imgen_opts *opts, uint8_t guid[16])
 
int isoburn_igopt_set_gpt_guid (struct isoburn_imgen_opts *opts, uint8_t guid[16], int mode)
 
int isoburn_igopt_get_gpt_guid (struct isoburn_imgen_opts *opts, uint8_t guid[16], int *mode)
 
int isoburn_igopt_set_disc_label (struct isoburn_imgen_opts *opts, char *label)
 
int isoburn_igopt_get_disc_label (struct isoburn_imgen_opts *opts, char **label)
 
int isoburn_igopt_set_hfsp_serial_number (struct isoburn_imgen_opts *opts, uint8_t serial_number[8])
 
int isoburn_igopt_get_hfsp_serial_number (struct isoburn_imgen_opts *opts, uint8_t serial_number[8])
 
int isoburn_igopt_set_hfsp_block_size (struct isoburn_imgen_opts *opts, int hfsp_block_size, int apm_block_size)
 
int isoburn_igopt_get_hfsp_block_size (struct isoburn_imgen_opts *opts, int *hfsp_block_size, int *apm_block_size)
 
int isoburn_igopt_set_write_type (struct isoburn_imgen_opts *opts, int do_tao)
 
int isoburn_igopt_get_write_type (struct isoburn_imgen_opts *opts, int *do_tao)
 
int isoburn_igopt_set_stdio_endsync (struct isoburn_imgen_opts *opts, int do_sync)
 
int isoburn_igopt_get_stdio_endsync (struct isoburn_imgen_opts *opts, int *do_sync)
 
int isoburn_conv_name_chars (struct isoburn_imgen_opts *opts, char *name, size_t name_len, char **result, size_t *result_len, int flag)
 

Variables

int(* libisoburn_default_msgs_submit )(void *handle, int error_code, char msg_text[], int os_errno, char severity[], int flag) = NULL
 
void * libisoburn_default_msgs_submit_handle = NULL
 
int libisoburn_default_msgs_submit_flag = 0
 
struct isoburnisoburn_list_start = NULL
 

Function Documentation

◆ isoburn_adjust_target_iso_head()

int isoburn_adjust_target_iso_head ( struct isoburn o,
uint32_t  offst,
int  flag 
)

Check whether the size of target_iso_head matches the given partition offset. Eventually adjust size.

Definition at line 368 of file isoburn.c.

References isoburn_msgs_submit(), Libisoburn_overwriteable_starT, Libisoburn_target_head_sizE, isoburn::nwa, isoburn::target_iso_head, isoburn::target_iso_head_size, and isoburn::zero_nwa.

Referenced by isoburn_inspect_partition(), and isoburn_make_iso_write_opts().

◆ isoburn_by_idx()

int isoburn_by_idx ( struct isoburn o,
int  idx,
struct isoburn **  pt,
int  flag 
)

Definition at line 302 of file isoburn.c.

References isoburn::next, and isoburn::prev.

◆ isoburn_cancel_prepared_write()

int isoburn_cancel_prepared_write ( struct burn_drive input_drive,
struct burn_drive output_drive,
int  flag 
)

Revoke isoburn_prepare_*() instead of running isoburn_disc_write(). libisofs reserves resources and maybe already starts generating the image stream when one of above three calls is performed. It is mandatory to either run isoburn_disc_write() or to revoke the preparations by the call described here. If this call returns 0 or 1 then the write thread of libisofs has ended.

Since
0.1.0
Parameters
input_driveThe drive or in_drive which was used with the preparation call.
output_driveThe out_drive used with isoburn_prepare_new_image(), NULL if none.
flagBitfield, submit 0 for now. bit0= -reserved for internal use-
Returns
<0 error, 0= no pending preparations detectable, 1 = canceled

Definition at line 767 of file isoburn.c.

References burn_source_free(), burn_source::cancel, isoburn::iso_source, isoburn_find_emulator(), burn_source::read, and burn_source::version.

Referenced by isoburn_sync_after_write(), Xorriso_pacifier_loop(), and Xorriso_write_session().

◆ isoburn_conv_name_chars()

int isoburn_conv_name_chars ( struct isoburn_imgen_opts opts,
char *  name,
size_t  name_len,
char **  result,
size_t *  result_len,
int  flag 
)

Frontend of libisofs call iso_conv_name_chars() controlled by struct isoburn_imgen_opts rather than IsoWriteOpts. See libisofs.h for a more detailed description.

Since
1.3.6
Parameters
optsDefines options like output charset, UCS-2 versus UTF-16 for Joliet, and naming restrictions.
nameThe input text which shall be converted.
name_lenThe number of bytes in input text.
resultWill return the conversion result in case of success. Terminated by a trailing zero byte. Use free() to dispose it when no longer needed.
result_lenWill return the number of bytes in result (excluding trailing zero)
flagBitfield for control purposes. bit0-bit7= Name space 0= generic (to_charset is valid, no reserved characters, no length limits) 1= Rock Ridge (to_charset is valid) 2= Joliet (to_charset gets overridden by UCS-2 or UTF-16) 3= ECMA-119 (to_charset gets overridden by the dull ISO 9660 subset of ASCII) 4= HFS+ (to_charset gets overridden by UTF-16BE) bit8= Treat input text as directory name (matters for Joliet and ECMA-119) bit9= Do not issue error messages bit15= Reverse operation (best to be done only with results of previous conversions)
Returns
1 means success, <=0 means error

Definition at line 2038 of file isoburn.c.

References iso_conv_name_chars(), iso_write_opts_free(), iso_write_opts_new(), isoburn_make_iso_write_opts(), and isoburn_report_iso_error().

Referenced by Xorriso_test_outchar().

◆ isoburn_count()

int isoburn_count ( struct isoburn o,
int  flag 
)

Definition at line 289 of file isoburn.c.

References isoburn::next, and isoburn::prev.

◆ isoburn_destroy()

◆ isoburn_destroy_all()

int isoburn_destroy_all ( struct isoburn **  objpt,
int  flag 
)

Definition at line 213 of file isoburn.c.

References isoburn_destroy(), isoburn::next, and isoburn::prev.

Referenced by isoburn_finish(), and isoburn_initialize().

◆ isoburn_find_by_drive()

int isoburn_find_by_drive ( struct isoburn **  pt,
struct burn_drive d,
int  flag 
)

Definition at line 326 of file isoburn.c.

References isoburn::drive, isoburn_list_start, and isoburn::next.

Referenced by isoburn_disc_get_status().

◆ isoburn_get_next()

int isoburn_get_next ( struct isoburn o,
struct isoburn **  pt,
int  flag 
)

Definition at line 244 of file isoburn.c.

References isoburn::next.

◆ isoburn_get_prev()

int isoburn_get_prev ( struct isoburn o,
struct isoburn **  pt,
int  flag 
)

Definition at line 237 of file isoburn.c.

References isoburn::prev.

◆ isoburn_get_target_image()

int isoburn_get_target_image ( struct isoburn o,
IsoImage **  pt,
int  flag 
)

Definition at line 230 of file isoburn.c.

References isoburn::image.

◆ isoburn_igopt_attach_jte()

int isoburn_igopt_attach_jte ( struct isoburn_imgen_opts opts,
void *  libjte_handle 
)

Associate a libjte environment object to the upcoming write run. libjte implements Jigdo Template Extraction as of Steve McIntyre and Richard Atterer. A non-NULL libjte_handle will cause failure to write if libjte was not enabled in libisofs at compile time.

Since
0.6.4
Parameters
optsThe option set to work on
libjte_handlePointer to a struct libjte_env e.g. created by libjte_new(). It must stay existent from the start of image writing by isoburn_prepare_*() until the write thread has ended. E.g. until libburn indicates the end of its write run.
Returns
1 success, <=0 failure

Definition at line 1621 of file isoburn.c.

References isoburn_imgen_opts::libjte_handle.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_destroy()

int isoburn_igopt_destroy ( struct isoburn_imgen_opts **  o,
int  flag 
)

Deletes an option set which was created by isoburn_igopt_new().

Since
0.1.0
Parameters
oThe option set to give up
flagBitfield for control purposes. Submit 0 for now.
Returns
1= **o destroyed , 0= *o was already NULL (harmless)

Definition at line 1216 of file isoburn.c.

References Libisoburn_max_appended_partitionS.

Referenced by Xorriso_relax_compliance(), Xorriso_test_outchar(), and Xorriso_write_session().

◆ isoburn_igopt_detach_jte()

int isoburn_igopt_detach_jte ( struct isoburn_imgen_opts opts,
void **  libjte_handle 
)

Remove eventual association to a libjte environment handle.

Since
0.6.4
Parameters
optsThe option set to work on
libjte_handleIf not submitted as NULL, this will return the previously set libjte handle.
Returns
1 success, <=0 failure

Definition at line 1629 of file isoburn.c.

References isoburn_imgen_opts::libjte_handle.

◆ isoburn_igopt_get_appended_as_apm()

int isoburn_igopt_get_appended_as_apm ( struct isoburn_imgen_opts opts,
int *  apm 
)

Inquire the current setting made by isoburn_igopt_set_appended_as_apm().

Since
1.4.4
Parameters
optsThe option set to be inquired.
apmReturns the current value.
Returns
<=0 = error, 1 = success

Definition at line 1854 of file isoburn.c.

References isoburn_imgen_opts::appended_as_apm.

◆ isoburn_igopt_get_appended_as_gpt()

int isoburn_igopt_get_appended_as_gpt ( struct isoburn_imgen_opts opts,
int *  gpt 
)

Inquire the current setting made by isoburn_igopt_set_appended_as_gpt().

Since
1.4.0
Parameters
optsThe option set to be inquired.
gptReturns the current value.
Returns
<=0 = error, 1 = success

Definition at line 1797 of file isoburn.c.

References isoburn_imgen_opts::appended_as_gpt.

◆ isoburn_igopt_get_data_start()

int isoburn_igopt_get_data_start ( struct isoburn_imgen_opts o,
int *  lba 
)

Obtain after image preparation the lowest block address of file content data. Failure can occur if libisofs is too old to provide this information, if the result exceeds 31 bit, or if the call is made before image preparation. This value cannot be set by the application but only be inquired.

Since
0.3.6
Parameters
oThe option set to work on
lbaThe block number of the session start on the medium. <0 means that no address has been determined yet.
Returns
1 success, <=0 failure

Definition at line 1503 of file isoburn.c.

References isoburn_imgen_opts::data_start_lba.

Referenced by Xorriso_write_session().

◆ isoburn_igopt_get_disc_label()

int isoburn_igopt_get_disc_label ( struct isoburn_imgen_opts opts,
char **  label 
)

Inquire the current setting made by isoburn_igopt_set_disc_label().

Since
0.6.6
Parameters
optsThe option set to be inquired.
labelReturns a pointer to the currently set label string. Do not alter this string. Use only as long as the opts object exists.
Returns
<=0 = error, 1 = success

Definition at line 1948 of file isoburn.c.

References isoburn_imgen_opts::ascii_disc_label.

◆ isoburn_igopt_get_effective_lba()

int isoburn_igopt_get_effective_lba ( struct isoburn_imgen_opts o,
int *  lba 
)

Obtain after image preparation the block address where the session will start on the medium. This value cannot be set by the application but only be inquired.

Since
0.1.4
Parameters
oThe option set to work on
lbaThe block number of the session start on the medium. <0 means that no address has been determined yet.
Returns
1 success, <=0 failure

Definition at line 1496 of file isoburn.c.

References isoburn_imgen_opts::effective_lba.

Referenced by Xorriso_write_session().

◆ isoburn_igopt_get_efi_bootp()

int isoburn_igopt_get_efi_bootp ( struct isoburn_imgen_opts opts,
char **  path,
int  flag 
)

◆ isoburn_igopt_get_extensions()

◆ isoburn_igopt_get_fifo_size()

int isoburn_igopt_get_fifo_size ( struct isoburn_imgen_opts o,
int *  fifo_size 
)

Definition at line 1489 of file isoburn.c.

References isoburn_imgen_opts::fifo_size.

◆ isoburn_igopt_get_gpt_guid()

int isoburn_igopt_get_gpt_guid ( struct isoburn_imgen_opts opts,
uint8_t  guid[16],
int *  mode 
)

Inquire the current setting of isoburn_igopt_set_gpt_guid().

Since
1.4.6
Parameters
optsThe option set to be inquired.
guidReturns the current guid if current mode is 1.
modeReturns the current value.
Returns
<=0 = error, 1 = success

Definition at line 1930 of file isoburn.c.

References isoburn_imgen_opts::gpt_guid, and isoburn_imgen_opts::gpt_guid_mode.

◆ isoburn_igopt_get_hfsp_block_size()

int isoburn_igopt_get_hfsp_block_size ( struct isoburn_imgen_opts opts,
int *  hfsp_block_size,
int *  apm_block_size 
)

Inquire the current setting made by isoburn_igopt_set_hfsp_block_size

Since
1.2.4
Parameters
optsThe option set to be inquired.
hfsp_block_sizeWill be set to a value as described above. Except -1.
apm_block_sizeWill be set to a value as described above. Except -1.
Returns
<=0 = error, 1 = success

Definition at line 2000 of file isoburn.c.

References isoburn_imgen_opts::apm_block_size, and isoburn_imgen_opts::hfsp_block_size.

◆ isoburn_igopt_get_hfsp_serial_number()

int isoburn_igopt_get_hfsp_serial_number ( struct isoburn_imgen_opts opts,
uint8_t  serial_number[8] 
)

Inquire the current setting made by isoburn_igopt_set_disc_label()

Since
1.2.4
Parameters
optsThe option set to be inquired.
serial_numberWill get filled with the current setting.
Returns
<=0 = error, 1 = success

Definition at line 1963 of file isoburn.c.

References isoburn_imgen_opts::hfsp_serial_number.

◆ isoburn_igopt_get_iso_mbr_part_type()

int isoburn_igopt_get_iso_mbr_part_type ( struct isoburn_imgen_opts opts,
int *  part_type 
)

Inquire the current setting of isoburn_igopt_set_iso_mbr_part_type().

Since
1.4.8
Parameters
optsThe option set to be inquired.
part_typeReturns the current value: -1, 0x00 to 0xff.
Returns
<=0 = error, 1 = success

Definition at line 1888 of file isoburn.c.

References isoburn_imgen_opts::iso_mbr_part_type.

◆ isoburn_igopt_get_iso_type_guid()

int isoburn_igopt_get_iso_type_guid ( struct isoburn_imgen_opts opts,
uint8_t  guid[16] 
)

Inquire the current setting of isoburn_igopt_set_iso_type_guid().

Since
1.5.2
Parameters
optsThe option set to be inquired.
guidGets filled with the 16 bytes of GUID.
Returns
<= error, 0= guid is invalid, 1 = guid is valid

Definition at line 1906 of file isoburn.c.

References isoburn_imgen_opts::iso_gpt_flag, and isoburn_imgen_opts::iso_gpt_type_guid.

◆ isoburn_igopt_get_level()

int isoburn_igopt_get_level ( struct isoburn_imgen_opts o,
int *  level 
)

Definition at line 1246 of file isoburn.c.

References isoburn_imgen_opts::level.

◆ isoburn_igopt_get_out_charset()

int isoburn_igopt_get_out_charset ( struct isoburn_imgen_opts o,
char **  output_charset 
)

Definition at line 1474 of file isoburn.c.

References isoburn_imgen_opts::output_charset.

◆ isoburn_igopt_get_over_mode()

int isoburn_igopt_get_over_mode ( struct isoburn_imgen_opts o,
int *  replace_dir_mode,
int *  replace_file_mode,
mode_t *  dir_mode,
mode_t *  file_mode 
)

◆ isoburn_igopt_get_over_ugid()

int isoburn_igopt_get_over_ugid ( struct isoburn_imgen_opts o,
int *  replace_uid,
int *  replace_gid,
uid_t *  uid,
gid_t *  gid 
)

◆ isoburn_igopt_get_part_flags()

int isoburn_igopt_get_part_flags ( struct isoburn_imgen_opts opts,
int  num_entries,
int  part_flags[] 
)

Inquire the current settings made by isoburn_igopt_set_part_flags().

Since
1.4.0
Parameters
optsThe option set to be inquired.
num_entriesNumber of array elements in part_flags[].
part_flagsThe array elements 0 to num_entries - 1 will get filled by the flag bits of the images of the corresponding partition.
Returns
<0 = error 0 = no partition image set >0 highest used partition number

Definition at line 1774 of file isoburn.c.

References isoburn_imgen_opts::appended_part_flags, and Libisoburn_max_appended_partitionS.

◆ isoburn_igopt_get_part_like_isohybrid()

int isoburn_igopt_get_part_like_isohybrid ( struct isoburn_imgen_opts opts,
int *  alike 
)

Inquire the current setting of isoburn_igopt_set_part_like_isohybrid().

Since
1.4.4
Parameters
optsThe option set to be inquired.
alikeReturns the current value.
Returns
<=0 = error, 1 = success

Definition at line 1870 of file isoburn.c.

References isoburn_imgen_opts::part_like_isohybrid.

◆ isoburn_igopt_get_part_offset()

int isoburn_igopt_get_part_offset ( struct isoburn_imgen_opts opts,
uint32_t *  block_offset_2k,
int *  secs_512_per_head,
int *  heads_per_cyl 
)

◆ isoburn_igopt_get_part_type_guid()

int isoburn_igopt_get_part_type_guid ( struct isoburn_imgen_opts opts,
int  num_entries,
uint8_t  guids[][16],
int  valids[] 
)

Inquire the current settings made by isoburn_igopt_set_part_type_guid().

Since
1.5.2
Parameters
optsThe option set to be inquired.
num_entriesNumber of array elements in part_flags[].
type_guidsThe array elements 0 to num_entries - 1 will get filled by the 16 flag bits of the images of the corresponding partition.
validsThe array elements 0 to num_entries - 1 will get filled by 1 or 0 to indicate whether the corresponding type_guids element is valid.
Returns
<0 = error 0 = no partition image set >0 highest used partition number

Definition at line 1827 of file isoburn.c.

References isoburn_imgen_opts::appended_part_gpt_flags, isoburn_imgen_opts::appended_part_type_guids, and Libisoburn_max_appended_partitionS.

◆ isoburn_igopt_get_partition_img()

int isoburn_igopt_get_partition_img ( struct isoburn_imgen_opts opts,
int  num_entries,
uint8_t  partition_types[],
char *  image_paths[] 
)

Inquire the current settings made by isoburn_igopt_set_partition_img().

Since
0.6.4
Parameters
optsThe option set to be inquired.
num_entriesNumber of array elements in partition_types[] and image_paths[].
partition_typesThe partition type associated with the partition. Valid only if image_paths[] of the same index is not NULL.
image_pathsIts elements get filled with either NULL or a pointer to a string with a file address or an empty text.
Returns
<0 = error 0 = no partition image set >0 highest used partition number

Definition at line 1735 of file isoburn.c.

References isoburn_imgen_opts::appended_part_types, isoburn_imgen_opts::appended_partitions, and Libisoburn_max_appended_partitionS.

◆ isoburn_igopt_get_prep_partition()

int isoburn_igopt_get_prep_partition ( struct isoburn_imgen_opts opts,
char **  path,
int  flag 
)

◆ isoburn_igopt_get_pvd_times()

int isoburn_igopt_get_pvd_times ( struct isoburn_imgen_opts opts,
time_t *  vol_creation_time,
time_t *  vol_modification_time,
time_t *  vol_expiration_time,
time_t *  vol_effective_time,
char  vol_uuid[17] 
)

◆ isoburn_igopt_get_relaxed()

◆ isoburn_igopt_get_rr_reloc()

int isoburn_igopt_get_rr_reloc ( struct isoburn_imgen_opts o,
char **  name,
int *  flags 
)

Obtain the settings of isoburn_igopt_set_rr_reloc().

Since
1.2.2
Parameters
oThe option set to work on
nameWill return NULL or a pointer to the name of the relocation directory in the root directory. Do not alter or dispose the memory which holds this name.
flagsWill return the flags bitfield.
Returns
> 0 success, <= 0 failure

Definition at line 1351 of file isoburn.c.

References isoburn_imgen_opts::rr_reloc_dir, and isoburn_imgen_opts::rr_reloc_flags.

◆ isoburn_igopt_get_scdbackup_tag()

int isoburn_igopt_get_scdbackup_tag ( struct isoburn_imgen_opts o,
char  name[81],
char  timestamp[19],
char **  tag_written 
)

◆ isoburn_igopt_get_sort_files()

int isoburn_igopt_get_sort_files ( struct isoburn_imgen_opts o,
int *  value 
)

Definition at line 1412 of file isoburn.c.

References isoburn_imgen_opts::sort_files.

◆ isoburn_igopt_get_stdio_endsync()

int isoburn_igopt_get_stdio_endsync ( struct isoburn_imgen_opts opts,
int *  do_sync 
)

Definition at line 2031 of file isoburn.c.

References isoburn_imgen_opts::do_fsync.

◆ isoburn_igopt_get_system_area()

int isoburn_igopt_get_system_area ( struct isoburn_imgen_opts opts,
char  data[32768],
int *  options 
)

◆ isoburn_igopt_get_tail_blocks()

int isoburn_igopt_get_tail_blocks ( struct isoburn_imgen_opts opts,
uint32_t *  num_blocks 
)

Definition at line 1646 of file isoburn.c.

References isoburn_imgen_opts::tail_blocks.

◆ isoburn_igopt_get_untranslated_name_len()

int isoburn_igopt_get_untranslated_name_len ( struct isoburn_imgen_opts o,
int *  len 
)

Definition at line 1397 of file isoburn.c.

References isoburn_imgen_opts::untranslated_name_len.

◆ isoburn_igopt_get_write_type()

int isoburn_igopt_get_write_type ( struct isoburn_imgen_opts opts,
int *  do_tao 
)

Definition at line 2018 of file isoburn.c.

References isoburn_imgen_opts::do_tao.

◆ isoburn_igopt_new()

int isoburn_igopt_new ( struct isoburn_imgen_opts **  o,
int  flag 
)

Produces a set of generation and transfer options, initialized with default values.

Since
0.1.0
Parameters
othe newly created option set object
flagBitfield for control purposes. Submit 0 for now.
Returns
1=ok , <0 = failure

Definition at line 1125 of file isoburn.c.

References isoburn_imgen_opts::aaip, isoburn_imgen_opts::aaip_susp_1_10, isoburn_imgen_opts::allow_7bit_ascii, isoburn_imgen_opts::allow_deep_paths, isoburn_imgen_opts::allow_dir_id_ext, isoburn_imgen_opts::allow_full_ascii, isoburn_imgen_opts::allow_longer_paths, isoburn_imgen_opts::allow_lowercase, isoburn_imgen_opts::always_gmt, isoburn_imgen_opts::apm_block_size, isoburn_imgen_opts::appended_as_apm, isoburn_imgen_opts::appended_as_gpt, isoburn_imgen_opts::appended_part_flags, isoburn_imgen_opts::appended_part_gpt_flags, isoburn_imgen_opts::appended_part_type_guids, isoburn_imgen_opts::appended_part_types, isoburn_imgen_opts::appended_partitions, isoburn_imgen_opts::data_start_lba, isoburn_imgen_opts::dir_mode, isoburn_imgen_opts::dir_rec_mtime, isoburn_imgen_opts::do_fsync, isoburn_imgen_opts::do_tao, isoburn_imgen_opts::effective_lba, isoburn_imgen_opts::efi_boot_part_flag, isoburn_imgen_opts::efi_boot_partition, isoburn_imgen_opts::fifo_size, isoburn_imgen_opts::file_md5, isoburn_imgen_opts::file_mode, isoburn_imgen_opts::gid, isoburn_imgen_opts::gpt_guid, isoburn_imgen_opts::gpt_guid_mode, isoburn_imgen_opts::hardlinks, isoburn_imgen_opts::hfsp_block_size, isoburn_imgen_opts::hfsp_serial_number, isoburn_imgen_opts::iso1999, isoburn_imgen_opts::iso_mbr_part_type, isoburn_msgs_submit(), isoburn_imgen_opts::joliet, isoburn_imgen_opts::joliet_long_names, isoburn_imgen_opts::joliet_longer_paths, isoburn_imgen_opts::joliet_utf16, isoburn_imgen_opts::level, Libisoburn_max_appended_partitionS, isoburn_imgen_opts::libjte_handle, isoburn_imgen_opts::max_37_char_filenames, isoburn_imgen_opts::no_emul_toc, isoburn_imgen_opts::no_force_dots, isoburn_imgen_opts::old_empty, isoburn_imgen_opts::omit_version_numbers, isoburn_imgen_opts::output_charset, isoburn_imgen_opts::part_like_isohybrid, isoburn_imgen_opts::partition_heads_per_cyl, isoburn_imgen_opts::partition_offset, isoburn_imgen_opts::partition_secs_per_head, isoburn_imgen_opts::prep_part_flag, isoburn_imgen_opts::prep_partition, isoburn_imgen_opts::replace_dir_mode, isoburn_imgen_opts::replace_file_mode, isoburn_imgen_opts::replace_gid, isoburn_imgen_opts::replace_uid, isoburn_imgen_opts::rockridge, isoburn_imgen_opts::rr_reloc_dir, isoburn_imgen_opts::rr_reloc_flags, isoburn_imgen_opts::rrip_version_1_10, isoburn_imgen_opts::session_md5, isoburn_imgen_opts::sort_files, isoburn_imgen_opts::system_area_data, isoburn_imgen_opts::system_area_options, isoburn_imgen_opts::tail_blocks, isoburn_imgen_opts::uid, isoburn_imgen_opts::untranslated_name_len, isoburn_imgen_opts::vol_creation_time, isoburn_imgen_opts::vol_effective_time, isoburn_imgen_opts::vol_expiration_time, and isoburn_imgen_opts::vol_modification_time.

Referenced by Xorriso_relax_compliance(), Xorriso_test_outchar(), and Xorriso_write_session().

◆ isoburn_igopt_set_appended_as_apm()

int isoburn_igopt_set_appended_as_apm ( struct isoburn_imgen_opts opts,
int  apm 
)

Control whether partitions created by iso_write_opts_set_partition_img() are to be represented in Apple Partition Map.

Since
1.4.4
Parameters
optsThe option set to be manipulated.
apm0= do not represent appended partitions in APM 1= represent in APM, even if not iso_write_opts_set_part_like_isohybrid() enables it and no other APM partitions emerge. Do not use other values for now.
Returns
<=0 = error, 1 = success

Definition at line 1847 of file isoburn.c.

References isoburn_imgen_opts::appended_as_apm.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_appended_as_gpt()

int isoburn_igopt_set_appended_as_gpt ( struct isoburn_imgen_opts opts,
int  gpt 
)

Control whether partitions created by iso_write_opts_set_partition_img() are to be represented in MBR or as GPT partitions.

Since
1.4.0
Parameters
optsThe option set to be manipulated.
gpt0= represent as MBR partition; as GPT only if other GPT partitions are present 1= represent as GPT partition and cause protective MBR with a single partition which covers the whole output data. This may fail if other settings demand MBR partitions. Do not use other values for now.
Returns
<=0 = error, 1 = success

Definition at line 1790 of file isoburn.c.

References isoburn_imgen_opts::appended_as_gpt.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_disc_label()

int isoburn_igopt_set_disc_label ( struct isoburn_imgen_opts opts,
char *  label 
)

Set a name for the system area. This setting is ignored unless system area type 3 "SUN Disk Label" is in effect by iso_write_opts_set_system_area(). In this case it will replace the default text at the start of the image: "CD-ROM Disc with Sun sparc boot created by libisofs"

Since
0.6.6
Parameters
optsThe option set to be manipulated.
labelA text of up to 128 characters.
Returns
<=0 = error, 1 = success

Definition at line 1940 of file isoburn.c.

References isoburn_imgen_opts::ascii_disc_label, and Libisoburn_disc_label_sizE.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_efi_bootp()

int isoburn_igopt_set_efi_bootp ( struct isoburn_imgen_opts opts,
char *  path,
int  flag 
)

Copy a data file from the local filesystem into the emerging ISO image and mark it by a GPT entry as EFI system partition.

Since
1.2.4
Parameters
optsThe option set to be manipulated.
pathFile address in the local file system. Instead of a disk path, the word –efi-boot-image may be given. It exposes in GPT the content of the first El Torito EFI boot image as EFI system partition.
flagWith isoburn_igopt_get_efi_bootp(): Control bits as of iso_write_opts_set_efi_bootp() bit0= The path contains instructions for the interval libisofs reader. See libisofs.h.
Since
1.4.0 With isoburn_igopt_set_efi_bootp(): bit0= add the current flag setting & 0x3fffffff to return value 1.
Returns
1 success, <=0 failure

Definition at line 1683 of file isoburn.c.

References isoburn_imgen_opts::efi_boot_part_flag, isoburn_imgen_opts::efi_boot_partition, ISO_OUT_OF_MEM, and isoburn_report_iso_error().

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_extensions()

◆ isoburn_igopt_set_fifo_size()

int isoburn_igopt_set_fifo_size ( struct isoburn_imgen_opts o,
int  fifo_size 
)

The number of bytes to be used for the fifo which decouples libisofs and libburn for better throughput and for reducing the risk of interrupting signals hitting the libburn thread which operates the MMC drive. The size will be rounded up to the next full 2048. Minimum is 64kiB, maximum is 1 GiB (but that is too much anyway).

Since
0.1.0
Parameters
oThe option set to work on
fifo_sizeNumber of bytes to use
Returns
1 success, <=0 failure

Definition at line 1482 of file isoburn.c.

References isoburn_imgen_opts::fifo_size.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_gpt_guid()

int isoburn_igopt_set_gpt_guid ( struct isoburn_imgen_opts opts,
uint8_t  guid[16],
int  mode 
)

Control whether the emerging GPT gets a pseudo-randomly generated disk GUID or whether it gets a user supplied GUID. The partition GUIDs will be generated in a reproducible way by exoring a little-endian 32 bit counter with the disk GUID beginning at byte offset 9.

Since
1.4.6
Parameters
optsThe option set to be manipulated.
guid16 bytes of user supplied GUID. Readily byte-swapped from the text form as prescribed by UEFI specs: 4 byte, 2 byte, 2 byte as little-endian. 2 byte, 6 byte as big-endian. The upper 4 bit of guid[6] and guid[7] should bear the value 4 to express the version 4 in both endiannesses. Bit 7 of byte[8] should be set to 1 and bit 6 be set to 0, in order to express the RFC 4122 variant of GUID, where version 4 means "random".
mode0 = ignore parameter guid and produce the GPT disk GUID by a pseudo-random algorithm. This is the default setting. 1 = use parameter guid as GPT disk GUID 2 = ignore parameter guid and derive the GPT disk GUID from parameter uuid of isoburn_igopt_set_pvd_times(). The 16 bytes of uuid get copied and bytes 6, 7, 8 get their upper bits changed to comply to RFC 4122. If no such uuid is given when ISO production starts, then mode 2 defaults to mode 0.

Definition at line 1914 of file isoburn.c.

References isoburn_imgen_opts::gpt_guid, isoburn_imgen_opts::gpt_guid_mode, and isoburn_msgs_submit().

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_hfsp_block_size()

int isoburn_igopt_set_hfsp_block_size ( struct isoburn_imgen_opts opts,
int  hfsp_block_size,
int  apm_block_size 
)

Set the allocation block size for HFS+ production and the block size for layout and address unit of Apple Partition map.

Since
1.2.4
Parameters
optsThe option set to be manipulated.
hfsp_block_size-1 means that this setting shall be left unchanged 0 allows the automatic default setting 512 and 2048 enforce a size.
apm_block_size-1 means that this setting shall be left unchanged 0 allows the automatic default setting 512 and 2048 enforce a size. Size 512 cannot be combined with GPT production. Size 2048 cannot be mounted -t hfsplus by Linux kernels at least up to 2.6.32.
Returns
<=0 = error, 1 = success

Definition at line 1971 of file isoburn.c.

References isoburn_imgen_opts::apm_block_size, isoburn_imgen_opts::hfsp_block_size, and isoburn_msgs_submit().

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_hfsp_serial_number()

int isoburn_igopt_set_hfsp_serial_number ( struct isoburn_imgen_opts opts,
uint8_t  serial_number[8] 
)

Set a serial number for the HFS+ extension of the emerging ISO image.

Since
1.2.4
Parameters
optsThe option set to be manipulated.
serial_number8 bytes which should be unique to the image. If all bytes are 0, then the serial number will be generated as random number by libisofs. This is the default setting.
Returns
<=0 = error, 1 = success

Definition at line 1955 of file isoburn.c.

References isoburn_imgen_opts::hfsp_serial_number.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_iso_mbr_part_type()

int isoburn_igopt_set_iso_mbr_part_type ( struct isoburn_imgen_opts opts,
int  part_type 
)

Set the partition type of the MBR partition which represents the ISO filesystem or at least protects it. This is without effect if no such partition emerges by other settings or if the partition type is prescribed mandatorily like 0xee for GPT protective MBR or 0x96 for CHRP.

Since
1.4.8
Parameters
optsThe option set to be manipulated.
part_type0x00 to 0xff as desired partition type. Any other value (e.g. -1) enables the default types of the various occasions.

Definition at line 1878 of file isoburn.c.

References isoburn_imgen_opts::iso_mbr_part_type.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_iso_type_guid()

int isoburn_igopt_set_iso_type_guid ( struct isoburn_imgen_opts opts,
uint8_t  guid[16],
int  valid 
)

Set the GPT Type GUID for the partition which represents the ISO 9660 filesystem, if such a partition emerges in GPT.

Since
1.5.2
Parameters
optsThe option set to be manipulated.
guid16 bytes of user supplied GUID. Readily byte-swapped from the text form as prescribed by UEFI specs: 4 byte, 2 byte, 2 byte as little-endian. 2 byte, 6 byte as big-endian.
validSet to 1 to make this Type GUID valid. Set to 0 in order to invalidate a previously made setting. In this case the setting of isoburn_igopt_set_iso_mbr_part_type() or its default gets into effect.
Returns
<=0 = error, 1 = success

Definition at line 1896 of file isoburn.c.

References isoburn_imgen_opts::iso_gpt_flag, and isoburn_imgen_opts::iso_gpt_type_guid.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_level()

int isoburn_igopt_set_level ( struct isoburn_imgen_opts o,
int  level 
)

ISO level to write at.

Since
0.1.0
Parameters
oThe option set to work on
levelis a term of the ISO 9660 standard. It should be one of: 1= filenames restricted to form 8.3 2= filenames allowed up to 31 characters 3= file content may be larger than 4 GB - 1.
Returns
1 success, <=0 failure

Definition at line 1239 of file isoburn.c.

References isoburn_imgen_opts::level.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_out_charset()

int isoburn_igopt_set_out_charset ( struct isoburn_imgen_opts o,
char *  output_charset 
)

Set the character set to use for representing RR filenames in the image.

Since
0.1.0
Parameters
oThe option set to work on
output_charsetSet this to NULL to use the default output charset. For selecting a particular character set, submit its name, e.g. as listed by program iconv -l. Example: "UTF-8".
Returns
1 success, <=0 failure

Definition at line 1466 of file isoburn.c.

References isoburn_imgen_opts::output_charset.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_over_mode()

int isoburn_igopt_set_over_mode ( struct isoburn_imgen_opts o,
int  replace_dir_mode,
int  replace_file_mode,
mode_t  dir_mode,
mode_t  file_mode 
)

Set the override values for files and directory permissions. The parameters replace_* these take one of three values: 0, 1 or 2. If 0, the corresponding attribute will be kept as set in the IsoNode at the time of image generation. If set to 1, the corresponding attrib. will be changed by a default suitable value. With value 2, the attrib. will be changed with the value specified in the corresponding *_mode options. Note that only the permissions are set, the file type remains unchanged.

Since
0.1.0
Parameters
oThe option set to work on
replace_dir_modewhether and how to override directories
replace_file_modewhether and how to override files of other type
dir_modeMode to use on dirs with replace_dir_mode == 2.
file_mode;Mode to use on files with replace_file_mode == 2.
Returns
1 success, <=0 failure

Definition at line 1419 of file isoburn.c.

References isoburn_imgen_opts::dir_mode, isoburn_imgen_opts::file_mode, isoburn_imgen_opts::replace_dir_mode, and isoburn_imgen_opts::replace_file_mode.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_over_ugid()

int isoburn_igopt_set_over_ugid ( struct isoburn_imgen_opts o,
int  replace_uid,
int  replace_gid,
uid_t  uid,
gid_t  gid 
)

Set the override values values for group id and user id. The rules are like with above overriding of mode values. replace_* controls whether and how. The other two parameters provide values for eventual use.

Since
0.1.0
Parameters
oThe option set to work on
replace_uidwhether and how to override user ids
replace_gidwhether and how to override group ids
uidUser id to use with replace_uid == 2.
gidGroup id to use on files with replace_gid == 2.
Returns
1 success, <=0 failure

Definition at line 1443 of file isoburn.c.

References isoburn_imgen_opts::gid, isoburn_imgen_opts::replace_gid, isoburn_imgen_opts::replace_uid, and isoburn_imgen_opts::uid.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_part_flag()

int isoburn_igopt_set_part_flag ( struct isoburn_imgen_opts opts,
int  partition_number,
int  flag 
)

Set flag bits for a partition defined by isoburn_igopt_set_partition_img(). The bits will be forwarded to libisofs iso_write_opts_set_partition_img().

Since
1.4.0
Parameters
optsThe option set to be manipulated.
partition_numberDepicts the partition table entry to which shall the flags bits shall apply.
flagControl bits as of iso_write_opts_set_partition_img() bit0= The path contains instructions for the interval libisofs reader. See libisofs.h.
Since
1.4.0
Returns
<=0 = error, 1 = success

Definition at line 1757 of file isoburn.c.

References isoburn_imgen_opts::appended_part_flags, isoburn_msgs_submit(), and Libisoburn_max_appended_partitionS.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_part_like_isohybrid()

int isoburn_igopt_set_part_like_isohybrid ( struct isoburn_imgen_opts opts,
int  alike 
)

Control whether bits 2 to 8 of el_torito_set_isolinux_options() shall apply even if not isohybrid MBR patching is enabled (bit1 of parameter options of isoburn_igopt_set_system_area()). For details see iso_write_opts_set_part_like_isohybrid() in libisofs.h.

Since
1.4.4
Parameters
optsThe option set to be manipulated.
alike0= Apply isohybrid behavior only with ISOLINUX isohybrid. Do not mention appended partitions in APM unless isoburn_igopt_set_appended_as_apm() is enabled. 1= Apply isohybrid behavior even without ISOLINUX isohybrid.
Returns
<=0 = error, 1 = success

Definition at line 1862 of file isoburn.c.

References isoburn_imgen_opts::part_like_isohybrid.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_part_offset()

int isoburn_igopt_set_part_offset ( struct isoburn_imgen_opts opts,
uint32_t  block_offset_2k,
int  secs_512_per_head,
int  heads_per_cyl 
)

Control production of a second set of volume descriptors (superblock) and directory trees, together with a partition table in the MBR where the first partition has non-zero start address and the others are zeroed. The first partition stretches to the end of the whole ISO image. The additional volume descriptor set and trees can be used to mount the ISO image at the start of the first partition, while it is still possible to mount it via the normal first volume descriptor set and tree at the start of the image or storage device. This makes few sense on optical media. But on USB sticks it creates a conventional partition table which makes it mountable on e.g. Linux via /dev/sdb and /dev/sdb1 alike.

Since
0.6.2
Parameters
optsThe option set to be manipulated.
block_offset_2kThe offset of the partition start relative to device start. This is counted in 2 kB blocks. The partition table will show the according number of 512 byte sectors. Default is 0 which causes no second set and trees. If it is not 0 then it must not be smaller than 16.
secs_512_per_headNumber of 512 byte sectors per head. 1 to 63. 0=automatic.
heads_per_cylNumber of heads per cylinder. 1 to 255. 0=automatic.
Returns
1 success, <=0 failure

Definition at line 1597 of file isoburn.c.

References isoburn_imgen_opts::partition_heads_per_cyl, isoburn_imgen_opts::partition_offset, and isoburn_imgen_opts::partition_secs_per_head.

Referenced by Xorriso_set_system_area().

◆ isoburn_igopt_set_part_type_guid()

int isoburn_igopt_set_part_type_guid ( struct isoburn_imgen_opts opts,
int  partition_number,
uint8_t  guid[16],
int  valid 
)

Set the GPT Type GUID for a partition defined by isoburn_igopt_set_partition_img().

Since
1.5.2
Parameters
optsThe option set to be manipulated.
partition_numberDepicts the partition table entry which shall get the Type GUID.
guid16 bytes of user supplied GUID. Readily byte-swapped from the text form as prescribed by UEFI specs: 4 byte, 2 byte, 2 byte as little-endian. 2 byte, 6 byte as big-endian.
validSet to 1 to make this Type GUID valid. Set to 0 in order to invalidate a previously made setting. In this case MBR type 0xEF will become the EFI Type GUID. All others will become the Basic Data Partition Type GUID.
Returns
<=0 = error, 1 = success

Definition at line 1805 of file isoburn.c.

References isoburn_imgen_opts::appended_part_gpt_flags, isoburn_imgen_opts::appended_part_type_guids, isoburn_msgs_submit(), and Libisoburn_max_appended_partitionS.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_partition_img()

int isoburn_igopt_set_partition_img ( struct isoburn_imgen_opts opts,
int  partition_number,
uint8_t  partition_type,
char *  image_path 
)

Cause an arbitrary data file to be appended to the ISO image and to be described by a partition table entry in an MBR or SUN Disk Label at the start of the ISO image. The partition entry will bear the size of the image file rounded up to the next multiple of 2048 bytes. MBR or SUN Disk Label are selected by isoburn_igopt_set_system_area() system area type: 0 selects MBR partition table. 3 selects a SUN partition table with 320 kB start alignment.

Since
0.6.4
Parameters
optsThe option set to be manipulated.
partition_numberDepicts the partition table entry which shall describe the appended image. Range with MBR: 1 to 4. 1 will cause the whole ISO image to be unclaimable space before partition 1.
Since
0.6.6 Range with SUN Disk Label: 2 to 8.
Parameters
image_pathFile address in the local file system. With SUN Disk Label: an empty name causes the partition to become a copy of the next lower partition.
partition_typeThe MBR partition type. E.g. FAT12 = 0x01 , FAT16 = 0x06, Linux Native Partition = 0x83. See fdisk command L. This parameter is ignored with SUN Disk Label.
Returns
<=0 = error, 1 = success

Definition at line 1712 of file isoburn.c.

References isoburn_imgen_opts::appended_part_types, isoburn_imgen_opts::appended_partitions, isoburn_msgs_submit(), and Libisoburn_max_appended_partitionS.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_prep_partition()

int isoburn_igopt_set_prep_partition ( struct isoburn_imgen_opts opts,
char *  path,
int  flag 
)

Copy a data file from the local filesystem into the emerging ISO image. Mark it by an MBR partition entry as PreP partition and also cause protective MBR partition entries before and after this partition. See libisofs.h iso_write_opts_set_prep_img().

Since
1.2.4
Parameters
optsThe option set to be manipulated.
pathFile address in the local file system.
flagWith isoburn_igopt_set_prep_partition(): Control bits as of iso_write_opts_set_efi_bootp() bit0= The path contains instructions for the interval libisofs reader. See libisofs.h.
Since
1.4.0 With isoburn_igopt_get_prep_partition(): bit0= add the current flag setting & 0x3fffffff to return value 1.
Returns
1 success, <=0 failure

Definition at line 1654 of file isoburn.c.

References ISO_OUT_OF_MEM, isoburn_report_iso_error(), isoburn_imgen_opts::prep_part_flag, and isoburn_imgen_opts::prep_partition.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_pvd_times()

int isoburn_igopt_set_pvd_times ( struct isoburn_imgen_opts opts,
time_t  creation_time,
time_t  modification_time,
time_t  expiration_time,
time_t  effective_time,
char *  uuid 
)

Explicitly set the four timestamps of the emerging ISO image. Default with all parameters is 0.

Since
0.5.4
Parameters
optsThe option set to work on
creation_timeECMA-119 Volume Creation Date and Time When "the information in the volume was created." A value of 0 means that the timepoint of write start is to be used.
modification_timeECMA-119 Volume Modification Date and Time When "the informationin the volume was last modified." A value of 0 means that the timepoint of write start is to be used.
expiration_timeECMA-119 Volume Expiration Date and Time When "the information in the volume may be regarded as obsolete." A value of 0 means that the information never shall expire.
effective_timeECMA-119 Volume Effective Date and Time When "the information in the volume may be used." A value of 0 means that not such retention is intended.
uuidIf this text is not empty, then it overrides vol_modification_time by copying the first 16 decimal digits from uuid, eventually padding up with decimal '1', and writing a NUL-byte as timezone GMT. It should express a reasonable time in form YYYYMMDDhhmmsscc E.g.: 2010040711405800 = 7 Apr 2010 11:40:58 (+0 centiseconds)
Returns
1 success, <=0 failure

Definition at line 1568 of file isoburn.c.

References isoburn_imgen_opts::vol_creation_time, isoburn_imgen_opts::vol_effective_time, isoburn_imgen_opts::vol_expiration_time, isoburn_imgen_opts::vol_modification_time, and isoburn_imgen_opts::vol_uuid.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_relaxed()

◆ isoburn_igopt_set_rr_reloc()

int isoburn_igopt_set_rr_reloc ( struct isoburn_imgen_opts o,
char *  name,
int  flags 
)

If not isoburn_igopt_allow_deep_paths is in effect, then it may become necessary to relocate directories so that no ECMA-119 file path has more than 8 components. These directories are grafted into either the root directory of the ISO image or into a dedicated relocation directory. For details see libisofs.h. Wrapper for: iso_write_opts_set_rr_reloc()

Since
1.2.2
Parameters
oThe option set to work on
nameThe name of the relocation directory in the root directory. Do not prepend "/". An empty name or NULL will direct relocated directories into the root directory. This is the default. If the given name does not exist in the root directory when isoburn_disc_write() is called, and if there are directories at path level 8, then directory /name will be created automatically.
flagsBitfield for control purposes. bit0= Mark the relocation directory by a Rock Ridge RE entry, if it gets created during isoburn_disc_write(). This will make it invisible for most Rock Ridge readers. bit1= not settable via API (used internally)
Returns
> 0 success, <= 0 failure

Definition at line 1329 of file isoburn.c.

References isoburn_msgs_submit(), isoburn_imgen_opts::rr_reloc_dir, and isoburn_imgen_opts::rr_reloc_flags.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_scdbackup_tag()

int isoburn_igopt_set_scdbackup_tag ( struct isoburn_imgen_opts o,
char *  name,
char *  timestamp,
char *  tag_written 
)

Set or get parameters "name" and "timestamp" for a scdbackup checksum tag. It will be appended to the libisofs session tag if the image starts at LBA 0. See isoburn_disc_track_lba_nwa. The scdbackup tag can be used to verify the image by command scdbackup_verify $device -auto_end. See scdbackup/README appendix VERIFY for its inner details.

Since
0.4.4
Parameters
oThe option set to work on
nameThe tag name. 80 characters max. An empty name disables production of an scdbackup tag.
timestampA string of up to 13 characters YYMMDD.hhmmss A9 = 2009, B0 = 2010, B1 = 2011, ... C0 = 2020, ...
tag_writtenEither NULL or the address of an array with at least 512 characters. In the latter case the eventually produced scdbackup tag will be copied to this array when the image gets written. This call sets scdbackup_tag_written[0] = 0 to mark its preliminary invalidity.
Returns
1 success, <=0 failure

Definition at line 1510 of file isoburn.c.

References isoburn_imgen_opts::scdbackup_tag_name, isoburn_imgen_opts::scdbackup_tag_time, and isoburn_imgen_opts::scdbackup_tag_written.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_sort_files()

int isoburn_igopt_set_sort_files ( struct isoburn_imgen_opts o,
int  value 
)

Definition at line 1405 of file isoburn.c.

References isoburn_imgen_opts::sort_files.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_stdio_endsync()

int isoburn_igopt_set_stdio_endsync ( struct isoburn_imgen_opts opts,
int  do_sync 
)

Set or inquire whether a final fsync(2) is performed when updating the multi-session information of libburn stdio pseudo-drives by isoburn_activate_session(). Note: fsync(2) calls during and at the end of isoburn_disc_write() are controlled by libburn call burn_write_opts_set_stdio_fsync().

Since
1.2.4
Parameters
optsThe option set to be manipulated or inquired.
do_sync1= call fsync(2) with stdio drives in isoburn_activate_session() 0= do not
Returns
<=0 = error, 1 = success

Definition at line 2024 of file isoburn.c.

References isoburn_imgen_opts::do_fsync.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_system_area()

int isoburn_igopt_set_system_area ( struct isoburn_imgen_opts o,
char  data[32768],
int  options 
)

Attach 32 kB of binary data which shall get written to the first 32 kB of the ISO image, the System Area. options can cause manipulations of these data before writing happens. If system area data are giveni or options bit0 is set, then bit1 of el_torito_set_isolinux_options() is automatically disabled.

Since
0.5.4
Parameters
oThe option set to work on
dataEither NULL or 32 kB of data. Do not submit less bytes !
optionsCan cause manipulations of submitted data before they get written: bit0= apply a –protective-msdos-label as of grub-mkisofs. This means to patch bytes 446 to 512 of the system area so that one partition is defined which begins at the second 512-byte block of the image and ends where the image ends. This works with and without system_area_data. bit1= apply isohybrid MBR patching to the system area. This works only with system area data from SYSLINUX plus an ISOLINUX boot image (see iso_image_set_boot_image()) and only if not bit0 is set. bit2-7= System area type 0= with bit0 or bit1: MBR else: unspecified type
Since
0.6.4 1= MIPS Big Endian Volume Header Submit up to 15 MIPS Big Endian boot files by iso_image_add_mips_boot_file() of libisofs. This will overwrite the first 512 bytes of the submitted data. 2= DEC Boot Block for MIPS Little Endian The first boot file submitted by iso_image_add_mips_boot_file() will be activated. This will overwrite the first 512 bytes of the submitted data.
0.6.6 3= SUN Disk Label for SUN SPARC Submit up to 7 SPARC boot images by isoburn_igopt_set_partition_img() for partition numbers 2 to 8. This will overwrite the first 512 bytes of the submitted data.
1.3.8 4= HP-PA PALO boot sector header version 4 Submit all five parameters of iso_image_set_hppa_palo() as non-NULL texts. 5= HP-PA PALO boot sector header version 5 Submit all five parameters of iso_image_set_hppa_palo() as non-NULL texts. bit8-9= Only with System area type 0 = MBR
1.0.4 Cylinder alignment mode eventually pads the image to make it end at a cylinder boundary. 0 = auto (align if bit1) 1 = always align to cylinder boundary 2 = never align to cylinder boundary bit10-13= System area sub type
1.2.4 With type 0 = MBR: Gets overridden by bit0 and bit1. 0 = no particular sub type 1 = CHRP: A single MBR partition of type 0x96 covers the ISO image. Not compatible with any other feature which needs to have own MBR partition entries. bit14= Only with System area type 0 = MBR GRUB2 boot provisions:
1.3.0 Patch system area at byte 0x1b0 to 0x1b7 with (512-block address + 4) of the first boot image file. Little-endian 8-byte. Should be combined with options bit0. Will not be in effect if options bit1 is set.
Returns
1 success, 0 no data to get, <0 failure

Definition at line 1537 of file isoburn.c.

References isoburn_imgen_opts::system_area_data, and isoburn_imgen_opts::system_area_options.

Referenced by Xorriso_set_system_area().

◆ isoburn_igopt_set_tail_blocks()

int isoburn_igopt_set_tail_blocks ( struct isoburn_imgen_opts opts,
uint32_t  num_blocks 
)

Set or get the number of trailing zero byte blocks to be written by libisofs. The image size counter of the emerging ISO image will include them. Eventual checksums will take them into respect. They will be written immediately before the eventual image checksum area which is at the very end of the image. For a motivation see iso_write_opts_set_tail_blocks() in libisofs.h .

Since
0.6.4
Parameters
optsThe option set to work on
num_blocksNumber of extra 2 kB blocks to be written by libisofs.
Returns
1 success, <=0 failure

Definition at line 1639 of file isoburn.c.

References isoburn_imgen_opts::tail_blocks.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_igopt_set_untranslated_name_len()

int isoburn_igopt_set_untranslated_name_len ( struct isoburn_imgen_opts o,
int  len 
)

Caution: This option breaks any assumptions about names that are supported by ECMA-119 specifications. Try to 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_full_ascii. Further it prevents the conversion from local character set to ASCII. The maximum name length is given by this call. If a filename exceeds this length or cannot be recorded untranslated for other reasons, then image production gets aborted. Currently the length limit is 96 characters, because an ECMA-119 directory record may at most have 254 bytes and up to 158 other bytes must fit into the record. Probably 96 more bytes can be made free for the name in future.

Since
1.0.0
Parameters
oThe option set to work on
len0 = disable this feature and perform name translation according to other settings. >0 = Omit any translation. Eventually abort image production if a name is longer than the given value. -1 = Like >0. Allow maximum possible length. isoburn_igopt_get_untranslated_name_len() will tell the effectively resulting value.
Returns
>0 success, <=0 failure

Definition at line 1360 of file isoburn.c.

References iso_write_opts_free(), iso_write_opts_new(), iso_write_opts_set_untranslated_name_len(), isoburn_msgs_submit(), and isoburn_imgen_opts::untranslated_name_len.

Referenced by Xorriso_make_iso_write_opts(), and Xorriso_relax_compliance().

◆ isoburn_igopt_set_write_type()

int isoburn_igopt_set_write_type ( struct isoburn_imgen_opts opts,
int  do_tao 
)

Set or inquire the write type for the next write run on optical media.

Since
1.2.4
Parameters
optsThe option set to be manipulated or inquired.
do_taoThe value to be set or the variable where to return the current setting: 0 = Let libburn choose according to other write parameters. This is advisable unless there are particular reasons not to use one of the two write types. Be aware that 1 and -1 can lead to failure if the write type is not appropriate for the given media situation. 1 = Use BURN_WRITE_TAO which does TAO on CD, Incremental on DVD-R, no track reservation on DVD+R and BD-R -1 = Use BURN_WRITE_SAO which does SAO on CD, DAO on DVD-R, track reservation on DVD+R and BD-R
Returns
<=0 = error, 1 = success

Definition at line 2009 of file isoburn.c.

References isoburn_imgen_opts::do_tao.

Referenced by Xorriso_make_iso_write_opts().

◆ isoburn_is_compatible()

int isoburn_is_compatible ( int  major,
int  minor,
int  micro,
int  flag 
)

Check whether all features of header file libisoburn.h from the given major.minor.micro revision triple can be delivered by the library version which is performing this call. An application of libisoburn can easily memorize the version of the libisoburn.h header in its own code. Immediately after isoburn_initialize() it should simply do this check: if (! isoburn_is_compatible(isoburn_header_version_major, isoburn_header_version_minor, isoburn_header_version_micro, 0)) ...refuse to start the program with this dynamic library version...

Since
0.1.0
Parameters
majorobtained at build time
minorobtained at build time
microobtained at build time
flagBitfield for control purposes. Unused yet. Submit 0.
Returns
1= library can work for caller 0= library is not usable in some aspects. Caller must restrict itself to an earlier API version or must not use this library at all.

Definition at line 824 of file isoburn.c.

References isoburn_version().

Referenced by Xorriso_startup_libraries().

◆ isoburn_link()

int isoburn_link ( struct isoburn o,
struct isoburn link,
int  flag 
)

Definition at line 251 of file isoburn.c.

References isoburn_list_start, isoburn::next, and isoburn::prev.

Referenced by isoburn_new().

◆ isoburn_make_iso_write_opts()

static int isoburn_make_iso_write_opts ( struct isoburn out_o,
struct isoburn_imgen_opts opts,
int  fifo_chunks,
IsoWriteOpts wopts,
int  flag 
)
static

Definition at line 402 of file isoburn.c.

References isoburn_imgen_opts::aaip, isoburn_imgen_opts::aaip_susp_1_10, isoburn_imgen_opts::allow_7bit_ascii, isoburn_imgen_opts::allow_deep_paths, isoburn_imgen_opts::allow_dir_id_ext, isoburn_imgen_opts::allow_full_ascii, isoburn_imgen_opts::allow_longer_paths, isoburn_imgen_opts::allow_lowercase, isoburn_imgen_opts::always_gmt, isoburn_imgen_opts::apm_block_size, isoburn_imgen_opts::appended_as_apm, isoburn_imgen_opts::appended_as_gpt, isoburn_imgen_opts::appended_part_flags, isoburn_imgen_opts::appended_part_gpt_flags, isoburn_imgen_opts::appended_part_type_guids, isoburn_imgen_opts::appended_part_types, isoburn_imgen_opts::appended_partitions, isoburn_imgen_opts::ascii_disc_label, isoburn_imgen_opts::dir_mode, isoburn_imgen_opts::dir_rec_mtime, isoburn::drive, isoburn_imgen_opts::effective_lba, isoburn_imgen_opts::efi_boot_part_flag, isoburn_imgen_opts::efi_boot_partition, isoburn::emulation_mode, isoburn_imgen_opts::fat, isoburn_imgen_opts::file_md5, isoburn_imgen_opts::file_mode, isoburn_imgen_opts::gid, isoburn_imgen_opts::gpt_guid, isoburn_imgen_opts::gpt_guid_mode, isoburn_imgen_opts::hardlinks, isoburn_imgen_opts::hfsp_block_size, isoburn_imgen_opts::hfsp_serial_number, isoburn_imgen_opts::hfsplus, isoburn_imgen_opts::iso1999, isoburn_imgen_opts::iso1999_rec_mtime, isoburn_imgen_opts::iso_gpt_flag, isoburn_imgen_opts::iso_gpt_type_guid, isoburn_imgen_opts::iso_mbr_part_type, iso_write_opts_attach_jte(), iso_write_opts_set_aaip(), iso_write_opts_set_aaip_susp_1_10(), iso_write_opts_set_allow_7bit_ascii(), iso_write_opts_set_allow_deep_paths(), iso_write_opts_set_allow_dir_id_ext(), iso_write_opts_set_allow_full_ascii(), iso_write_opts_set_allow_longer_paths(), iso_write_opts_set_allow_lowercase(), iso_write_opts_set_always_gmt(), iso_write_opts_set_appendable(), iso_write_opts_set_appended_as_apm(), iso_write_opts_set_appended_as_gpt(), iso_write_opts_set_default_dir_mode(), iso_write_opts_set_default_file_mode(), iso_write_opts_set_default_gid(), iso_write_opts_set_default_uid(), iso_write_opts_set_dir_rec_mtime(), iso_write_opts_set_disc_label(), iso_write_opts_set_efi_bootp(), iso_write_opts_set_fat(), iso_write_opts_set_fifo_size(), iso_write_opts_set_gpt_guid(), iso_write_opts_set_hardlinks(), iso_write_opts_set_hfsp_block_size(), iso_write_opts_set_hfsp_serial_number(), iso_write_opts_set_hfsplus(), iso_write_opts_set_iso1999(), iso_write_opts_set_iso_level(), iso_write_opts_set_iso_mbr_part_type(), iso_write_opts_set_iso_type_guid(), iso_write_opts_set_joliet(), iso_write_opts_set_joliet_long_names(), iso_write_opts_set_joliet_longer_paths(), iso_write_opts_set_joliet_utf16(), iso_write_opts_set_max_37_char_filenames(), iso_write_opts_set_ms_block(), iso_write_opts_set_no_force_dots(), iso_write_opts_set_old_empty(), iso_write_opts_set_omit_version_numbers(), iso_write_opts_set_output_charset(), iso_write_opts_set_overwrite_buf(), iso_write_opts_set_part_like_isohybrid(), iso_write_opts_set_part_offset(), iso_write_opts_set_part_type_guid(), iso_write_opts_set_partition_img(), iso_write_opts_set_prep_img(), iso_write_opts_set_pvd_times(), iso_write_opts_set_record_md5(), iso_write_opts_set_relaxed_vol_atts(), iso_write_opts_set_replace_mode(), iso_write_opts_set_rockridge(), iso_write_opts_set_rr_reloc(), iso_write_opts_set_rrip_1_10_px_ino(), iso_write_opts_set_rrip_version_1_10(), iso_write_opts_set_scdbackup_tag(), iso_write_opts_set_sort_files(), iso_write_opts_set_system_area(), iso_write_opts_set_tail_blocks(), iso_write_opts_set_untranslated_name_len(), iso_write_opts_set_will_cancel(), isoburn_adjust_target_iso_head(), isoburn_disc_track_lba_nwa(), isoburn_get_msc2(), isoburn_msgs_submit(), isoburn_report_iso_error(), isoburn_imgen_opts::joliet, isoburn_imgen_opts::joliet_long_names, isoburn_imgen_opts::joliet_longer_paths, isoburn_imgen_opts::joliet_rec_mtime, isoburn_imgen_opts::joliet_utf16, isoburn_imgen_opts::level, Libisoburn_max_appended_partitionS, Libisoburn_overwriteable_starT, isoburn_imgen_opts::libjte_handle, isoburn_imgen_opts::max_37_char_filenames, isoburn::min_start_byte, isoburn_imgen_opts::no_emul_toc, isoburn_imgen_opts::no_force_dots, burn_drive::nwa, isoburn::nwa, isoburn_imgen_opts::old_empty, isoburn_imgen_opts::omit_version_numbers, isoburn_imgen_opts::output_charset, isoburn_imgen_opts::part_like_isohybrid, isoburn_imgen_opts::partition_heads_per_cyl, isoburn_imgen_opts::partition_offset, isoburn_imgen_opts::partition_secs_per_head, isoburn_imgen_opts::prep_part_flag, isoburn_imgen_opts::prep_partition, isoburn_imgen_opts::replace_dir_mode, isoburn_imgen_opts::replace_file_mode, isoburn_imgen_opts::replace_gid, isoburn_imgen_opts::replace_uid, isoburn_imgen_opts::rockridge, isoburn_imgen_opts::rr_reloc_dir, isoburn_imgen_opts::rr_reloc_flags, isoburn_imgen_opts::rrip_version_1_10, isoburn_imgen_opts::scdbackup_tag_name, isoburn_imgen_opts::scdbackup_tag_time, isoburn_imgen_opts::scdbackup_tag_written, isoburn_imgen_opts::session_md5, isoburn_imgen_opts::sort_files, isoburn_imgen_opts::system_area_data, isoburn_imgen_opts::system_area_options, isoburn_imgen_opts::tail_blocks, isoburn::target_iso_head, isoburn_imgen_opts::uid, isoburn_imgen_opts::untranslated_name_len, isoburn_imgen_opts::vol_creation_time, isoburn_imgen_opts::vol_effective_time, isoburn_imgen_opts::vol_expiration_time, isoburn_imgen_opts::vol_modification_time, isoburn_imgen_opts::vol_uuid, isoburn_imgen_opts::will_cancel, and isoburn::zero_nwa.

Referenced by isoburn_conv_name_chars(), and isoburn_prepare_disc_aux().

◆ isoburn_msgs_submit()

◆ isoburn_new()

◆ isoburn_prepare_blind_grow()

int isoburn_prepare_blind_grow ( struct burn_drive in_drive,
struct burn_disc **  disc,
struct isoburn_imgen_opts opts,
struct burn_drive out_drive,
int  nwa 
)

Start production of an ISO 9660 image using the method of Blind Growing: Create a disc object for writing an add-on session from the created or loaded IsoImage which has been manipulated via libisofs, to a different drive than the one from where it was loaded. Usually output will be stdio:/dev/fd/1 (i.e. stdout) being piped into some burn program like with this classic gesture: mkisofs -M $dev -C $msc1,$nwa | cdrecord -waiti dev=$dev Parameter translation into libisoburn: $dev is the address by which parameter in_drive of this call was acquired $msc1 was set by isoburn_set_msc1() before image reading or was detected from the in_drive medium $nwa is a parameter of this call or can be used as detected from the in_drive medium

This call starts a libisofs thread which begins to produce the image. It has to be revoked by isoburn_cancel_prepared_write() if for some reason this image data stream shall not be consumed. This call waits for libisofs output to become available and then detaches the input drive object from the data source object by which libisofs was reading from the input drive. So, as far as libisofs is concerned, that drive may be released immediately after this call in order to allow the consumer to access the drive for writing. The consumer should wait for input to become available and only then open its burn drive. With cdrecord this is caused by option -waiti.

The resulting burn_disc object has to be disposed when all its writing is done and the drive is BURN_DRIVE_IDLE again after asynchronous burn_disc_write().

Since
0.2.2
Parameters
in_driveThe input drive,grabbed with isoburn_drive_scan_and_grab().
discReturns the newly created burn_disc object.
optsOptions for image generation and data transport to media.
out_driveThe output drive, from isoburn_drive_aquire() et.al.. typically stdio:/dev/fd/1 .
nwaThe address (2048 byte block count) where the add-on session will be finally stored on a mountable medium or in a mountable file. If nwa is -1 then the address is used as determined from the in_drive medium.
Returns
<=0 error , 1 = success

Definition at line 739 of file isoburn.c.

References isoburn::fabricated_msc2, isoburn_find_emulator(), isoburn_prepare_disc_aux(), isoburn::min_start_byte, isoburn::nwa, and isoburn::zero_nwa.

Referenced by Xorriso_write_session().

◆ isoburn_prepare_disc()

int isoburn_prepare_disc ( struct burn_drive drive,
struct burn_disc **  disc,
struct isoburn_imgen_opts opts 
)

Start production of an ISO 9660 image using the method of Growing: Create a disc object for writing the new session from the created or loaded iso_volset which has been manipulated via libisofs, to the same medium from where the image was eventually loaded. This call starts a libisofs thread which begins to produce the image. It has to be revoked by isoburn_cancel_prepared_write() if for some reason this image data stream shall not be consumed. The returned struct burn_disc is ready for use by a subsequent call to isoburn_disc_write(). After this asynchronous writing has ended and the drive is BURN_DRIVE_IDLE again, the burn_disc object has to be disposed by burn_disc_free().

Since
0.1.0
Parameters
driveThe combined source and target drive, grabbed with isoburn_drive_scan_and_grab(). .
discReturns the newly created burn_disc object.
optsImage generation options, see isoburn_igopt_*()
Returns
<=0 error , 1 = success

Definition at line 718 of file isoburn.c.

References isoburn_prepare_disc_aux().

Referenced by Xorriso_write_session().

◆ isoburn_prepare_disc_aux()

◆ isoburn_prepare_new_image()

int isoburn_prepare_new_image ( struct burn_drive in_drive,
struct burn_disc **  disc,
struct isoburn_imgen_opts opts,
struct burn_drive out_drive 
)

Start production of an ISO 9660 image using the method of Modifying: Create a disc object for producing a new image from a previous image plus the changes made by user. The generated burn_disc is suitable to be written to a grabbed drive with blank writeable medium. But you must not use the same drive for input and output, because data will be read from the source drive while at the same time the target drive is already writing. This call starts a libisofs thread which begins to produce the image. It has to be revoked by isoburn_cancel_prepared_write() if for some reason this image data stream shall not be consumed. The resulting burn_disc object has to be disposed when all its writing is done and the drive is BURN_DRIVE_IDLE again after asynchronous burn_disc_write().

Since
0.1.0
Parameters
in_driveThe input drive, grabbed with isoburn_drive_aquire() or one of its alternatives.
discReturns the newly created burn_disc object.
optsOptions for image generation and data transport to the medium.
out_driveThe output drive, from isoburn_drive_aquire() et.al..
Returns
<=0 error , 1 = success

Definition at line 725 of file isoburn.c.

References isoburn_prepare_disc_aux().

Referenced by Xorriso_write_session().

◆ isoburn_ropt_destroy()

int isoburn_ropt_destroy ( struct isoburn_read_opts **  o,
int  flag 
)

Deletes an option set which was created by isoburn_ropt_new().

Since
0.1.0
Parameters
oThe option set to work on
flagBitfield for control purposes. Submit 0 for now.
Returns
1= **o destroyed , 0= *o was already NULL (harmless)

Definition at line 886 of file isoburn.c.

Referenced by Xorriso_aquire_drive(), and Xorriso_create_empty_iso().

◆ isoburn_ropt_get_auto_incharset()

int isoburn_ropt_get_auto_incharset ( struct isoburn_read_opts o,
int *  mode 
)

Definition at line 1050 of file isoburn.c.

References isoburn_read_opts::auto_input_charset, and isoburn_read_opts::mode.

◆ isoburn_ropt_get_data_cache()

int isoburn_ropt_get_data_cache ( struct isoburn_read_opts o,
int *  cache_tiles,
int *  tile_blocks,
int *  set_flag,
int  flag 
)

Inquire the current settings of isoburn_set_data_cache().

Since
1.2.2
Parameters
oThe option set to work on. NULL has the same effect as flag bit0.
cache_tilesWill return the number of tiles in the cache.
tile_blocksWill return the number of blocks per tile.
set_flagWill return control bits. None are defined yet.
flagBitfield for control purposes bit0= return default values rather than current ones
Returns
<=0 error , >0 reply is valid

Definition at line 932 of file isoburn.c.

References isoburn_read_opts::cache_tile_blocks, isoburn_read_opts::cache_tiles, Libisoburn_default_cache_tileS, and Libisoburn_default_tile_blockS.

Referenced by Xorriso_set_data_cache().

◆ isoburn_ropt_get_default_dirperms()

int isoburn_ropt_get_default_dirperms ( struct isoburn_read_opts o,
mode_t *  mode 
)

Definition at line 1019 of file isoburn.c.

References isoburn_read_opts::dirmode, and isoburn_read_opts::mode.

◆ isoburn_ropt_get_default_perms()

int isoburn_ropt_get_default_perms ( struct isoburn_read_opts o,
uid_t *  uid,
gid_t *  gid,
mode_t *  mode 
)

◆ isoburn_ropt_get_displacement()

int isoburn_ropt_get_displacement ( struct isoburn_read_opts o,
uint32_t *  displacement,
int *  displacement_sign 
)

◆ isoburn_ropt_get_extensions()

◆ isoburn_ropt_get_input_charset()

int isoburn_ropt_get_input_charset ( struct isoburn_read_opts o,
char **  input_charset 
)

Definition at line 1035 of file isoburn.c.

References isoburn_read_opts::input_charset.

◆ isoburn_ropt_get_size_what()

int isoburn_ropt_get_size_what ( struct isoburn_read_opts o,
uint32_t *  size,
int *  has_what 
)

◆ isoburn_ropt_get_tree_loaded()

int isoburn_ropt_get_tree_loaded ( struct isoburn_read_opts o,
int *  tree,
int *  rr 
)

After calling function isoburn_read_image() there are information available in the option set about which tree was used for image loading and whether Rock Ridge information was actually used.

Since
1.5.4
Parameters
oThe option set to work on
treeThe tree which was loaded: 0= ISO 9660 , 1 = Joliet , 2 = ISO 9660:1999
rr1= Rock Ridge information was used, 0 = No Rock Ridge was used
Returns
1 success, <=0 failure

Definition at line 1109 of file isoburn.c.

References isoburn_read_opts::rr_loaded, and isoburn_read_opts::tree_loaded.

Referenced by Xorriso_aquire_drive().

◆ isoburn_ropt_get_truncate_mode()

int isoburn_ropt_get_truncate_mode ( struct isoburn_read_opts o,
int *  mode,
int *  length 
)

◆ isoburn_ropt_new()

◆ isoburn_ropt_set_auto_incharset()

int isoburn_ropt_set_auto_incharset ( struct isoburn_read_opts o,
int  mode 
)

Enable or disable methods to automatically choose an input charset. This eventually overrides the name set via isoburn_ropt_set_input_charset()

Since
0.3.8
Parameters
oThe option set to work on
modeBitfield for control purposes: bit0= set the input character set automatically from attribute "isofs.cs" of root directory. Submit any other bits with value 0.
Returns
1 success, <=0 failure

Definition at line 1043 of file isoburn.c.

References isoburn_read_opts::auto_input_charset, and isoburn_read_opts::mode.

Referenced by Xorriso_aquire_drive().

◆ isoburn_ropt_set_data_cache()

int isoburn_ropt_set_data_cache ( struct isoburn_read_opts o,
int  cache_tiles,
int  tile_blocks,
int  flag 
)

Sets the size and granularity of the cache which libisoburn provides to libisofs for reading of ISO image data. This cache consists of several tiles which are buffers of a given size. The ISO image is divided into virtual tiles of that size. A cache tile may hold an in-memory copy of such a virtual image tile. When libisofs requests to read a block, then first the cache is inquired whether it holds that block. If not, then the block is read via libburn together with its neighbors in their virtual image tile into a free cache tile. If no cache tile is free, then the one will be re-used which has the longest time of not being hit by a read attempt.

A larger cache might speed up image loading by reducing the number of libburn read calls on the directory tree. It might also help with reading the content of many small files, if for some reason it is not an option to sort access by LBA. Caching will not provide much benefit with libburn "stdio:" drives, because the operating system is supposed to provide the same speed-up in a more flexible way.

Since
1.2.2
Parameters
oThe option set to work on. It is permissible to submit NULL in order to just have the parameters tested.
cache_tilesNumber of tiles in the cache. Not less than 1. Default is 32.
tile_blocksNumber of blocks per tile. Must be a power of 2. Default is 32. cache_tiles * tile_blocks * 2048 must not exceed 1073741824 (= 1 GiB).
flagBitfield for control purposes. Unused yet. Submit 0.
Returns
<=0 error , >0 ok

Definition at line 896 of file isoburn.c.

References isoburn_read_opts::cache_tile_blocks, isoburn_read_opts::cache_tiles, isoburn_msgs_submit(), and Libisoburn_cache_max_sizE.

Referenced by Xorriso_create_empty_iso(), and Xorriso_set_data_cache().

◆ isoburn_ropt_set_default_dirperms()

int isoburn_ropt_set_default_dirperms ( struct isoburn_read_opts o,
mode_t  mode 
)

Default attributes to use on directories if no RockRidge extension gets loaded. Above call isoburn_ropt_set_default_perms() automatically adds x-permissions to r-permissions for directories. This call here may be done afterwards to set independent permissions for directories, especially to override the automatically added x-permissions.

Since
0.1.0
Parameters
oThe option set to work on
modepermissions (not file type) as of man 2 stat.
Returns
1 success, <=0 failure

Definition at line 1011 of file isoburn.c.

References isoburn_read_opts::dirmode, and isoburn_read_opts::mode.

◆ isoburn_ropt_set_default_perms()

int isoburn_ropt_set_default_perms ( struct isoburn_read_opts o,
uid_t  uid,
gid_t  gid,
mode_t  mode 
)

Default attributes to use if no RockRidge extension gets loaded.

Since
0.1.0
Parameters
oThe option set to work on
uiduser id number (see /etc/passwd)
gidgroup id number (see /etc/group)
modepermissions (not file type) as of man 2 stat. With directories, r-permissions will automatically imply x-permissions. See isoburn_ropt_set_default_dirperms() below.
Returns
1 success, <=0 failure

Definition at line 981 of file isoburn.c.

References isoburn_read_opts::dirmode, isoburn_read_opts::gid, isoburn_read_opts::mode, and isoburn_read_opts::uid.

Referenced by Xorriso_aquire_drive().

◆ isoburn_ropt_set_displacement()

int isoburn_ropt_set_displacement ( struct isoburn_read_opts o,
uint32_t  displacement,
int  displacement_sign 
)

Control an offset to be applied to all block address pointers in the ISO image in order to compensate for an eventual displacement of the image relative to the start block address for which it was produced. E.g. if track number 2 from CD gets copied into a disk file and shall then be loaded as ISO filesystem, then the directory tree and all data file content of the track copy will become readable by setting the track start address as displacement and -1 as displacement_sign. Data file content outside the track will of course not be accessible and eventually produce read errors.

Since
0.6.6
Parameters
oThe option set to work on
displacement0 or a positive number
displacement_signDetermines whether to add or subtract displacement to block addresses before applying them to the storage object for reading: +1 = add , -1= subtract , else keep unaltered

Definition at line 1057 of file isoburn.c.

References isoburn_read_opts::displacement, and isoburn_read_opts::displacement_sign.

Referenced by Xorriso_aquire_drive().

◆ isoburn_ropt_set_extensions()

◆ isoburn_ropt_set_input_charset()

int isoburn_ropt_set_input_charset ( struct isoburn_read_opts o,
char *  input_charset 
)

Set the character set for reading RR file names from ISO images.

Since
0.1.0
Parameters
oThe option set to work on
input_charsetSet this to NULL to use the default locale charset For selecting a particular character set, submit its name, e.g. as listed by program iconv -l. Example: "UTF-8".
Returns
1 success, <=0 failure

Definition at line 1027 of file isoburn.c.

References isoburn_read_opts::input_charset.

Referenced by Xorriso_aquire_drive(), and Xorriso_create_empty_iso().

◆ isoburn_ropt_set_truncate_mode()

int isoburn_ropt_set_truncate_mode ( struct isoburn_read_opts o,
int  mode,
int  length 
)

Set the name truncation mode and the maximum name length for imported file objects.

Since
1.4.2
Parameters
oThe option set to work on
mode0= Do not truncate but throw error ISO_RR_NAME_TOO_LONG if a file name is longer than parameter length. 1= Truncate to length and overwrite the last 32 bytes of that length by the hex representation of the MD5 of the whole oversized name. Potential incomplete UTF-8 characters will get their leading bytes replaced by '_'. This is the default.
lengthMaximum byte count of a file name. Permissible values are 64 to 255. Default is 255.

Definition at line 1075 of file isoburn.c.

References isoburn_read_opts::mode, isoburn_read_opts::truncate_length, and isoburn_read_opts::truncate_mode.

Referenced by Xorriso_aquire_drive(), and Xorriso_create_empty_iso().

◆ isoburn_sync_after_write()

int isoburn_sync_after_write ( struct burn_drive input_drive,
struct burn_drive output_drive,
int  flag 
)

Wait after normal end of operations until libisofs ended all write threads and freed resource reservations. This call is not mandatory. But without it, messages from the ending threads might appear after the application ended its write procedure.

Since
0.1.0
Parameters
input_driveThe drive or in_drive which was used with the preparation call.
output_driveThe out_drive used with isoburn_prepare_new_image(), NULL if none.
flagBitfield, submit 0 for now.
Returns
<=0 error , 1 = success

Definition at line 801 of file isoburn.c.

References isoburn_cancel_prepared_write().

Referenced by Xorriso_write_session().

◆ isoburn_toc_entry_destroy()

int isoburn_toc_entry_destroy ( struct isoburn_toc_entry **  o,
int  flag 
)

Definition at line 89 of file isoburn.c.

Referenced by isoburn_destroy(), and isoburn_emulate_toc().

◆ isoburn_toc_entry_new()

◆ isoburn_version()

void isoburn_version ( int *  major,
int *  minor,
int *  micro 
)

Obtain the three release version numbers of the library. These are the numbers encountered by the application when linking with libisoburn, i.e. possibly not before run time. Better do not base the fundamental compatibility decision of an application on these numbers. For a reliable check use isoburn_is_compatible().

Since
0.1.0
Parameters
majorThe maturity version (0 for now, as we are still learning)
minorThe development goal version.
microThe development step version. This has an additional meaning:
         Pare numbers indicate a version with frozen API. I.e. you can
         rely on the same set of features to be present in all
         published releases with that major.minor.micro combination.
         Features of a pare release will stay available and ABI
         compatible as long as the SONAME of libisoburn stays "1".
         Currently there are no plans to ever change the SONAME.

         Odd numbers indicate that API upgrades are in progress.
         I.e. new features might be already present or they might
         be still missing. Newly introduced features may be changed
         incompatibly or even be revoked before release of a pare
         version.
         So micro revisions {1,3,5,7,9} should never be used for
         dynamic linking unless the proper library match can be
         guaranteed by external circumstances.
Returns
1 success, <=0 might in future become an error indication

Definition at line 808 of file isoburn.c.

References isoburn_header_version_major, isoburn_header_version_micro, and isoburn_header_version_minor.

Referenced by isoburn_initialize(), isoburn_is_compatible(), main(), Xorriso_preparer_string(), Xorriso_report_lib_versions(), and Xorriso_startup_libraries().

Variable Documentation

◆ isoburn_list_start

struct isoburn* isoburn_list_start = NULL

◆ libisoburn_default_msgs_submit

int(* libisoburn_default_msgs_submit) (void *handle, int error_code, char msg_text[], int os_errno, char severity[], int flag) ( void *  handle,
int  error_code,
char  msg_text[],
int  os_errno,
char  severity[],
int  flag 
) = NULL

Definition at line 50 of file isoburn.c.

Referenced by isoburn_msgs_submit(), isoburn_set_msgs_submit(), and isoburn_welcome_media().

◆ libisoburn_default_msgs_submit_flag

int libisoburn_default_msgs_submit_flag = 0

Definition at line 54 of file isoburn.c.

Referenced by isoburn_msgs_submit(), isoburn_set_msgs_submit(), and isoburn_welcome_media().

◆ libisoburn_default_msgs_submit_handle

void* libisoburn_default_msgs_submit_handle = NULL

Definition at line 53 of file isoburn.c.

Referenced by isoburn_msgs_submit(), isoburn_set_msgs_submit(), and isoburn_welcome_media().