From 30cd3486898e1d9a3add0ca05663637f4d3bf9c8 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Tue, 20 May 2008 18:41:36 +0100 Subject: [PATCH] [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. --- src/core/uuid.c | 6 +++--- src/include/gpxe/uuid.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/core/uuid.c b/src/core/uuid.c index dae26c16..c6e7f5d5 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 4f89be50..18d1f141 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;