qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v4 1/9] util: Add UUID API


From: Richard Henderson
Subject: Re: [Qemu-devel] [PATCH v4 1/9] util: Add UUID API
Date: Fri, 12 Aug 2016 07:19:12 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0

On 08/12/2016 03:01 AM, Fam Zheng wrote:
On Thu, 08/11 23:21, Richard Henderson wrote:
On 08/11/2016 05:50 AM, Fam Zheng wrote:
+void qemu_uuid_bswap(QemuUUID *uuid)
+{
+    bswap32s((uint32_t *)&uuid->data[0]);
+    bswap16s((uint16_t *)&uuid->data[4]);
+    bswap16s((uint16_t *)&uuid->data[6]);
+}

You have alignment problems here too.  Perhaps you really did want
to add uint32_t (and uint16_t?) as union members to QemuUUID.

But that may not be enough for embedded QemuUUID in a packed structure, such as
in block/vdi.c. So I'll also add an assertion here.

What sort of assertion do you think is going to work?

Any of the locally declared or globally declared QemuUUID variables may certainly be placed at any address by the compiler.

If you really really need unaligned addresses, I strongly advise you to use the unaligned access routines in qemu/bswap.h.


r~




reply via email to

[Prev in Thread] Current Thread [Next in Thread]