New API calls isoburn_igopt_set_stdio_endsync(), isoburn_igopt_get_stdio_endsync()
This commit is contained in:
parent
1bfd24f856
commit
59c4712b1a
@ -150,6 +150,7 @@ int isoburn_new(struct isoburn **objpt, int flag)
|
|||||||
o->msgs_submit_handle= NULL;
|
o->msgs_submit_handle= NULL;
|
||||||
o->msgs_submit_flag= 0;
|
o->msgs_submit_flag= 0;
|
||||||
o->do_tao= 0;
|
o->do_tao= 0;
|
||||||
|
o->do_fsync= 1;
|
||||||
o->prev= NULL;
|
o->prev= NULL;
|
||||||
o->next= NULL;
|
o->next= NULL;
|
||||||
o->target_iso_head= calloc(1, o->target_iso_head_size);
|
o->target_iso_head= calloc(1, o->target_iso_head_size);
|
||||||
@ -599,6 +600,7 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
|
|||||||
}
|
}
|
||||||
|
|
||||||
out_o->do_tao = opts->do_tao;
|
out_o->do_tao = opts->do_tao;
|
||||||
|
out_o->do_fsync = opts->do_fsync;
|
||||||
|
|
||||||
state = isoburn_disc_get_status(in_d);
|
state = isoburn_disc_get_status(in_d);
|
||||||
if (state != BURN_DISC_BLANK && state != BURN_DISC_APPENDABLE &&
|
if (state != BURN_DISC_BLANK && state != BURN_DISC_APPENDABLE &&
|
||||||
@ -1134,6 +1136,7 @@ int isoburn_igopt_new(struct isoburn_imgen_opts **new_o, int flag)
|
|||||||
o->hfsp_block_size= 0;
|
o->hfsp_block_size= 0;
|
||||||
o->apm_block_size= 0;
|
o->apm_block_size= 0;
|
||||||
o->do_tao= 0;
|
o->do_tao= 0;
|
||||||
|
o->do_fsync= 0;
|
||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1755,6 +1758,19 @@ int isoburn_igopt_get_write_type(struct isoburn_imgen_opts *opts, int *do_tao)
|
|||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int isoburn_igopt_set_stdio_endsync(struct isoburn_imgen_opts *opts,
|
||||||
|
int do_sync)
|
||||||
|
{
|
||||||
|
opts->do_fsync= !!do_sync;
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
int isoburn_igopt_get_stdio_endsync(struct isoburn_imgen_opts *opts,
|
||||||
|
int *do_sync)
|
||||||
|
{
|
||||||
|
*do_sync= opts->do_fsync;
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
int isoburn_conv_name_chars(struct isoburn_imgen_opts *opts,
|
int isoburn_conv_name_chars(struct isoburn_imgen_opts *opts,
|
||||||
char *name, size_t name_len,
|
char *name, size_t name_len,
|
||||||
|
@ -167,6 +167,9 @@ struct isoburn {
|
|||||||
/* Forwarding an image generation option to the burn wrapper */
|
/* Forwarding an image generation option to the burn wrapper */
|
||||||
int do_tao;
|
int do_tao;
|
||||||
|
|
||||||
|
/* Forwarding an image generation option to the burn wrapper */
|
||||||
|
int do_fsync;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -705,6 +708,9 @@ struct isoburn_imgen_opts {
|
|||||||
*/
|
*/
|
||||||
int do_tao;
|
int do_tao;
|
||||||
|
|
||||||
|
/* Whether to fsync() stdio_drives after isoburn_activate_session() */
|
||||||
|
int do_fsync;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -375,7 +375,7 @@ int isoburn_attach_start_lba(struct burn_drive *d, int lba, int flag)
|
|||||||
*/
|
*/
|
||||||
int isoburn_activate_session(struct burn_drive *drive)
|
int isoburn_activate_session(struct burn_drive *drive)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret, do_sync = 1;
|
||||||
struct isoburn *o;
|
struct isoburn *o;
|
||||||
|
|
||||||
ret = isoburn_find_emulator(&o, drive, 0);
|
ret = isoburn_find_emulator(&o, drive, 0);
|
||||||
@ -391,9 +391,12 @@ int isoburn_activate_session(struct burn_drive *drive)
|
|||||||
(o->fabricated_disc_status == BURN_DISC_BLANK &&
|
(o->fabricated_disc_status == BURN_DISC_BLANK &&
|
||||||
o->zero_nwa > 0)))
|
o->zero_nwa > 0)))
|
||||||
return 1;
|
return 1;
|
||||||
|
ret = burn_drive_get_drive_role(drive);
|
||||||
|
if (ret != 1)
|
||||||
|
do_sync = !! o->do_fsync;
|
||||||
|
|
||||||
ret = burn_random_access_write(drive, (off_t) 0, (char*)o->target_iso_head,
|
ret = burn_random_access_write(drive, (off_t) 0, (char*)o->target_iso_head,
|
||||||
o->target_iso_head_size, 1);
|
o->target_iso_head_size, do_sync);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -1532,7 +1532,7 @@ int isoburn_igopt_get_scdbackup_tag(struct isoburn_imgen_opts *o,
|
|||||||
numbers 2 to 8.
|
numbers 2 to 8.
|
||||||
This will overwrite the first 512 bytes of
|
This will overwrite the first 512 bytes of
|
||||||
the submitted data.
|
the submitted data.
|
||||||
@since 1.3.6
|
@since 1.3.8
|
||||||
4= HP-PA PALO boot sector header version 4
|
4= HP-PA PALO boot sector header version 4
|
||||||
Submit all five parameters of
|
Submit all five parameters of
|
||||||
iso_image_set_hppa_palo() as non-NULL texts.
|
iso_image_set_hppa_palo() as non-NULL texts.
|
||||||
@ -1899,6 +1899,30 @@ int isoburn_igopt_get_hfsp_block_size(struct isoburn_imgen_opts *opts,
|
|||||||
int isoburn_igopt_set_write_type(struct isoburn_imgen_opts *opts, int do_tao);
|
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_get_write_type(struct isoburn_imgen_opts *opts, int *do_tao);
|
||||||
|
|
||||||
|
/** 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
|
||||||
|
@param opts
|
||||||
|
The option set to be manipulated or inquired.
|
||||||
|
@parm do_sync
|
||||||
|
1= call fsync(2) with stdio drives in isoburn_activate_session()
|
||||||
|
0= do not
|
||||||
|
@return
|
||||||
|
<=0 = error, 1 = success
|
||||||
|
*/
|
||||||
|
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);
|
||||||
|
|
||||||
|
/* ----------------------------------------------------------------------- */
|
||||||
|
/* End of Options for image generation */
|
||||||
|
/* ----------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
/** Frontend of libisofs call iso_conv_name_chars() controlled by
|
/** Frontend of libisofs call iso_conv_name_chars() controlled by
|
||||||
struct isoburn_imgen_opts rather than IsoWriteOpts.
|
struct isoburn_imgen_opts rather than IsoWriteOpts.
|
||||||
@ -1940,11 +1964,6 @@ int isoburn_conv_name_chars(struct isoburn_imgen_opts *opts,
|
|||||||
char **result, size_t *result_len, int flag);
|
char **result, size_t *result_len, int flag);
|
||||||
|
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------- */
|
|
||||||
/* End of Options for image generation */
|
|
||||||
/* ----------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
|
|
||||||
/** Get the image attached to a drive, if any.
|
/** Get the image attached to a drive, if any.
|
||||||
@since 0.1.0
|
@since 0.1.0
|
||||||
@param d The drive to inquire
|
@param d The drive to inquire
|
||||||
|
@ -46,6 +46,7 @@ isoburn_igopt_get_relaxed;
|
|||||||
isoburn_igopt_get_rr_reloc;
|
isoburn_igopt_get_rr_reloc;
|
||||||
isoburn_igopt_get_scdbackup_tag;
|
isoburn_igopt_get_scdbackup_tag;
|
||||||
isoburn_igopt_get_sort_files;
|
isoburn_igopt_get_sort_files;
|
||||||
|
isoburn_igopt_get_stdio_endsync;
|
||||||
isoburn_igopt_get_system_area;
|
isoburn_igopt_get_system_area;
|
||||||
isoburn_igopt_get_tail_blocks;
|
isoburn_igopt_get_tail_blocks;
|
||||||
isoburn_igopt_get_untranslated_name_len;
|
isoburn_igopt_get_untranslated_name_len;
|
||||||
@ -68,6 +69,7 @@ isoburn_igopt_set_relaxed;
|
|||||||
isoburn_igopt_set_rr_reloc;
|
isoburn_igopt_set_rr_reloc;
|
||||||
isoburn_igopt_set_scdbackup_tag;
|
isoburn_igopt_set_scdbackup_tag;
|
||||||
isoburn_igopt_set_sort_files;
|
isoburn_igopt_set_sort_files;
|
||||||
|
isoburn_igopt_set_stdio_endsync;
|
||||||
isoburn_igopt_set_system_area;
|
isoburn_igopt_set_system_area;
|
||||||
isoburn_igopt_set_tail_blocks;
|
isoburn_igopt_set_tail_blocks;
|
||||||
isoburn_igopt_set_untranslated_name_len;
|
isoburn_igopt_set_untranslated_name_len;
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Xorriso_timestamP "2014.04.13.071908"
|
#define Xorriso_timestamP "2014.04.13.120421"
|
||||||
|
Loading…
Reference in New Issue
Block a user