Subversion Repositories HelenOS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  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
  107. InitializeGuid (
  108.     VOID
  109.     )
  110. {
  111. }
  112.  
  113. INTN
  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
  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.