From: Stephen Warren <swarren@wwwdotorg.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v4 2/6] lib: uuid: code refactor for proper maintain between uuid bin and string
Date: Wed, 26 Mar 2014 12:43:23 -0600 [thread overview]
Message-ID: <53331FCB.9090108@wwwdotorg.org> (raw)
In-Reply-To: <5332C168.4030308@samsung.com>
On 03/26/2014 06:00 AM, Przemyslaw Marczak wrote:
> Hello Stephen,
> Thanks for review again:)
>
> On 03/25/2014 08:12 PM, Stephen Warren wrote:
>> On 03/19/2014 11:58 AM, Przemyslaw Marczak wrote:
>>> Changes in lib/uuid.c to:
>>> - uuid_str_to_bin()
>>> - uuid_bin_to_str()
>>>
>>> New parameter is added to specify input/output string format in
>>> listed functions
>>> This change allows easy recognize which UUID type is or should be
>>> stored in given
>>> string array. Binary data of UUID and GUID is always stored in big
>>> endian, only
>>> string representations are different as follows.
>>>
>>> String byte: 0 36
>>> String char: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
>>> string UUID: be be be be be
>>> string GUID: le le le be be
>>>
>>> This patch also updates functions calls and declarations in a whole
>>> code.
>>> diff --git a/lib/uuid.c b/lib/uuid.c
>>
>>
>>> +void uuid_bin_to_str(unsigned char *uuid_bin, char *uuid_str,
>>> + uuid_str_t str_format)
>>> {
>>> - static const u8 le[16] = {3, 2, 1, 0, 5, 4, 7, 6, 8, 9, 10, 11,
>>> - 12, 13, 14, 15};
>>> + const u8 uuid_char_order[UUID_BIN_LEN] = {0, 1, 2, 3, 4, 5, 6,
>>> 7, 8,
>>> + 9, 10, 11, 12, 13, 14, 15};
>>> + const u8 guid_char_order[UUID_BIN_LEN] = {3, 2, 1, 0, 5, 4, 7,
>>> 6, 8,
>>> + 9, 10, 11, 12, 13, 14, 15};
>>
>> These are really more binary data order than char order, since each one
>> of the bytes pointed at by entries in these arrays ends up being 2
>> characters. s/char/bin/ in the variable names perhaps?
>
> Yes, you are right. But according to the specification UUID and UUID bin
> format are always in big-endian - only bytes in some STRING blocks have
> different order. This works in two ways but to be consistent with
> specification I called this as "uuid_char_order". And this is directly
> used by sprintf: "sprintf(uuid_str, "%02x", uuid_bin[char_order[i]]);".
That doesn't make much sense.
If I have 2 bytes stored in memory as:
0xaa 0x55
... and sometimes the string representation of them is aa55 and
sometimes 55aa, then *by definition*, that's interpreting the binary
data as BE vs LE. The binary data is not always BE.
The only exception would be if for bytes in memory 0xaa 0x55 the 16-bit
integer/numerical (in-register) value was always 0xaa55 (BE), yet the
string representation of that integer was sometimes aa55 and sometimes
55aa. However, that's not how integer->string conversion works.
Different string representations of the binary data would only be
possible if the binary data isn't an integer but rather a string of
bytes, yet endianness has no meaning for data that is natively a string
of bytes, only for larger values that have been serialized into a string
of bytes.
next prev parent reply other threads:[~2014-03-26 18:43 UTC|newest]
Thread overview: 90+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-28 15:18 [U-Boot] [PATCH 1/2] lib: uuid: add function to generate UUID version 4 Przemyslaw Marczak
2014-02-28 15:18 ` [U-Boot] [PATCH 2/2] cmd:gpt: randomly generate each partition uuid if undefined Przemyslaw Marczak
2014-02-28 17:03 ` Stephen Warren
2014-03-03 13:45 ` Przemyslaw Marczak
2014-03-03 14:13 ` Tom Rini
2014-03-03 15:31 ` Przemyslaw Marczak
2014-03-03 16:46 ` Tom Rini
2014-03-03 17:23 ` Przemyslaw Marczak
2014-03-03 17:35 ` Tom Rini
2014-03-03 17:58 ` Przemyslaw Marczak
2014-02-28 16:55 ` [U-Boot] [PATCH 1/2] lib: uuid: add function to generate UUID version 4 Stephen Warren
2014-03-03 13:44 ` Przemyslaw Marczak
2014-03-03 17:47 ` Stephen Warren
2014-03-05 16:45 ` [U-Boot] [PATCH V2 1/3] part_efi: move uuid_string() and string_uuid() to lib/uuid.c Przemyslaw Marczak
2014-03-05 16:45 ` [U-Boot] [PATCH V2 2/3] lib: uuid: add functions to generate UUID version 4 Przemyslaw Marczak
2014-03-10 17:37 ` Stephen Warren
2014-03-13 18:10 ` Przemyslaw Marczak
2014-03-13 18:41 ` Wolfgang Denk
2014-03-13 18:41 ` Wolfgang Denk
2014-03-13 19:18 ` Tom Rini
2014-03-13 19:48 ` Wolfgang Denk
2014-03-13 19:55 ` Stephen Warren
2014-03-13 19:51 ` Przemyslaw Marczak
2014-03-05 16:45 ` [U-Boot] [PATCH V2 3/3] cmd:gpt: randomly generate each partition uuid if undefined Przemyslaw Marczak
2014-03-10 17:44 ` Stephen Warren
2014-03-13 17:28 ` Przemyslaw Marczak
2014-03-13 19:49 ` Stephen Warren
2014-03-13 20:13 ` Przemyslaw Marczak
2014-03-10 17:24 ` [U-Boot] [PATCH V2 1/3] part_efi: move uuid_string() and string_uuid() to lib/uuid.c Stephen Warren
2014-03-10 17:28 ` Tom Rini
2014-03-10 17:52 ` Tom Rini
2014-03-10 17:29 ` Stephen Warren
2014-03-10 17:39 ` Tom Rini
2014-03-14 14:37 ` [U-Boot] [PATCH v3 1/3] part_efi: move uuid<->string conversion functions into lib/uuid.c Przemyslaw Marczak
2014-03-14 14:37 ` [U-Boot] [PATCH v3 2/3] lib: uuid: add functions to generate UUID version 4 Przemyslaw Marczak
2014-03-14 16:12 ` Wolfgang Denk
2014-03-17 9:16 ` Przemyslaw Marczak
2014-03-14 14:37 ` [U-Boot] [PATCH v3 3/3] cmd:gpt: randomly generate each partition uuid if undefined Przemyslaw Marczak
2014-03-14 16:16 ` Wolfgang Denk
2014-03-17 9:17 ` Przemyslaw Marczak
2014-03-14 16:06 ` [U-Boot] [PATCH v3 1/3] part_efi: move uuid<->string conversion functions into lib/uuid.c Wolfgang Denk
2014-03-17 9:15 ` Przemyslaw Marczak
2014-03-19 17:58 ` [U-Boot] [PATCH v4 1/6] " Przemyslaw Marczak
2014-03-19 17:58 ` [U-Boot] [PATCH v4 2/6] lib: uuid: code refactor for proper maintain between uuid bin and string Przemyslaw Marczak
2014-03-19 19:20 ` Wolfgang Denk
2014-03-25 19:12 ` Stephen Warren
2014-03-26 12:00 ` Przemyslaw Marczak
2014-03-26 18:43 ` Stephen Warren [this message]
2014-03-19 17:58 ` [U-Boot] [PATCH v4 3/6] lib: uuid: add functions to generate UUID version 4 Przemyslaw Marczak
2014-03-25 19:28 ` Stephen Warren
2014-03-26 12:00 ` Przemyslaw Marczak
2014-03-26 18:47 ` Stephen Warren
2014-03-27 9:17 ` Przemyslaw Marczak
2014-03-19 17:58 ` [U-Boot] [PATCH v4 4/6] new commands: uuid and guid - generate random unique identifier Przemyslaw Marczak
2014-03-25 19:37 ` Stephen Warren
2014-03-26 12:01 ` Przemyslaw Marczak
2014-03-26 18:32 ` Stephen Warren
2014-03-27 9:17 ` Przemyslaw Marczak
2014-03-19 17:58 ` [U-Boot] [PATCH v4 5/6] cmd:gpt: randomly generate each partition uuid if undefined Przemyslaw Marczak
2014-03-25 19:51 ` Stephen Warren
2014-03-26 12:01 ` Przemyslaw Marczak
2014-03-26 18:36 ` Stephen Warren
2014-03-27 9:17 ` Przemyslaw Marczak
2014-03-19 17:58 ` [U-Boot] [PATCH v4 6/6] trats/trats2: enable CONFIG_RANDOM_UUID Przemyslaw Marczak
2014-03-25 19:51 ` Stephen Warren
2014-03-26 12:01 ` Przemyslaw Marczak
2014-03-19 19:19 ` [U-Boot] [PATCH v4 1/6] part_efi: move uuid<->string conversion functions into lib/uuid.c Wolfgang Denk
2014-03-20 8:42 ` Przemyslaw Marczak
2014-03-25 19:03 ` Stephen Warren
2014-04-01 14:30 ` [U-Boot] [PATCH v5 " Przemyslaw Marczak
2014-04-01 14:30 ` [U-Boot] [PATCH v5 2/6] lib: uuid: code refactor for proper maintain between uuid bin and string Przemyslaw Marczak
2014-04-01 14:30 ` [U-Boot] [PATCH v5 3/6] lib: uuid: add functions to generate UUID version 4 Przemyslaw Marczak
2014-04-01 14:30 ` [U-Boot] [PATCH v5 4/6] new commands: uuid and guid - generate random unique identifier Przemyslaw Marczak
2014-04-01 14:30 ` [U-Boot] [PATCH v5 5/6] cmd:gpt: randomly generate each partition uuid if undefined Przemyslaw Marczak
2014-04-01 14:30 ` [U-Boot] [PATCH v5 6/6] trats/trats2: enable CONFIG_RANDOM_UUID Przemyslaw Marczak
2014-04-02 1:28 ` Minkyu Kang
2014-04-02 8:20 ` [U-Boot] [PATCH v6 1/6] part_efi: move uuid<->string conversion functions into lib/uuid.c Przemyslaw Marczak
2014-04-02 8:20 ` [U-Boot] [PATCH v6 2/6] lib: uuid: code refactor for proper maintain between uuid bin and string Przemyslaw Marczak
2014-04-02 21:18 ` [U-Boot] [U-Boot, v6, " Tom Rini
2014-04-02 8:20 ` [U-Boot] [PATCH v6 3/6] lib: uuid: add functions to generate UUID version 4 Przemyslaw Marczak
2014-04-02 8:25 ` Przemyslaw Marczak
2014-04-02 21:18 ` [U-Boot] [U-Boot, v6, " Tom Rini
2014-04-02 8:20 ` [U-Boot] [PATCH v6 4/6] new commands: uuid and guid - generate random unique identifier Przemyslaw Marczak
2014-04-02 21:18 ` [U-Boot] [U-Boot, v6, " Tom Rini
2014-04-02 8:20 ` [U-Boot] [PATCH v6 5/6] cmd:gpt: randomly generate each partition uuid if undefined Przemyslaw Marczak
2014-04-02 21:19 ` [U-Boot] [U-Boot, v6, " Tom Rini
2014-04-02 8:20 ` [U-Boot] [PATCH v6 6/6] trats/trats2: enable CONFIG_RANDOM_UUID Przemyslaw Marczak
2014-04-02 21:19 ` [U-Boot] [U-Boot, v6, " Tom Rini
2014-04-02 21:18 ` [U-Boot] [U-Boot, v6, 1/6] part_efi: move uuid<->string conversion functions into lib/uuid.c Tom Rini
2014-04-03 7:10 ` Przemyslaw Marczak
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53331FCB.9090108@wwwdotorg.org \
--to=swarren@wwwdotorg.org \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.