On 08/10/2018 08:59 AM, Igor Opaniuk wrote:
> 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 <[email protected]>


Sam reviewed v1, not sure enough changed to drop his review tag, anyway
for me:

Acked-by: Andrew F. Davis <[email protected]>

> ---
> 
> Changes for v3:
> - reword commit message, added avblib repository link, that stick to specific
>   tag
> - fix get_size_of_partition() function description.
> 
> Changes for v2:
> - change the return code for the case when out_size_num_bytes is NULL
>   (s/AVB_IO_RESULT_ERROR_IO/AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE/g)
> 
>  common/avb_verify.c | 33 ++++++++++++++++++++++++++++++++-
>  1 file changed, 32 insertions(+), 1 deletion(-)
> 
> diff --git a/common/avb_verify.c b/common/avb_verify.c
> index 20e35ad..82ddebc 100644
> --- a/common/avb_verify.c
> +++ b/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;
> 
_______________________________________________
U-Boot mailing list
[email protected]
https://lists.denx.de/listinfo/u-boot

Reply via email to