From: Karel Zak Date: Fri, 7 Jan 2022 13:05:36 +0000 (+0100) Subject: libfdisk: (gpt) provide last LBA where is partitions array X-Git-Tag: v2.38-rc1~66 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b9d930d6c357a39c9b06e1c519d3ca872168d9fa;p=thirdparty%2Futil-linux.git libfdisk: (gpt) provide last LBA where is partitions array Addresses: https://github.com/util-linux/util-linux/issues/1554 Signed-off-by: Karel Zak --- diff --git a/libfdisk/src/gpt.c b/libfdisk/src/gpt.c index 07665a825a..3d8b264d2a 100644 --- a/libfdisk/src/gpt.c +++ b/libfdisk/src/gpt.c @@ -1283,6 +1283,7 @@ static int gpt_get_disklabel_item(struct fdisk_context *cxt, struct fdisk_labeli { struct gpt_header *h; int rc = 0; + uint64_t x = 0; assert(cxt); assert(cxt->label); @@ -1316,10 +1317,18 @@ static int gpt_get_disklabel_item(struct fdisk_context *cxt, struct fdisk_labeli break; case GPT_LABELITEM_ENTRIESLBA: /* TRANSLATORS: The start of the array of partition entries. */ - item->name = _("Partition entries LBA"); + item->name = _("Partition entries starting LBA"); item->type = 'j'; item->data.num64 = le64_to_cpu(h->partition_entry_lba); break; + case GPT_LABELITEM_ENTRIESLASTLBA: + /* TRANSLATORS: The end of the array of partition entries. */ + item->name = _("Partition entries ending LBA"); + item->type = 'j'; + gpt_calculate_sectorsof_entries(h, + le32_to_cpu(h->npartition_entries), &x, cxt); + item->data.num64 = le64_to_cpu(h->partition_entry_lba) + x - 1; + break; case GPT_LABELITEM_ENTRIESALLOC: item->name = _("Allocated partition entries"); item->type = 'j'; diff --git a/libfdisk/src/libfdisk.h.in b/libfdisk/src/libfdisk.h.in index 6d1262a55b..1c9714975a 100644 --- a/libfdisk/src/libfdisk.h.in +++ b/libfdisk/src/libfdisk.h.in @@ -776,10 +776,11 @@ extern void fdisk_gpt_enable_minimize(struct fdisk_label *lb, int enable); * fdisk_labelitem_gpt: * @GPT_LABELITEM_ID: GPT disklabel UUID (!= partition UUID) * @GPT_LABELITEM_FIRSTLBA: First Usable LBA - * @GPT_LABELITEM_LASTLBA: Usable LBA + * @GPT_LABELITEM_LASTLBA: Last Usable LBA * @GPT_LABELITEM_ALTLBA: Alternative LBA (backup header LBA) * @GPT_LABELITEM_ENTRIESLBA: Partitions entries array LBA * @GPT_LABELITEM_ENTRIESALLOC: Number of allocated entries in entries array + * @GPT_LABELITEM_ENTRIESLASTLBA: Last LBA where is entries array * * GPT specific label items. */ @@ -791,7 +792,8 @@ enum fdisk_labelitem_gpt { GPT_LABELITEM_LASTLBA, GPT_LABELITEM_ALTLBA, GPT_LABELITEM_ENTRIESLBA, - GPT_LABELITEM_ENTRIESALLOC + GPT_LABELITEM_ENTRIESALLOC, + GPT_LABELITEM_ENTRIESLASTLBA }; /* script.c */