From: Simon Glass <simon.glass@canonical.com> Add emit_desc() which handles getting and printing descriptions from FIT nodes. Handle the "unavailable" case when a description is missing. Co-developed-by: Claude <noreply@anthropic.com> Signed-off-by: Simon Glass <simon.glass@canonical.com> --- boot/fit_print.c | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/boot/fit_print.c b/boot/fit_print.c index 8781d5a7da7..069afbe8567 100644 --- a/boot/fit_print.c +++ b/boot/fit_print.c @@ -159,6 +159,26 @@ static void emit_stringlist(struct fit_print_ctx *ctx, int noffset, emit_label_val(ctx, i ? "" : label, val); } +/** + * emit_desc() - print a description + * @ctx: pointer to FIT print context + * @noffset: offset of the node containing the description + * @label: label string to use when printing + * + * Gets the description from the specified node and prints it with the given + * label. If the description is not available, prints "unavailable" instead. + * This is a convenience function for printing FIT descriptions. + */ +static void emit_desc(struct fit_print_ctx *ctx, int noffset, + const char *label) +{ + const char *desc; + int ret; + + ret = fit_get_desc(ctx->fit, noffset, &desc); + emit_label_val(ctx, label, ret ? "unavailable" : desc); +} + /** * fit_image_print_data() - prints out the hash node details * @ctx: pointer to FIT print context @@ -262,7 +282,6 @@ void fit_image_print(struct fit_print_ctx *ctx, int image_noffset) { const void *fit = ctx->fit; uint8_t type, arch, os, comp = IH_COMP_NONE; - const char *desc; size_t size; ulong load, entry; const void *data; @@ -271,8 +290,7 @@ void fit_image_print(struct fit_print_ctx *ctx, int image_noffset) int ret; /* Mandatory properties */ - ret = fit_get_desc(fit, image_noffset, &desc); - emit_label_val(ctx, "Description", ret ? "unavailable" : desc); + emit_desc(ctx, image_noffset, "Description"); emit_timestamp(ctx, 0, "Created"); @@ -368,12 +386,11 @@ void fit_image_print(struct fit_print_ctx *ctx, int image_noffset) static void fit_conf_print(struct fit_print_ctx *ctx, int noffset) { const void *fit = ctx->fit; - const char *uname, *desc; - int ret, ndepth; + const char *uname; + int ndepth; /* Mandatory properties */ - ret = fit_get_desc(fit, noffset, &desc); - emit_label_val(ctx, "Description", ret ? "unavailable" : desc); + emit_desc(ctx, noffset, "Description"); uname = fdt_getprop(fit, noffset, FIT_KERNEL_PROP, NULL); emit_label_val(ctx, "Kernel", uname ?: "unavailable"); @@ -401,18 +418,15 @@ void fit_print(struct fit_print_ctx *ctx) { const void *fit = ctx->fit; int p = ctx->indent; - const char *desc; char *uname; int images_noffset; int confs_noffset; int noffset; int ndepth; int count = 0; - int ret; /* Root node properties */ - ret = fit_get_desc(fit, 0, &desc); - emit_label_val(ctx, "FIT description", ret ? "unavailable" : desc); + emit_desc(ctx, 0, "FIT description"); emit_timestamp(ctx, 0, "Created"); -- 2.43.0