• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*++
2 
3 Copyright (c) 1998  Intel Corporation
4 
5 Module Name:
6 
7     misc.c
8 
9 Abstract:
10 
11     Misc EFI support functions
12 
13 
14 
15 Revision History
16 
17 --*/
18 
19 #include "lib.h"
20 
21 
22 //
23 // Additional Known guids
24 //
25 
26 #define SHELL_INTERFACE_PROTOCOL \
27     { 0x47c7b223, 0xc42a, 0x11d2, {0x8e, 0x57, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
28 
29 #define ENVIRONMENT_VARIABLE_ID  \
30     { 0x47c7b224, 0xc42a, 0x11d2, {0x8e, 0x57, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
31 
32 #define DEVICE_PATH_MAPPING_ID  \
33     { 0x47c7b225, 0xc42a, 0x11d2, {0x8e, 0x57, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
34 
35 #define PROTOCOL_ID_ID  \
36     { 0x47c7b226, 0xc42a, 0x11d2, {0x8e, 0x57, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
37 
38 #define ALIAS_ID  \
39     { 0x47c7b227, 0xc42a, 0x11d2, {0x8e, 0x57, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
40 
41 static EFI_GUID ShellInterfaceProtocol = SHELL_INTERFACE_PROTOCOL;
42 static EFI_GUID SEnvId                 = ENVIRONMENT_VARIABLE_ID;
43 static EFI_GUID SMapId                 = DEVICE_PATH_MAPPING_ID;
44 static EFI_GUID SProtId                = PROTOCOL_ID_ID;
45 static EFI_GUID SAliasId               = ALIAS_ID;
46 
47 static struct {
48     EFI_GUID        *Guid;
49     WCHAR           *GuidName;
50 } KnownGuids[] = {
51 	{  &NullGuid,                  L"G0"},
52 	{  &EfiGlobalVariable,         L"Efi"},
53 
54 	{  &VariableStoreProtocol,     L"varstore"},
55 	{  &DevicePathProtocol,        L"dpath"},
56 	{  &LoadedImageProtocol,       L"image"},
57 	{  &TextInProtocol,            L"txtin"},
58 	{  &TextOutProtocol,           L"txtout"},
59 	{  &BlockIoProtocol,           L"blkio"},
60 	{  &DiskIoProtocol,            L"diskio"},
61 	{  &FileSystemProtocol,        L"fs"},
62 	{  &LoadFileProtocol,          L"load"},
63 	{  &DeviceIoProtocol,          L"DevIo"},
64 
65 	{  &GenericFileInfo,           L"GenFileInfo"},
66 	{  &FileSystemInfo,            L"FileSysInfo"},
67 
68 	{  &UnicodeCollationProtocol,  L"unicode"},
69 	{  &LegacyBootProtocol,        L"LegacyBoot"},
70 	{  &SerialIoProtocol,          L"serialio"},
71 	{  &VgaClassProtocol,          L"vgaclass"},
72 	{  &SimpleNetworkProtocol,     L"net"},
73 	{  &NetworkInterfaceIdentifierProtocol,    L"nii"},
74 	{  &PxeBaseCodeProtocol,       L"pxebc"},
75 	{  &PxeCallbackProtocol,       L"pxecb"},
76 
77 	{  &VariableStoreProtocol,     L"varstore"},
78 	{  &LegacyBootProtocol,        L"LegacyBoot"},
79 	{  &VgaClassProtocol,          L"VgaClass"},
80 	{  &TextOutSpliterProtocol,    L"TxtOutSplit"},
81 	{  &ErrorOutSpliterProtocol,   L"ErrOutSplit"},
82 	{  &TextInSpliterProtocol,     L"TxtInSplit"},
83 	{  &PcAnsiProtocol,            L"PcAnsi"},
84 	{  &Vt100Protocol,             L"Vt100"},
85 	{  &UnknownDevice,             L"Unknown Device"},
86 
87 	{  &EfiPartTypeSystemPartitionGuid,    L"ESP"},
88 	{  &EfiPartTypeLegacyMbrGuid,          L"GPT MBR"},
89 
90 	{  &ShellInterfaceProtocol,    L"ShellInt"},
91 	{  &SEnvId,                    L"SEnv"},
92 	{  &SProtId,                   L"ShellProtId"},
93 	{  &SMapId,                    L"ShellDevPathMap"},
94 	{  &SAliasId,                  L"ShellAlias"},
95 
96 	{  NULL }
97 };
98 
99 //
100 //
101 //
102 
103 LIST_ENTRY          GuidList;
104 
105 
106 VOID
InitializeGuid(VOID)107 InitializeGuid (
108     VOID
109     )
110 {
111 }
112 
113 INTN
CompareGuid(IN EFI_GUID * Guid1,IN EFI_GUID * Guid2)114 CompareGuid(
115     IN EFI_GUID     *Guid1,
116     IN EFI_GUID     *Guid2
117     )
118 /*++
119 
120 Routine Description:
121 
122     Compares to GUIDs
123 
124 Arguments:
125 
126     Guid1       - guid to compare
127     Guid2       - guid to compare
128 
129 Returns:
130     = 0     if Guid1 == Guid2
131 
132 --*/
133 {
134     return RtCompareGuid (Guid1, Guid2);
135 }
136 
137 
138 VOID
GuidToString(OUT CHAR16 * Buffer,IN EFI_GUID * Guid)139 GuidToString (
140     OUT CHAR16      *Buffer,
141     IN EFI_GUID     *Guid
142     )
143 {
144 
145     UINTN           Index;
146 
147     //
148     // Else, (for now) use additional internal function for mapping guids
149     //
150 
151     for (Index=0; KnownGuids[Index].Guid; Index++) {
152         if (CompareGuid(Guid, KnownGuids[Index].Guid) == 0) {
153             SPrint (Buffer, 0, KnownGuids[Index].GuidName);
154             return ;
155         }
156     }
157 
158     //
159     // Else dump it
160     //
161 
162     SPrint (Buffer, 0, L"%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
163         Guid->Data1,
164         Guid->Data2,
165         Guid->Data3,
166         Guid->Data4[0],
167         Guid->Data4[1],
168         Guid->Data4[2],
169         Guid->Data4[3],
170         Guid->Data4[4],
171         Guid->Data4[5],
172         Guid->Data4[6],
173         Guid->Data4[7]
174         );
175 }
176