/*++
Copyright (c) 1998 Intel Corporation
Module Name:
misc.c
Abstract:
Misc EFI support functions
Revision History
--*/
#include "lib.h"
//
// Additional Known guids
//
#define SHELL_INTERFACE_PROTOCOL \
{ 0x47c7b223, 0xc42a, 0x11d2, {0x8e, 0x57, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
#define ENVIRONMENT_VARIABLE_ID \
{ 0x47c7b224, 0xc42a, 0x11d2, {0x8e, 0x57, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
#define DEVICE_PATH_MAPPING_ID \
{ 0x47c7b225, 0xc42a, 0x11d2, {0x8e, 0x57, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
#define PROTOCOL_ID_ID \
{ 0x47c7b226, 0xc42a, 0x11d2, {0x8e, 0x57, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
#define ALIAS_ID \
{ 0x47c7b227, 0xc42a, 0x11d2, {0x8e, 0x57, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
static EFI_GUID ShellInterfaceProtocol = SHELL_INTERFACE_PROTOCOL;
static EFI_GUID SEnvId = ENVIRONMENT_VARIABLE_ID;
static EFI_GUID SMapId = DEVICE_PATH_MAPPING_ID;
static EFI_GUID SProtId = PROTOCOL_ID_ID;
static EFI_GUID SAliasId = ALIAS_ID;
static struct {
EFI_GUID *Guid;
WCHAR *GuidName;
} KnownGuids[] = {
{ &NullGuid, L"G0"},
{ &EfiGlobalVariable, L"Efi"},
{ &VariableStoreProtocol, L"varstore"},
{ &DevicePathProtocol, L"dpath"},
{ &LoadedImageProtocol, L"image"},
{ &TextInProtocol, L"txtin"},
{ &TextOutProtocol, L"txtout"},
{ &BlockIoProtocol, L"blkio"},
{ &DiskIoProtocol, L"diskio"},
{ &FileSystemProtocol, L"fs"},
{ &LoadFileProtocol, L"load"},
{ &DeviceIoProtocol, L"DevIo"},
{ &GenericFileInfo, L"GenFileInfo"},
{ &FileSystemInfo, L"FileSysInfo"},
{ &UnicodeCollationProtocol, L"unicode"},
{ &LegacyBootProtocol, L"LegacyBoot"},
{ &SerialIoProtocol, L"serialio"},
{ &VgaClassProtocol, L"vgaclass"},
{ &SimpleNetworkProtocol, L"net"},
{ &NetworkInterfaceIdentifierProtocol, L"nii"},
{ &PxeBaseCodeProtocol, L"pxebc"},
{ &PxeCallbackProtocol, L"pxecb"},
{ &VariableStoreProtocol, L"varstore"},
{ &LegacyBootProtocol, L"LegacyBoot"},
{ &VgaClassProtocol, L"VgaClass"},
{ &TextOutSpliterProtocol, L"TxtOutSplit"},
{ &ErrorOutSpliterProtocol, L"ErrOutSplit"},
{ &TextInSpliterProtocol, L"TxtInSplit"},
{ &PcAnsiProtocol, L"PcAnsi"},
{ &Vt100Protocol, L"Vt100"},
{ &UnknownDevice, L"Unknown Device"},
{ &EfiPartTypeSystemPartitionGuid, L"ESP"},
{ &EfiPartTypeLegacyMbrGuid, L"GPT MBR"},
{ &ShellInterfaceProtocol, L"ShellInt"},
{ &SEnvId, L"SEnv"},
{ &SProtId, L"ShellProtId"},
{ &SMapId, L"ShellDevPathMap"},
{ &SAliasId, L"ShellAlias"},
{ NULL }
};
//
//
//
LIST_ENTRY GuidList;
VOID
InitializeGuid (
VOID
)
{
}
INTN
CompareGuid(
IN EFI_GUID *Guid1,
IN EFI_GUID *Guid2
)
/*++
Routine Description:
Compares to GUIDs
Arguments:
Guid1 - guid to compare
Guid2 - guid to compare
Returns:
= 0 if Guid1 == Guid2
--*/
{
return RtCompareGuid (Guid1, Guid2);
}
VOID
GuidToString (
OUT CHAR16 *Buffer,
IN EFI_GUID *Guid
)
{
UINTN Index;
//
// Else, (for now) use additional internal function for mapping guids
//
for (Index=0; KnownGuids[Index].Guid; Index++) {
if (CompareGuid(Guid, KnownGuids[Index].Guid) == 0) {
SPrint (Buffer, 0, KnownGuids[Index].GuidName);
return ;
}
}
//
// Else dump it
//
SPrint (Buffer, 0, L"%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
Guid->Data1,
Guid->Data2,
Guid->Data3,
Guid->Data4[0],
Guid->Data4[1],
Guid->Data4[2],
Guid->Data4[3],
Guid->Data4[4],
Guid->Data4[5],
Guid->Data4[6],
Guid->Data4[7]
);
}