diff options
author | Michael Brown | 2013-03-20 16:25:16 +0100 |
---|---|---|
committer | Michael Brown | 2013-03-20 16:25:16 +0100 |
commit | 1920aa43764981597da57616cdb75c040d730712 (patch) | |
tree | 51e112a4bd77c304a6cbd5747d1a814ebd6cbb52 /src/interface/efi/efi_debug.c | |
parent | [uuid] Abstract UUID mangling code out to a separate uuid_mangle() function (diff) | |
download | ipxe-1920aa43764981597da57616cdb75c040d730712.tar.gz ipxe-1920aa43764981597da57616cdb75c040d730712.tar.xz ipxe-1920aa43764981597da57616cdb75c040d730712.zip |
[efi] Provide efi_guid_ntoa() for printing EFI GUIDs
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/interface/efi/efi_debug.c')
-rw-r--r-- | src/interface/efi/efi_debug.c | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/src/interface/efi/efi_debug.c b/src/interface/efi/efi_debug.c index 7f3c115d..a7ba7e2e 100644 --- a/src/interface/efi/efi_debug.c +++ b/src/interface/efi/efi_debug.c @@ -27,6 +27,8 @@ FILE_LICENCE ( GPL2_OR_LATER ); */ #include <stdio.h> +#include <string.h> +#include <ipxe/uuid.h> #include <ipxe/efi/efi.h> #include <ipxe/efi/efi_driver.h> #include <ipxe/efi/Protocol/DevicePath.h> @@ -37,6 +39,24 @@ static EFI_DEVICE_PATH_TO_TEXT_PROTOCOL *efidpt; EFI_REQUIRE_PROTOCOL ( EFI_DEVICE_PATH_TO_TEXT_PROTOCOL, &efidpt ); /** + * Convert GUID to a printable string + * + * @v guid GUID + * @ret string Printable string + */ +const char * efi_guid_ntoa ( EFI_GUID *guid ) { + union { + union uuid uuid; + EFI_GUID guid; + } u; + + /* Convert GUID to standard endianness */ + memcpy ( &u.guid, guid, sizeof ( u.guid ) ); + uuid_mangle ( &u.uuid ); + return uuid_ntoa ( &u.uuid ); +} + +/** * Print list of protocol handlers attached to a handle * * @v handle EFI handle @@ -57,9 +77,8 @@ void dbg_efi_protocols ( EFI_HANDLE handle ) { } /* Dump list of protocols */ - for ( i = 0 ; i < count ; i++ ) { - printf ( "%s\n", uuid_ntoa ( ( union uuid * ) protocols[i] ) ); - } + for ( i = 0 ; i < count ; i++ ) + printf ( "%s\n", efi_guid_ntoa ( protocols[i] ) ); /* Free list */ bs->FreePool ( protocols ); |