
split part_print_efi : create sub-functions part_print_gpt()
Signed-off-by: Patrick Delaunay patrick.delaunay@st.com Reviewed-by: Christophe KERELLO christophe.kerello@st.com Reviewed-by: Simon Glass sjg@chromium.org ---
Changes in v6: - add comment for function part_print_gpt and part_print_efi
Changes in v5: None Changes in v4: None Changes in v3: None Changes in v2: None
disk/part_efi.c | 63 ++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 23 deletions(-)
diff --git a/disk/part_efi.c b/disk/part_efi.c index 1b7ba27..88e925b 100644 --- a/disk/part_efi.c +++ b/disk/part_efi.c @@ -175,34 +175,18 @@ static void prepare_backup_gpt_header(gpt_header *gpt_h)
#if CONFIG_IS_ENABLED(EFI_PARTITION) /* - * Public Functions (include/part.h) + * part_print_gpt() - display GUID Partition Table information + * + * @param gpt_head - pointer to GPT header + * @param gpt_pte - pointer to GPT partion entry array */ - -void part_print_efi(struct blk_desc *dev_desc) +static void part_print_gpt(gpt_header *gpt_head, + gpt_entry *gpt_pte) { - ALLOC_CACHE_ALIGN_BUFFER_PAD(gpt_header, gpt_head, 1, dev_desc->blksz); - gpt_entry *gpt_pte = NULL; int i = 0; char uuid[37]; unsigned char *uuid_bin;
- /* This function validates AND fills in the GPT header and PTE */ - if (is_gpt_valid(dev_desc, GPT_PRIMARY_PARTITION_TABLE_LBA, - gpt_head, &gpt_pte) != 1) { - printf("%s: *** ERROR: Invalid GPT ***\n", __func__); - if (is_gpt_valid(dev_desc, (dev_desc->lba - 1), - gpt_head, &gpt_pte) != 1) { - printf("%s: *** ERROR: Invalid Backup GPT ***\n", - __func__); - return; - } else { - printf("%s: *** Using Backup GPT ***\n", - __func__); - } - } - - debug("%s: gpt-entry at %p\n", __func__, gpt_pte); - printf("Part\tStart LBA\tEnd LBA\t\tName\n"); printf("\tAttributes\n"); printf("\tType GUID\n"); @@ -229,10 +213,39 @@ void part_print_efi(struct blk_desc *dev_desc) uuid_bin_to_str(uuid_bin, uuid, UUID_STR_FORMAT_GUID); printf("\tguid:\t%s\n", uuid); } +} + +/* + * part_print_efi() - display EFI Partition information + * + * @param dev_desc - pointer to block device descriptor + */ +void part_print_efi(struct blk_desc *dev_desc) +{ + ALLOC_CACHE_ALIGN_BUFFER_PAD(gpt_header, gpt_head, 1, dev_desc->blksz); + gpt_entry *gpt_pte = NULL; + + /* This function validates AND fills in the GPT header and PTE */ + if (is_gpt_valid(dev_desc, GPT_PRIMARY_PARTITION_TABLE_LBA, + gpt_head, &gpt_pte) != 1) { + printf("%s: *** ERROR: Invalid GPT ***\n", __func__); + if (is_gpt_valid(dev_desc, (dev_desc->lba - 1), + gpt_head, &gpt_pte) != 1) { + printf("%s: *** ERROR: Invalid Backup GPT ***\n", + __func__); + return; + } else { + printf("%s: *** Using Backup GPT ***\n", + __func__); + } + } + + debug("%s: gpt-entry at %p\n", __func__, gpt_pte); + + part_print_gpt(gpt_head, gpt_pte);
/* Remember to free pte */ free(gpt_pte); - return; }
int part_get_info_efi(struct blk_desc *dev_desc, int part, @@ -349,6 +362,10 @@ static int set_protective_mbr(struct blk_desc *dev_desc) return 0; }
+/* + * Public Functions (include/part.h) + */ + int write_gpt_table(struct blk_desc *dev_desc, gpt_header *gpt_h, gpt_entry *gpt_e) {