|
|
|
@ -405,7 +405,7 @@ int isoburn_make_iso_write_opts(struct isoburn *out_o,
|
|
|
|
|
IsoWriteOpts *wopts,
|
|
|
|
|
int flag)
|
|
|
|
|
{
|
|
|
|
|
int ret, rec_mtime, new_img, lba, nwa, i;
|
|
|
|
|
int ret, rec_mtime, new_img, lba, nwa, i, guid_mode;
|
|
|
|
|
struct burn_drive *out_d;
|
|
|
|
|
|
|
|
|
|
new_img= flag&1;
|
|
|
|
@ -477,6 +477,10 @@ int isoburn_make_iso_write_opts(struct isoburn *out_o,
|
|
|
|
|
opts->vol_creation_time, opts->vol_modification_time,
|
|
|
|
|
opts->vol_expiration_time, opts->vol_effective_time,
|
|
|
|
|
opts->vol_uuid);
|
|
|
|
|
guid_mode= opts->gpt_guid_mode;
|
|
|
|
|
if(opts->vol_uuid[0] == 0 && opts->gpt_guid_mode == 2)
|
|
|
|
|
guid_mode= 0;
|
|
|
|
|
iso_write_opts_set_gpt_guid(wopts, opts->gpt_guid, guid_mode);
|
|
|
|
|
iso_write_opts_attach_jte(wopts, opts->libjte_handle);
|
|
|
|
|
iso_write_opts_set_hfsp_serial_number(wopts, opts->hfsp_serial_number);
|
|
|
|
|
|
|
|
|
@ -1175,6 +1179,8 @@ int isoburn_igopt_new(struct isoburn_imgen_opts **new_o, int flag)
|
|
|
|
|
o->appended_as_gpt= 0;
|
|
|
|
|
o->appended_as_apm= 0;
|
|
|
|
|
o->part_like_isohybrid= 0;
|
|
|
|
|
memset(o->gpt_guid, 0, 16);
|
|
|
|
|
o->gpt_guid_mode= 0;
|
|
|
|
|
memset(o->hfsp_serial_number, 0, 8);
|
|
|
|
|
o->hfsp_block_size= 0;
|
|
|
|
|
o->apm_block_size= 0;
|
|
|
|
@ -1804,6 +1810,32 @@ int isoburn_igopt_get_part_like_isohybrid(struct isoburn_imgen_opts *opts,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int isoburn_igopt_set_gpt_guid(struct isoburn_imgen_opts *opts,
|
|
|
|
|
uint8_t guid[16], int mode)
|
|
|
|
|
{
|
|
|
|
|
if(mode < 0 || mode > 2) {
|
|
|
|
|
isoburn_msgs_submit(NULL, 0x00060000,
|
|
|
|
|
"Unrecognized GPT disk GUID setup mode. (0 ... 2)",
|
|
|
|
|
0, "FAILURE", 0);
|
|
|
|
|
return(0);
|
|
|
|
|
}
|
|
|
|
|
opts->gpt_guid_mode= mode;
|
|
|
|
|
if(opts->gpt_guid_mode == 1)
|
|
|
|
|
memcpy(opts->gpt_guid, guid, 16);
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int isoburn_igopt_get_gpt_guid(struct isoburn_imgen_opts *opts,
|
|
|
|
|
uint8_t guid[16], int *mode)
|
|
|
|
|
{
|
|
|
|
|
if(opts->gpt_guid_mode == 1)
|
|
|
|
|
memcpy(guid, opts->gpt_guid, 16);
|
|
|
|
|
*mode = opts->gpt_guid_mode;
|
|
|
|
|
return(1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int isoburn_igopt_set_disc_label(struct isoburn_imgen_opts *opts, char *label)
|
|
|
|
|
{
|
|
|
|
|
strncpy(opts->ascii_disc_label, label, Libisoburn_disc_label_sizE - 1);
|
|
|
|
|