part: Add accessors for struct disk_partition uuid

This field is only present when a CONFIG is set. To avoid annoying #ifdefs
in the source code, add accessors. Update all code to use it.

Note that the accessor is optional. It can be omitted if it is known that
the option is enabled.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2023-08-24 13:55:31 -06:00
committed by Tom Rini
parent ade2316da3
commit c5f1d005f5
6 changed files with 58 additions and 39 deletions

View File

@@ -368,10 +368,8 @@ int part_get_info_by_type(struct blk_desc *desc, int part, int part_type,
struct part_driver *drv;
if (blk_enabled()) {
#if CONFIG_IS_ENABLED(PARTITION_UUIDS)
/* The common case is no UUID support */
info->uuid[0] = 0;
#endif
disk_partition_clr_uuid(info);
#ifdef CONFIG_PARTITION_TYPE_GUID
info->type_guid[0] = 0;
#endif
@@ -416,9 +414,7 @@ int part_get_info_whole_disk(struct blk_desc *desc,
info->bootable = 0;
strcpy((char *)info->type, BOOT_PART_TYPE);
strcpy((char *)info->name, "Whole Disk");
#if CONFIG_IS_ENABLED(PARTITION_UUIDS)
info->uuid[0] = 0;
#endif
disk_partition_clr_uuid(info);
#ifdef CONFIG_PARTITION_TYPE_GUID
info->type_guid[0] = 0;
#endif

View File

@@ -231,10 +231,8 @@ static int part_get_info_extended(struct blk_desc *desc,
return -1;
}
#if CONFIG_IS_ENABLED(PARTITION_UUIDS)
if (!ext_part_sector)
if (CONFIG_IS_ENABLED(PARTITION_UUIDS) && !ext_part_sector)
disksig = get_unaligned_le32(&buffer[DOS_PART_DISKSIG_OFFSET]);
#endif
ret = part_get_info_whole_disk(desc, &wdinfo);
if (ret)
@@ -263,9 +261,12 @@ static int part_get_info_extended(struct blk_desc *desc,
/* sprintf(info->type, "%d, pt->sys_ind); */
strcpy((char *)info->type, "U-Boot");
info->bootable = get_bootable(pt);
#if CONFIG_IS_ENABLED(PARTITION_UUIDS)
sprintf(info->uuid, "%08x-%02x", disksig, part_num);
#endif
if (CONFIG_IS_ENABLED(PARTITION_UUIDS)) {
char str[12];
sprintf(str, "%08x-%02x", disksig, part_num);
disk_partition_set_uuid(info, str);
}
info->sys_ind = pt->sys_ind;
return 0;
}
@@ -302,9 +303,7 @@ static int part_get_info_extended(struct blk_desc *desc,
info->blksz = DOS_PART_DEFAULT_SECTOR;
info->bootable = 0;
strcpy((char *)info->type, "U-Boot");
#if CONFIG_IS_ENABLED(PARTITION_UUIDS)
info->uuid[0] = 0;
#endif
disk_partition_clr_uuid(info);
return 0;
}

View File

@@ -289,10 +289,11 @@ int part_get_info_efi(struct blk_desc *desc, int part,
print_efiname(&gpt_pte[part - 1]));
strcpy((char *)info->type, "U-Boot");
info->bootable = get_bootable(&gpt_pte[part - 1]);
#if CONFIG_IS_ENABLED(PARTITION_UUIDS)
uuid_bin_to_str(gpt_pte[part - 1].unique_partition_guid.b, info->uuid,
UUID_STR_FORMAT_GUID);
#endif
if (CONFIG_IS_ENABLED(PARTITION_UUIDS)) {
uuid_bin_to_str(gpt_pte[part - 1].unique_partition_guid.b,
(char *)disk_partition_uuid(info),
UUID_STR_FORMAT_GUID);
}
#ifdef CONFIG_PARTITION_TYPE_GUID
uuid_bin_to_str(gpt_pte[part - 1].partition_type_guid.b,
info->type_guid, UUID_STR_FORMAT_GUID);
@@ -415,10 +416,7 @@ int gpt_fill_pte(struct blk_desc *desc,
le64_to_cpu(gpt_h->last_usable_lba);
int i, k;
size_t efiname_len, dosname_len;
#if CONFIG_IS_ENABLED(PARTITION_UUIDS)
char *str_uuid;
unsigned char *bin_uuid;
#endif
#ifdef CONFIG_PARTITION_TYPE_GUID
char *str_type_guid;
unsigned char *bin_type_guid;
@@ -487,16 +485,19 @@ int gpt_fill_pte(struct blk_desc *desc,
&partition_basic_data_guid, 16);
#endif
#if CONFIG_IS_ENABLED(PARTITION_UUIDS)
str_uuid = partitions[i].uuid;
bin_uuid = gpt_e[i].unique_partition_guid.b;
if (CONFIG_IS_ENABLED(PARTITION_UUIDS)) {
const char *str_uuid;
if (uuid_str_to_bin(str_uuid, bin_uuid, UUID_STR_FORMAT_GUID)) {
log_debug("Partition no. %d: invalid guid: %s\n",
i, str_uuid);
return -EINVAL;
str_uuid = disk_partition_uuid(&partitions[i]);
bin_uuid = gpt_e[i].unique_partition_guid.b;
if (uuid_str_to_bin(str_uuid, bin_uuid,
UUID_STR_FORMAT_GUID)) {
log_debug("Partition no. %d: invalid guid: %s\n",
i, str_uuid);
return -EINVAL;
}
}
#endif
/* partition attributes */
memset(&gpt_e[i].attributes, 0,