Re: [PATCH v3 04/10] lib/uuid: introduce few more generic helpers for UUID

From: Andy Shevchenko
Date: Tue Apr 05 2016 - 10:15:32 EST


On Tue, 2016-04-05 at 16:56 +0300, Andy Shevchenko wrote:
> There are new helpers in this patch:
>
> uuid_is_valid checks if a UUID is valid
> uuid_be_to_bin converts from string to binary (big
> endian)
> uuid_le_to_bin converts from string to binary (little
> endian)
>
> They will be used in future, i.e. in the following patches in the
> series.
>
> This also moves indices arrays to lib/uuid.c to be shared accross
> modules.
>

> --- a/lib/uuid.c
> +++ b/lib/uuid.c

> +static int __uuid_to_bin(const char *uuid, __u8 b[16], const u8
> ei[16])
> +{
> + static const u8 si[16] =
> {0,2,4,6,9,11,14,16,19,21,24,26,28,30,32,34};
> + unsigned int i;
> +
> + if (uuid_is_valid(uuid))

Oops, sorry, typo is here, should be negative check.

if (!uuid_is_valid(uuid))


> + return -EINVAL;
> +
> + for (i = 0; i < 16; i++) {
> + int hi = hex_to_bin(uuid[si[i]] + 0);
> + int lo = hex_to_bin(uuid[si[i]] + 1);
> +
> + b[ei[i]] = (hi << 4) | lo;
> + }
> +
> + return 0;
> +}

--
Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Intel Finland Oy