diff --git a/src/core/uuid.c b/src/core/uuid.c index 27a249d..d4deda3 100644 --- a/src/core/uuid.c +++ b/src/core/uuid.c @@ -21,7 +21,7 @@ FILE_LICENCE ( GPL2_OR_LATER ); #include #include -#include +#include #include /** @file @@ -39,13 +39,18 @@ FILE_LICENCE ( GPL2_OR_LATER ); char * uuid_ntoa ( const union uuid *uuid ) { static char buf[37]; /* "00000000-0000-0000-0000-000000000000" */ - sprintf ( buf, "%08x-%04x-%04x-%04x-%02x%02x%02x%02x%02x%02x", - be32_to_cpu ( uuid->canonical.a ), - be16_to_cpu ( uuid->canonical.b ), - be16_to_cpu ( uuid->canonical.c ), - be16_to_cpu ( uuid->canonical.d ), + sprintf ( buf, "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", + uuid->canonical.a[3], uuid->canonical.a[2], + uuid->canonical.a[1], uuid->canonical.a[0], + uuid->canonical.b[1], uuid->canonical.b[0], + uuid->canonical.c[1], uuid->canonical.c[0], + uuid->canonical.d[1], uuid->canonical.d[0], uuid->canonical.e[0], uuid->canonical.e[1], uuid->canonical.e[2], uuid->canonical.e[3], uuid->canonical.e[4], uuid->canonical.e[5] ); + int i=0; + do + buf[i]=toupper(buf[i]); + while (buf[i++]); return buf; } diff --git a/src/include/ipxe/uuid.h b/src/include/ipxe/uuid.h index 5de56b9..88a0a15 100644 --- a/src/include/ipxe/uuid.h +++ b/src/include/ipxe/uuid.h @@ -15,13 +15,13 @@ union uuid { /** Canonical form (00000000-0000-0000-0000-000000000000) */ struct { /** 8 hex digits, big-endian */ - uint32_t a; + uint8_t a[4]; /** 2 hex digits, big-endian */ - uint16_t b; + uint8_t b[2]; /** 2 hex digits, big-endian */ - uint16_t c; + uint8_t c[2]; /** 2 hex digits, big-endian */ - uint16_t d; + uint8_t d[2]; /** 12 hex digits, big-endian */ uint8_t e[6]; } canonical;