From: Michael Brown Date: Tue, 20 May 2008 17:41:36 +0000 (+0100) Subject: [SMBIOS] Interpret UUIDs as being in network-endian order X-Git-Tag: v0.9.4~162 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=30cd3486898e1d9a3add0ca05663637f4d3bf9c8;p=thirdparty%2Fipxe.git [SMBIOS] Interpret UUIDs as being in network-endian order Various specification documents disagree about the byte ordering of UUIDs. However, SMBIOS seems to use the standard in which everything is in network-endian order. This doesn't affect anything sent on the wire; only what gets printed on the screen when the "uuid" variable is displayed. --- diff --git a/src/core/uuid.c b/src/core/uuid.c index dae26c16c..c6e7f5d54 100644 --- a/src/core/uuid.c +++ b/src/core/uuid.c @@ -37,9 +37,9 @@ char * uuid_ntoa ( union uuid *uuid ) { static char buf[37]; /* "00000000-0000-0000-0000-000000000000" */ sprintf ( buf, "%08lx-%04x-%04x-%04x-%02x%02x%02x%02x%02x%02x", - le32_to_cpu ( uuid->canonical.a ), - le16_to_cpu ( uuid->canonical.b ), - le16_to_cpu ( uuid->canonical.c ), + be32_to_cpu ( uuid->canonical.a ), + be16_to_cpu ( uuid->canonical.b ), + be16_to_cpu ( uuid->canonical.c ), be16_to_cpu ( uuid->canonical.d ), uuid->canonical.e[0], uuid->canonical.e[1], uuid->canonical.e[2], uuid->canonical.e[3], diff --git a/src/include/gpxe/uuid.h b/src/include/gpxe/uuid.h index 4f89be507..18d1f1412 100644 --- a/src/include/gpxe/uuid.h +++ b/src/include/gpxe/uuid.h @@ -12,11 +12,11 @@ union uuid { /** Canonical form (00000000-0000-0000-0000-000000000000) */ struct { - /** 8 hex digits, little-endian */ + /** 8 hex digits, big-endian */ uint32_t a; - /** 2 hex digits, little-endian */ + /** 2 hex digits, big-endian */ uint16_t b; - /** 2 hex digits, little-endian */ + /** 2 hex digits, big-endian */ uint16_t c; /** 2 hex digits, big-endian */ uint16_t d;