avb2.0: add get_size_of_partition()

Implement get_size_of_partition() operation,
which is required by the latest upstream libavb [1].

[1] https://android.googlesource.com/platform/external/avb/+/android-p-preview-5

Signed-off-by: Igor Opaniuk <igor.opaniuk@linaro.org>
Acked-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
lime2-spi
Igor Opaniuk 6 years ago committed by Tom Rini
parent b8a1f47be3
commit 7a5fbfe641
  1. 33
      common/avb_verify.c

@ -700,6 +700,37 @@ static AvbIOResult get_unique_guid_for_partition(AvbOps *ops,
}
/**
* get_size_of_partition() - gets the size of a partition identified
* by a string name
*
* @ops: contains AVB ops handlers
* @partition: partition name (NUL-terminated UTF-8 string)
* @out_size_num_bytes: returns the value of a partition size
*
* @return:
* AVB_IO_RESULT_OK, on success (GUID found)
* AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE, out_size_num_bytes is NULL
* AVB_IO_RESULT_ERROR_NO_SUCH_PARTITION, if partition was not found
*/
static AvbIOResult get_size_of_partition(AvbOps *ops,
const char *partition,
u64 *out_size_num_bytes)
{
struct mmc_part *part;
if (!out_size_num_bytes)
return AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE;
part = get_partition(ops, partition);
if (!part)
return AVB_IO_RESULT_ERROR_NO_SUCH_PARTITION;
*out_size_num_bytes = part->info.blksz * part->info.size;
return AVB_IO_RESULT_OK;
}
/**
* ============================================================================
* AVB2.0 AvbOps alloc/initialisation/free
* ============================================================================
@ -722,7 +753,7 @@ AvbOps *avb_ops_alloc(int boot_device)
ops_data->ops.read_is_device_unlocked = read_is_device_unlocked;
ops_data->ops.get_unique_guid_for_partition =
get_unique_guid_for_partition;
ops_data->ops.get_size_of_partition = get_size_of_partition;
ops_data->mmc_dev = boot_device;
return &ops_data->ops;

Loading…
Cancel
Save