david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

[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.
This commit is contained in:
Michael Brown 2008-05-20 18:41:36 +01:00
parent 7d01bf663e
commit 30cd348689
2 changed files with 6 additions and 6 deletions

View File

@ -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],

View File

@ -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;