[U-Boot] [PATCH v2 1/1] lib/vsprintf: allow printing upper case GUIDs

Alexander Graf agraf at csgraf.de
Sat Apr 27 08:00:32 UTC 2019


On 26.04.19 19:23, Heinrich Schuchardt wrote:
> In the UEFI context GUIDs are expected to be rendered in upper case.
>
> The patch uses the formerly unused bit 1 of the parameter str_format
> of function uuid_bin_to_str() to indicate if we need upper or lower case
> output.
>
> Function uuid_string() in vsprint.c is adjusted to correctly set the bit
> depending on the print format code.
>
> %pUb: 01020304-0506-0708-090a-0b0c0d0e0f10
> %pUB: 01020304-0506-0708-090A-0B0C0D0E0F10
> %pUl: 04030201-0605-0807-090a-0b0c0d0e0f10
> %pUL: 04030201-0605-0807-090A-0B0C0D0E0F10
>
> Up to this point only a diagnostic message in mount_ubifs() using '%pUB' is
> concerned by the change. Further patches are needed to adjust the UEFI
> subsystem.
>
> A unit test is provided inside the ut_print command.
>
> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
> ---
> v2
> 	add missing sprintf() statement in unit test
> ---
>  include/uuid.h  |  8 ++++----
>  lib/uuid.c      | 18 ++++++++++++------
>  lib/vsprintf.c  | 14 ++++++++------
>  test/print_ut.c | 23 +++++++++++++++++++++++
>  4 files changed, 47 insertions(+), 16 deletions(-)
>
> diff --git a/include/uuid.h b/include/uuid.h
> index 124bbce8a2..47d5b0d8d4 100644
> --- a/include/uuid.h
> +++ b/include/uuid.h
> @@ -16,10 +16,10 @@ struct uuid {
>  	unsigned char node[6];
>  } __packed;
>
> -enum {
> -	UUID_STR_FORMAT_STD,
> -	UUID_STR_FORMAT_GUID
> -};
> +/* Bits of a bitmask specifying the output format for GUIDs */
> +#define UUID_STR_FORMAT_STD	0
> +#define UUID_STR_FORMAT_GUID	1
> +#define UUID_STR_UPPER_CASE	2


When #define'ing bitmasks, it's usually more obvious for the reader when
they're defined through shift operations:

  #define ... (1<<0)
  #define ... (1<<1)
  etc


The rest looks great to me :)


Alex



More information about the U-Boot mailing list