New API calls iso_write_opts_set_part_type_guid(), iso_write_opts_set_iso_type_guid()

This commit is contained in:
2019-02-18 12:47:09 +01:00
parent e1097dbb5d
commit aed8bda955
5 changed files with 113 additions and 10 deletions

View File

@ -3588,11 +3588,15 @@ int iso_write_opts_new(IsoWriteOpts **opts, int profile)
wopts->appended_partitions[i] = NULL;
wopts->appended_part_types[i] = 0;
wopts->appended_part_flags[i] = 0;
memset(wopts->appended_part_type_guids[i], 0, 16);
wopts->appended_part_gpt_flags[i] = 0;
}
wopts->appended_as_gpt = 0;
wopts->appended_as_apm = 0;
wopts->part_like_isohybrid = 0;
wopts->iso_mbr_part_type = -1;
memset(wopts->iso_gpt_type_guid, 0, 16);
wopts->iso_gpt_flag= 0;
wopts->ascii_disc_label[0] = 0;
wopts->will_cancel = 0;
wopts->allow_dir_id_ext = 0;
@ -4310,6 +4314,20 @@ int iso_write_opts_set_partition_img(IsoWriteOpts *opts, int partition_number,
return ISO_SUCCESS;
}
int iso_write_opts_set_part_type_guid(IsoWriteOpts *opts, int partition_number,
uint8_t guid[16], int valid)
{
if (partition_number < 1 || partition_number > ISO_MAX_PARTITIONS)
return ISO_BAD_PARTITION_NO;
if (valid)
memcpy(opts->appended_part_type_guids[partition_number - 1], guid, 16);
if (valid)
opts->appended_part_gpt_flags[partition_number - 1]|= 1;
else
opts->appended_part_gpt_flags[partition_number - 1]&= ~1;
return ISO_SUCCESS;
}
int iso_write_opts_set_appended_as_gpt(IsoWriteOpts *opts, int gpt)
{
opts->appended_as_gpt = !!gpt;
@ -4336,6 +4354,15 @@ int iso_write_opts_set_iso_mbr_part_type(IsoWriteOpts *opts, int part_type)
return ISO_SUCCESS;
}
int iso_write_opts_set_iso_type_guid(IsoWriteOpts *opts, uint8_t guid[16],
int valid)
{
if (valid)
memcpy(opts->iso_gpt_type_guid, guid, 16);
opts->iso_gpt_flag = (opts->iso_gpt_flag & ~1) | !!valid;
return ISO_SUCCESS;
}
int iso_write_opts_set_disc_label(IsoWriteOpts *opts, char *label)
{
strncpy(opts->ascii_disc_label, label, ISO_DISC_LABEL_SIZE - 1);