mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-11-24 18:25:10 +00:00
cgptlib: Add functions to cgptlib API
Following changes are done to the cgptlib API in order to allow backend component of fastboot to perform erase and write operations on partitions and manipulate GPT entries: GptFindNthEntry - Returns the nth entry in GPT that matches provided GUID. GptGetEntrySizeLba - Returns size of a partition in lba. GptGetEntrySizeBytes - Returns size of a partition in bytes. GptUpdateKernelWithEntry - Given kernel entry is updated using the provided update_type. GptUpdateKernelEntry calls this function with entry for current_kernel. Add flags GPT_UPDATE_ENTRY_RESET and GPT_UPDATE_ENTRY_INVALID for calls to GptUpdateKernelEntry. These operations are used by write image and erase partition respectively. BUG=chrome-os-partner:35861 BRANCH=None TEST=Compiles successfully and all the newly added functions work as expected. Change-Id: I82c87e4c97de2d207e80209dbd4922b4bcd5880a Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://chromium-review.googlesource.com/240268 Trybot-Ready: Furquan Shaikh <furquan@chromium.org> Tested-by: Furquan Shaikh <furquan@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org> Commit-Queue: Furquan Shaikh <furquan@chromium.org>
This commit is contained in:
committed by
ChromeOS Commit Bot
parent
f1f53b3732
commit
f620c0d656
@@ -201,3 +201,23 @@ int IsUnusedEntry(const GptEntry *e)
|
||||
static Guid zero = {{{0, 0, 0, 0, 0, {0, 0, 0, 0, 0, 0}}}};
|
||||
return !Memcmp(&zero, (const uint8_t*)(&e->type), sizeof(zero));
|
||||
}
|
||||
|
||||
/*
|
||||
* Func: GptGetEntrySize
|
||||
* Desc: This function returns size(in lba) of a partition represented by
|
||||
* given GPT entry.
|
||||
*/
|
||||
size_t GptGetEntrySizeLba(const GptEntry *e)
|
||||
{
|
||||
return (e->ending_lba - e->starting_lba + 1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Func: GptGetEntrySize
|
||||
* Desc: This function returns size(in bytes) of a partition represented by
|
||||
* given GPT entry.
|
||||
*/
|
||||
size_t GptGetEntrySizeBytes(const GptData *gpt, const GptEntry *e)
|
||||
{
|
||||
return GptGetEntrySizeLba(e) * gpt->sector_bytes;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user