New -boot_image bootspec appended_gpt_with_gaps=

This commit is contained in:
2024-12-16 18:21:28 +01:00
parent 2049dfc996
commit 6deb2435ab
8 changed files with 179 additions and 78 deletions

View File

@@ -885,6 +885,7 @@ int Xorriso_make_iso_write_opts(struct XorrisO *xorriso, IsoImage *image,
{
int ext, i, ret, pad_by_libisofs= 0, is_bootable= 0, relax, intvl_string= 0;
int intvl_check= 2; /* 3 forbids "imported_iso" */
int with_appended_partition= 0;
char *out_cs, *part_image;
IsoNode *root_node;
uint32_t padding;
@@ -981,6 +982,7 @@ int Xorriso_make_iso_write_opts(struct XorrisO *xorriso, IsoImage *image,
isoburn_igopt_set_part_type_guid(sopts, i + 1,
xorriso->appended_part_type_guids[i],
xorriso->appended_part_gpt_flags[i] & 1);
with_appended_partition= 1;
}
isoburn_igopt_set_appended_as_gpt(sopts, xorriso->appended_as_gpt);
isoburn_igopt_set_appended_as_apm(sopts, xorriso->appended_as_apm);
@@ -989,6 +991,13 @@ int Xorriso_make_iso_write_opts(struct XorrisO *xorriso, IsoImage *image,
isoburn_igopt_set_iso_type_guid(sopts, xorriso->iso_gpt_type_guid,
xorriso->iso_mbr_part_flag & 1);
isoburn_igopt_set_gpt_guid(sopts, xorriso->gpt_guid, xorriso->gpt_guid_mode);
/* GPT with gaps only if partitions get appended */
if(with_appended_partition && xorriso->appended_as_gpt)
isoburn_igopt_set_gpt_with_gaps(sopts, !!(xorriso->iso_mbr_part_flag & 2),
!!(xorriso->iso_mbr_part_flag & 4),
!!(xorriso->iso_mbr_part_flag & 8));
ret= isoburn_igopt_set_max_ce_entries(sopts, xorriso->max_ce_entries,
xorriso->max_ce_entries_flag);
if(ret <= 0)