New API calls isoburn_igopt_set_gpt_with_gaps() and isoburn_igopt_get_gpt_with_gaps()
This commit is contained in:
parent
9610de83af
commit
2049dfc996
@ -572,6 +572,9 @@ int isoburn_make_iso_write_opts(struct isoburn *out_o,
|
|||||||
iso_write_opts_set_iso_mbr_part_type(wopts, opts->iso_mbr_part_type);
|
iso_write_opts_set_iso_mbr_part_type(wopts, opts->iso_mbr_part_type);
|
||||||
iso_write_opts_set_iso_type_guid(wopts, opts->iso_gpt_type_guid,
|
iso_write_opts_set_iso_type_guid(wopts, opts->iso_gpt_type_guid,
|
||||||
opts->iso_gpt_flag & 1);
|
opts->iso_gpt_flag & 1);
|
||||||
|
iso_write_opts_set_gpt_with_gaps(wopts, !!(opts->iso_gpt_flag & 2),
|
||||||
|
!!(opts->iso_gpt_flag & 4),
|
||||||
|
!!(opts->iso_gpt_flag & 8));
|
||||||
iso_write_opts_set_disc_label(wopts, opts->ascii_disc_label);
|
iso_write_opts_set_disc_label(wopts, opts->ascii_disc_label);
|
||||||
|
|
||||||
ret= 1;
|
ret= 1;
|
||||||
@ -1890,6 +1893,7 @@ int isoburn_igopt_set_part_type_guid(struct isoburn_imgen_opts *opts,
|
|||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int isoburn_igopt_get_part_type_guid(struct isoburn_imgen_opts *opts,
|
int isoburn_igopt_get_part_type_guid(struct isoburn_imgen_opts *opts,
|
||||||
int num_entries, uint8_t guids[][16],
|
int num_entries, uint8_t guids[][16],
|
||||||
int valids[])
|
int valids[])
|
||||||
@ -1910,6 +1914,31 @@ int isoburn_igopt_get_part_type_guid(struct isoburn_imgen_opts *opts,
|
|||||||
return(max_entry);
|
return(max_entry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int isoburn_igopt_set_gpt_with_gaps(struct isoburn_imgen_opts *opts,
|
||||||
|
int with_gaps, int with_gaps_no_sort,
|
||||||
|
int with_gaps_no_iso)
|
||||||
|
{
|
||||||
|
opts->iso_gpt_flag &= ~(2 | 4 | 8);
|
||||||
|
opts->iso_gpt_flag |= (!!with_gaps) << 1;
|
||||||
|
opts->iso_gpt_flag |= (!!with_gaps_no_sort) << 2;
|
||||||
|
opts->iso_gpt_flag |= (!!with_gaps_no_iso) << 3;
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int isoburn_igopt_get_gpt_with_gaps(struct isoburn_imgen_opts *opts,
|
||||||
|
int *with_gaps, int *with_gaps_no_sort,
|
||||||
|
int *with_gaps_no_iso)
|
||||||
|
{
|
||||||
|
*with_gaps= !!(opts->iso_gpt_flag & 2);
|
||||||
|
*with_gaps_no_sort= !!(opts->iso_gpt_flag & 4);
|
||||||
|
*with_gaps_no_iso= !!(opts->iso_gpt_flag & 8);
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int isoburn_igopt_set_appended_as_apm(struct isoburn_imgen_opts *opts, int apm)
|
int isoburn_igopt_set_appended_as_apm(struct isoburn_imgen_opts *opts, int apm)
|
||||||
{
|
{
|
||||||
opts->appended_as_apm= !!apm;
|
opts->appended_as_apm= !!apm;
|
||||||
|
@ -746,6 +746,9 @@ struct isoburn_imgen_opts {
|
|||||||
*/
|
*/
|
||||||
uint8_t iso_gpt_type_guid[16];
|
uint8_t iso_gpt_type_guid[16];
|
||||||
/* bit0= iso_gpt_type_guid is valid
|
/* bit0= iso_gpt_type_guid is valid
|
||||||
|
bit1= gaps in the image coverage are allowed
|
||||||
|
bit2= with bit1: do not sort GPT partition array by start block
|
||||||
|
bit3= with bit1: do not create partition 1 for ISO filesystem
|
||||||
*/
|
*/
|
||||||
int iso_gpt_flag;
|
int iso_gpt_flag;
|
||||||
|
|
||||||
|
@ -2142,6 +2142,61 @@ int isoburn_igopt_get_part_type_guid(struct isoburn_imgen_opts *opts,
|
|||||||
int num_entries, uint8_t guids[][16],
|
int num_entries, uint8_t guids[][16],
|
||||||
int valids[]);
|
int valids[]);
|
||||||
|
|
||||||
|
/** Control whether the GPT partition table is allowed to leave some parts of
|
||||||
|
the emerging ISO image uncovered, whether the partition entries in the
|
||||||
|
GPT get sorted by their start block addresses, and whether partition 1
|
||||||
|
gets created to represent the ISO 9660 filesystem.
|
||||||
|
Default is that the partition entries get sorted and all gaps get filled
|
||||||
|
by additional GPT partition entries. Partition 1 is by default created for
|
||||||
|
the ISO filesystem if partition offset is 16, no partition 1 was created for
|
||||||
|
other reasons, and no other partition overlaps with the range from LBA 16 to
|
||||||
|
the end of the ISO 9660 filesystem.
|
||||||
|
Note that GPT for ISOLINUX isohybrid does not get gaps filled, anyways.
|
||||||
|
@since 1.5.8
|
||||||
|
@param opts
|
||||||
|
The option set to be inquired.
|
||||||
|
@param with_gaps
|
||||||
|
If 0, fill gaps.
|
||||||
|
If 1, do not fill gaps.
|
||||||
|
@param with_gaps_no_sort
|
||||||
|
In case that with_gaps is 1:
|
||||||
|
If 0, sort partitions by start block addresses.
|
||||||
|
If 1, do not sort partitions.
|
||||||
|
@param with_gaps_no_iso
|
||||||
|
In case that with_gaps is 1:
|
||||||
|
If 0, create partition 1 for the ISO filesystem if possible.
|
||||||
|
If 1, do not create partition for the ISO filesystem if not already
|
||||||
|
created for other reasons.
|
||||||
|
@return
|
||||||
|
<=0 = error, 1 = success
|
||||||
|
*/
|
||||||
|
int isoburn_igopt_set_gpt_with_gaps(struct isoburn_imgen_opts *opts,
|
||||||
|
int with_gaps, int with_gaps_no_sort,
|
||||||
|
int with_gaps_no_iso);
|
||||||
|
|
||||||
|
/** Inquire the current settings made by isoburn_igopts_set_gpt_with_gaps().
|
||||||
|
@since 1.5.8
|
||||||
|
@param opts
|
||||||
|
The option set to be manipulated.
|
||||||
|
@param with_gaps
|
||||||
|
If 0, fill gaps.
|
||||||
|
If 1, do not fill gaps.
|
||||||
|
@param with_gaps_no_sort
|
||||||
|
In case that with_gaps is 1:
|
||||||
|
If 0, sort partitions by start block addresses.
|
||||||
|
If 1, do not sort partitions.
|
||||||
|
@param with_gaps_no_iso
|
||||||
|
In case that with_gaps is 1:
|
||||||
|
If 0, create partition 1 for the ISO filesystem if possible.
|
||||||
|
If 1, do not create partition for the ISO filesystem if not already
|
||||||
|
created for other reasons.
|
||||||
|
@return
|
||||||
|
<=0 = error, 1 = success
|
||||||
|
*/
|
||||||
|
int isoburn_igopt_get_gpt_with_gaps(struct isoburn_imgen_opts *opts,
|
||||||
|
int *with_gaps, int *with_gaps_no_sort,
|
||||||
|
int *with_gaps_no_iso);
|
||||||
|
|
||||||
/** Control whether partitions created by iso_write_opts_set_partition_img()
|
/** Control whether partitions created by iso_write_opts_set_partition_img()
|
||||||
are to be represented in Apple Partition Map.
|
are to be represented in Apple Partition Map.
|
||||||
@since 1.4.4
|
@since 1.4.4
|
||||||
|
@ -372,6 +372,8 @@ isoburn_get_attached_start_lba_v2;
|
|||||||
isoburn_get_mount_params_v2;
|
isoburn_get_mount_params_v2;
|
||||||
isoburn_igopt_get_data_start_v2;
|
isoburn_igopt_get_data_start_v2;
|
||||||
isoburn_igopt_get_effective_lba_v2;
|
isoburn_igopt_get_effective_lba_v2;
|
||||||
|
isoburn_igopt_get_gpt_with_gaps;
|
||||||
|
isoburn_igopt_set_gpt_with_gaps;
|
||||||
isoburn_prepare_blind_grow_v2;
|
isoburn_prepare_blind_grow_v2;
|
||||||
isoburn_read_iso_head_v2;
|
isoburn_read_iso_head_v2;
|
||||||
isoburn_toc_disc_get_sectors_v2;
|
isoburn_toc_disc_get_sectors_v2;
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Xorriso_timestamP "2024.11.03.191323"
|
#define Xorriso_timestamP "2024.12.16.171512"
|
||||||
|
Loading…
Reference in New Issue
Block a user