On 01/14/2016 12:22 PM, Kevin O'Connor wrote:
On Tue, Jan 12, 2016 at 02:22:41PM -0500, Cole Robinson wrote:
SMBIOS 2.6+ stores the UUID in a different format, with the first 3 fields in little endian format. This is what modern qemu delivers and what dmidecode also handles, so let's follow suit too. More info at this thread:
http://www.seabios.org/pipermail/seabios/2015-November/010031.html
The only place this affects is when reporting the UUID at startup.
https://bugzilla.redhat.com/show_bug.cgi?id=1284259
src/fw/biostables.c | 51 ++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 11 deletions(-)
diff --git a/src/fw/biostables.c b/src/fw/biostables.c index cb74396..2e15f82 100644 --- a/src/fw/biostables.c +++ b/src/fw/biostables.c @@ -306,17 +306,46 @@ display_uuid(void) if (memcmp(uuid, empty_uuid, sizeof(empty_uuid)) == 0) return;
printf("Machine UUID"
" %02x%02x%02x%02x"
"-%02x%02x"
"-%02x%02x"
"-%02x%02x"
"-%02x%02x%02x%02x%02x%02x\n"
, uuid[ 0], uuid[ 1], uuid[ 2], uuid[ 3]
, uuid[ 4], uuid[ 5]
, uuid[ 6], uuid[ 7]
, uuid[ 8], uuid[ 9]
, uuid[10], uuid[11], uuid[12], uuid[13], uuid[14], uuid[15]);
/*
* comment borrowed from dmidecode:
*
* As of version 2.6 of the SMBIOS specification, the first 3
* fields of the UUID are supposed to be encoded on little-endian.
* The specification says that this is the defacto standard,
* however I've seen systems following RFC 4122 instead and use
* network byte order, so I am reluctant to apply the byte-swapping
* for older versions.
*/
I find this comment confusing - how about something like:
According to SMBIOS v2.6 the first three fields are encoded in little-endian format. Versions prior to v2.6 did not specify the encoding, but we follow dmidecode and assume big-endian encoding.
That would be fine with me. If Gerd gives his ACK do you want to fix up the comment or should I post a v2?
Thanks, Cole