New API calls isoburn_igopt_set_gpt_guid(), isoburn_igopt_get_gpt_guid()

This commit is contained in:
2016-08-12 18:46:36 +00:00
parent 1f72984e33
commit 79a45f90f6
5 changed files with 82 additions and 2 deletions

View File

@ -1987,6 +1987,47 @@ int isoburn_igopt_set_part_like_isohybrid(struct isoburn_imgen_opts *opts,
int isoburn_igopt_get_part_like_isohybrid(struct isoburn_imgen_opts *opts,
int *alike);
/** Control whether the emerging GPT gets a pseudo-randomly generated disk GUID
or whether it gets a user supplied GUID.
The partition GUIDs will be generated in a reproducible way by exoring a
little-endian 32 bit counter with the disk GUID beginning at byte offset 9.
@since 1.4.6
@param opts
The option set to be manipulated.
@param guid
16 bytes of user supplied GUID.
The upper 4 bit of guid[6] and guid[7] should bear the value 4 to
express the version 4 in both endiannesses. Bit 7 of byte[8] should
be set to 1 and bit 6 be set to 0, in order to express the RFC 4122
variant of GUID, where version 4 means "random".
@param mode
0 = ignore parameter guid and produce the GPT disk GUID by a
pseudo-random algorithm. This is the default setting.
1 = use parameter guid as GPT disk GUID
2 = ignore parameter guid and derive the GPT disk GUID from
parameter uuid of isoburn_igopt_set_pvd_times().
The 16 bytes of uuid get copied and bytes 6, 7, 8 get their
upper bits changed to comply to RFC 4122.
If no such uuid is given when ISO production starts, then
mode 2 defaults to mode 0.
*/
int isoburn_igopt_set_gpt_guid(struct isoburn_imgen_opts *opts,
uint8_t guid[16], int mode);
/** Inquire the current setting of isoburn_igopt_set_gpt_guid().
@since 1.4.6
@param opts
The option set to be inquired.
@param guid
Returns the current guid if current mode is 1.
@param mode
Returns the current value.
@return
<=0 = error, 1 = success
*/
int isoburn_igopt_get_gpt_guid(struct isoburn_imgen_opts *opts,
uint8_t guid[16], int *mode);
/** Set a name for the system area. This setting is ignored unless system area
type 3 "SUN Disk Label" is in effect by iso_write_opts_set_system_area().