161 #ifdef HAVE_INTTYPES_H
162 #include <inttypes.h>
243 #define isoburn_libisofs_req_major 1
244 #define isoburn_libisofs_req_minor 3
245 #define isoburn_libisofs_req_micro 2
251 #define isoburn_libburn_req_major 1
252 #define isoburn_libburn_req_minor 3
253 #define isoburn_libburn_req_micro 2
306 #define isoburn_header_version_major 1
307 #define isoburn_header_version_minor 3
308 #define isoburn_header_version_micro 2
387 char msg_text[],
int os_errno,
388 char severity[],
int flag),
389 void *submit_handle,
int submit_flag,
int flag);
407 char* adr,
int load);
448 char* adr,
int flag);
475 int (*msgs_submit)(
void *handle,
int error_code,
476 char msg_text[],
int os_errno,
477 char severity[],
int flag),
478 void *submit_handle,
int submit_flag,
int flag);
573 struct isoburn_toc_disc;
574 struct isoburn_toc_session;
575 struct isoburn_toc_track;
611 struct isoburn_toc_disc *disc,
int *num);
642 struct burn_toc_entry *entry);
654 struct isoburn_toc_session *s,
int *num);
666 struct burn_toc_entry *entry);
682 int *image_blocks,
char volid[33],
int flag);
718 int *image_blocks,
char *info,
int flag);
745 int adr_mode,
char *adr_value,
746 int *lba,
int *track,
int *session,
747 char volid[33],
int flag);
762 struct isoburn_read_opts;
814 int cache_tiles,
int tile_blocks,
int flag);
828 int *cache_tiles,
int *tile_blocks,
829 int *set_flag,
int flag);
879 #define isoburn_ropt_norock 1
880 #define isoburn_ropt_nojoliet 2
881 #define isoburn_ropt_noiso1999 4
882 #define isoburn_ropt_preferjoliet 8
883 #define isoburn_ropt_pretend_blank 16
884 #define isoburn_ropt_noaaip 32
885 #define isoburn_ropt_noacl 64
886 #define isoburn_ropt_noea 128
887 #define isoburn_ropt_noino 256
888 #define isoburn_ropt_nomd5 512
889 #define isoburn_ropt_nomd5tag 1024
906 uid_t uid, gid_t gid, mode_t mode);
908 uid_t *uid, gid_t *gid, mode_t *mode);
937 char *input_charset);
939 char **input_charset);
975 uint32_t displacement,
int displacement_sign);
977 uint32_t *displacement,
int *displacement_sign);
1008 #define isoburn_ropt_has_rockridge 1
1009 #define isoburn_ropt_has_joliet 2
1010 #define isoburn_ropt_has_iso1999 4
1011 #define isoburn_ropt_has_el_torito 8
1014 uint32_t *size,
int *has_what);
1041 struct isoburn_imgen_opts;
1149 #define isoburn_igopt_rockridge 1
1150 #define isoburn_igopt_joliet 2
1151 #define isoburn_igopt_iso1999 4
1152 #define isoburn_igopt_hardlinks 8
1153 #define isoburn_igopt_aaip 32
1154 #define isoburn_igopt_session_md5 64
1155 #define isoburn_igopt_file_md5 128
1156 #define isoburn_igopt_file_stability 256
1157 #define isoburn_igopt_no_emul_toc 512
1158 #define isoburn_igopt_will_cancel 1024
1159 #define isoburn_igopt_old_empty 2048
1160 #define isoburn_igopt_hfsplus 4096
1161 #define isoburn_igopt_fat 8192
1259 #define isoburn_igopt_omit_version_numbers 1
1260 #define isoburn_igopt_allow_deep_paths 2
1261 #define isoburn_igopt_allow_longer_paths 4
1262 #define isoburn_igopt_max_37_char_filenames 8
1263 #define isoburn_igopt_no_force_dots 16
1264 #define isoburn_igopt_allow_lowercase 32
1265 #define isoburn_igopt_allow_full_ascii 64
1266 #define isoburn_igopt_joliet_longer_paths 128
1267 #define isoburn_igopt_always_gmt 256
1268 #define isoburn_igopt_rrip_version_1_10 512
1269 #define isoburn_igopt_dir_rec_mtime 1024
1270 #define isoburn_igopt_aaip_susp_1_10 2048
1271 #define isoburn_igopt_only_iso_versions 4096
1272 #define isoburn_igopt_no_j_force_dots 8192
1273 #define isoburn_igopt_allow_dir_id_ext 16384
1274 #define isoburn_igopt_joliet_long_names 32768
1275 #define isoburn_igopt_joliet_rec_mtime 0x10000
1276 #define isoburn_igopt_iso1999_rec_mtime 0x20000
1277 #define isoburn_igopt_allow_7bit_ascii 0x40000
1359 #define isoburn_igopt_sort_files_by_weight 1
1382 int replace_dir_mode,
int replace_file_mode,
1383 mode_t dir_mode, mode_t file_mode);
1385 int *replace_dir_mode,
int *replace_file_mode,
1386 mode_t *dir_mode, mode_t *file_mode);
1400 int replace_uid,
int replace_gid,
1401 uid_t uid, gid_t gid);
1403 int *replace_uid,
int *replace_gid,
1404 uid_t *uid, gid_t *gid);
1416 char *output_charset);
1418 char **output_charset);
1480 char *timestamp,
char *tag_written);
1482 char name[81],
char timestamp[19],
1483 char **tag_written);
1555 char data[32768],
int options);
1557 char data[32768],
int *options);
1586 uint32_t block_offset_2k,
1587 int secs_512_per_head,
int heads_per_cyl);
1589 uint32_t *block_offset_2k,
1590 int *secs_512_per_head,
int *heads_per_cyl);
1623 time_t creation_time, time_t modification_time,
1624 time_t expiration_time, time_t effective_time,
1627 time_t *creation_time, time_t *modification_time,
1628 time_t *expiration_time, time_t *effective_time,
1648 void *libjte_handle);
1660 void **libjte_handle);
1677 uint32_t num_blocks);
1679 uint32_t *num_blocks);
1696 char *path,
int flag);
1698 char **path,
int flag);
1711 char *path,
int flag);
1713 char **path,
int flag);
1746 int partition_number, uint8_t partition_type,
1768 uint8_t partition_types[],
1769 char *image_paths[]);
1812 uint8_t serial_number[8]);
1825 uint8_t serial_number[8]);
1847 int hfsp_block_size,
int apm_block_size);
1861 int *hfsp_block_size,
int *apm_block_size);
1936 struct isoburn_read_opts *read_opts,
1956 int (*read_pacifier)(IsoImage*, IsoFileSource*),
1974 uint32_t *block_offset_2k);
2020 struct burn_write_opts *o);
2052 int trackno,
int *lba,
int *nwa);
2083 struct isoburn_imgen_opts *opts);
2106 struct burn_disc **disc,
2107 struct isoburn_imgen_opts *opts,
2108 struct burn_drive *out_drive);
2151 struct burn_disc **disc,
2152 struct isoburn_imgen_opts *opts,
2153 struct burn_drive *out_drive,
int nwa);
2173 struct burn_drive *output_drive,
int flag);
2230 char **status_text);
2266 struct burn_drive *output_drive,
int flag);
int isoburn_attach_start_lba(struct burn_drive *d, int lba, int flag)
Set the start address of the image that is attached to the drive, if any.
void isoburn_disc_erase(struct burn_drive *drive, int fast)
Mark the medium as blank.
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...
int isoburn_set_read_pacifier(struct burn_drive *drive, int(*read_pacifier)(IsoImage *, IsoFileSource *), void *app_handle)
Set a callback function for producing pacifier messages during the lengthy process of image reading...
int isoburn_igopt_get_rr_reloc(struct isoburn_imgen_opts *o, char **name, int *flags)
Obtain the settings of isoburn_igopt_set_rr_reloc().
int isoburn_igopt_get_over_ugid(struct isoburn_imgen_opts *o, int *replace_uid, int *replace_gid, uid_t *uid, gid_t *gid)
void isoburn_drive_release(struct burn_drive *drive, int eject)
Release an acquired drive.
int isoburn_igopt_get_system_area(struct isoburn_imgen_opts *o, char data[32768], int *options)
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 reserva...
int isoburn_prepare_disc(struct burn_drive *drive, struct burn_disc **disc, struct isoburn_imgen_opts *opts)
To choose the expansion method of Growing: Create a disc object for writing the new session from the ...
int isoburn_igopt_get_relaxed(struct isoburn_imgen_opts *o, int *relax)
int isoburn_igopt_get_level(struct isoburn_imgen_opts *o, int *level)
int isoburn_igopt_get_sort_files(struct isoburn_imgen_opts *o, int *value)
int isoburn_get_mount_params(struct burn_drive *d, int adr_mode, char *adr_value, int *lba, int *track, int *session, char volid[33], int flag)
Try to convert the given entity address into various entity addresses which would describe it...
void isoburn_finish(void)
Shutdown all three libraries.
int isoburn_ropt_get_default_perms(struct isoburn_read_opts *o, uid_t *uid, gid_t *gid, mode_t *mode)
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 i...
void isoburn_disc_write(struct burn_write_opts *o, struct burn_disc *disc)
Start writing of the new session.
int isoburn_igopt_set_sort_files(struct isoburn_imgen_opts *o, int value)
struct isoburn_toc_session ** isoburn_toc_disc_get_sessions(struct isoburn_toc_disc *disc, int *num)
Get the array of session handles and the number of complete sessions from the table of content...
int isoburn_activate_session(struct burn_drive *d)
Call this after isoburn_disc_write has finished and burn_drive_wrote_well() indicates success...
void isoburn_toc_disc_free(struct isoburn_toc_disc *disc)
Release the memory associated with a master handle of a medium.
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().
int isoburn_read_iso_head(struct burn_drive *d, int lba, int *image_blocks, char *info, int flag)
Try whether the data at the given address look like a ISO 9660 image header and obtain its alleged si...
int isoburn_drive_scan_and_grab(struct burn_drive_info *drive_infos[], char *adr, int load)
Acquire a target drive by its filesystem path resp.
enum burn_disc_status isoburn_disc_get_status(struct burn_drive *drive)
Inquire the medium status.
void isoburn_version(int *major, int *minor, int *micro)
Obtain the three release version numbers of the library.
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 director...
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_get_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[17])
int isoburn_set_msc1(struct burn_drive *d, int adr_mode, char *adr_value, int flag)
Set up isoburn_disc_get_msc1() to return a fabricated value.
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().
int isoburn_ropt_new(struct isoburn_read_opts **o, int flag)
Produces a set of image read options, initialized with default values.
int isoburn_toc_disc_get_sectors(struct isoburn_toc_disc *disc)
Tell the number of 2048 byte blocks covered by the table of content.
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 throughpu...
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.
int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext)
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 A...
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...
int isoburn_initialize(char msg[1024], int flag)
Overview.
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.
int isoburn_drive_grab(struct burn_drive *drive, int load)
Acquire a drive from the burn_drive_info[] array which was obtained by a previous call of burn_drive_...
int isoburn_igopt_get_efi_bootp(struct isoburn_imgen_opts *opts, char **path, int flag)
int isoburn_disc_get_msc1(struct burn_drive *d, int *start_lba)
Obtain the start block number of the most recent session on the medium.
off_t isoburn_disc_available_space(struct burn_drive *d, struct burn_write_opts *o)
Return the best possible estimation of the currently available capacity of the medium.
void isoburn_toc_track_get_entry(struct isoburn_toc_track *t, struct burn_toc_entry *entry)
Obtain a copy of the entry which describes a particular track.
int isoburn_igopt_set_scdbackup_tag(struct isoburn_imgen_opts *o, char *name, char *timestamp, char *tag_written)
Set resp.
int isoburn_igopt_set_tail_blocks(struct isoburn_imgen_opts *opts, uint32_t num_blocks)
Set resp.
int isoburn_attach_image(struct burn_drive *d, IsoImage *image)
Set the IsoImage to be used with a drive.
int isoburn_igopt_get_scdbackup_tag(struct isoburn_imgen_opts *o, char name[81], char timestamp[19], char **tag_written)
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.
struct isoburn_toc_disc * isoburn_toc_drive_get_disc(struct burn_drive *d)
Obtain a master handle for the table of content.
int isoburn_igopt_new(struct isoburn_imgen_opts **o, int flag)
Produces a set of generation and transfer options, initialized with default values.
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...
int isoburn_ropt_get_default_dirperms(struct isoburn_read_opts *o, mode_t *mode)
int isoburn_igopt_set_relaxed(struct isoburn_imgen_opts *o, int relax)
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)
Explicitely set the four timestamps of the emerging ISO image.
int isoburn_igopt_set_level(struct isoburn_imgen_opts *o, int level)
ISO level to write at.
int isoburn_ropt_get_displacement(struct isoburn_read_opts *o, uint32_t *displacement, int *displacement_sign)
int isoburn_libisofs_req(int *major, int *minor, int *micro)
The minimum compile time requirements of libisoburn towards libjte are the same as of a suitable libi...
int isoburn_set_truncate(struct burn_drive *drive, int flag)
Override the truncation setting that was made with flag bit2 during the call of isoburn_drive_aquire...
int isoburn_ropt_get_auto_incharset(struct isoburn_read_opts *o, int *mode)
int isoburn_disc_erasable(struct burn_drive *d)
Tells whether the medium can be treated by isoburn_disc_erase().
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.
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...
void isoburn_toc_session_get_leadout_entry(struct isoburn_toc_session *s, struct burn_toc_entry *entry)
Obtain a copy of the entry which describes the end of a particular session.
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.
int isoburn_ropt_get_input_charset(struct isoburn_read_opts *o, char **input_charset)
int isoburn_igopt_get_untranslated_name_len(struct isoburn_imgen_opts *o, int *len)
int isoburn_get_fifo_status(struct burn_drive *d, int *size, int *free_bytes, char **status_text)
Inquire state and fill parameters of the fifo which is attached to the emerging track.
int isoburn_igopt_get_out_charset(struct isoburn_imgen_opts *o, char **output_charset)
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)
To choose the expansion method of Blind Growing: Create a disc object for writing an add-on session f...
int isoburn_get_img_partition_offset(struct burn_drive *drive, uint32_t *block_offset_2k)
Inquire the partition offset of the loaded image.
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.
int isoburn_igopt_get_prep_partition(struct isoburn_imgen_opts *opts, char **path, int flag)
int isoburn_drive_aquire(struct burn_drive_info *drive_infos[], char *adr, int flag)
Acquire a target drive by its filesystem path resp.
int isoburn_igopt_get_disc_label(struct isoburn_imgen_opts *opts, char **label)
Inquire the current setting made by isoburn_igopt_set_disc_label().
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()
int isoburn_ropt_get_size_what(struct isoburn_read_opts *o, uint32_t *size, int *has_what)
int isoburn_ropt_set_auto_incharset(struct isoburn_read_opts *o, int mode)
Enable or disable methods to automatically choose an input charset.
int isoburn_disc_track_lba_nwa(struct burn_drive *d, struct burn_write_opts *o, int trackno, int *lba, int *nwa)
Use this with trackno==0 to obtain the predicted start block number of the new session.
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...
int isoburn_igopt_get_tail_blocks(struct isoburn_imgen_opts *opts, uint32_t *num_blocks)
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.
int isoburn_needs_emulation(struct burn_drive *d)
Inquire wether the medium needs emulation or would be suitable for generic multi-session via libburn...
int isoburn_igopt_destroy(struct isoburn_imgen_opts **o, int flag)
Deletes an option set which was created by isoburn_igopt_new().
int isoburn_read_image(struct burn_drive *d, struct isoburn_read_opts *read_opts, IsoImage **image)
Load the ISO filesystem directory tree from the medium in the given drive.
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.
int isoburn_drive_wrote_well(struct burn_drive *d)
Inquire whether the most recent write run was successful.
int isoburn_ropt_get_extensions(struct isoburn_read_opts *o, int *ext)
int isoburn_igopt_attach_jte(struct isoburn_imgen_opts *opts, void *libjte_handle)
Associate a libjte environment object to the upcomming write run.
int isoburn_igopt_set_disc_label(struct isoburn_imgen_opts *opts, char *label)
Set a name for the system area.
int isoburn_igopt_get_fifo_size(struct isoburn_imgen_opts *o, int *fifo_size)
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.
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.
int isoburn_get_min_start_byte(struct burn_drive *d, off_t *start_byte, int flag)
Obtain the size which was attributed to an emulated appendable on actually overwriteable media...
int isoburn_igopt_get_write_type(struct isoburn_imgen_opts *opts, int *do_tao)
int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext)
int isoburn_libburn_req(int *major, int *minor, int *micro)
The minimum version of libburn to be used with this version of libisoburn at runtime.
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().
struct isoburn_toc_track ** isoburn_toc_session_get_tracks(struct isoburn_toc_session *s, int *num)
Get the array of track handles from a particular session.
int isoburn_get_attached_start_lba(struct burn_drive *d)
Get the start address of the image that is attached to the drive, if any.
int isoburn_toc_disc_get_incmpl_sess(struct isoburn_toc_disc *disc)
Obtain the number of incomplete sessions which are recorded in the result array of isoburn_toc_disc_g...
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...
int isoburn_libjte_req(int *major, int *minor, int *micro)
The minimum version of libjte to be used with this version of libisoburn at runtime.
int isoburn_igopt_set_out_charset(struct isoburn_imgen_opts *o, char *output_charset)
Set the charcter set to use for representing RR filenames in the 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)
To choose the expansion method of Modifying: Create a disc object for producing a new image from a pr...
int isoburn_igopt_set_extensions(struct isoburn_imgen_opts *o, int ext)
int isoburn_toc_session_get_sectors(struct isoburn_toc_session *s)
Tell the number of 2048 byte blocks covered by a particular session.
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_drive_set_msgs_submit(struct burn_drive *d, int(*msgs_submit)(void *handle, int error_code, char msg_text[], int os_errno, char severity[], int flag), void *submit_handle, int submit_flag, int flag)
Attach to a drive an application provided method for immediate delivery of messages.
int isoburn_toc_track_get_emul(struct isoburn_toc_track *t, int *start_lba, int *image_blocks, char volid[33], int flag)
Obtain eventual ISO image parameters of an emulated track.
int isoburn_igopt_detach_jte(struct isoburn_imgen_opts *opts, void **libjte_handle)
Remove eventual association to a libjte environment handle.
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.
int isoburn_set_msgs_submit(int(*msgs_submit)(void *handle, int error_code, char msg_text[], int os_errno, char severity[], int flag), void *submit_handle, int submit_flag, int flag)
Note: Above version numbers are also recorded in configure.ac because libtool wants them as parameter...
IsoImage * isoburn_get_attached_image(struct burn_drive *d)
Get the image attached to a drive, if any.
int isoburn_ropt_destroy(struct isoburn_read_opts **o, int flag)
Deletes an option set which was created by isoburn_ropt_new().
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.