| /*++ |
| |
| 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] |
| ); |
| } |