if (hd.SignatureType != SIGNATURE_TYPE_GUID)
continue;
- return xasprintf(
- "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x",
- hd.Signature[3],
- hd.Signature[2],
- hd.Signature[1],
- hd.Signature[0],
-
- hd.Signature[5],
- hd.Signature[4],
- hd.Signature[7],
- hd.Signature[6],
-
- hd.Signature[8],
- hd.Signature[9],
- hd.Signature[10],
- hd.Signature[11],
- hd.Signature[12],
- hd.Signature[13],
- hd.Signature[14],
- hd.Signature[15]);
+ return xasprintf(GUID_FORMAT_STR, GUID_FORMAT_VAL(hd.SignatureGuid));
}
return NULL;
#define LOADER_GUID \
{ 0x4a67b082, 0x0a4c, 0x41cf, { 0xb6, 0xc7, 0x44, 0x0b, 0x29, 0xbb, 0x8c, 0x4f } }
+/* Note that GUID is evaluated multiple times! */
+#define GUID_FORMAT_STR "%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X"
+#define GUID_FORMAT_VAL(g) (g).Data1, (g).Data2, (g).Data3, (g).Data4[0], (g).Data4[1], \
+ (g).Data4[2], (g).Data4[3], (g).Data4[4], (g).Data4[5], (g).Data4[6], (g).Data4[7]
+
void print_at(size_t x, size_t y, size_t attr, const char16_t *str);
void clear_screen(size_t attr);