回复: [edk2-discuss] Guid.xref file


gaoliming
 

Guid.xref includes all Guid/Ppi/Protocol guid and module FILE_GUID in one platform DSC/FDF.

If Guid is generated into AutoGen, it should be included in Guid.xref.

Thanks
Liming

-----邮件原件-----
发件人: discuss@edk2.groups.io <discuss@edk2.groups.io> 代表 Andrew
Fish via groups.io
发送时间: 2021年10月10日 23:28
收件人: discuss <discuss@edk2.groups.io>; aladyshev22@...
主题: Re: [edk2-discuss] Guid.xref file



On Oct 10, 2021, at 3:33 AM, Konstantin Aladyshev
<aladyshev22@...> wrote:

Hello!

Sometimes it's useful to transform GUID values to their names from the
codebase. For example when you investigate the boot log.
Usually I just use key/value pairs from the generated build file
`Build/OvmfX64/DEBUG_GCC5/FV/Guid.xref, and perform necessary
substitutions in the log file through the simple custom python script.
This Guid.xref file has associations like this:
```
6302D008-7F9B-4F30-87AC-60C9FEF5DA4E gEfiShellProtocolGuid
```
So it is easy to construct a dictionary with GUID/Name pairs with it.
But the problem is that this file doesn't contain all the GUID/Name pairs.
For example
gShellNetwork1HiiGuid/gShellLevel2HiiGuid/gEfiComponentNameProtocolGui
d
are not present in this file.
Which GUIDs go to the `Build/OvmfX64/RELEASE_GCC5/FV/Guid.xref` file
and which don't?
It looks like the HII related GUDs [1] don’t end up in the Guid.xref file. That
seems like a bug, please file a BZ. I would expect every GUID in all the
modules AutoGen.c file to show up in the Guid.xref file.

[1] example
/Volumes/Case/edk2-github/Build/OvmfX64(master)>git grep --untracked
--no-exclude-standard gEfiAcpiTableProtocolGuid -- '*.xref' '*.c'
DEBUG_XCODE5/FV/Guid.xref:309:FFE06BDD-6107-46A6-7BB2-5A9C7EC527
5C gEfiAcpiTableProtocolGuid
DEBUG_XCODE5/X64/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTabl
eDxe/DEBUG/AutoGen.c:34:GLOBAL_REMOVE_IF_UNREFERENCED
EFI_GUID gEfiAcpiTableProtocolGuid = { 0xFFE06BDD, 0x6107, 0x46A6, { 0x7B,
0xB2, 0x5A, 0x9C, 0x7E, 0xC5, 0x27, 0x5C }};
DEBUG_XCODE5/X64/MdeModulePkg/Universal/Acpi/BootGraphicsResource
TableDxe/BootGraphicsResourceTableDxe/DEBUG/AutoGen.c:31:GLOBAL_RE
MOVE_IF_UNREFERENCED EFI_GUID gEfiAcpiTableProtocolGuid =
{ 0xFFE06BDD, 0x6107, 0x46A6, { 0x7B, 0xB2, 0x5A, 0x9C, 0x7E, 0xC5, 0x27,
0x5C }};
DEBUG_XCODE5/X64/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDisk
Dxe/DEBUG/AutoGen.c:43:GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID
gEfiAcpiTableProtocolGuid = { 0xFFE06BDD, 0x6107, 0x46A6, { 0x7B, 0xB2,
0x5A, 0x9C, 0x7E, 0xC5, 0x27, 0x5C }};
DEBUG_XCODE5/X64/NetworkPkg/IScsiDxe/IScsiDxe/DEBUG/AutoGen.c:41:
GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAcpiTableProtocolGuid =
{ 0xFFE06BDD, 0x6107, 0x46A6, { 0x7B, 0xB2, 0x5A, 0x9C, 0x7E, 0xC5, 0x27,
0x5C }};
DEBUG_XCODE5/X64/OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpiPlatformDx
e/DEBUG/AutoGen.c:27:GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID
gEfiAcpiTableProtocolGuid = { 0xFFE06BDD, 0x6107, 0x46A6, { 0x7B, 0xB2,
0x5A, 0x9C, 0x7E, 0xC5, 0x27, 0x5C }};
DEBUG_XCODE5/X64/ShellPkg/Application/Shell/Shell/DEBUG/AutoGen.c:13
9:GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID
gEfiAcpiTableProtocolGuid = { 0xFFE06BDD, 0x6107, 0x46A6, { 0x7B, 0xB2,
0x5A, 0x9C, 0x7E, 0xC5, 0x27, 0x5C }};

/Volumes/Case/edk2-github/Build/OvmfX64(master)>git grep --untracked
--no-exclude-standard gShellLevel2HiiGuid -- '*.xref' '*.c'
DEBUG_XCODE5/X64/ShellPkg/Application/Shell/Shell/DEBUG/AutoGen.c:64:
GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gShellLevel2HiiGuid =
{0xf95a7ccc, 0x4c55, 0x4426, {0xa7, 0xb4, 0xdc, 0x89, 0x61, 0x95, 0xb,
0xae}};

/Volumes/Case/edk2-github/Build/OvmfX64(master)>git grep --untracked
--no-exclude-standard gShellNetwork1HiiGuid -- '*.xref' '*.c'
DEBUG_XCODE5/X64/ShellPkg/Application/Shell/Shell/DEBUG/AutoGen.c:71:
GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gShellNetwork1HiiGuid =
{0xf3d301bb, 0xf4a5, 0x45a8, {0xb0, 0xb7, 0xfa, 0x99, 0x9c, 0x62, 0x37,
0xae}};

Thanks,

Andrew Fish

Best regards,
Konstantin Aladyshev