[PATCH 1/2] lib: fwts_guid: Add fwts_guid_str_to_buf to convert string back to a GUID

Keng-Yu Lin kengyu at canonical.com
Tue Sep 11 06:13:19 UTC 2012


On Thu, Sep 6, 2012 at 2:28 AM, Colin King <colin.king at canonical.com> wrote:
> From: Colin Ian King <colin.king at canonical.com>
>
> We need to convert GUIDs in ASCII strings back to a 16 byte GUID for
> some of the UEFI variable GUID string handling.
>
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
>  src/lib/include/fwts_guid.h |    1 +
>  src/lib/src/fwts_guid.c     |   14 ++++++++++++++
>  2 files changed, 15 insertions(+)
>
> diff --git a/src/lib/include/fwts_guid.h b/src/lib/include/fwts_guid.h
> index d836948..ba5ee6c 100644
> --- a/src/lib/include/fwts_guid.h
> +++ b/src/lib/include/fwts_guid.h
> @@ -24,5 +24,6 @@
>  #include <stdint.h>
>
>  void fwts_guid_buf_to_str(uint8_t *guid, char *guid_str, size_t guid_str_len);
> +void fwts_guid_str_to_buf(const char *guid_str, uint8_t *guid, size_t guid_len);
>
>  #endif
> diff --git a/src/lib/src/fwts_guid.c b/src/lib/src/fwts_guid.c
> index 510cb25..b4e9b07 100644
> --- a/src/lib/src/fwts_guid.c
> +++ b/src/lib/src/fwts_guid.c
> @@ -33,3 +33,17 @@ void fwts_guid_buf_to_str(uint8_t *guid, char *guid_str, size_t guid_str_len)
>                         guid[3], guid[2], guid[1], guid[0], guid[5], guid[4], guid[7], guid[6],
>                         guid[8], guid[9], guid[10], guid[11], guid[12], guid[13], guid[14], guid[15]);
>  }
> +
> +/*
> + *  fwts_guid_str_to_buf()
> + *     convert a GUID string back to a 16 byte GUID
> + *     guid needs to be at least 16 chars long
> + */
> +void fwts_guid_str_to_buf(const char *guid_str, uint8_t *guid, size_t guid_len)
> +{
> +       if (guid && guid_len >= 16) {
> +               sscanf(guid_str, "%2hhx%2hhx%2hhx%2hhx-%2hhx%2hhx-%2hhx%2hhx-%2hhx%2hhx-%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx",
> +                       &guid[3], &guid[2], &guid[1], &guid[0], &guid[5], &guid[4], &guid[7], &guid[6],
> +                       &guid[8], &guid[9], &guid[10], &guid[11], &guid[12], &guid[13], &guid[14], &guid[15]);
> +       }
> +}
> --
> 1.7.10.4
>
Acked-by: Keng-Yu Lin <kengyu at canonical.com>



More information about the fwts-devel mailing list