public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Stephen Warren <swarren@wwwdotorg.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH V2 2/3] lib: uuid: add functions to generate UUID version 4
Date: Thu, 13 Mar 2014 13:55:35 -0600	[thread overview]
Message-ID: <53220D37.9060303@wwwdotorg.org> (raw)
In-Reply-To: <20140313194836.11734381344@gemini.denx.de>

On 03/13/2014 01:48 PM, Wolfgang Denk wrote:
> Dear Tom,
> 
> In message <20140313191814.GB16360@bill-the-cat> you wrote:
>>
>>>> +struct uuid {
>>>> +	unsigned int time_low;
>>>> +	unsigned short time_mid;
>>>> +	unsigned short time_hi_and_version;
>>>> +	unsigned char clock_seq_hi_and_reserved;
>>>> +	unsigned char clock_seq_low;
>>>> +	unsigned char node[6];
>>>> +};

>>>> +void gen_rand_uuid(unsigned char *uuid_bin)
>>>> +{
>>>> +	struct uuid *uuid = (struct uuid *)uuid_bin;
>>>
>>> Here you cast a pointer to the (unaligned) character buffer to a
>>> struct buffer, which requires alignment.
>>
>> Potentially unaligned buffer.  There's only one caller thus far, and it
>> will be aligned there.  We do need to comment that the pointer needs to
>> be aligned.
> 
> No.  We should rather fix the code such that it works with any
> alignment.  It is trivial here to use a struct uuid on the stack and
> then use memcpy() to cpy the data from the struct to the buffer - no
> casting needed anywhere, and no alignment concerns either.

Why not just change the prototype of the function so that it takes a
pointer to a struct uuid. That way, the compiler will ensure that
everything is aligned correctly (assuming there are no broken casts at
the call site), and we won't have to either document any assumptions
about alignment, nor perform a memcpy() to work around any misalignment.

  reply	other threads:[~2014-03-13 19:55 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 [this message]
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
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=53220D37.9060303@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox