]> git.proxmox.com Git - mirror_qemu.git/commit - vl.c
smbios: Encode UUID according to SMBIOS specification
authorEduardo Habkost <ehabkost@redhat.com>
Wed, 29 Oct 2014 13:26:08 +0000 (11:26 -0200)
committerMichael S. Tsirkin <mst@redhat.com>
Sun, 2 Nov 2014 11:44:52 +0000 (13:44 +0200)
commitcaad057bb6ce86a9cb71520af395fd0bd04a659f
tree9b26db555e09f85d22fd934e334769d124fb2997
parent2cad57c7177766e2779f30fed9e4578bc7ad62ac
smbios: Encode UUID according to SMBIOS specification

Differently from older versions, SMBIOS version 2.6 is explicit about
the encoding of UUID fields:

> Although RFC 4122 recommends network byte order for all fields, the PC
> industry (including the ACPI, UEFI, and Microsoft specifications) has
> consistently used little-endian byte encoding for the first three fields:
> time_low, time_mid, time_hi_and_version. The same encoding, also known as
> wire format, should also be used for the SMBIOS representation of the UUID.
>
> The UUID {00112233-4455-6677-8899-AABBCCDDEEFF} would thus be represented
> as 33 22 11 00 55 44 77 66 88 99 AA BB CC DD EE FF.

The dmidecode tool implements this and decodes the above "wire format"
when SMBIOS version >= 2.6. We moved from SMBIOS version 2.4 to 2.8 when
we started building the SMBIOS entry point inside QEMU, on commit
c97294ec1b9e36887e119589d456557d72ab37b5.

Change smbios_build_type_1_table() to encode the UUID as specified.

To make sure we won't change the guest-visible UUID when upgrading to a
newer QEMU version, keep the old behavior on pc-*-2.1 and older.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/i386/pc_piix.c
hw/i386/pc_q35.c
hw/i386/smbios.c
include/hw/i386/smbios.h
vl.c