summaryrefslogtreecommitdiff
path: root/gnu-efi/lib/guid.c
diff options
context:
space:
mode:
Diffstat (limited to 'gnu-efi/lib/guid.c')
-rw-r--r--gnu-efi/lib/guid.c179
1 files changed, 179 insertions, 0 deletions
diff --git a/gnu-efi/lib/guid.c b/gnu-efi/lib/guid.c
new file mode 100644
index 00000000..fbbf89d4
--- /dev/null
+++ b/gnu-efi/lib/guid.c
@@ -0,0 +1,179 @@
+/*++
+
+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;
+ CHAR16 *GuidName;
+} KnownGuids[] = {
+ { &NullGuid, L"G0" },
+ { &gEfiGlobalVariableGuid, L"EfiVar" },
+
+ { &VariableStoreProtocol, L"VarStore" },
+ { &gEfiDevicePathProtocolGuid, L"DevPath" },
+ { &gEfiLoadedImageProtocolGuid, L"LdImg" },
+ { &gEfiSimpleTextInProtocolGuid, L"TxtIn" },
+ { &gEfiSimpleTextOutProtocolGuid, L"TxtOut" },
+ { &gEfiBlockIoProtocolGuid, L"BlkIo" },
+ { &gEfiBlockIo2ProtocolGuid, L"BlkIo2" },
+ { &gEfiDiskIoProtocolGuid, L"DskIo" },
+ { &gEfiDiskIo2ProtocolGuid, L"DskIo2" },
+ { &gEfiSimpleFileSystemProtocolGuid, L"Fs" },
+ { &gEfiLoadFileProtocolGuid, L"LdFile" },
+ { &gEfiDeviceIoProtocolGuid, L"DevIo" },
+ { &gEfiComponentNameProtocolGuid, L"CName" },
+ { &gEfiComponentName2ProtocolGuid, L"CName2" },
+
+ { &gEfiFileInfoGuid, L"FileInfo" },
+ { &gEfiFileSystemInfoGuid, L"FsInfo" },
+ { &gEfiFileSystemVolumeLabelInfoIdGuid, L"FsVolInfo" },
+
+ { &gEfiUnicodeCollationProtocolGuid, L"Unicode" },
+ { &LegacyBootProtocol, L"LegacyBoot" },
+ { &gEfiSerialIoProtocolGuid, L"SerIo" },
+ { &VgaClassProtocol, L"VgaClass"},
+ { &gEfiSimpleNetworkProtocolGuid, L"Net" },
+ { &gEfiNetworkInterfaceIdentifierProtocolGuid, L"Nii" },
+ { &gEfiPxeBaseCodeProtocolGuid, L"Pxe" },
+ { &gEfiPxeBaseCodeCallbackProtocolGuid, L"PxeCb" },
+
+ { &TextOutSpliterProtocol, L"TxtOutSplit" },
+ { &ErrorOutSpliterProtocol, L"ErrOutSplit" },
+ { &TextInSpliterProtocol, L"TxtInSplit" },
+ { &gEfiPcAnsiGuid, L"PcAnsi" },
+ { &gEfiVT100Guid, L"Vt100" },
+ { &gEfiVT100PlusGuid, L"Vt100Plus" },
+ { &gEfiVTUTF8Guid, L"VtUtf8" },
+ { &UnknownDevice, L"UnknownDev" },
+
+ { &EfiPartTypeSystemPartitionGuid, L"ESP" },
+ { &EfiPartTypeLegacyMbrGuid, L"GPT MBR" },
+
+ { &ShellInterfaceProtocol, L"ShellInt" },
+ { &SEnvId, L"SEnv" },
+ { &SProtId, L"ShellProtId" },
+ { &SMapId, L"ShellDevPathMap" },
+ { &SAliasId, L"ShellAlias" },
+
+ { NULL, L"" }
+};
+
+//
+//
+//
+
+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]
+ );
+}