Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

173 lines
4.1 KiB

/*++
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;
struct {
EFI_GUID *Guid;
CHAR16 *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",
&InternalLoadProtocol, L"InternalLoad",
&UnknownDevice, L"Unknown Device",
&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]
);
}