[PATCH 4/6] bloblist: expose 'expand_by' as an output argument
Tom Rini
trini at konsulko.com
Wed Jun 18 19:40:11 CEST 2025
On Wed, Jun 18, 2025 at 07:59:26AM -0700, Raymond Mao wrote:
> Some advanced usecases of bloblist needs to know the actual bytes
> expanded or shrunk after blob resizing.
> For example, to support applying DT overlay from bloblist, firstly
> the FDT blob needs to be resized for potential size increasing after
> applying overlay. If the DT overlay blob is one of the following blobs
> of the FDT, its address will be shifted after FDT blob resizing.
> Thus, returning 'expand_by' helps the caller to get the shifted data
> pointer when it comes to get the overlay for applying.
>
> Signed-off-by: Raymond Mao <raymond.mao at linaro.org>
[snip]
> @@ -337,6 +338,7 @@ void *bloblist_ensure(uint tag, int size);
> */
> int bloblist_ensure_size_ret(uint tag, int *sizep, void **blobp);
>
> +#if CONFIG_IS_ENABLED(BLOBLIST)
> /**
> * bloblist_resize() - resize a blob
> *
> @@ -345,10 +347,17 @@ int bloblist_ensure_size_ret(uint tag, int *sizep, void **blobp);
> *
> * @tag: Tag to add (enum bloblist_tag_t)
> * @new_size: New size of the blob (>0 to expand, <0 to contract)
> + * @expand_by: Number of bytes actually expanded by (-ve to contract)
> * Return: 0 if OK, -ENOSPC if the bloblist does not have enough space, -ENOENT
> * if the tag is not found
> */
> -int bloblist_resize(uint tag, int new_size);
> +int bloblist_resize(uint tag, int new_size, int *expand_by);
> +#else
> +static inline int bloblist_resize(uint tag, int new_size, int *expand_by)
> +{
> + return -EPERM;
> +}
> +#endif
Do we really need to be doing this if/else in the header? What's failing
otherwise, and can we not guard that with:
if (IS_ENABLED(CONFIG_BLOBLIST)) {
..
}
in the code?
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20250618/d9864ba7/attachment.sig>
More information about the U-Boot
mailing list