summaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
authorPeter Maydell2018-12-10 12:26:49 +0100
committerKevin Wolf2019-02-01 13:46:45 +0100
commit1324f06384870fdd6e5829dc4f775afe4de61867 (patch)
tree5435a92d2e2ff5dc6ba24d2b37a1fd3f11d2c158 /util
parentblock/vdi: Don't take address of fields in packed structs (diff)
downloadqemu-1324f06384870fdd6e5829dc4f775afe4de61867.tar.gz
qemu-1324f06384870fdd6e5829dc4f775afe4de61867.tar.xz
qemu-1324f06384870fdd6e5829dc4f775afe4de61867.zip
uuid: Make qemu_uuid_bswap() take and return a QemuUUID
Currently qemu_uuid_bswap() takes a pointer to the QemuUUID to be byte-swapped. This means it can't be used when the UUID to be swapped is in a packed member of a struct. It's also out of line with the general bswap*() functions we provide in bswap.h, which take the value to be swapped and return it. Make qemu_uuid_bswap() take a QemuUUID and return the swapped version. This fixes some clang warnings about taking the address of a packed struct member in block/vdi.c. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'util')
-rw-r--r--util/uuid.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/util/uuid.c b/util/uuid.c
index ebf06c049a..5787f0978c 100644
--- a/util/uuid.c
+++ b/util/uuid.c
@@ -110,10 +110,10 @@ int qemu_uuid_parse(const char *str, QemuUUID *uuid)
/* Swap from UUID format endian (BE) to the opposite or vice versa.
*/
-void qemu_uuid_bswap(QemuUUID *uuid)
+QemuUUID qemu_uuid_bswap(QemuUUID uuid)
{
- assert(QEMU_PTR_IS_ALIGNED(uuid, sizeof(uint32_t)));
- bswap32s(&uuid->fields.time_low);
- bswap16s(&uuid->fields.time_mid);
- bswap16s(&uuid->fields.time_high_and_version);
+ bswap32s(&uuid.fields.time_low);
+ bswap16s(&uuid.fields.time_mid);
+ bswap16s(&uuid.fields.time_high_and_version);
+ return uuid;
}