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