[U-Boot] [PATCH 08/23] Add pr_fmt() macro

Simon Glass sjg at chromium.org
Mon Aug 18 20:24:06 CEST 2014


On 18 August 2014 01:16, Thierry Reding <thierry.reding at gmail.com> wrote:
> From: Thierry Reding <treding at nvidia.com>
>
> This macro can be overridden in source files (before including common.h)
> and can be used to specify a prefix for debug and error messages. An
> example of how to use this is shown below:
>
>         #define pr_fmt(fmt) "foo: " fmt
>
>         #include <common.h>
>
>         ...
>         debug("bar");
>
> The resulting message will read:
>
>         foo: bar
>
> Signed-off-by: Thierry Reding <treding at nvidia.com>

Acked-by: Simon Glass <sjg at chromium.org>

Seems OK. But I wonder if a string might be simpler?

#define DEBUG_PREFIX "foo: "

+#ifndef DEBUG_PREFIX
+#define DEBUG_PREFIX ""
+#endif

...
                     printf(DEBUG_PREFIX ##args);    \

> ---
>  include/common.h | 14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/include/common.h b/include/common.h
> index 1d6cb48ff078..65db04b452d7 100644
> --- a/include/common.h
> +++ b/include/common.h
> @@ -99,15 +99,19 @@ typedef volatile unsigned char      vu_char;
>  #define _DEBUG 0
>  #endif
>
> +#ifndef pr_fmt
> +#define pr_fmt(fmt) fmt
> +#endif
> +
>  /*
>   * Output a debug text when condition "cond" is met. The "cond" should be
>   * computed by a preprocessor in the best case, allowing for the best
>   * optimization.
>   */
> -#define debug_cond(cond, fmt, args...)         \
> -       do {                                    \
> -               if (cond)                       \
> -                       printf(fmt, ##args);    \
> +#define debug_cond(cond, fmt, args...)                 \
> +       do {                                            \
> +               if (cond)                               \
> +                       printf(pr_fmt(fmt), ##args);    \
>         } while (0)
>
>  #define debug(fmt, args...)                    \
> @@ -129,7 +133,7 @@ void __assert_fail(const char *assertion, const char *file, unsigned line,
>                 __assert_fail(#x, __FILE__, __LINE__, __func__); })
>
>  #define error(fmt, args...) do {                                       \
> -               printf("ERROR: " fmt "\nat %s:%d/%s()\n",               \
> +               printf("ERROR: " pr_fmt(fmt) "\nat %s:%d/%s()\n",       \
>                         ##args, __FILE__, __LINE__, __func__);          \
>  } while (0)
>
> --
> 2.0.4
>

Regards,
Simon


More information about the U-Boot mailing list