* [Patch V1 2/2] BaseTools: Add python vfrcompiler unit test cases
@ 2023-06-21 14:08 Yuwei Chen
0 siblings, 0 replies; only message in thread
From: Yuwei Chen @ 2023-06-21 14:08 UTC (permalink / raw)
To: devel; +Cc: Rebecca Cran, Liming Gao, Bob Feng, Mingyue Liang
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=UTF-8, Size: 6206350 bytes --]
This patch add the python vfrcompiler unit test cases.
Cc: Rebecca Cran <rebecca@bsdio.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Bob Feng <bob.c.feng@intel.com>
Signed-off-by: Mingyue Liang <mingyuex.liang@intel.com>
Signed-off-by: Yuwei Chen <mingyuex.liang@intel.com>
---
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxe.inf | 348 +++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Dxe.inf | 273 +++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxe.inf | 203 +++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.inf | 256 ++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiApp.inf | 382 ++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxe.inf | 244 ++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/AutoGen.h | 116 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManagerUiLibStrDefs.h | 177 ++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/AutoGen.h | 105 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerUiLibStrDefs.h | 45 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/AutoGen.h | 54 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerUiLibStrDefs.h | 51 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/AutoGen.h | 56 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerLibStrDefs.h | 49 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/AutoGen.h | 150 +++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiDxeStrDefs.h | 147 +++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/AutoGen.h | 111 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4DxeStrDefs.h | 68 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/AutoGen.h | 118 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformDxeStrDefs.h | 54 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/AutoGen.h | 152 +++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskDxeStrDefs.h | 83 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/AutoGen.h | 209 +++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/UiAppStrDefs.h | 86 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/AutoGen.h | 105 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfigDxeStrDefs.h | 61 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/IScsiConfigVfr.vfr | 399 +++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/VlanConfig.vfr | 72 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/AutoGen.c | 762 ++++++++++++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManager.c | 108 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/AutoGen.c | 115 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerVfr.c | 30 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/AutoGen.c | 138 +++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerVfr.c | 38 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/AutoGen.c | 206 +++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerVfr.c | 35 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/AutoGen.c | 901 ++++++++++++++++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiConfigVfr.c | 103 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/AutoGen.c | 492 +++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Config2.c | 39 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/AutoGen.c | 459 ++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformForms.c | 30 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/AutoGen.c | 549 +++++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskHii.c | 39 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.c | 23 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/AutoGen.c | 759 ++++++++++++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/FrontPageVfr.c | 39 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/AutoGen.c | 480 +++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfig.c | 36 ++
BaseTools/Source/Python/tests/pytest_vfrcompiler.ini | 21 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/AutoGenTimeStamp | 18 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.makefile | 1 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManager.lst | 1117 +++++++++++++++++++++++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManager.vfr.deps | 3 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManagerCompiled.yml | 423 +++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManagerProcessed.yml | 326 ++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/Makefile | 356 +++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/AutoGen.c.deps | 40 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BmLib.c.deps | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenance.c.deps | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManager.c.deps | 40 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManager.i | 739 +++++++++++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManagerCustomizedUi.c.deps | 45 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManagerCustomizedUiSupport.c.deps | 92 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManagerUiLib.lib | Bin 0 -> 506454 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManagerUiLibStrDefs.hpk | Bin 0 -> 7098 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManagerUiLibUni.json | 156 +++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootOption.c.deps | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/ConsoleOption.c.deps | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/Data.c.deps | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/UpdatePage.c.deps | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/Variable.c.deps | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/cc_resp_10.txt | 1 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/object_files.lst | 11 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/dependency | 51 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/deps.txt | 94 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/deps_target | 94 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/AutoGenTimeStamp | 7 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/BootManagerUiLib.makefile | 1 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerVfr.Vfr.deps | 2 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerVfr.lst | 214 +++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerVfrCompiled.yml | 36 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerVfrProcessed.yml | 37 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/Makefile | 340 +++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/AutoGen.c.deps | 40 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/BootManager.c.deps | 76 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/BootManagerUiLib.lib | Bin 0 -> 91470 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/BootManagerUiLibStrDefs.hpk | Bin 0 -> 1072 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/BootManagerUiLibUni.json | 29 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/BootManagerVfr.c.deps | 40 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/BootManagerVfr.i | 99 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/cc_resp_2.txt | 1 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/object_files.lst | 3 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/dependency | 19 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/deps.txt | 77 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/deps_target | 77 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/AutoGenTimeStamp | 7 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerVfr.Vfr.deps | 2 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerVfr.lst | 255 ++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerVfrCompiled.yml | 61 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerVfrProcessed.yml | 59 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DeviceManagerUiLib.makefile | 1 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/Makefile | 340 +++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/AutoGen.c.deps | 39 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/DeviceManager.c.deps | 63 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/DeviceManagerUiLib.lib | Bin 0 -> 80758 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/DeviceManagerUiLibStrDefs.hpk | Bin 0 -> 1204 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/DeviceManagerUiLibUni.json | 42 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/DeviceManagerVfr.c.deps | 39 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/DeviceManagerVfr.i | 114 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/cc_resp_2.txt | 1 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/object_files.lst | 3 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/dependency | 19 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/deps.txt | 64 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/deps_target | 64 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/AutoGenTimeStamp | 8 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerVfr.lst | 286 +++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerVfr.vfr.deps | 3 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerVfrCompiled.yml | 74 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerVfrProcessed.yml | 62 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/FileExplorerLib.makefile | 1 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/Makefile | 340 +++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/AutoGen.c.deps | 39 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/FileExplorer.c.deps | 73 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/FileExplorerLib.lib | Bin 0 -> 104308 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/FileExplorerLibStrDefs.hpk | Bin 0 -> 2070 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/FileExplorerLibUni.json | 38 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/FileExplorerVfr.c.deps | 39 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/FileExplorerVfr.i | 161 +++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/cc_resp_2.txt | 1 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/object_files.lst | 3 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/dependency | 19 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/deps.txt | 74 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/deps_target | 74 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/AutoGenTimeStamp | 59 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiConfigVfr.lst | 1301 ++++++++++++++++++++++++++++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiConfigVfr.vfr.deps | 4 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiConfigVfrCompiled.yml | 574 ++++++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiConfigVfrProcessed.yml | 393 ++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiDxe.dll | Bin 0 -> 135040 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiDxe.efi | Bin 0 -> 135040 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiDxe.map | 1428 ++++++++++++++++++++++++++++++++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/IScsiDxe.makefile | 1 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/Makefile | 496 ++++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/AutoGen.c.deps | 33 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/ComponentName.c.deps | 102 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiAuthenticationInfo.c.deps | 102 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiCHAP.c.deps | 102 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiConfig.c.deps | 102 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiConfigVfr.c.deps | 29 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiConfigVfr.i | 803 +++++++++++++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDhcp.c.deps | 102 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDhcp6.c.deps | 102 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDns.c.deps | 102 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDriver.c.deps | 102 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxe.efi | Bin 0 -> 135040 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxe.lib | Bin 0 -> 986420 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxe.map | 1428 ++++++++++++++++++++++++++++++++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxe.txt | 2 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxe.uni | 17 +
| 14 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxeOffset.bin | Bin 0 -> 48 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxeStrDefs.hpk | Bin 0 -> 4772 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxeUni.json | 90 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiExtScsiPassThru.c.deps | 102 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiIbft.c.deps | 102 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiInitiatorName.c.deps | 102 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiMisc.c.deps | 102 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiProto.c.deps | 102 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/cc_resp_14.txt | 1 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/object_files.lst | 15 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/static_library_files.lst | 31 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/dependency | 67 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/deps.txt | 104 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/deps_target | 104 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/AutoGenTimeStamp | 51 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Config2.lst | 378 ++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Config2.vfr.deps | 4 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Config2Compiled.yml | 105 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Config2Processed.yml | 74 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Dxe.dll | Bin 0 -> 87968 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Dxe.efi | Bin 0 -> 87968 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Dxe.map | 1059 +++++++++++++++++++++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/Ip4Dxe.makefile | 1 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/Makefile | 464 +++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/AutoGen.c.deps | 32 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/ComponentName.c.deps | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Common.c.deps | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Config2.c.deps | 28 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Config2.i | 230 ++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Config2Impl.c.deps | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Config2Nv.c.deps | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Driver.c.deps | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Dxe.efi | Bin 0 -> 87968 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Dxe.lib | Bin 0 -> 941768 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Dxe.map | 1059 +++++++++++++++++++++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Dxe.txt | 2 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Dxe.uni | 19 +
| 14 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4DxeStrDefs.hpk | Bin 0 -> 1125 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4DxeUni.json | 31 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Icmp.c.deps | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4If.c.deps | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Igmp.c.deps | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Impl.c.deps | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Input.c.deps | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Option.c.deps | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Output.c.deps | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Route.c.deps | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/cc_resp_14.txt | 1 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/object_files.lst | 15 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/static_library_files.lst | 21 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/dependency | 67 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/deps.txt | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/deps_target | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/AutoGenTimeStamp | 27 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformDxe.dll | Bin 0 -> 22880 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformDxe.efi | Bin 0 -> 22880 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformDxe.map | 359 +++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformForms.lst | 285 +++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformForms.vfr.deps | 4 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformFormsCompiled.yml | 43 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformFormsProcessed.yml | 37 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/Makefile | 438 ++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/AutoGen.c.deps | 44 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/Platform.c.deps | 62 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformConfig.c.deps | 62 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxe.depex | Bin 0 -> 126 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxe.efi | Bin 0 -> 22880 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxe.lib | Bin 0 -> 121488 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxe.map | 359 +++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxe.txt | 2 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxeOffset.bin | Bin 0 -> 48 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxeStrDefs.hpk | Bin 0 -> 995 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxeUni.json | 23 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformForms.c.deps | 40 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformForms.i | 181 ++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/cc_resp_3.txt | 1 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/object_files.lst | 4 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/static_library_files.lst | 19 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/PlatformDxe.makefile | 1 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/dependency | 23 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/deps.txt | 79 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/deps_target | 79 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/README.md | 17 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/AutoGenTimeStamp | 34 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskDxe.dll | Bin 0 -> 48320 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskDxe.efi | Bin 0 -> 48320 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskDxe.map | 655 ++++++++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskHii.lst | 523 ++++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskHii.vfr.deps | 5 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskHiiCompiled.yml | 110 ++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskHiiProcessed.yml | 83 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/Makefile | 474 +++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/AutoGen.c.deps | 44 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.aml | Bin 0 -> 124 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.amli | Bin 0 -> 124 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.asl.trim.deps | 2 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.i | 40 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.i.deps | 40 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.iii | 28121 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.iiii | 40 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskBlockIo.c.deps | 87 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDriver.c.deps | 87 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.depex | 1 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.efi | Bin 0 -> 48320 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.lib | Bin 0 -> 247076 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.map | 655 ++++++++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.txt | 2 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.uni | 14 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxeOffset.bin | Bin 0 -> 48 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxeStrDefs.hpk | Bin 0 -> 1337 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxeUni.json | 38 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskFileExplorer.c.deps | 87 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskHii.c.deps | 79 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskHii.i | 375 ++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskImpl.c.deps | 87 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskProtocol.c.deps | 87 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/cc_resp_7.txt | 1 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/inc.lst | 9 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/object_files.lst | 8 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/static_library_files.lst | 22 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/RamDiskDxe.makefile | 1 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/dependency | 43 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/deps.txt | 88 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/deps_target | 88 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/AutoGenTimeStamp | 45 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/FrontPageVfr.Vfr.deps | 2 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/FrontPageVfr.lst | 272 +++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/FrontPageVfrCompiled.yml | 51 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/FrontPageVfrProcessed.yml | 55 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/UiApp.dll | Bin 0 -> 160448 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/UiApp.efi | Bin 0 -> 160448 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/UiApp.map | 1519 +++++++++++++++++++++++++++++++++++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/Makefile | 478 +++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/AutoGen.c.deps | 33 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/FrontPage.c.deps | 87 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/FrontPageCustomizedUi.c.deps | 87 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/FrontPageCustomizedUiSupport.c.deps | 64 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/FrontPageVfr.c.deps | 29 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/FrontPageVfr.i | 169 ++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/String.c.deps | 86 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiApp.efi | Bin 0 -> 160448 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiApp.lib | Bin 0 -> 223494 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiApp.map | 1519 +++++++++++++++++++++++++++++++++++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiApp.txt | 2 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiApp.uni | 17 +
| 12 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiAppStrDefs.hpk | Bin 0 -> 1058 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiAppUni.json | 64 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/cc_resp_5.txt | 1 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/object_files.lst | 6 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/static_library_files.lst | 32 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/UiApp.makefile | 1 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/dependency | 31 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/deps.txt | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/deps_target | 91 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/AutoGenTimeStamp | 29 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfig.lst | 360 +++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfig.vfr.deps | 5 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfigCompiled.yml | 82 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfigDxe.dll | 0
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfigDxe.efi | Bin
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfigDxe.map | 474 +++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfigProcessed.yml | 59 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/Makefile | 441 ++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/AutoGen.c.deps | 32 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/ComponentName.c.deps | 64 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfig.c.deps | 28 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfig.i | 231 ++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDriver.c.deps | 64 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxe.efi | Bin 0 -> 32896 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxe.lib | Bin 0 -> 141414 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxe.map | 474 +++++++++++++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxe.txt | 2 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxe.uni | 17 +
| 14 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxeOffset.bin | Bin 0 -> 48 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxeStrDefs.hpk | Bin 0 -> 992 bytes
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxeUni.json | 32 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigImpl.c.deps | 64 ++
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/cc_resp_4.txt | 1 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/object_files.lst | 5 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/static_library_files.lst | 20 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/VlanConfigDxe.makefile | 1 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/dependency | 27 +
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/deps.txt | 66 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/deps_target | 66 +++
BaseTools/Source/Python/tests/vfr_yaml_compiler/__init__.py | 0
BaseTools/Source/Python/tests/vfr_yaml_compiler/conftest.py | 136 +++++
BaseTools/Source/Python/tests/vfr_yaml_compiler/test_Vfrcompiler.py | 53 ++
351 files changed, 72636 insertions(+)
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxe.inf b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxe.inf
new file mode 100644
index 000000000000..f5be1749c01a
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxe.inf
@@ -0,0 +1,348 @@
+## @file
+# Client-side iSCSI service.
+#
+# The iSCSI driver provides iSCSI service in the preboot environment and supports
+# booting over iSCSI. This driver supports both IPv4 and IPv6 network stack.
+#
+# Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+# DO NOT EDIT
+# FILE auto-generated
+
+[Defines]
+ INF_VERSION = 0x00010017
+ BASE_NAME = IScsiDxe
+ FILE_GUID = 86CDDF93-4872-4597-8AF9-A35AE4D3725F
+ MODULE_TYPE = UEFI_DRIVER
+ VERSION_STRING = 1.0
+ ENTRY_POINT = IScsiDriverEntryPoint
+ UNLOAD_IMAGE = IScsiUnload
+ MODULE_UNI_FILE = IScsiDxe.uni
+
+[Packages.X64]
+ MdePkg/MdePkg.dec
+ MdeModulePkg/MdeModulePkg.dec
+ NetworkPkg/NetworkPkg.dec
+ OvmfPkg/OvmfPkg.dec
+
+[Binaries.X64]
+ PE32|IScsiDxe.efi
+ BIN|IScsiDxeOffset.bin
+ DISPOSABLE|IScsiDxe.pdb
+
+[PatchPcd.X64]
+
+[Protocols.X64]
+ ## SOMETIMES_CONSUMES ## SystemTable
+ gEfiAcpiTableProtocolGuid
+
+ ## SOMETIMES_PRODUCES
+ ## SOMETIMES_PRODUCES
+ gEfiDriverBindingProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiPciIoProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiDhcp4ProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiDhcp6ProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiDhcp4ServiceBindingProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiDhcp6ServiceBindingProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiDns4ServiceBindingProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiDns4ProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiDns6ServiceBindingProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiDns6ProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ gEfiIp4Config2ProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiIp6ConfigProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## TO_START
+ gEfiTcp4ProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## TO_START
+ gEfiTcp6ProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## TO_START
+ gEfiTcp4ServiceBindingProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## TO_START
+ gEfiTcp6ServiceBindingProtocolGuid
+
+ ## BY_START
+ gEfiExtScsiPassThruProtocolGuid
+
+ ## PRODUCES
+ gEfiHiiConfigAccessProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ ## TO_START
+ ## PRODUCES
+ gEfiDevicePathProtocolGuid
+
+ ## PRODUCES
+ ## UNDEFINED # Variable
+ gEfiIScsiInitiatorNameProtocolGuid
+
+ ## PRODUCES
+ gEfiAuthenticationInfoProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ gEfiAdapterInformationProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiNetworkInterfaceIdentifierProtocolGuid_31
+
+ ## SOMETIMES_CONSUMES
+ gPcdProtocolGuid
+
+ ## CONSUMES
+ gEfiPcdProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gGetPcdInfoProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiGetPcdInfoProtocolGuid
+
+ ## CONSUMES
+ gEfiDevicePathUtilitiesProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiDevicePathToTextProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiDevicePathFromTextProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiSimpleTextOutProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiGraphicsOutputProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ gEfiHiiFontProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiSimpleFileSystemProtocolGuid
+
+ ## SOMETIMES_CONSUMES # Consumes if gEfiGraphicsOutputProtocolGuid uninstalled
+ gEfiUgaDrawProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ ## SOMETIMES_CONSUMES
+ gEfiComponentNameProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ ## SOMETIMES_CONSUMES
+ gEfiComponentName2ProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverConfigurationProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverConfiguration2ProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverDiagnosticsProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverDiagnostics2ProtocolGuid
+
+ ## CONSUMES
+ gEfiHiiStringProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiHiiImageProtocolGuid
+
+ ## CONSUMES
+ gEfiHiiDatabaseProtocolGuid
+
+ ## CONSUMES
+ gEfiHiiConfigRoutingProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiFormBrowser2ProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiSimpleNetworkProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiManagedNetworkProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiManagedNetworkServiceBindingProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiLoadedImageProtocolGuid
+
+
+[Ppis.X64]
+
+[Guids.X64]
+ ## SOMETIMES_CONSUMES ## Event
+ gEfiEventExitBootServicesGuid
+
+ ## SOMETIMES_PRODUCES ## UNDEFINED
+ gEfiIfrTianoGuid
+
+ ## SOMETIMES_CONSUMES ## SystemTable
+ gEfiAcpiTableGuid
+
+ ## SOMETIMES_CONSUMES ## SystemTable
+ ## SOMETIMES_CONSUMES ## SystemTable
+ gEfiAcpi10TableGuid
+
+ ## SOMETIMES_CONSUMES ## UNDEFINED
+ gEfiAdapterInfoNetworkBootGuid
+
+ ## SOMETIMES_CONSUMES ## GUID
+ gEfiAdapterInfoUndiIpv6SupportGuid
+
+ ## SOMETIMES_PRODUCES ## Variable:L"AttemptOrder"
+ ## SOMETIMES_CONSUMES ## Variable:L"AttemptOrder"
+ ## SOMETIMES_PRODUCES ## Variable:L"InitialAttemptOrder"
+ ## SOMETIMES_CONSUMES ## Variable:L"InitialAttemptOrder"
+ ## SOMETIMES_CONSUMES ## UNDEFINED # HiiIsConfigHdrMatch mVendorStorageName
+ ## SOMETIMES_PRODUCES ## UNDEFINED # HiiConstructConfigHdr mVendorStorageName
+ ## SOMETIMES_PRODUCES ## UNDEFINED # HiiGetBrowserData mVendorStorageName
+ ## SOMETIMES_CONSUMES ## UNDEFINED # HiiSetBrowserData mVendorStorageName
+ ## SOMETIMES_CONSUMES ## HII
+ gIScsiConfigGuid
+
+ ## SOMETIMES_CONSUMES ## Event
+ gEfiEventReadyToBootGuid
+
+ ## SOMETIMES_CONSUMES ## Event
+ gEfiEventLegacyBootGuid
+
+ ## SOMETIMES_CONSUMES ## Variable
+ gEfiGlobalVariableGuid
+
+ ## SOMETIMES_CONSUMES ## SystemTable
+ gEfiAcpi20TableGuid
+
+ ## CONSUMES ## SystemTable
+ gEfiHobListGuid
+
+ ## CONSUMES
+ gUefiOvmfPkgPlatformInfoGuid
+
+ ## SOMETIMES_CONSUMES ## GUID
+ gEdkiiIfrBitVarstoreGuid
+
+ ## SOMETIMES_CONSUMES ## SystemTable
+ gEfiSmbiosTableGuid
+
+ ## SOMETIMES_CONSUMES ## SystemTable
+ gEfiSmbios3TableGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiAdapterInfoMediaStateGuid
+
+
+[PcdEx.X64]
+
+[LibraryClasses.X64]
+## @LIB_INSTANCES
+# MdePkg/Library/RegisterFilterLibNull/RegisterFilterLibNull.inf
+# MdePkg/Library/DxePcdLib/DxePcdLib.inf
+# MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf
+# MdePkg/Library/BaseLib/BaseLib.inf
+# MdePkg/Library/TdxLib/TdxLib.inf
+# OvmfPkg/Library/CcProbeLib/CcProbeLib.inf
+# MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
+# MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsicSev.inf
+# MdePkg/Library/BasePrintLib/BasePrintLib.inf
+# OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf
+# MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
+# MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
+# MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
+# MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf
+# MdePkg/Library/UefiLib/UefiLib.inf
+# MdePkg/Library/BasePciExpressLib/BasePciExpressLib.inf
+# MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf
+# MdePkg/Library/DxeHobLib/DxeHobLib.inf
+# OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf
+# OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf
+# MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf
+# CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
+# CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
+# MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
+# CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
+# MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
+# NetworkPkg/Library/DxeNetLib/DxeNetLib.inf
+# MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf
+# NetworkPkg/Library/DxeTcpIoLib/DxeTcpIoLib.inf
+# MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
+
+[Depex.X64]
+# (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiBdsArchProtocolGuid AND gEfiCpuArchProtocolGuid AND gEfiMetronomeArchProtocolGuid AND gEfiMonotonicCounterArchProtocolGuid AND gEfiRealTimeClockArchProtocolGuid AND gEfiResetArchProtocolGuid AND gEfiRuntimeArchProtocolGuid AND gEfiSecurityArchProtocolGuid AND gEfiTimerArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid AND gEfiWatchdogTimerArchProtocolGuid)
+
+[UserExtensions.TianoCore."ExtraFiles"]
+IScsiDxeExtra.uni
+
+
+
+#
+# The following information is for reference only and not required by the build tools.
+#
+# VALID_ARCHITECTURES = IA32 X64
+#
+# DRIVER_BINDING = gIScsiDriverBinding
+# COMPONENT_NAME = gIScsiComponentName
+# COMPONENT_NAME2 = gIScsiComponentName2
+#
+
+[BuildOptions.X64]
+## @AsBuilt
+## MSFT:DEBUG_VS2015x86_X64_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h
+## MSFT:DEBUG_VS2015x86_X64_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE
+## MSFT:DEBUG_VS2015x86_X64_GENFW_FLAGS =
+## MSFT:DEBUG_VS2015x86_X64_SLINK_FLAGS = /NOLOGO /LTCG
+## MSFT:DEBUG_VS2015x86_X64_OBJCOPY_FLAGS = objcopy not needed for
+## MSFT:DEBUG_VS2015x86_X64_DEPS_FLAGS = /showIncludes
+## MSFT:DEBUG_VS2015x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+## MSFT:DEBUG_VS2015x86_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /D DISABLE_NEW_DEPRECATED_INTERFACES /D TDX_GUEST_SUPPORTED /D ENABLE_MD5_DEPRECATED_INTERFACES
+## MSFT:DEBUG_VS2015x86_X64_ASMLINK_FLAGS = /nologo /tiny
+## MSFT:DEBUG_VS2015x86_X64_VFR_FLAGS = -l -n
+## MSFT:DEBUG_VS2015x86_X64_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable
+## MSFT:DEBUG_VS2015x86_X64_APP_FLAGS = /nologo /E /TC
+## MSFT:DEBUG_VS2015x86_X64_NASM_FLAGS = -Ox -f win64 -g
+## MSFT:DEBUG_VS2015x86_X64_OPTROM_FLAGS = -e
+## MSFT:DEBUG_VS2015x86_X64_DTC_FLAGS = -H epapr
+## MSFT:DEBUG_VS2015x86_X64_MAKE_FLAGS = /nologo
+## MSFT:DEBUG_VS2015x86_X64_SYMRENAME_FLAGS = Symbol renaming not needed for
+## MSFT:DEBUG_VS2015x86_X64_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+## MSFT:DEBUG_VS2015x86_X64_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+## MSFT:DEBUG_VS2015x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+## MSFT:DEBUG_VS2015x86_X64_ASL_FLAGS =
+## MSFT:DEBUG_VS2015x86_X64_NASMB_FLAGS = -f bin
+## MSFT:DEBUG_VS2015x86_X64_DLINK2_FLAGS =
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Dxe.inf b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Dxe.inf
new file mode 100644
index 000000000000..6f6aeea1e73e
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Dxe.inf
@@ -0,0 +1,273 @@
+## @file
+# This module produces EFI IPv4 Protocol and EFI IPv4 Service Binding Protocol.
+#
+# This module produces EFI IPv4 Protocol upon EFI MNP Protocol and EFI ARP Protocol,
+# to provide basic network IPv4 packet I/O services, which includes support for a
+# subset of the Internet Control Message Protocol (ICMP) and may include support for
+# the Internet Group Management Protocol (IGMP).
+#
+# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+#
+##
+
+# DO NOT EDIT
+# FILE auto-generated
+
+[Defines]
+ INF_VERSION = 0x00010017
+ BASE_NAME = Ip4Dxe
+ FILE_GUID = 9FB1A1F3-3B71-4324-B39A-745CBB015FFF
+ MODULE_TYPE = UEFI_DRIVER
+ VERSION_STRING = 1.0
+ ENTRY_POINT = Ip4DriverEntryPoint
+ UNLOAD_IMAGE = NetLibDefaultUnload
+ MODULE_UNI_FILE = Ip4Dxe.uni
+
+[Packages.X64]
+ MdePkg/MdePkg.dec
+ MdeModulePkg/MdeModulePkg.dec
+ NetworkPkg/NetworkPkg.dec
+
+[Binaries.X64]
+ PE32|Ip4Dxe.efi
+
+[PatchPcd.X64]
+
+[Protocols.X64]
+ ## BY_START
+ ## UNDEFINED # variable
+ gEfiIp4ServiceBindingProtocolGuid
+
+ ## BY_START
+ gEfiIp4ProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## TO_START
+ gEfiManagedNetworkServiceBindingProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## TO_START
+ gEfiManagedNetworkProtocolGuid
+
+ ## TO_START
+ gEfiArpServiceBindingProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## BY_START
+ gEfiIp4Config2ProtocolGuid
+
+ ## TO_START
+ gEfiArpProtocolGuid
+
+ ## TO_START
+ gEfiDhcp4ServiceBindingProtocolGuid
+
+ ## TO_START
+ gEfiDhcp4ProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiIpSec2ProtocolGuid
+
+ ## BY_START
+ gEfiHiiConfigAccessProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ ## TO_START
+ gEfiDevicePathProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gPcdProtocolGuid
+
+ ## CONSUMES
+ gEfiPcdProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gGetPcdInfoProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiGetPcdInfoProtocolGuid
+
+ ## CONSUMES
+ gEfiDevicePathUtilitiesProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiDevicePathToTextProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiDevicePathFromTextProtocolGuid
+
+ ## SOMETIMES_PRODUCES
+ gEfiDriverBindingProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiSimpleTextOutProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiGraphicsOutputProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ gEfiHiiFontProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiSimpleFileSystemProtocolGuid
+
+ ## SOMETIMES_CONSUMES # Consumes if gEfiGraphicsOutputProtocolGuid uninstalled
+ gEfiUgaDrawProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ ## SOMETIMES_CONSUMES
+ gEfiComponentNameProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ ## SOMETIMES_CONSUMES
+ gEfiComponentName2ProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverConfigurationProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverConfiguration2ProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverDiagnosticsProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverDiagnostics2ProtocolGuid
+
+ ## CONSUMES
+ gEfiHiiStringProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiHiiImageProtocolGuid
+
+ ## CONSUMES
+ gEfiHiiDatabaseProtocolGuid
+
+ ## CONSUMES
+ gEfiHiiConfigRoutingProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiLoadedImageProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiSimpleNetworkProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiAdapterInformationProtocolGuid
+
+ ## CONSUMES
+ gEfiDpcProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiFormBrowser2ProtocolGuid
+
+
+[Ppis.X64]
+
+[Guids.X64]
+ ## SOMETIMES_CONSUMES ## GUID # HiiIsConfigHdrMatch EFI_NIC_IP4_CONFIG_VARIABLE
+ ## SOMETIMES_PRODUCES ## GUID # HiiConstructConfigHdr EFI_NIC_IP4_CONFIG_VARIABLE
+ ## SOMETIMES_PRODUCES ## GUID # HiiGetBrowserData EFI_NIC_IP4_CONFIG_VARIABLE
+ ## SOMETIMES_CONSUMES ## HII
+ gIp4Config2NvDataGuid
+
+ ## SOMETIMES_CONSUMES ## Event
+ gEfiEventReadyToBootGuid
+
+ ## SOMETIMES_CONSUMES ## Event
+ gEfiEventLegacyBootGuid
+
+ ## SOMETIMES_CONSUMES ## Variable
+ gEfiGlobalVariableGuid
+
+ ## SOMETIMES_CONSUMES ## SystemTable
+ gEfiAcpi20TableGuid
+
+ ## SOMETIMES_CONSUMES ## SystemTable
+ gEfiAcpi10TableGuid
+
+ ## SOMETIMES_CONSUMES ## SystemTable
+ gEfiSmbiosTableGuid
+
+ ## SOMETIMES_CONSUMES ## SystemTable
+ gEfiSmbios3TableGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiAdapterInfoMediaStateGuid
+
+ ## SOMETIMES_CONSUMES ## GUID
+ gEdkiiIfrBitVarstoreGuid
+
+
+[PcdEx.X64]
+
+[LibraryClasses.X64]
+## @LIB_INSTANCES
+# MdePkg/Library/RegisterFilterLibNull/RegisterFilterLibNull.inf
+# MdePkg/Library/DxePcdLib/DxePcdLib.inf
+# MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf
+# MdePkg/Library/BaseLib/BaseLib.inf
+# MdePkg/Library/TdxLib/TdxLib.inf
+# MdePkg/Library/CcProbeLibNull/CcProbeLibNull.inf
+# MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
+# MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsicSev.inf
+# MdePkg/Library/BasePrintLib/BasePrintLib.inf
+# OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf
+# MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
+# MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
+# MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf
+# MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
+# MdePkg/Library/UefiLib/UefiLib.inf
+# MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
+# MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
+# NetworkPkg/Library/DxeNetLib/DxeNetLib.inf
+# NetworkPkg/Library/DxeDpcLib/DxeDpcLib.inf
+# MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
+
+[Depex.X64]
+# (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiBdsArchProtocolGuid AND gEfiCpuArchProtocolGuid AND gEfiMetronomeArchProtocolGuid AND gEfiMonotonicCounterArchProtocolGuid AND gEfiRealTimeClockArchProtocolGuid AND gEfiResetArchProtocolGuid AND gEfiRuntimeArchProtocolGuid AND gEfiSecurityArchProtocolGuid AND gEfiTimerArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid AND gEfiWatchdogTimerArchProtocolGuid) AND (gEfiDpcProtocolGuid) AND (gEfiDpcProtocolGuid) AND (gEfiDpcProtocolGuid) AND (gEfiDpcProtocolGuid)
+
+[UserExtensions.TianoCore."ExtraFiles"]
+Ip4DxeExtra.uni
+
+
+
+#
+# The following information is for reference only and not required by the build tools.
+#
+# VALID_ARCHITECTURES = IA32 X64 EBC
+#
+# DRIVER_BINDING = gIp4DriverBinding
+# COMPONENT_NAME = gIp4ComponentName
+# COMPONENT_NAME2 = gIp4ComponentName2
+#
+
+[BuildOptions.X64]
+## @AsBuilt
+## MSFT:DEBUG_VS2015x86_X64_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h
+## MSFT:DEBUG_VS2015x86_X64_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE
+## MSFT:DEBUG_VS2015x86_X64_GENFW_FLAGS =
+## MSFT:DEBUG_VS2015x86_X64_SLINK_FLAGS = /NOLOGO /LTCG
+## MSFT:DEBUG_VS2015x86_X64_OBJCOPY_FLAGS = objcopy not needed for
+## MSFT:DEBUG_VS2015x86_X64_DEPS_FLAGS = /showIncludes
+## MSFT:DEBUG_VS2015x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+## MSFT:DEBUG_VS2015x86_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /D DISABLE_NEW_DEPRECATED_INTERFACES /D ENABLE_MD5_DEPRECATED_INTERFACES
+## MSFT:DEBUG_VS2015x86_X64_ASMLINK_FLAGS = /nologo /tiny
+## MSFT:DEBUG_VS2015x86_X64_VFR_FLAGS = -l -n
+## MSFT:DEBUG_VS2015x86_X64_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable
+## MSFT:DEBUG_VS2015x86_X64_APP_FLAGS = /nologo /E /TC
+## MSFT:DEBUG_VS2015x86_X64_NASM_FLAGS = -Ox -f win64 -g
+## MSFT:DEBUG_VS2015x86_X64_OPTROM_FLAGS = -e
+## MSFT:DEBUG_VS2015x86_X64_DTC_FLAGS = -H epapr
+## MSFT:DEBUG_VS2015x86_X64_MAKE_FLAGS = /nologo
+## MSFT:DEBUG_VS2015x86_X64_SYMRENAME_FLAGS = Symbol renaming not needed for
+## MSFT:DEBUG_VS2015x86_X64_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+## MSFT:DEBUG_VS2015x86_X64_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+## MSFT:DEBUG_VS2015x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+## MSFT:DEBUG_VS2015x86_X64_ASL_FLAGS =
+## MSFT:DEBUG_VS2015x86_X64_NASMB_FLAGS = -f bin
+## MSFT:DEBUG_VS2015x86_X64_DLINK2_FLAGS =
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxe.inf b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxe.inf
new file mode 100644
index 000000000000..7350d0c4ef11
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxe.inf
@@ -0,0 +1,203 @@
+## @file
+# This driver effectuates OVMF's platform configuration settings and exposes
+# them via HII.
+#
+# Copyright (C) 2014, Red Hat, Inc.
+# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+##
+
+# DO NOT EDIT
+# FILE auto-generated
+
+[Defines]
+ INF_VERSION = 0x00010017
+ BASE_NAME = PlatformDxe
+ FILE_GUID = D9DCC5DF-4007-435E-9098-8970935504B2
+ MODULE_TYPE = DXE_DRIVER
+ VERSION_STRING = 1.0
+ ENTRY_POINT = PlatformInit
+ UNLOAD_IMAGE = PlatformUnload
+
+[Packages.X64]
+ MdePkg/MdePkg.dec
+ MdeModulePkg/MdeModulePkg.dec
+ OvmfPkg/OvmfPkg.dec
+
+[Binaries.X64]
+ PE32|PlatformDxe.efi
+ DXE_DEPEX|PlatformDxe.depex
+ BIN|PlatformDxeOffset.bin
+ DISPOSABLE|PlatformDxe.pdb
+
+[PatchPcd.X64]
+
+[Protocols.X64]
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ ## PRODUCES
+ gEfiDevicePathProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## CONSUMES
+ gEfiGraphicsOutputProtocolGuid
+
+ ## PRODUCES
+ gEfiHiiConfigAccessProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gPcdProtocolGuid
+
+ ## CONSUMES
+ gEfiPcdProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gGetPcdInfoProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiGetPcdInfoProtocolGuid
+
+ ## CONSUMES
+ gEfiDevicePathUtilitiesProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiDevicePathToTextProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiDevicePathFromTextProtocolGuid
+
+ ## SOMETIMES_PRODUCES
+ gEfiDriverBindingProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiSimpleTextOutProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ gEfiHiiFontProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiSimpleFileSystemProtocolGuid
+
+ ## SOMETIMES_CONSUMES # Consumes if gEfiGraphicsOutputProtocolGuid uninstalled
+ gEfiUgaDrawProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiComponentNameProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiComponentName2ProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverConfigurationProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverConfiguration2ProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverDiagnosticsProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverDiagnostics2ProtocolGuid
+
+ ## CONSUMES
+ gEfiHiiStringProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiHiiImageProtocolGuid
+
+ ## CONSUMES
+ gEfiHiiDatabaseProtocolGuid
+
+ ## CONSUMES
+ gEfiHiiConfigRoutingProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiFormBrowser2ProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiLoadedImageProtocolGuid
+
+
+[Ppis.X64]
+
+[Guids.X64]
+ gEfiIfrTianoGuid
+
+ gOvmfPlatformConfigGuid
+
+ ## SOMETIMES_CONSUMES ## Event
+ gEfiEventReadyToBootGuid
+
+ ## SOMETIMES_CONSUMES ## Event
+ gEfiEventLegacyBootGuid
+
+ ## SOMETIMES_CONSUMES ## Variable
+ gEfiGlobalVariableGuid
+
+ ## SOMETIMES_CONSUMES ## SystemTable
+ gEfiAcpi20TableGuid
+
+ ## SOMETIMES_CONSUMES ## SystemTable
+ gEfiAcpi10TableGuid
+
+ ## SOMETIMES_CONSUMES ## GUID
+ gEdkiiIfrBitVarstoreGuid
+
+
+[PcdEx.X64]
+
+[LibraryClasses.X64]
+## @LIB_INSTANCES
+# MdePkg/Library/RegisterFilterLibNull/RegisterFilterLibNull.inf
+# MdePkg/Library/DxePcdLib/DxePcdLib.inf
+# MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf
+# MdePkg/Library/BaseLib/BaseLib.inf
+# MdePkg/Library/TdxLib/TdxLib.inf
+# OvmfPkg/Library/CcProbeLib/CcProbeLib.inf
+# MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
+# MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsicSev.inf
+# MdePkg/Library/BasePrintLib/BasePrintLib.inf
+# OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf
+# MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
+# MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
+# MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
+# MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf
+# MdePkg/Library/UefiLib/UefiLib.inf
+# MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
+# MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
+# MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
+
+[Depex.X64]
+# (gEfiHiiConfigRoutingProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiVariableArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiBdsArchProtocolGuid AND gEfiCpuArchProtocolGuid AND gEfiMetronomeArchProtocolGuid AND gEfiMonotonicCounterArchProtocolGuid AND gEfiRealTimeClockArchProtocolGuid AND gEfiResetArchProtocolGuid AND gEfiRuntimeArchProtocolGuid AND gEfiSecurityArchProtocolGuid AND gEfiTimerArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid AND gEfiWatchdogTimerArchProtocolGuid)
+
+
+
+
+
+[BuildOptions.X64]
+## @AsBuilt
+## MSFT:DEBUG_VS2015x86_X64_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h
+## MSFT:DEBUG_VS2015x86_X64_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE
+## MSFT:DEBUG_VS2015x86_X64_GENFW_FLAGS =
+## MSFT:DEBUG_VS2015x86_X64_SLINK_FLAGS = /NOLOGO /LTCG
+## MSFT:DEBUG_VS2015x86_X64_OBJCOPY_FLAGS = objcopy not needed for
+## MSFT:DEBUG_VS2015x86_X64_DEPS_FLAGS = /showIncludes
+## MSFT:DEBUG_VS2015x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+## MSFT:DEBUG_VS2015x86_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /D DISABLE_NEW_DEPRECATED_INTERFACES /D TDX_GUEST_SUPPORTED /D ENABLE_MD5_DEPRECATED_INTERFACES
+## MSFT:DEBUG_VS2015x86_X64_ASMLINK_FLAGS = /nologo /tiny
+## MSFT:DEBUG_VS2015x86_X64_VFR_FLAGS = -l -n
+## MSFT:DEBUG_VS2015x86_X64_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable
+## MSFT:DEBUG_VS2015x86_X64_APP_FLAGS = /nologo /E /TC
+## MSFT:DEBUG_VS2015x86_X64_NASM_FLAGS = -Ox -f win64 -g
+## MSFT:DEBUG_VS2015x86_X64_OPTROM_FLAGS = -e
+## MSFT:DEBUG_VS2015x86_X64_DTC_FLAGS = -H epapr
+## MSFT:DEBUG_VS2015x86_X64_MAKE_FLAGS = /nologo
+## MSFT:DEBUG_VS2015x86_X64_SYMRENAME_FLAGS = Symbol renaming not needed for
+## MSFT:DEBUG_VS2015x86_X64_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+## MSFT:DEBUG_VS2015x86_X64_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+## MSFT:DEBUG_VS2015x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+## MSFT:DEBUG_VS2015x86_X64_ASL_FLAGS =
+## MSFT:DEBUG_VS2015x86_X64_NASMB_FLAGS = -f bin
+## MSFT:DEBUG_VS2015x86_X64_DLINK2_FLAGS =
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.inf b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.inf
new file mode 100644
index 000000000000..1b944f9c0a01
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.inf
@@ -0,0 +1,256 @@
+## @file
+# Produces EFI_RAM_DISK_PROTOCOL and provides the capability to
+# create/remove RAM disks in a setup browser.
+#
+# Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+# DO NOT EDIT
+# FILE auto-generated
+
+[Defines]
+ INF_VERSION = 0x00010017
+ BASE_NAME = RamDiskDxe
+ FILE_GUID = 28A03FF4-12B3-4305-A417-BB1A4F94081E
+ MODULE_TYPE = DXE_DRIVER
+ VERSION_STRING = 1.0
+ ENTRY_POINT = RamDiskDxeEntryPoint
+ UNLOAD_IMAGE = RamDiskDxeUnload
+ MODULE_UNI_FILE = RamDiskDxe.uni
+
+[Packages.X64]
+ MdePkg/MdePkg.dec
+ MdeModulePkg/MdeModulePkg.dec
+
+[Binaries.X64]
+ ASL|RamDisk.aml
+ PE32|RamDiskDxe.efi
+ DXE_DEPEX|RamDiskDxe.depex
+ BIN|RamDiskDxeOffset.bin
+ DISPOSABLE|RamDiskDxe.pdb
+
+[PatchPcd.X64]
+
+[Protocols.X64]
+ ## PRODUCES
+ gEfiRamDiskProtocolGuid
+
+ ## PRODUCES
+ ## PRODUCES
+ gEfiHiiConfigAccessProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ ## PRODUCES
+ gEfiDevicePathProtocolGuid
+
+ ## PRODUCES
+ gEfiBlockIoProtocolGuid
+
+ ## PRODUCES
+ gEfiBlockIo2ProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiAcpiTableProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiAcpiSdtProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gPcdProtocolGuid
+
+ ## CONSUMES
+ gEfiPcdProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gGetPcdInfoProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiGetPcdInfoProtocolGuid
+
+ ## CONSUMES
+ gEfiDevicePathUtilitiesProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## PRODUCES
+ gEfiDevicePathToTextProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiDevicePathFromTextProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ gEfiHiiFontProtocolGuid
+
+ ## CONSUMES
+ gEfiHiiStringProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiHiiImageProtocolGuid
+
+ ## CONSUMES
+ gEfiHiiDatabaseProtocolGuid
+
+ ## CONSUMES
+ gEfiHiiConfigRoutingProtocolGuid
+
+ ## SOMETIMES_PRODUCES
+ gEfiDriverBindingProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiSimpleTextOutProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiGraphicsOutputProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ gEfiSimpleFileSystemProtocolGuid
+
+ ## SOMETIMES_CONSUMES # Consumes if gEfiGraphicsOutputProtocolGuid uninstalled
+ gEfiUgaDrawProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiComponentNameProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiComponentName2ProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverConfigurationProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverConfiguration2ProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverDiagnosticsProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverDiagnostics2ProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## CONSUMES
+ gEfiFormBrowser2ProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ gEfiLoadedImageProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiFirmwareVolume2ProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiLoadFileProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiLoadFile2ProtocolGuid
+
+
+[Ppis.X64]
+
+[Guids.X64]
+ ## SOMETIMES_CONSUMES ## GUID (Extended IFR Guid Opcode)
+ ## PRODUCES ## GUID # HII opcode
+ gEfiIfrTianoGuid
+
+ ## PRODUCES ## HII
+ ## CONSUMES ## HII
+ gRamDiskFormSetGuid
+
+ ## SOMETIMES_CONSUMES ## GUID
+ gEfiVirtualDiskGuid
+
+ ## SOMETIMES_CONSUMES ## UNDEFINED
+ ## SOMETIMES_CONSUMES ## GUID # Indicate the information type
+ gEfiFileInfoGuid
+
+ ## SOMETIMES_CONSUMES ## Event
+ gEfiEventReadyToBootGuid
+
+ ## SOMETIMES_CONSUMES ## Event
+ gEfiEventLegacyBootGuid
+
+ ## SOMETIMES_CONSUMES ## Variable
+ gEfiGlobalVariableGuid
+
+ ## SOMETIMES_CONSUMES ## SystemTable
+ gEfiAcpi20TableGuid
+
+ ## SOMETIMES_CONSUMES ## SystemTable
+ gEfiAcpi10TableGuid
+
+ ## SOMETIMES_CONSUMES ## GUID
+ gEdkiiIfrBitVarstoreGuid
+
+ ## CONSUMES ## SystemTable
+ gEfiHobListGuid
+
+ ## SOMETIMES_CONSUMES ## GUID (Indicate the information type is volume)
+ gEfiFileSystemVolumeLabelInfoIdGuid
+
+
+[PcdEx.X64]
+
+[LibraryClasses.X64]
+## @LIB_INSTANCES
+# MdePkg/Library/RegisterFilterLibNull/RegisterFilterLibNull.inf
+# MdePkg/Library/DxePcdLib/DxePcdLib.inf
+# MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf
+# MdePkg/Library/BaseLib/BaseLib.inf
+# MdePkg/Library/TdxLib/TdxLib.inf
+# OvmfPkg/Library/CcProbeLib/CcProbeLib.inf
+# MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
+# MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsicSev.inf
+# MdePkg/Library/BasePrintLib/BasePrintLib.inf
+# OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf
+# MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
+# MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
+# MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
+# MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf
+# MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
+# MdePkg/Library/UefiLib/UefiLib.inf
+# MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
+# MdePkg/Library/DxeHobLib/DxeHobLib.inf
+# MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
+# MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf
+# MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
+
+[Depex.X64]
+# (gEfiHiiConfigRoutingProtocolGuid AND gEfiHiiDatabaseProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiBdsArchProtocolGuid AND gEfiCpuArchProtocolGuid AND gEfiMetronomeArchProtocolGuid AND gEfiMonotonicCounterArchProtocolGuid AND gEfiRealTimeClockArchProtocolGuid AND gEfiResetArchProtocolGuid AND gEfiRuntimeArchProtocolGuid AND gEfiSecurityArchProtocolGuid AND gEfiTimerArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid AND gEfiWatchdogTimerArchProtocolGuid) AND (gEfiFormBrowser2ProtocolGuid AND gEfiHiiDatabaseProtocolGuid)
+
+
+
+#
+# The following information is for reference only and not required by the build tools.
+#
+# VALID_ARCHITECTURES = IA32 X64 ARM AARCH64
+#
+
+[BuildOptions.X64]
+## @AsBuilt
+## MSFT:DEBUG_VS2015x86_X64_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h
+## MSFT:DEBUG_VS2015x86_X64_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE
+## MSFT:DEBUG_VS2015x86_X64_GENFW_FLAGS =
+## MSFT:DEBUG_VS2015x86_X64_SLINK_FLAGS = /NOLOGO /LTCG
+## MSFT:DEBUG_VS2015x86_X64_OBJCOPY_FLAGS = objcopy not needed for
+## MSFT:DEBUG_VS2015x86_X64_DEPS_FLAGS = /showIncludes
+## MSFT:DEBUG_VS2015x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+## MSFT:DEBUG_VS2015x86_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /D DISABLE_NEW_DEPRECATED_INTERFACES /D TDX_GUEST_SUPPORTED /D ENABLE_MD5_DEPRECATED_INTERFACES
+## MSFT:DEBUG_VS2015x86_X64_ASMLINK_FLAGS = /nologo /tiny
+## MSFT:DEBUG_VS2015x86_X64_VFR_FLAGS = -l -n
+## MSFT:DEBUG_VS2015x86_X64_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable
+## MSFT:DEBUG_VS2015x86_X64_APP_FLAGS = /nologo /E /TC
+## MSFT:DEBUG_VS2015x86_X64_NASM_FLAGS = -Ox -f win64 -g
+## MSFT:DEBUG_VS2015x86_X64_OPTROM_FLAGS = -e
+## MSFT:DEBUG_VS2015x86_X64_DTC_FLAGS = -H epapr
+## MSFT:DEBUG_VS2015x86_X64_MAKE_FLAGS = /nologo
+## MSFT:DEBUG_VS2015x86_X64_SYMRENAME_FLAGS = Symbol renaming not needed for
+## MSFT:DEBUG_VS2015x86_X64_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+## MSFT:DEBUG_VS2015x86_X64_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+## MSFT:DEBUG_VS2015x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+## MSFT:DEBUG_VS2015x86_X64_ASL_FLAGS =
+## MSFT:DEBUG_VS2015x86_X64_NASMB_FLAGS = -f bin
+## MSFT:DEBUG_VS2015x86_X64_DLINK2_FLAGS =
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiApp.inf b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiApp.inf
new file mode 100644
index 000000000000..904e6ea11804
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiApp.inf
@@ -0,0 +1,382 @@
+## @file
+# UiApp module is driver for BDS phase.
+#
+# Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+# DO NOT EDIT
+# FILE auto-generated
+
+[Defines]
+ INF_VERSION = 0x00010017
+ BASE_NAME = UiApp
+ FILE_GUID = 462CAA21-7614-4503-836E-8AB6F4662331
+ MODULE_TYPE = UEFI_APPLICATION
+ VERSION_STRING = 1.0
+ ENTRY_POINT = InitializeUserInterface
+ MODULE_UNI_FILE = UiApp.uni
+
+[Packages.X64]
+ MdePkg/MdePkg.dec
+ MdeModulePkg/MdeModulePkg.dec
+
+[Binaries.X64]
+ PE32|UiApp.efi
+
+[PatchPcd.X64]
+
+[Protocols.X64]
+ ## CONSUMES
+ gEfiSmbiosProtocolGuid
+
+ ## PRODUCES
+ ## CONSUMES
+ ## CONSUMES
+ ## CONSUMES
+ ## CONSUMES
+ gEfiHiiConfigAccessProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gPcdProtocolGuid
+
+ ## CONSUMES
+ gEfiPcdProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gGetPcdInfoProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiGetPcdInfoProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## CONSUMES
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ gEfiDevicePathProtocolGuid
+
+ ## CONSUMES
+ gEfiDevicePathUtilitiesProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## PRODUCES
+ ## CONSUMES
+ ## CONSUMES
+ gEfiDevicePathToTextProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiDevicePathFromTextProtocolGuid
+
+ ## SOMETIMES_PRODUCES
+ gEfiDriverBindingProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ gEfiSimpleTextOutProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ gEfiGraphicsOutputProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ gEfiHiiFontProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ ## CONSUMES
+ gEfiSimpleFileSystemProtocolGuid
+
+ ## SOMETIMES_CONSUMES # Consumes if gEfiGraphicsOutputProtocolGuid uninstalled
+ gEfiUgaDrawProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiComponentNameProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiComponentName2ProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverConfigurationProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverConfiguration2ProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverDiagnosticsProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverDiagnostics2ProtocolGuid
+
+ ## CONSUMES
+ gEfiHiiStringProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiHiiImageProtocolGuid
+
+ ## CONSUMES
+ gEfiHiiDatabaseProtocolGuid
+
+ ## CONSUMES
+ gEfiHiiConfigRoutingProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiUnicodeCollation2ProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ gEfiFirmwareVolume2ProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## CONSUMES
+ gEfiLoadedImageProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ ## CONSUMES
+ gEfiLoadFileProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiLoadFile2ProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ ## CONSUMES
+ gEfiFormBrowser2ProtocolGuid
+
+ ## CONSUMES
+ gEfiStatusCodeRuntimeProtocolGuid
+
+ ## CONSUMES
+ gEfiPciRootBridgeIoProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiPciIoProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiSimpleNetworkProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiSimpleTextInProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiBlockIoProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiBootLogoProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiSimpleTextInputExProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEdkiiVariablePolicyProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiUsbIoProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiNvmExpressPassThruProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiDiskInfoProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiDriverHealthProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiRamDiskProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiDeferredImageLoadProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEdkiiPlatformBootManagerProtocolGuid
+
+ ## CONSUMES
+ ## CONSUMES
+ gEdkiiFormBrowserEx2ProtocolGuid
+
+ ## CONSUMES
+ gEfiSerialIoProtocolGuid
+
+
+[Ppis.X64]
+
+[Guids.X64]
+ ## SOMETIMES_CONSUMES ## GUID (Extended IFR Guid Opcode)
+ ## CONSUMES ## GUID (Extended IFR Guid Opcode)
+ ## CONSUMES ## GUID (Extended IFR Guid Opcode)
+ ## SOMETIMES_PRODUCES ## Variable:L"BootXX" (Boot option variable)
+ ## SOMETIMES_PRODUCES ## Variable:L"PlatformLang" (Platform supported languange in Rfc4646 format)
+ ## SOMETIMES_PRODUCES ## Variable:L"Lang" (Platform supported languange in Iso639 format)
+ ## SOMETIMES_PRODUCES ## Variable:L"KeyXX" (Hotkey option variable)
+ ## PRODUCES ## Variable:L"HwErrRecSupport" (The level of platform supported hardware Error Record Persistence)
+ ## SOMETIMES_PRODUCES ## Variable:L"BootOptionSupport" (The feature supported in boot option menu, value could be: EFI_BOOT_OPTION_SUPPORT_KEY, EFI_BOOT_OPTION_SUPPORT_APP
+ ## SOMETIMES_PRODUCES (not PcdUefiVariableDefaultLangDeprecate)## Variable:L"LangCodes" (Value of PcdUefiVariableDefaultLangCodes)
+ ## PRODUCES ## Variable:L"PlatformLangCodes" (Value of PcdUefiVariableDefaultPlatformLangCodes)
+ ## PRODUCES ## Variable:L"Timeout" (The time out value in second of showing progress bar)
+ ## SOMETIMES_PRODUCES ## Variable:L"BootOrder" (The boot option array)
+ ## SOMETIMES_PRODUCES ## Variable:L"DriverOrder" (The driver order list)
+ ## SOMETIMES_CONSUMES ## Variable:L"ConIn" (The device path of console in device)
+ ## SOMETIMES_CONSUMES ## Variable:L"ConOut" (The device path of console out device)
+ ## SOMETIMES_CONSUMES ## Variable:L"ErrOut" (The device path of error out device)
+ ## SOMETIMES_CONSUMES ## GUID (Extended IFR Guid Opcode)
+ ## CONSUMES ## GUID (Extended IFR Guid Opcode)
+ gEfiIfrTianoGuid
+
+ ## CONSUMES ## GUID (Indicate the formset in this library need to dispaly in which page)
+ ## CONSUMES ## GUID
+ ## CONSUMES ## GUID
+ ## CONSUMES ## GUID
+ gEfiIfrFrontPageGuid
+
+ ## SOMETIMES_CONSUMES ## Event
+ gEfiEventReadyToBootGuid
+
+ ## SOMETIMES_CONSUMES ## Event
+ gEfiEventLegacyBootGuid
+
+ ## SOMETIMES_CONSUMES ## Variable
+ ## SOMETIMES_PRODUCES ## Variable:L"BootCurrent" (The boot option of current boot)
+ ## SOMETIMES_CONSUMES ## Variable:L"BootXX" (Boot option variable)
+ ## SOMETIMES_CONSUMES ## Variable:L"BootOrder" (The boot option array)
+ ## SOMETIMES_CONSUMES ## Variable:L"DriverOrder" (The driver order list)
+ ## SOMETIMES_CONSUMES ## Variable:L"ConIn" (The device path of console in device)
+ ## SOMETIMES_CONSUMES ## Variable:L"ConOut" (The device path of console out device)
+ ## SOMETIMES_CONSUMES ## Variable:L"ErrOut" (The device path of error out device)
+ ## SOMETIMES_PRODUCES ## Variable:L"BootNext" (The number of next boot option)
+ gEfiGlobalVariableGuid
+
+ ## SOMETIMES_CONSUMES ## SystemTable
+ gEfiAcpi20TableGuid
+
+ ## SOMETIMES_CONSUMES ## SystemTable
+ gEfiAcpi10TableGuid
+
+ ## CONSUMES ## SystemTable
+ gEfiHobListGuid
+
+ ## SOMETIMES_CONSUMES ## UNDEFINED
+ gEfiFileInfoGuid
+
+ ## CONSUMES ## SystemTable
+ gEfiDxeServicesTableGuid
+
+ ## SOMETIMES_CONSUMES ## GUID
+ gEdkiiIfrBitVarstoreGuid
+
+ ## SOMETIMES_CONSUMES ## UNDEFINED
+ gEfiStatusCodeSpecificDataGuid
+
+ ## SOMETIMES_CONSUMES ## UNDEFINED
+ gEfiStatusCodeDataTypeDebugGuid
+
+ ## SOMETIMES_CONSUMES ## SystemTable (The identifier of memory type information type in system table)
+ ## SOMETIMES_CONSUMES ## HOB (The hob holding memory type information)
+ ## SOMETIMES_CONSUMES ## Variable:L"MemoryTypeInformation."
+ ## SOMETIMES_PRODUCES ## Variable:L"MemoryTypeInformation."
+ gEfiMemoryTypeInformationGuid
+
+ ## SOMETIMES_CONSUMES ## GUID
+ gEdkiiStatusCodeDataTypeVariableGuid
+
+ ## SOMETIMES_CONSUMES ## GUID
+ gEfiDiskInfoAhciInterfaceGuid
+
+ ## SOMETIMES_CONSUMES ## GUID
+ gEfiDiskInfoIdeInterfaceGuid
+
+ ## SOMETIMES_CONSUMES ## GUID
+ gEfiDiskInfoScsiInterfaceGuid
+
+ ## SOMETIMES_CONSUMES ## GUID
+ gEfiDiskInfoSdMmcInterfaceGuid
+
+ ## SOMETIMES_CONSUMES ## GUID (Indicate the information type is volume)
+ gEfiFileSystemVolumeLabelInfoIdGuid
+
+ ## CONSUMES ## GUID (Indicate the formset class guid to be displayed)
+ gEfiHiiPlatformSetupFormsetGuid
+
+ ## CONSUMES ## GUID
+ gEfiIfrBootMaintenanceGuid
+
+
+[PcdEx.X64]
+
+[LibraryClasses.X64]
+## @LIB_INSTANCES
+# MdePkg/Library/RegisterFilterLibNull/RegisterFilterLibNull.inf
+# MdePkg/Library/DxePcdLib/DxePcdLib.inf
+# MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf
+# MdePkg/Library/BaseLib/BaseLib.inf
+# MdePkg/Library/TdxLib/TdxLib.inf
+# MdePkg/Library/CcProbeLibNull/CcProbeLibNull.inf
+# MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
+# MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsicSev.inf
+# MdePkg/Library/BasePrintLib/BasePrintLib.inf
+# OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf
+# MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
+# MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
+# MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
+# MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf
+# MdePkg/Library/UefiLib/UefiLib.inf
+# MdePkg/Library/DxeHobLib/DxeHobLib.inf
+# MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
+# MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.inf
+# MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
+# MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
+# MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
+# MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
+# MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
+# MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
+# MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
+# MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
+# MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf
+# MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
+# MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf
+# MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
+# MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
+
+[Depex.X64]
+# (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiFormBrowser2ProtocolGuid AND gEfiHiiDatabaseProtocolGuid)
+
+[UserExtensions.TianoCore."ExtraFiles"]
+UiAppExtra.uni
+
+
+
+#
+# The following information is for reference only and not required by the build tools.
+#
+# VALID_ARCHITECTURES = IA32 X64 EBC
+#
+
+[BuildOptions.X64]
+## @AsBuilt
+## MSFT:DEBUG_VS2015x86_X64_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h
+## MSFT:DEBUG_VS2015x86_X64_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE
+## MSFT:DEBUG_VS2015x86_X64_GENFW_FLAGS =
+## MSFT:DEBUG_VS2015x86_X64_SLINK_FLAGS = /NOLOGO /LTCG
+## MSFT:DEBUG_VS2015x86_X64_OBJCOPY_FLAGS = objcopy not needed for
+## MSFT:DEBUG_VS2015x86_X64_DEPS_FLAGS = /showIncludes
+## MSFT:DEBUG_VS2015x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+## MSFT:DEBUG_VS2015x86_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /D DISABLE_NEW_DEPRECATED_INTERFACES /D ENABLE_MD5_DEPRECATED_INTERFACES
+## MSFT:DEBUG_VS2015x86_X64_ASMLINK_FLAGS = /nologo /tiny
+## MSFT:DEBUG_VS2015x86_X64_VFR_FLAGS = -l -n
+## MSFT:DEBUG_VS2015x86_X64_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable
+## MSFT:DEBUG_VS2015x86_X64_APP_FLAGS = /nologo /E /TC
+## MSFT:DEBUG_VS2015x86_X64_NASM_FLAGS = -Ox -f win64 -g
+## MSFT:DEBUG_VS2015x86_X64_OPTROM_FLAGS = -e
+## MSFT:DEBUG_VS2015x86_X64_DTC_FLAGS = -H epapr
+## MSFT:DEBUG_VS2015x86_X64_MAKE_FLAGS = /nologo
+## MSFT:DEBUG_VS2015x86_X64_SYMRENAME_FLAGS = Symbol renaming not needed for
+## MSFT:DEBUG_VS2015x86_X64_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+## MSFT:DEBUG_VS2015x86_X64_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+## MSFT:DEBUG_VS2015x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+## MSFT:DEBUG_VS2015x86_X64_ASL_FLAGS =
+## MSFT:DEBUG_VS2015x86_X64_NASMB_FLAGS = -f bin
+## MSFT:DEBUG_VS2015x86_X64_DLINK2_FLAGS =
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxe.inf b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxe.inf
new file mode 100644
index 000000000000..bc6406df5e48
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxe.inf
@@ -0,0 +1,244 @@
+## @file
+# This module provides one way to configurate VALN setting.
+#
+# This module produces EFI HII Configuration Access Protocol to provide one way to
+# configurate VALN setting
+#
+# Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+# DO NOT EDIT
+# FILE auto-generated
+
+[Defines]
+ INF_VERSION = 0x00010017
+ BASE_NAME = VlanConfigDxe
+ FILE_GUID = E4F61863-FE2C-4b56-A8F4-08519BC439DF
+ MODULE_TYPE = UEFI_DRIVER
+ VERSION_STRING = 1.0
+ ENTRY_POINT = VlanConfigDriverEntryPoint
+ UNLOAD_IMAGE = NetLibDefaultUnload
+ MODULE_UNI_FILE = VlanConfigDxe.uni
+
+[Packages.X64]
+ MdePkg/MdePkg.dec
+ MdeModulePkg/MdeModulePkg.dec
+ NetworkPkg/NetworkPkg.dec
+
+[Binaries.X64]
+ PE32|VlanConfigDxe.efi
+ BIN|VlanConfigDxeOffset.bin
+ DISPOSABLE|VlanConfigDxe.pdb
+
+[PatchPcd.X64]
+
+[Protocols.X64]
+ ## BY_START
+ gEfiHiiConfigAccessProtocolGuid
+
+ ## CONSUMES
+ ## CONSUMES
+ gEfiHiiConfigRoutingProtocolGuid
+
+ ## TO_START
+ gEfiVlanConfigProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gPcdProtocolGuid
+
+ ## CONSUMES
+ gEfiPcdProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gGetPcdInfoProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiGetPcdInfoProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ gEfiDevicePathProtocolGuid
+
+ ## CONSUMES
+ gEfiDevicePathUtilitiesProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiDevicePathToTextProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiDevicePathFromTextProtocolGuid
+
+ ## SOMETIMES_PRODUCES
+ gEfiDriverBindingProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiSimpleTextOutProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiGraphicsOutputProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ ## SOMETIMES_CONSUMES
+ gEfiHiiFontProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiSimpleFileSystemProtocolGuid
+
+ ## SOMETIMES_CONSUMES # Consumes if gEfiGraphicsOutputProtocolGuid uninstalled
+ gEfiUgaDrawProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ ## SOMETIMES_CONSUMES
+ gEfiComponentNameProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ ## SOMETIMES_CONSUMES
+ gEfiComponentName2ProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverConfigurationProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverConfiguration2ProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverDiagnosticsProtocolGuid
+
+ ## SOMETIMES_PRODUCES # User chooses to produce it
+ gEfiDriverDiagnostics2ProtocolGuid
+
+ ## CONSUMES
+ gEfiHiiStringProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiHiiImageProtocolGuid
+
+ ## CONSUMES
+ gEfiHiiDatabaseProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiLoadedImageProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiSimpleNetworkProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiManagedNetworkProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiManagedNetworkServiceBindingProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiIp4Config2ProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiAdapterInformationProtocolGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiFormBrowser2ProtocolGuid
+
+
+[Ppis.X64]
+
+[Guids.X64]
+ ## SOMETIMES_PRODUCES ## UNDEFINED
+ gEfiIfrTianoGuid
+
+ ## SOMETIMES_CONSUMES ## UNDEFINED # HiiIsConfigHdrMatch mVlanStorageName
+ ## SOMETIMES_PRODUCES ## UNDEFINED # HiiConstructConfigHdr mVlanStorageName
+ ## SOMETIMES_PRODUCES ## UNDEFINED # HiiGetBrowserData mVlanStorageName
+ ## SOMETIMES_CONSUMES ## UNDEFINED # HiiSetBrowserData mVlanStorageName
+ ## SOMETIMES_CONSUMES ## HII
+ gVlanConfigFormSetGuid
+
+ ## SOMETIMES_CONSUMES ## Event
+ gEfiEventReadyToBootGuid
+
+ ## SOMETIMES_CONSUMES ## Event
+ gEfiEventLegacyBootGuid
+
+ ## SOMETIMES_CONSUMES ## Variable
+ gEfiGlobalVariableGuid
+
+ ## SOMETIMES_CONSUMES ## SystemTable
+ gEfiAcpi20TableGuid
+
+ ## SOMETIMES_CONSUMES ## SystemTable
+ gEfiAcpi10TableGuid
+
+ ## SOMETIMES_CONSUMES ## SystemTable
+ gEfiSmbiosTableGuid
+
+ ## SOMETIMES_CONSUMES ## SystemTable
+ gEfiSmbios3TableGuid
+
+ ## SOMETIMES_CONSUMES
+ gEfiAdapterInfoMediaStateGuid
+
+ ## SOMETIMES_CONSUMES ## GUID
+ gEdkiiIfrBitVarstoreGuid
+
+
+[PcdEx.X64]
+
+[LibraryClasses.X64]
+## @LIB_INSTANCES
+# MdePkg/Library/RegisterFilterLibNull/RegisterFilterLibNull.inf
+# MdePkg/Library/DxePcdLib/DxePcdLib.inf
+# MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf
+# MdePkg/Library/BaseLib/BaseLib.inf
+# MdePkg/Library/TdxLib/TdxLib.inf
+# OvmfPkg/Library/CcProbeLib/CcProbeLib.inf
+# MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
+# MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsicSev.inf
+# MdePkg/Library/BasePrintLib/BasePrintLib.inf
+# OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf
+# MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
+# MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
+# MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
+# MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf
+# MdePkg/Library/UefiLib/UefiLib.inf
+# MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
+# MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
+# NetworkPkg/Library/DxeNetLib/DxeNetLib.inf
+# MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
+
+[Depex.X64]
+# (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiDevicePathUtilitiesProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiBdsArchProtocolGuid AND gEfiCpuArchProtocolGuid AND gEfiMetronomeArchProtocolGuid AND gEfiMonotonicCounterArchProtocolGuid AND gEfiRealTimeClockArchProtocolGuid AND gEfiResetArchProtocolGuid AND gEfiRuntimeArchProtocolGuid AND gEfiSecurityArchProtocolGuid AND gEfiTimerArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid AND gEfiWatchdogTimerArchProtocolGuid)
+
+[UserExtensions.TianoCore."ExtraFiles"]
+VlanConfigDxeExtra.uni
+
+
+
+#
+# VALID_ARCHITECTURES = IA32 X64 EBC
+#
+
+[BuildOptions.X64]
+## @AsBuilt
+## MSFT:DEBUG_VS2015x86_X64_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h
+## MSFT:DEBUG_VS2015x86_X64_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE
+## MSFT:DEBUG_VS2015x86_X64_GENFW_FLAGS =
+## MSFT:DEBUG_VS2015x86_X64_SLINK_FLAGS = /NOLOGO /LTCG
+## MSFT:DEBUG_VS2015x86_X64_OBJCOPY_FLAGS = objcopy not needed for
+## MSFT:DEBUG_VS2015x86_X64_DEPS_FLAGS = /showIncludes
+## MSFT:DEBUG_VS2015x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+## MSFT:DEBUG_VS2015x86_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /D DISABLE_NEW_DEPRECATED_INTERFACES /D TDX_GUEST_SUPPORTED /D ENABLE_MD5_DEPRECATED_INTERFACES
+## MSFT:DEBUG_VS2015x86_X64_ASMLINK_FLAGS = /nologo /tiny
+## MSFT:DEBUG_VS2015x86_X64_VFR_FLAGS = -l -n
+## MSFT:DEBUG_VS2015x86_X64_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable
+## MSFT:DEBUG_VS2015x86_X64_APP_FLAGS = /nologo /E /TC
+## MSFT:DEBUG_VS2015x86_X64_NASM_FLAGS = -Ox -f win64 -g
+## MSFT:DEBUG_VS2015x86_X64_OPTROM_FLAGS = -e
+## MSFT:DEBUG_VS2015x86_X64_DTC_FLAGS = -H epapr
+## MSFT:DEBUG_VS2015x86_X64_MAKE_FLAGS = /nologo
+## MSFT:DEBUG_VS2015x86_X64_SYMRENAME_FLAGS = Symbol renaming not needed for
+## MSFT:DEBUG_VS2015x86_X64_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+## MSFT:DEBUG_VS2015x86_X64_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+## MSFT:DEBUG_VS2015x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+## MSFT:DEBUG_VS2015x86_X64_ASL_FLAGS =
+## MSFT:DEBUG_VS2015x86_X64_NASMB_FLAGS = -f bin
+## MSFT:DEBUG_VS2015x86_X64_DLINK2_FLAGS =
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/AutoGen.h b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/AutoGen.h
new file mode 100644
index 000000000000..a42d342e5119
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/AutoGen.h
@@ -0,0 +1,116 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ AutoGen.h
+ Abstract: Auto-generated AutoGen.h for building module or library.
+**/
+
+#ifndef _AUTOGENH_CA9E4824_4198_4715_AA22_E2935E703A07
+#define _AUTOGENH_CA9E4824_4198_4715_AA22_E2935E703A07
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <PiDxe.h>
+#include <Library/PcdLib.h>
+
+extern GUID gEfiCallerIdGuid;
+extern GUID gEdkiiDscPlatformGuid;
+extern CHAR8 *gEfiCallerBaseName;
+
+
+// Guids
+extern EFI_GUID gEfiGlobalVariableGuid;
+extern EFI_GUID gEfiIfrTianoGuid;
+extern EFI_GUID gEfiIfrFrontPageGuid;
+extern EFI_GUID gEfiIfrBootMaintenanceGuid;
+extern EFI_GUID gEfiMdeModulePkgTokenSpaceGuid;
+extern EFI_GUID gEfiMdePkgTokenSpaceGuid;
+
+// Protocols
+extern EFI_GUID gEfiSimpleFileSystemProtocolGuid;
+extern EFI_GUID gEfiLoadFileProtocolGuid;
+extern EFI_GUID gEfiHiiConfigAccessProtocolGuid;
+extern EFI_GUID gEfiSerialIoProtocolGuid;
+extern EFI_GUID gEfiDevicePathToTextProtocolGuid;
+extern EFI_GUID gEdkiiFormBrowserEx2ProtocolGuid;
+
+// Definition of SkuId Array
+extern UINT64 _gPcd_SkuId_Array[];
+
+// PCD definitions
+#define _PCD_TOKEN_PcdConOutRow 27U
+#define _PCD_GET_MODE_32_PcdConOutRow LibPcdGet32(_PCD_TOKEN_PcdConOutRow)
+#define _PCD_GET_MODE_SIZE_PcdConOutRow LibPcdGetSize(_PCD_TOKEN_PcdConOutRow)
+#define _PCD_SET_MODE_32_PcdConOutRow(Value) LibPcdSet32(_PCD_TOKEN_PcdConOutRow, (Value))
+#define _PCD_SET_MODE_32_S_PcdConOutRow(Value) LibPcdSet32S(_PCD_TOKEN_PcdConOutRow, (Value))
+#define _PCD_TOKEN_PcdConOutColumn 26U
+#define _PCD_GET_MODE_32_PcdConOutColumn LibPcdGet32(_PCD_TOKEN_PcdConOutColumn)
+#define _PCD_GET_MODE_SIZE_PcdConOutColumn LibPcdGetSize(_PCD_TOKEN_PcdConOutColumn)
+#define _PCD_SET_MODE_32_PcdConOutColumn(Value) LibPcdSet32(_PCD_TOKEN_PcdConOutColumn, (Value))
+#define _PCD_SET_MODE_32_S_PcdConOutColumn(Value) LibPcdSet32S(_PCD_TOKEN_PcdConOutColumn, (Value))
+#define _PCD_TOKEN_PcdPlatformBootTimeOut 43U
+#define _PCD_GET_MODE_16_PcdPlatformBootTimeOut LibPcdGet16(_PCD_TOKEN_PcdPlatformBootTimeOut)
+#define _PCD_GET_MODE_SIZE_PcdPlatformBootTimeOut LibPcdGetSize(_PCD_TOKEN_PcdPlatformBootTimeOut)
+#define _PCD_SET_MODE_16_PcdPlatformBootTimeOut(Value) LibPcdSet16(_PCD_TOKEN_PcdPlatformBootTimeOut, (Value))
+#define _PCD_SET_MODE_16_S_PcdPlatformBootTimeOut(Value) LibPcdSet16S(_PCD_TOKEN_PcdPlatformBootTimeOut, (Value))
+#define _PCD_TOKEN_PcdVideoHorizontalResolution 40U
+#define _PCD_GET_MODE_32_PcdVideoHorizontalResolution LibPcdGet32(_PCD_TOKEN_PcdVideoHorizontalResolution)
+#define _PCD_GET_MODE_SIZE_PcdVideoHorizontalResolution LibPcdGetSize(_PCD_TOKEN_PcdVideoHorizontalResolution)
+#define _PCD_SET_MODE_32_PcdVideoHorizontalResolution(Value) LibPcdSet32(_PCD_TOKEN_PcdVideoHorizontalResolution, (Value))
+#define _PCD_SET_MODE_32_S_PcdVideoHorizontalResolution(Value) LibPcdSet32S(_PCD_TOKEN_PcdVideoHorizontalResolution, (Value))
+#define _PCD_TOKEN_PcdVideoVerticalResolution 41U
+#define _PCD_GET_MODE_32_PcdVideoVerticalResolution LibPcdGet32(_PCD_TOKEN_PcdVideoVerticalResolution)
+#define _PCD_GET_MODE_SIZE_PcdVideoVerticalResolution LibPcdGetSize(_PCD_TOKEN_PcdVideoVerticalResolution)
+#define _PCD_SET_MODE_32_PcdVideoVerticalResolution(Value) LibPcdSet32(_PCD_TOKEN_PcdVideoVerticalResolution, (Value))
+#define _PCD_SET_MODE_32_S_PcdVideoVerticalResolution(Value) LibPcdSet32S(_PCD_TOKEN_PcdVideoVerticalResolution, (Value))
+#define _PCD_TOKEN_PcdSetupConOutColumn 0U
+extern volatile UINT32 _gPcd_BinaryPatch_PcdSetupConOutColumn;
+#define _PCD_GET_MODE_32_PcdSetupConOutColumn _gPcd_BinaryPatch_PcdSetupConOutColumn
+#define _PCD_SET_MODE_32_PcdSetupConOutColumn(Value) (_gPcd_BinaryPatch_PcdSetupConOutColumn = (Value))
+#define _PCD_SET_MODE_32_S_PcdSetupConOutColumn(Value) ((_gPcd_BinaryPatch_PcdSetupConOutColumn = (Value)), RETURN_SUCCESS)
+#define _PCD_PATCHABLE_PcdSetupConOutColumn_SIZE 4
+#define _PCD_GET_MODE_SIZE_PcdSetupConOutColumn _gPcd_BinaryPatch_Size_PcdSetupConOutColumn
+extern UINTN _gPcd_BinaryPatch_Size_PcdSetupConOutColumn;
+#define _PCD_TOKEN_PcdSetupConOutRow 0U
+extern volatile UINT32 _gPcd_BinaryPatch_PcdSetupConOutRow;
+#define _PCD_GET_MODE_32_PcdSetupConOutRow _gPcd_BinaryPatch_PcdSetupConOutRow
+#define _PCD_SET_MODE_32_PcdSetupConOutRow(Value) (_gPcd_BinaryPatch_PcdSetupConOutRow = (Value))
+#define _PCD_SET_MODE_32_S_PcdSetupConOutRow(Value) ((_gPcd_BinaryPatch_PcdSetupConOutRow = (Value)), RETURN_SUCCESS)
+#define _PCD_PATCHABLE_PcdSetupConOutRow_SIZE 4
+#define _PCD_GET_MODE_SIZE_PcdSetupConOutRow _gPcd_BinaryPatch_Size_PcdSetupConOutRow
+extern UINTN _gPcd_BinaryPatch_Size_PcdSetupConOutRow;
+#define _PCD_TOKEN_PcdSetupVideoHorizontalResolution 35U
+#define _PCD_GET_MODE_32_PcdSetupVideoHorizontalResolution LibPcdGet32(_PCD_TOKEN_PcdSetupVideoHorizontalResolution)
+#define _PCD_GET_MODE_SIZE_PcdSetupVideoHorizontalResolution LibPcdGetSize(_PCD_TOKEN_PcdSetupVideoHorizontalResolution)
+#define _PCD_SET_MODE_32_PcdSetupVideoHorizontalResolution(Value) LibPcdSet32(_PCD_TOKEN_PcdSetupVideoHorizontalResolution, (Value))
+#define _PCD_SET_MODE_32_S_PcdSetupVideoHorizontalResolution(Value) LibPcdSet32S(_PCD_TOKEN_PcdSetupVideoHorizontalResolution, (Value))
+#define _PCD_TOKEN_PcdSetupVideoVerticalResolution 36U
+#define _PCD_GET_MODE_32_PcdSetupVideoVerticalResolution LibPcdGet32(_PCD_TOKEN_PcdSetupVideoVerticalResolution)
+#define _PCD_GET_MODE_SIZE_PcdSetupVideoVerticalResolution LibPcdGetSize(_PCD_TOKEN_PcdSetupVideoVerticalResolution)
+#define _PCD_SET_MODE_32_PcdSetupVideoVerticalResolution(Value) LibPcdSet32(_PCD_TOKEN_PcdSetupVideoVerticalResolution, (Value))
+#define _PCD_SET_MODE_32_S_PcdSetupVideoVerticalResolution(Value) LibPcdSet32S(_PCD_TOKEN_PcdSetupVideoVerticalResolution, (Value))
+
+EFI_STATUS
+EFIAPI
+BootMaintenanceManagerUiLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+BootMaintenanceManagerUiLibDestructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+#include "BootMaintenanceManagerUiLibStrDefs.h"
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManagerUiLibStrDefs.h b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManagerUiLibStrDefs.h
new file mode 100644
index 000000000000..1b26495934c9
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManagerUiLibStrDefs.h
@@ -0,0 +1,177 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ BootMaintenanceManagerUiLibStrDefs.h
+ Abstract: Auto-generated BootMaintenanceManagerUiLibStrDefs.h for building module or library.
+**/
+
+#ifndef _STRDEFS_CA9E4824_4198_4715_AA22_E2935E703A07
+#define _STRDEFS_CA9E4824_4198_4715_AA22_E2935E703A07
+
+
+//
+//Unicode String ID
+//
+// #define $LANGUAGE_NAME 0x0000 // not referenced
+// #define $PRINTABLE_LANGUAGE_NAME 0x0001 // not referenced
+#define STR_NULL_STRING 0x0002
+#define STR_NONE 0x0003
+#define STR_MISSING_STRING 0x0004
+#define STR_FORM_MAIN_TITLE 0x0005
+#define STR_FORM_BOOT_SETUP_TITLE 0x0006
+#define STR_BOOT_MAINT_MANAGER_HELP 0x0007
+#define STR_FORM_BOOT_SETUP_HELP 0x0008
+#define STR_FORM_DRIVER_SETUP_TITLE 0x0009
+#define STR_FORM_DRIVER_SETUP_HELP 0x000A
+#define STR_FORM_BOOT_ADD_TITLE 0x000B
+#define STR_FORM_BOOT_ADD_HELP 0x000C
+#define STR_FORM_BOOT_DEL_TITLE 0x000D
+#define STR_FORM_BOOT_IMMEDIATE_HELP 0x000E
+#define STR_FORM_BOOT_CHG_TITLE 0x000F
+#define STR_FORM_DRV_ADD_TITLE 0x0010
+#define STR_FORM_DRV_ADD_HELP 0x0011
+#define STR_FORM_DRV_DEL_TITLE 0x0012
+#define STR_FORM_DRV_CHG_TITLE 0x0013
+#define STR_FORM_NEXT_BOOT_HELP 0x0014
+#define STR_FORM_CON_MAIN_TITLE 0x0015
+#define STR_FORM_CON_MAIN_HELP 0x0016
+#define STR_FORM_CON_IN_TITLE 0x0017
+#define STR_FORM_CON_IN_HELP 0x0018
+#define STR_FORM_CON_OUT_TITLE 0x0019
+#define STR_FORM_CON_OUT_HELP 0x001A
+#define STR_FORM_STD_ERR_TITLE 0x001B
+#define STR_FORM_STD_ERR_HELP 0x001C
+#define STR_FORM_MODE_TITLE 0x001D
+#define STR_FORM_MODE_HELP 0x001E
+#define STR_FORM_COM_TITLE 0x001F
+#define STR_FORM_COM_HELP 0x0020
+#define STR_FORM_DRV_ADD_FILE_TITLE 0x0021
+#define STR_FORM_DRV_ADD_HANDLE_TITLE 0x0022
+#define STR_FORM_BOOT_ADD_DESC_TITLE 0x0023
+#define STR_FORM_DRV_ADD_DESC_TITLE 0x0024
+#define STR_NUM_AUTO_BOOT 0x0025
+#define STR_HLP_AUTO_BOOT 0x0026
+#define STR_BOOT_NEXT 0x0027
+#define STR_BOOT_NEXT_HELP 0x0028
+#define STR_LOAD_OPTION_DESC 0x0029
+#define STR_LOAD_OPTION_FORCE_RECON 0x002A
+#define STR_SAVE_AND_EXIT 0x002B
+#define STR_NO_SAVE_AND_EXIT 0x002C
+#define STR_CON_MODE_SETUP 0x002D
+#define STR_CON_COM_SETUP 0x002E
+#define STR_COM_TERMI_TYPE 0x002F
+#define STR_COM_FLOW_CONTROL 0x0030
+#define STR_COM_BAUD_RATE 0x0031
+#define STR_COM_DATA_BITS 0x0032
+#define STR_COM_PARITY 0x0033
+#define STR_COM_STOP_BITS 0x0034
+#define STR_COM_BAUD_RATE_0 0x0035
+#define STR_COM_BAUD_RATE_1 0x0036
+#define STR_COM_BAUD_RATE_2 0x0037
+#define STR_COM_BAUD_RATE_3 0x0038
+#define STR_COM_BAUD_RATE_4 0x0039
+#define STR_COM_BAUD_RATE_5 0x003A
+#define STR_COM_BAUD_RATE_6 0x003B
+#define STR_COM_BAUD_RATE_7 0x003C
+#define STR_COM_BAUD_RATE_8 0x003D
+#define STR_COM_BAUD_RATE_9 0x003E
+#define STR_COM_BAUD_RATE_10 0x003F
+#define STR_COM_BAUD_RATE_11 0x0040
+#define STR_COM_BAUD_RATE_12 0x0041
+#define STR_COM_BAUD_RATE_13 0x0042
+#define STR_COM_BAUD_RATE_14 0x0043
+#define STR_COM_BAUD_RATE_15 0x0044
+#define STR_COM_BAUD_RATE_16 0x0045
+#define STR_COM_BAUD_RATE_17 0x0046
+#define STR_COM_BAUD_RATE_18 0x0047
+#define STR_COM_DATA_BITS_0 0x0048
+#define STR_COM_DATA_BITS_1 0x0049
+#define STR_COM_DATA_BITS_2 0x004A
+#define STR_COM_DATA_BITS_3 0x004B
+#define STR_COM_PAR_0 0x004C
+#define STR_COM_PAR_1 0x004D
+#define STR_COM_PAR_2 0x004E
+#define STR_COM_PAR_3 0x004F
+#define STR_COM_PAR_4 0x0050
+#define STR_COM_STOP_BITS_0 0x0051
+#define STR_COM_STOP_BITS_1 0x0052
+#define STR_COM_STOP_BITS_2 0x0053
+#define STR_COM_TYPE_0 0x0054
+#define STR_COM_TYPE_1 0x0055
+#define STR_COM_TYPE_2 0x0056
+#define STR_COM_TYPE_3 0x0057
+#define STR_COM_TYPE_4 0x0058
+#define STR_COM_TYPE_5 0x0059
+#define STR_COM_TYPE_6 0x005A
+#define STR_COM_TYPE_7 0x005B
+#define STR_COM_TYPE_8 0x005C
+#define STR_FORM_GOTO_MAIN 0x005D
+#define STR_BOOT_FROM_FILE 0x005E
+#define STR_BOOT_FROM_FILE_HELP 0x005F
+#define STR_OPTIONAL_DATA 0x0060
+#define STR_CHANGE_ORDER 0x0061
+#define STR_HARDWARE_FLOW_CONTROL 0x0062
+#define STR_NONE_FLOW_CONTROL 0x0063
+// #define STR_FORM_BOOT_NEXT_TITLE 0x0064 // not referenced
+// #define STR_FORM_BOOT_NEXT_HELP 0x0065 // not referenced
+// #define STR_FORM_TIME_OUT_TITLE 0x0066 // not referenced
+// #define STR_FORM_TIME_OUT_HELP 0x0067 // not referenced
+// #define STR_FORM_MEMORY_CHECK_TITLE 0x0068 // not referenced
+// #define STR_FORM_MEMORY_CHECK_HELP 0x0069 // not referenced
+// #define STR_FORM_UEFI_OPTIMIZED_BOOT_TITLE 0x006A // not referenced
+// #define STR_FORM_UEFI_OPTIMIZED_BOOT_HELP 0x006B // not referenced
+// #define UEFI_OPTIMIZED_BOOT_DESCRIPTION 0x006C // not referenced
+// #define UEFI_OPTIMIZED_BOOT_HELP 0x006D // not referenced
+// #define STR_FORM_SET_FD_ORDER_TITLE 0x006E // not referenced
+// #define STR_FORM_SET_HD_ORDER_TITLE 0x006F // not referenced
+// #define STR_FORM_SET_CD_ORDER_TITLE 0x0070 // not referenced
+// #define STR_FORM_SET_NET_ORDER_TITLE 0x0071 // not referenced
+// #define STR_FORM_SET_BEV_ORDER_TITLE 0x0072 // not referenced
+// #define STR_FORM_GOTO_SETTING 0x0073 // not referenced
+// #define STR_COM1 0x0074 // not referenced
+// #define STR_COM2 0x0075 // not referenced
+// #define STR_COM_AS_CONSOLE_OPTION 0x0076 // not referenced
+// #define STR_LOAD_OPTION_DEVPATH 0x0077 // not referenced
+// #define STR_LOAD_OPTION_ACTIVE 0x0078 // not referenced
+// #define STR_CON_IN_SETUP 0x0079 // not referenced
+// #define STR_CON_OUT_SETUP 0x007A // not referenced
+// #define STR_CON_ERR_SETUP 0x007B // not referenced
+// #define STR_RESET 0x007C // not referenced
+// #define STR_BOOT_LEGACY 0x007D // not referenced
+// #define STR_BOOT_LEGACY_HELP 0x007E // not referenced
+// #define STR_BOOT_LEGACY_FLOPPY 0x007F // not referenced
+// #define STR_BOOT_LEGACY_HARDDRIVE 0x0080 // not referenced
+// #define STR_BOOT_LEGACY_CDROM 0x0081 // not referenced
+// #define STR_BOOT_LEGACY_PCMCIA 0x0082 // not referenced
+// #define STR_BOOT_LEGACY_USB 0x0083 // not referenced
+// #define STR_BOOT_LEGACY_NETWORK 0x0084 // not referenced
+// #define STR_DISABLE_LEGACY_DEVICE 0x0085 // not referenced
+// #define STR_FILE_EXPLORER_TITLE 0x0086 // not referenced
+// #define STR_OUT_OF_BAND_PORT 0x0087 // not referenced
+
+extern unsigned char BootMaintenanceManagerUiLibStrings[];
+
+
+#define STRING_ARRAY_NAME BootMaintenanceManagerUiLibStrings
+
+#ifdef VFRCOMPILE
+#define gEfiGlobalVariableGuid { 0x8BE4DF61, 0x93CA, 0x11D2, { 0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C }}
+#define gEfiIfrTianoGuid { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce }}
+#define gEfiIfrFrontPageGuid { 0xe58809f8, 0xfbc1, 0x48e2, { 0x88, 0x3a, 0xa3, 0x0f, 0xdc, 0x4b, 0x44, 0x1e } }
+#define gEfiIfrBootMaintenanceGuid { 0xb2dedc91, 0xd59f, 0x48d2, { 0x89, 0x8a, 0x12, 0x49, 0xc, 0x74, 0xa4, 0xe0 }}
+#define gEfiSimpleFileSystemProtocolGuid { 0x964E5B22, 0x6459, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }}
+#define gEfiLoadFileProtocolGuid { 0x56EC3091, 0x954C, 0x11D2, { 0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }}
+#define gEfiHiiConfigAccessProtocolGuid {0x330d4706, 0xf2a0, 0x4e4f, {0xa3, 0x69, 0xb6, 0x6f, 0xa8, 0xd5, 0x43, 0x85}}
+#define gEfiSerialIoProtocolGuid { 0xBB25CF6F, 0xF1D4, 0x11D2, { 0x9A, 0x0C, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0xFD }}
+#define gEfiDevicePathToTextProtocolGuid { 0x8B843E20, 0x8132, 0x4852, { 0x90, 0xCC, 0x55, 0x1A, 0x4E, 0x4A, 0x7F, 0x1C }}
+#define gEdkiiFormBrowserEx2ProtocolGuid { 0xa770c357, 0xb693, 0x4e6d, { 0xa6, 0xcf, 0xd2, 0x1c, 0x72, 0x8e, 0x55, 0xb } }
+#define FixedPcdGetBool(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet8(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet16(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet32(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet64(TokenName) _PCD_VALUE_##TokenName
+#define FeaturePcdGet(TokenName) _PCD_VALUE_##TokenName
+#endif
+
+#endif
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/AutoGen.h b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/AutoGen.h
new file mode 100644
index 000000000000..5e4693714ee8
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/AutoGen.h
@@ -0,0 +1,105 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ AutoGen.h
+ Abstract: Auto-generated AutoGen.h for building module or library.
+**/
+
+#ifndef _AUTOGENH_CCB2DCE1_4FC8_41CB_88C5_D349E134C9FC
+#define _AUTOGENH_CCB2DCE1_4FC8_41CB_88C5_D349E134C9FC
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <PiDxe.h>
+#include <Library/PcdLib.h>
+
+extern GUID gEfiCallerIdGuid;
+extern GUID gEdkiiDscPlatformGuid;
+extern CHAR8 *gEfiCallerBaseName;
+
+
+// Guids
+extern EFI_GUID gEfiIfrTianoGuid;
+extern EFI_GUID gEfiIfrFrontPageGuid;
+extern EFI_GUID gEfiMdeModulePkgTokenSpaceGuid;
+
+// Protocols
+extern EFI_GUID gEfiHiiConfigAccessProtocolGuid;
+extern EFI_GUID gEfiDevicePathToTextProtocolGuid;
+extern EFI_GUID gEdkiiFormBrowserEx2ProtocolGuid;
+
+// Definition of SkuId Array
+extern UINT64 _gPcd_SkuId_Array[];
+
+// PCD definitions
+#define _PCD_TOKEN_PcdConOutRow 27U
+#define _PCD_GET_MODE_32_PcdConOutRow LibPcdGet32(_PCD_TOKEN_PcdConOutRow)
+#define _PCD_GET_MODE_SIZE_PcdConOutRow LibPcdGetSize(_PCD_TOKEN_PcdConOutRow)
+#define _PCD_SET_MODE_32_PcdConOutRow(Value) LibPcdSet32(_PCD_TOKEN_PcdConOutRow, (Value))
+#define _PCD_SET_MODE_32_S_PcdConOutRow(Value) LibPcdSet32S(_PCD_TOKEN_PcdConOutRow, (Value))
+#define _PCD_TOKEN_PcdConOutColumn 26U
+#define _PCD_GET_MODE_32_PcdConOutColumn LibPcdGet32(_PCD_TOKEN_PcdConOutColumn)
+#define _PCD_GET_MODE_SIZE_PcdConOutColumn LibPcdGetSize(_PCD_TOKEN_PcdConOutColumn)
+#define _PCD_SET_MODE_32_PcdConOutColumn(Value) LibPcdSet32(_PCD_TOKEN_PcdConOutColumn, (Value))
+#define _PCD_SET_MODE_32_S_PcdConOutColumn(Value) LibPcdSet32S(_PCD_TOKEN_PcdConOutColumn, (Value))
+#define _PCD_TOKEN_PcdVideoHorizontalResolution 40U
+#define _PCD_GET_MODE_32_PcdVideoHorizontalResolution LibPcdGet32(_PCD_TOKEN_PcdVideoHorizontalResolution)
+#define _PCD_GET_MODE_SIZE_PcdVideoHorizontalResolution LibPcdGetSize(_PCD_TOKEN_PcdVideoHorizontalResolution)
+#define _PCD_SET_MODE_32_PcdVideoHorizontalResolution(Value) LibPcdSet32(_PCD_TOKEN_PcdVideoHorizontalResolution, (Value))
+#define _PCD_SET_MODE_32_S_PcdVideoHorizontalResolution(Value) LibPcdSet32S(_PCD_TOKEN_PcdVideoHorizontalResolution, (Value))
+#define _PCD_TOKEN_PcdVideoVerticalResolution 41U
+#define _PCD_GET_MODE_32_PcdVideoVerticalResolution LibPcdGet32(_PCD_TOKEN_PcdVideoVerticalResolution)
+#define _PCD_GET_MODE_SIZE_PcdVideoVerticalResolution LibPcdGetSize(_PCD_TOKEN_PcdVideoVerticalResolution)
+#define _PCD_SET_MODE_32_PcdVideoVerticalResolution(Value) LibPcdSet32(_PCD_TOKEN_PcdVideoVerticalResolution, (Value))
+#define _PCD_SET_MODE_32_S_PcdVideoVerticalResolution(Value) LibPcdSet32S(_PCD_TOKEN_PcdVideoVerticalResolution, (Value))
+#define _PCD_TOKEN_PcdSetupConOutColumn 0U
+extern volatile UINT32 _gPcd_BinaryPatch_PcdSetupConOutColumn;
+#define _PCD_GET_MODE_32_PcdSetupConOutColumn _gPcd_BinaryPatch_PcdSetupConOutColumn
+#define _PCD_SET_MODE_32_PcdSetupConOutColumn(Value) (_gPcd_BinaryPatch_PcdSetupConOutColumn = (Value))
+#define _PCD_SET_MODE_32_S_PcdSetupConOutColumn(Value) ((_gPcd_BinaryPatch_PcdSetupConOutColumn = (Value)), RETURN_SUCCESS)
+#define _PCD_PATCHABLE_PcdSetupConOutColumn_SIZE 4
+#define _PCD_GET_MODE_SIZE_PcdSetupConOutColumn _gPcd_BinaryPatch_Size_PcdSetupConOutColumn
+extern UINTN _gPcd_BinaryPatch_Size_PcdSetupConOutColumn;
+#define _PCD_TOKEN_PcdSetupConOutRow 0U
+extern volatile UINT32 _gPcd_BinaryPatch_PcdSetupConOutRow;
+#define _PCD_GET_MODE_32_PcdSetupConOutRow _gPcd_BinaryPatch_PcdSetupConOutRow
+#define _PCD_SET_MODE_32_PcdSetupConOutRow(Value) (_gPcd_BinaryPatch_PcdSetupConOutRow = (Value))
+#define _PCD_SET_MODE_32_S_PcdSetupConOutRow(Value) ((_gPcd_BinaryPatch_PcdSetupConOutRow = (Value)), RETURN_SUCCESS)
+#define _PCD_PATCHABLE_PcdSetupConOutRow_SIZE 4
+#define _PCD_GET_MODE_SIZE_PcdSetupConOutRow _gPcd_BinaryPatch_Size_PcdSetupConOutRow
+extern UINTN _gPcd_BinaryPatch_Size_PcdSetupConOutRow;
+#define _PCD_TOKEN_PcdSetupVideoHorizontalResolution 35U
+#define _PCD_GET_MODE_32_PcdSetupVideoHorizontalResolution LibPcdGet32(_PCD_TOKEN_PcdSetupVideoHorizontalResolution)
+#define _PCD_GET_MODE_SIZE_PcdSetupVideoHorizontalResolution LibPcdGetSize(_PCD_TOKEN_PcdSetupVideoHorizontalResolution)
+#define _PCD_SET_MODE_32_PcdSetupVideoHorizontalResolution(Value) LibPcdSet32(_PCD_TOKEN_PcdSetupVideoHorizontalResolution, (Value))
+#define _PCD_SET_MODE_32_S_PcdSetupVideoHorizontalResolution(Value) LibPcdSet32S(_PCD_TOKEN_PcdSetupVideoHorizontalResolution, (Value))
+#define _PCD_TOKEN_PcdSetupVideoVerticalResolution 36U
+#define _PCD_GET_MODE_32_PcdSetupVideoVerticalResolution LibPcdGet32(_PCD_TOKEN_PcdSetupVideoVerticalResolution)
+#define _PCD_GET_MODE_SIZE_PcdSetupVideoVerticalResolution LibPcdGetSize(_PCD_TOKEN_PcdSetupVideoVerticalResolution)
+#define _PCD_SET_MODE_32_PcdSetupVideoVerticalResolution(Value) LibPcdSet32(_PCD_TOKEN_PcdSetupVideoVerticalResolution, (Value))
+#define _PCD_SET_MODE_32_S_PcdSetupVideoVerticalResolution(Value) LibPcdSet32S(_PCD_TOKEN_PcdSetupVideoVerticalResolution, (Value))
+
+EFI_STATUS
+EFIAPI
+BootManagerUiLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+BootManagerUiLibDestructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+#include "BootManagerUiLibStrDefs.h"
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerUiLibStrDefs.h b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerUiLibStrDefs.h
new file mode 100644
index 000000000000..9ed6cc3d58be
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerUiLibStrDefs.h
@@ -0,0 +1,45 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ BootManagerUiLibStrDefs.h
+ Abstract: Auto-generated BootManagerUiLibStrDefs.h for building module or library.
+**/
+
+#ifndef _STRDEFS_CCB2DCE1_4FC8_41CB_88C5_D349E134C9FC
+#define _STRDEFS_CCB2DCE1_4FC8_41CB_88C5_D349E134C9FC
+
+
+//
+//Unicode String ID
+//
+// #define $LANGUAGE_NAME 0x0000 // not referenced
+// #define $PRINTABLE_LANGUAGE_NAME 0x0001 // not referenced
+#define STR_BM_BANNER 0x0002
+#define STR_BOOT_MANAGER_HELP 0x0003
+#define STR_HELP_FOOTER 0x0004
+#define STR_BOOT_OPTION_BANNER 0x0005
+#define STR_ANY_KEY_CONTINUE 0x0006
+#define STR_LAST_STRING 0x0007
+// #define STR_AND 0x0008 // not referenced
+
+extern unsigned char BootManagerUiLibStrings[];
+
+
+#define STRING_ARRAY_NAME BootManagerUiLibStrings
+
+#ifdef VFRCOMPILE
+#define gEfiIfrTianoGuid { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce }}
+#define gEfiIfrFrontPageGuid { 0xe58809f8, 0xfbc1, 0x48e2, { 0x88, 0x3a, 0xa3, 0x0f, 0xdc, 0x4b, 0x44, 0x1e } }
+#define gEfiHiiConfigAccessProtocolGuid {0x330d4706, 0xf2a0, 0x4e4f, {0xa3, 0x69, 0xb6, 0x6f, 0xa8, 0xd5, 0x43, 0x85}}
+#define gEfiDevicePathToTextProtocolGuid { 0x8B843E20, 0x8132, 0x4852, { 0x90, 0xCC, 0x55, 0x1A, 0x4E, 0x4A, 0x7F, 0x1C }}
+#define gEdkiiFormBrowserEx2ProtocolGuid { 0xa770c357, 0xb693, 0x4e6d, { 0xa6, 0xcf, 0xd2, 0x1c, 0x72, 0x8e, 0x55, 0xb } }
+#define FixedPcdGetBool(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet8(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet16(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet32(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet64(TokenName) _PCD_VALUE_##TokenName
+#define FeaturePcdGet(TokenName) _PCD_VALUE_##TokenName
+#endif
+
+#endif
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/AutoGen.h b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/AutoGen.h
new file mode 100644
index 000000000000..b904cfa861cc
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/AutoGen.h
@@ -0,0 +1,54 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ AutoGen.h
+ Abstract: Auto-generated AutoGen.h for building module or library.
+**/
+
+#ifndef _AUTOGENH_75EBDC2E_5323_4F31_A41D_FD1A7A9FC65E
+#define _AUTOGENH_75EBDC2E_5323_4F31_A41D_FD1A7A9FC65E
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <PiDxe.h>
+
+extern GUID gEfiCallerIdGuid;
+extern GUID gEdkiiDscPlatformGuid;
+extern CHAR8 *gEfiCallerBaseName;
+
+
+// Guids
+extern EFI_GUID gEfiHiiPlatformSetupFormsetGuid;
+extern EFI_GUID gEfiIfrTianoGuid;
+extern EFI_GUID gEfiIfrFrontPageGuid;
+
+// Protocols
+extern EFI_GUID gEfiHiiConfigAccessProtocolGuid;
+
+// Definition of SkuId Array
+extern UINT64 _gPcd_SkuId_Array[];
+
+EFI_STATUS
+EFIAPI
+DeviceManagerUiLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+DeviceManagerUiLibDestructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+#include "DeviceManagerUiLibStrDefs.h"
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerUiLibStrDefs.h b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerUiLibStrDefs.h
new file mode 100644
index 000000000000..4796547664d0
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerUiLibStrDefs.h
@@ -0,0 +1,51 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ DeviceManagerUiLibStrDefs.h
+ Abstract: Auto-generated DeviceManagerUiLibStrDefs.h for building module or library.
+**/
+
+#ifndef _STRDEFS_75EBDC2E_5323_4F31_A41D_FD1A7A9FC65E
+#define _STRDEFS_75EBDC2E_5323_4F31_A41D_FD1A7A9FC65E
+
+
+//
+//Unicode String ID
+//
+// #define $LANGUAGE_NAME 0x0000 // not referenced
+// #define $PRINTABLE_LANGUAGE_NAME 0x0001 // not referenced
+#define STR_EDKII_MENU_TITLE 0x0002
+#define STR_EDKII_MENU_HELP 0x0003
+#define STR_DEVICES_LIST 0x0004
+#define STR_MISSING_STRING 0x0005
+#define STR_EMPTY_STRING 0x0006
+#define STR_EXIT_STRING 0x0007
+#define STR_FORM_NETWORK_DEVICE_TITLE_HEAD 0x0008
+#define STR_FORM_NETWORK_DEVICE_TITLE 0x0009
+#define STR_NETWORK_DEVICE_STRING 0x000A
+#define STR_FORM_NETWORK_DEVICE_LIST_HELP 0x000B
+#define STR_FORM_NETWORK_DEVICE_LIST_TITLE 0x000C
+#define STR_NETWORK_DEVICE_LIST_STRING 0x000D
+#define STR_NETWORK_DEVICE_HELP 0x000E
+// #define STR_DISK_DEVICE 0x000F // not referenced
+// #define STR_VIDEO_DEVICE 0x0010 // not referenced
+// #define STR_NETWORK_DEVICE 0x0011 // not referenced
+// #define STR_INPUT_DEVICE 0x0012 // not referenced
+// #define STR_ON_BOARD_DEVICE 0x0013 // not referenced
+// #define STR_OTHER_DEVICE 0x0014 // not referenced
+// #define STR_FORM_NETWORK_DEVICE_HELP 0x0015 // not referenced
+
+extern unsigned char DeviceManagerUiLibStrings[];
+
+
+#define STRING_ARRAY_NAME DeviceManagerUiLibStrings
+
+#ifdef VFRCOMPILE
+#define gEfiHiiPlatformSetupFormsetGuid { 0x93039971, 0x8545, 0x4b04, { 0xb4, 0x5e, 0x32, 0xeb, 0x83, 0x26, 0x04, 0x0e }}
+#define gEfiIfrTianoGuid { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce }}
+#define gEfiIfrFrontPageGuid { 0xe58809f8, 0xfbc1, 0x48e2, { 0x88, 0x3a, 0xa3, 0x0f, 0xdc, 0x4b, 0x44, 0x1e } }
+#define gEfiHiiConfigAccessProtocolGuid {0x330d4706, 0xf2a0, 0x4e4f, {0xa3, 0x69, 0xb6, 0x6f, 0xa8, 0xd5, 0x43, 0x85}}
+#endif
+
+#endif
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/AutoGen.h b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/AutoGen.h
new file mode 100644
index 000000000000..8aac72cdcede
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/AutoGen.h
@@ -0,0 +1,56 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ AutoGen.h
+ Abstract: Auto-generated AutoGen.h for building module or library.
+**/
+
+#ifndef _AUTOGENH_4FC9C630_0F90_4053_8F13_264CBD22FC58
+#define _AUTOGENH_4FC9C630_0F90_4053_8F13_264CBD22FC58
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <PiDxe.h>
+
+extern GUID gEfiCallerIdGuid;
+extern GUID gEdkiiDscPlatformGuid;
+extern CHAR8 *gEfiCallerBaseName;
+
+
+// Guids
+extern EFI_GUID gEfiFileSystemVolumeLabelInfoIdGuid;
+extern EFI_GUID gEfiIfrTianoGuid;
+
+// Protocols
+extern EFI_GUID gEfiSimpleFileSystemProtocolGuid;
+extern EFI_GUID gEfiHiiConfigAccessProtocolGuid;
+extern EFI_GUID gEfiFormBrowser2ProtocolGuid;
+extern EFI_GUID gEfiDevicePathToTextProtocolGuid;
+
+// Definition of SkuId Array
+extern UINT64 _gPcd_SkuId_Array[];
+
+EFI_STATUS
+EFIAPI
+FileExplorerLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+FileExplorerLibDestructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+#include "FileExplorerLibStrDefs.h"
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerLibStrDefs.h b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerLibStrDefs.h
new file mode 100644
index 000000000000..bd5825af05e1
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerLibStrDefs.h
@@ -0,0 +1,49 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ FileExplorerLibStrDefs.h
+ Abstract: Auto-generated FileExplorerLibStrDefs.h for building module or library.
+**/
+
+#ifndef _STRDEFS_4FC9C630_0F90_4053_8F13_264CBD22FC58
+#define _STRDEFS_4FC9C630_0F90_4053_8F13_264CBD22FC58
+
+
+//
+//Unicode String ID
+//
+// #define $LANGUAGE_NAME 0x0000 // not referenced
+// #define $PRINTABLE_LANGUAGE_NAME 0x0001 // not referenced
+#define STR_NULL_STRING 0x0002
+#define STR_FILE_EXPLORER_TITLE 0x0003
+#define STR_NEW_FILE 0x0004
+#define STR_NEW_FILE_HELP 0x0005
+#define STR_ADD_NEW_FILE_TITLE 0x0006
+#define STR_ADD_NEW_FOLDER_TITLE 0x0007
+#define STR_NEW_FILE_NAME_PROMPT 0x0008
+#define STR_NEW_FILE_NAME_HELP 0x0009
+#define STR_CREATE_FILE_AND_EXIT 0x000A
+#define STR_NO_CREATE_FILE_AND_EXIT 0x000B
+#define STR_NEW_FOLDER 0x000C
+#define STR_NEW_FOLDER_HELP 0x000D
+#define STR_NEW_FOLDER_NAME_PROMPT 0x000E
+#define STR_NEW_FOLDER_NAME_HELP 0x000F
+#define STR_CREATE_FOLDER_AND_EXIT 0x0010
+#define STR_NO_CREATE_FOLDER_AND_EXIT 0x0011
+
+extern unsigned char FileExplorerLibStrings[];
+
+
+#define STRING_ARRAY_NAME FileExplorerLibStrings
+
+#ifdef VFRCOMPILE
+#define gEfiFileSystemVolumeLabelInfoIdGuid { 0xDB47D7D3, 0xFE81, 0x11D3, { 0x9A, 0x35, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}
+#define gEfiIfrTianoGuid { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce }}
+#define gEfiSimpleFileSystemProtocolGuid { 0x964E5B22, 0x6459, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }}
+#define gEfiHiiConfigAccessProtocolGuid {0x330d4706, 0xf2a0, 0x4e4f, {0xa3, 0x69, 0xb6, 0x6f, 0xa8, 0xd5, 0x43, 0x85}}
+#define gEfiFormBrowser2ProtocolGuid {0xb9d4c360, 0xbcfb, 0x4f9b, {0x92, 0x98, 0x53, 0xc1, 0x36, 0x98, 0x22, 0x58}}
+#define gEfiDevicePathToTextProtocolGuid { 0x8B843E20, 0x8132, 0x4852, { 0x90, 0xCC, 0x55, 0x1A, 0x4E, 0x4A, 0x7F, 0x1C }}
+#endif
+
+#endif
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/AutoGen.h b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/AutoGen.h
new file mode 100644
index 000000000000..02776f1a618a
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/AutoGen.h
@@ -0,0 +1,150 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ AutoGen.h
+ Abstract: Auto-generated AutoGen.h for building module or library.
+**/
+
+#ifndef _AUTOGENH_86CDDF93_4872_4597_8AF9_A35AE4D3725F
+#define _AUTOGENH_86CDDF93_4872_4597_8AF9_A35AE4D3725F
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <Uefi.h>
+#include <Library/PcdLib.h>
+
+extern GUID gEfiCallerIdGuid;
+extern GUID gEdkiiDscPlatformGuid;
+extern CHAR8 *gEfiCallerBaseName;
+
+#define EFI_CALLER_ID_GUID \
+ {0x86CDDF93, 0x4872, 0x4597, {0x8A, 0xF9, 0xA3, 0x5A, 0xE4, 0xD3, 0x72, 0x5F}}
+#define EDKII_DSC_PLATFORM_GUID \
+ {0x5a9e7754, 0xd81b, 0x49ea, {0x85, 0xad, 0x69, 0xea, 0xa7, 0xb1, 0x53, 0x9b}}
+
+// Guids
+extern EFI_GUID gEfiEventExitBootServicesGuid;
+extern EFI_GUID gEfiIfrTianoGuid;
+extern EFI_GUID gEfiAcpiTableGuid;
+extern EFI_GUID gEfiAcpi10TableGuid;
+extern EFI_GUID gEfiAdapterInfoNetworkBootGuid;
+extern EFI_GUID gEfiAdapterInfoUndiIpv6SupportGuid;
+extern EFI_GUID gIScsiConfigGuid;
+extern EFI_GUID gEfiNetworkPkgTokenSpaceGuid;
+extern EFI_GUID gEfiMdePkgTokenSpaceGuid;
+extern EFI_GUID gUefiOvmfPkgTokenSpaceGuid;
+extern EFI_GUID gEfiEventReadyToBootGuid;
+extern EFI_GUID gEfiEventLegacyBootGuid;
+extern EFI_GUID gEfiGlobalVariableGuid;
+extern EFI_GUID gEfiAcpi20TableGuid;
+extern EFI_GUID gEfiHobListGuid;
+extern EFI_GUID gUefiOvmfPkgPlatformInfoGuid;
+extern EFI_GUID gEfiCryptoPkgTokenSpaceGuid;
+extern EFI_GUID gEdkiiIfrBitVarstoreGuid;
+extern EFI_GUID gEfiSmbiosTableGuid;
+extern EFI_GUID gEfiSmbios3TableGuid;
+extern EFI_GUID gEfiAdapterInfoMediaStateGuid;
+
+// Protocols
+extern EFI_GUID gEfiAcpiTableProtocolGuid;
+extern EFI_GUID gEfiDriverBindingProtocolGuid;
+extern EFI_GUID gEfiPciIoProtocolGuid;
+extern EFI_GUID gEfiDhcp4ProtocolGuid;
+extern EFI_GUID gEfiDhcp6ProtocolGuid;
+extern EFI_GUID gEfiDhcp4ServiceBindingProtocolGuid;
+extern EFI_GUID gEfiDhcp6ServiceBindingProtocolGuid;
+extern EFI_GUID gEfiDns4ServiceBindingProtocolGuid;
+extern EFI_GUID gEfiDns4ProtocolGuid;
+extern EFI_GUID gEfiDns6ServiceBindingProtocolGuid;
+extern EFI_GUID gEfiDns6ProtocolGuid;
+extern EFI_GUID gEfiIp4Config2ProtocolGuid;
+extern EFI_GUID gEfiIp6ConfigProtocolGuid;
+extern EFI_GUID gEfiTcp4ProtocolGuid;
+extern EFI_GUID gEfiTcp6ProtocolGuid;
+extern EFI_GUID gEfiTcp4ServiceBindingProtocolGuid;
+extern EFI_GUID gEfiTcp6ServiceBindingProtocolGuid;
+extern EFI_GUID gEfiExtScsiPassThruProtocolGuid;
+extern EFI_GUID gEfiHiiConfigAccessProtocolGuid;
+extern EFI_GUID gEfiDevicePathProtocolGuid;
+extern EFI_GUID gEfiIScsiInitiatorNameProtocolGuid;
+extern EFI_GUID gEfiAuthenticationInfoProtocolGuid;
+extern EFI_GUID gEfiAdapterInformationProtocolGuid;
+extern EFI_GUID gEfiNetworkInterfaceIdentifierProtocolGuid_31;
+extern EFI_GUID gPcdProtocolGuid;
+extern EFI_GUID gEfiPcdProtocolGuid;
+extern EFI_GUID gGetPcdInfoProtocolGuid;
+extern EFI_GUID gEfiGetPcdInfoProtocolGuid;
+extern EFI_GUID gEfiDevicePathUtilitiesProtocolGuid;
+extern EFI_GUID gEfiDevicePathToTextProtocolGuid;
+extern EFI_GUID gEfiDevicePathFromTextProtocolGuid;
+extern EFI_GUID gEfiSimpleTextOutProtocolGuid;
+extern EFI_GUID gEfiGraphicsOutputProtocolGuid;
+extern EFI_GUID gEfiHiiFontProtocolGuid;
+extern EFI_GUID gEfiSimpleFileSystemProtocolGuid;
+extern EFI_GUID gEfiUgaDrawProtocolGuid;
+extern EFI_GUID gEfiComponentNameProtocolGuid;
+extern EFI_GUID gEfiComponentName2ProtocolGuid;
+extern EFI_GUID gEfiDriverConfigurationProtocolGuid;
+extern EFI_GUID gEfiDriverConfiguration2ProtocolGuid;
+extern EFI_GUID gEfiDriverDiagnosticsProtocolGuid;
+extern EFI_GUID gEfiDriverDiagnostics2ProtocolGuid;
+extern EFI_GUID gEfiHiiStringProtocolGuid;
+extern EFI_GUID gEfiHiiImageProtocolGuid;
+extern EFI_GUID gEfiHiiDatabaseProtocolGuid;
+extern EFI_GUID gEfiHiiConfigRoutingProtocolGuid;
+extern EFI_GUID gEfiFormBrowser2ProtocolGuid;
+extern EFI_GUID gEfiSimpleNetworkProtocolGuid;
+extern EFI_GUID gEfiManagedNetworkProtocolGuid;
+extern EFI_GUID gEfiManagedNetworkServiceBindingProtocolGuid;
+extern EFI_GUID gEfiLoadedImageProtocolGuid;
+
+// Definition of SkuId Array
+extern UINT64 _gPcd_SkuId_Array[];
+
+// Definition of PCDs used in this module
+
+#define _PCD_TOKEN_PcdIScsiAIPNetworkBootPolicy 0U
+#define _PCD_SIZE_PcdIScsiAIPNetworkBootPolicy 1
+#define _PCD_GET_MODE_SIZE_PcdIScsiAIPNetworkBootPolicy _PCD_SIZE_PcdIScsiAIPNetworkBootPolicy
+#define _PCD_VALUE_PcdIScsiAIPNetworkBootPolicy 0x08U
+extern const UINT8 _gPcd_FixedAtBuild_PcdIScsiAIPNetworkBootPolicy;
+#define _PCD_GET_MODE_8_PcdIScsiAIPNetworkBootPolicy _gPcd_FixedAtBuild_PcdIScsiAIPNetworkBootPolicy
+//#define _PCD_SET_MODE_8_PcdIScsiAIPNetworkBootPolicy ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaxIScsiAttemptNumber 0U
+#define _PCD_SIZE_PcdMaxIScsiAttemptNumber 1
+#define _PCD_GET_MODE_SIZE_PcdMaxIScsiAttemptNumber _PCD_SIZE_PcdMaxIScsiAttemptNumber
+#define _PCD_VALUE_PcdMaxIScsiAttemptNumber 0x08U
+extern const UINT8 _gPcd_FixedAtBuild_PcdMaxIScsiAttemptNumber;
+#define _PCD_GET_MODE_8_PcdMaxIScsiAttemptNumber _gPcd_FixedAtBuild_PcdMaxIScsiAttemptNumber
+//#define _PCD_SET_MODE_8_PcdMaxIScsiAttemptNumber ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+// Definition of PCDs used in libraries is in AutoGen.c
+
+
+EFI_STATUS
+EFIAPI
+IScsiDriverEntryPoint (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+
+
+EFI_STATUS
+EFIAPI
+IScsiUnload (
+ IN EFI_HANDLE ImageHandle
+ );
+
+#include "IScsiDxeStrDefs.h"
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiDxeStrDefs.h b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiDxeStrDefs.h
new file mode 100644
index 000000000000..98428524ae78
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiDxeStrDefs.h
@@ -0,0 +1,147 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ IScsiDxeStrDefs.h
+ Abstract: Auto-generated IScsiDxeStrDefs.h for building module or library.
+**/
+
+#ifndef _STRDEFS_86CDDF93_4872_4597_8AF9_A35AE4D3725F
+#define _STRDEFS_86CDDF93_4872_4597_8AF9_A35AE4D3725F
+
+
+//
+//Unicode String ID
+//
+// #define $LANGUAGE_NAME 0x0000 // not referenced
+// #define $PRINTABLE_LANGUAGE_NAME 0x0001 // not referenced
+#define STR_ISCSI_CONFIG_FORM_TITLE 0x0002
+#define STR_ISCSI_CONFIG_FORM_HELP 0x0003
+#define STR_ISCSI_MAIN_FORM_TITLE 0x0004
+#define STR_ISCSI_MAC_FORM_TITLE 0x0005
+#define STR_ISCSI_CONFIG_INIT_NAME 0x0006
+#define STR_ISCSI_CONFIG_INIT_NAME_HELP 0x0007
+#define STR_ISCSI_ATTEMPT_NAME 0x0008
+#define STR_ISCSI_ATTEMPT_NAME_HELP 0x0009
+#define STR_ISCSI_CONFIG_RETRY 0x000A
+#define STR_ISCSI_CONFIG_RETRY_HELP 0x000B
+#define STR_ISCSI_CONFIG_TIMEOUT 0x000C
+#define STR_ISCSI_CONFIG_TIMEOUT_HELP 0x000D
+#define STR_ADD_ATTEMPT_ENTRY 0x000E
+#define STR_ISCSI_ATTEMPT_FORM_TITLE 0x000F
+#define STR_DEL_ATTEMPT_ENTRY 0x0010
+#define STR_DEL_ATTEMPT_ENTRY_HELP 0x0011
+#define STR_ORDER_ATTEMPT_ENTRY 0x0012
+#define STR_ISCSI_MODE_PROMPT 0x0013
+#define STR_ISCSI_MODE_HELP 0x0014
+#define STR_ISCSI_MODE_DISABLED 0x0015
+#define STR_ISCSI_MODE_ENABLED 0x0016
+#define STR_ISCSI_MODE_ENABLED_FOR_MPIO 0x0017
+#define STR_IP_MODE_PROMPT 0x0018
+#define STR_IP_MODE_HELP 0x0019
+#define STR_IP_MODE_IP4 0x001A
+#define STR_IP_MODE_IP6 0x001B
+#define STR_IP_MODE_AUTOCONFIG 0x001C
+#define STR_AUTHEN_TYPE_PROMPT 0x001D
+#define STR_AUTHEN_TYPE_HELP 0x001E
+#define STR_AUTHEN_TYPE_CHAP 0x001F
+#define STR_AUTHEN_TYPE_NONE 0x0020
+#define STR_ISCSI_LOCAL_IP_ADDRESS 0x0021
+#define STR_ISCSI_LOCAL_MASK 0x0022
+#define STR_ISCSI_LOCAL_GATEWAY 0x0023
+#define STR_ISCSI_IP_ADDRESS_HELP 0x0024
+#define STR_ISCSI_TARGET_NAME 0x0025
+#define STR_ISCSI_TARGET_NAME_HELP 0x0026
+#define STR_ISCSI_TARGET_ADDRESS 0x0027
+#define STR_ISCSI_TARGET_ADDRESS_HELP 0x0028
+#define STR_ISCSI_TARGET_PORT 0x0029
+#define STR_ISCSI_BOOT_LUN 0x002A
+#define STR_ISCSI_BOOT_LUN_HELP 0x002B
+#define STR_ISCSI_ENABLE_DHCP 0x002C
+#define STR_ISCSI_ENABLE_DHCP_ON_TARGET 0x002D
+#define STR_CHAP_TYPE_PROMPT 0x002E
+#define STR_CHAP_TYPE_HELP 0x002F
+#define STR_CHAP_TYPE_UNI 0x0030
+#define STR_CHAP_TYPE_MUTUAL 0x0031
+#define STR_ISCSI_CHAP_NAME 0x0032
+#define STR_ISCSI_CHAP_SECRET 0x0033
+#define STR_ISCSI_CHAP_SECRET_HELP 0x0034
+#define STR_ISCSI_REVERSE_CHAP_NAME 0x0035
+#define STR_ISCSI_REVERSE_CHAP_SECRET 0x0036
+#define STR_RETURN_MAIN_FORM 0x0037
+#define STR_SAVE_CHANGES 0x0038
+#define STR_SAVE_CHANGES_HELP 0x0039
+#define STR_NULL 0x003A
+#define STR_SAVE_AND_EXIT 0x003B
+#define STR_NO_SAVE_AND_EXIT 0x003C
+#define STR_ISCSI_CONFIG_ISID 0x003D
+#define STR_ISCSI_CONFIG_ISID_HELP 0x003E
+#define STR_ISCSI_MAC_PROMPT 0x003F
+#define STR_ISCSI_ADD_ATTEMPTS 0x0040
+#define STR_ISCSI_DELETE_ATTEMPTS 0x0041
+#define STR_ISCSI_DISPLAY_ATTEMPTS 0x0042
+#define STR_ISCSI_ATTEMPT_ORDER 0x0043
+#define STR_ISCSI_ISID_HELP 0x0044
+// #define STR_AUTHEN_TYPE_KERBEROS 0x0045 // not referenced
+
+extern unsigned char IScsiDxeStrings[];
+
+
+#define STRING_ARRAY_NAME IScsiDxeStrings
+
+#ifdef VFRCOMPILE
+#define gEfiEventExitBootServicesGuid { 0x27ABF055, 0xB1B8, 0x4C26, { 0x80, 0x48, 0x74, 0x8F, 0x37, 0xBA, 0xA2, 0xDF }}
+#define gEfiIfrTianoGuid { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce }}
+#define gEfiAcpiTableGuid { 0x8868E871, 0xE4F1, 0x11D3, { 0xBC, 0x22, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }}
+#define gEfiAcpi10TableGuid { 0xEB9D2D30, 0x2D88, 0x11D3, { 0x9A, 0x16, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}
+#define gEfiAdapterInfoNetworkBootGuid { 0x1FBD2960, 0x4130, 0x41E5, {0x94, 0xAC, 0xD2, 0xCF, 0x03, 0x7F, 0xB3, 0x7C }}
+#define gEfiAdapterInfoUndiIpv6SupportGuid { 0x4bd56be3, 0x4975, 0x4d8a, {0xa0, 0xad, 0xc4, 0x91, 0x20, 0x4b, 0x5d, 0x4d }}
+#define gIScsiConfigGuid { 0x4b47d616, 0xa8d6, 0x4552, { 0x9d, 0x44, 0xcc, 0xad, 0x2e, 0xf, 0x4c, 0xf9}}
+#define gEfiMdePkgTokenSpaceGuid { 0x914AEBE7, 0x4635, 0x459b, { 0xAA, 0x1C, 0x11, 0xE2, 0x19, 0xB0, 0x3A, 0x10 }}
+#define gUefiOvmfPkgTokenSpaceGuid {0x93bb96af, 0xb9f2, 0x4eb8, {0x94, 0x62, 0xe0, 0xba, 0x74, 0x56, 0x42, 0x36}}
+#define gEfiEventReadyToBootGuid { 0x7CE88FB3, 0x4BD7, 0x4679, { 0x87, 0xA8, 0xA8, 0xD8, 0xDE, 0xE5, 0x0D, 0x2B }}
+#define gEfiEventLegacyBootGuid { 0x2A571201, 0x4966, 0x47F6, { 0x8B, 0x86, 0xF3, 0x1E, 0x41, 0xF3, 0x2F, 0x10 }}
+#define gEfiGlobalVariableGuid { 0x8BE4DF61, 0x93CA, 0x11D2, { 0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C }}
+#define gEfiAcpi20TableGuid { 0x8868E871, 0xE4F1, 0x11D3, { 0xBC, 0x22, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }}
+#define gEfiHobListGuid { 0x7739F24C, 0x93D7, 0x11D4, { 0x9A, 0x3A, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}
+#define gUefiOvmfPkgPlatformInfoGuid {0xdec9b486, 0x1f16, 0x47c7, {0x8f, 0x68, 0xdf, 0x1a, 0x41, 0x88, 0x8b, 0xa5}}
+#define gEfiCryptoPkgTokenSpaceGuid { 0x6bd7de60, 0x9ef7, 0x4899, { 0x97, 0xd0, 0xab, 0xff, 0xfd, 0xe9, 0x70, 0xf2 } }
+#define gEdkiiIfrBitVarstoreGuid {0x82DDD68B, 0x9163, 0x4187, {0x9B, 0x27, 0x20, 0xA8, 0xFD, 0x60,0xA7, 0x1D}}
+#define gEfiSmbiosTableGuid { 0xEB9D2D31, 0x2D88, 0x11D3, { 0x9A, 0x16, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}
+#define gEfiSmbios3TableGuid { 0xF2FD1544, 0x9794, 0x4A2C, { 0x99, 0x2E, 0xE5, 0xBB, 0xCF, 0x20, 0xE3, 0x94 }}
+#define gEfiAdapterInfoMediaStateGuid { 0xD7C74207, 0xA831, 0x4A26, {0xB1, 0xF5, 0xD1, 0x93, 0x06, 0x5C, 0xE8, 0xB6 }}
+#define gEfiAcpiTableProtocolGuid { 0xFFE06BDD, 0x6107, 0x46A6, { 0x7B, 0xB2, 0x5A, 0x9C, 0x7E, 0xC5, 0x27, 0x5C }}
+#define gEfiDriverBindingProtocolGuid { 0x18A031AB, 0xB443, 0x4D1A, { 0xA5, 0xC0, 0x0C, 0x09, 0x26, 0x1E, 0x9F, 0x71 }}
+#define gEfiPciIoProtocolGuid { 0x4CF5B200, 0x68B8, 0x4CA5, { 0x9E, 0xEC, 0xB2, 0x3E, 0x3F, 0x50, 0x02, 0x9A }}
+#define gEfiDhcp4ProtocolGuid { 0x8A219718, 0x4EF5, 0x4761, { 0x91, 0xC8, 0xC0, 0xF0, 0x4B, 0xDA, 0x9E, 0x56 }}
+#define gEfiDhcp6ProtocolGuid { 0x87c8bad7, 0x595, 0x4053, {0x82, 0x97, 0xde, 0xde, 0x39, 0x5f, 0x5d, 0x5b }}
+#define gEfiDhcp4ServiceBindingProtocolGuid { 0x9D9A39D8, 0xBD42, 0x4A73, { 0xA4, 0xD5, 0x8E, 0xE9, 0x4B, 0xE1, 0x13, 0x80 }}
+#define gEfiDhcp6ServiceBindingProtocolGuid { 0x9fb9a8a1, 0x2f4a, 0x43a6, {0x88, 0x9c, 0xd0, 0xf7, 0xb6, 0xc4, 0x7a, 0xd5 }}
+#define gEfiDns4ServiceBindingProtocolGuid { 0xb625b186, 0xe063, 0x44f7, { 0x89, 0x5, 0x6a, 0x74, 0xdc, 0x6f, 0x52, 0xb4 }}
+#define gEfiDns4ProtocolGuid { 0xae3d28cc, 0xe05b, 0x4fa1, { 0xa0, 0x11, 0x7e, 0xb5, 0x5a, 0x3f, 0x14, 0x1 }}
+#define gEfiDns6ServiceBindingProtocolGuid { 0x7f1647c8, 0xb76e, 0x44b2, { 0xa5, 0x65, 0xf7, 0xf, 0xf1, 0x9c, 0xd1, 0x9e }}
+#define gEfiDns6ProtocolGuid { 0xca37bc1f, 0xa327, 0x4ae9, { 0x82, 0x8a, 0x8c, 0x40, 0xd8, 0x50, 0x6a, 0x17 }}
+#define gEfiIp4Config2ProtocolGuid { 0x5b446ed1, 0xe30b, 0x4faa, {0x87, 0x1a, 0x36, 0x54, 0xec, 0xa3, 0x60, 0x80 }}
+#define gEfiIp6ConfigProtocolGuid { 0x937fe521, 0x95ae, 0x4d1a, {0x89, 0x29, 0x48, 0xbc, 0xd9, 0x0a, 0xd3, 0x1a }}
+#define gEfiTcp4ProtocolGuid { 0x65530BC7, 0xA359, 0x410F, { 0xB0, 0x10, 0x5A, 0xAD, 0xC7, 0xEC, 0x2B, 0x62 }}
+#define gEfiTcp6ProtocolGuid { 0x46e44855, 0xbd60, 0x4ab7, {0xab, 0x0d, 0xa6, 0x79, 0xb9, 0x44, 0x7d, 0x77 }}
+#define gEfiTcp4ServiceBindingProtocolGuid { 0x00720665, 0x67EB, 0x4A99, { 0xBA, 0xF7, 0xD3, 0xC3, 0x3A, 0x1C, 0x7C, 0xC9 }}
+#define gEfiTcp6ServiceBindingProtocolGuid { 0xec20eb79, 0x6c1a, 0x4664, {0x9a, 0x0d, 0xd2, 0xe4, 0xcc, 0x16, 0xd6, 0x64 }}
+#define gEfiExtScsiPassThruProtocolGuid { 0x143b7632, 0xb81b, 0x4cb7, {0xab, 0xd3, 0xb6, 0x25, 0xa5, 0xb9, 0xbf, 0xfe }}
+#define gEfiHiiConfigAccessProtocolGuid {0x330d4706, 0xf2a0, 0x4e4f, {0xa3, 0x69, 0xb6, 0x6f, 0xa8, 0xd5, 0x43, 0x85}}
+#define gEfiDevicePathProtocolGuid { 0x09576E91, 0x6D3F, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }}
+#define gEfiIScsiInitiatorNameProtocolGuid { 0x59324945, 0xEC44, 0x4C0D, { 0xB1, 0xCD, 0x9D, 0xB1, 0x39, 0xDF, 0x07, 0x0C }}
+#define gEfiAuthenticationInfoProtocolGuid { 0x7671D9D0, 0x53DB, 0x4173, { 0xAA, 0x69, 0x23, 0x27, 0xF2, 0x1F, 0x0B, 0xC7 }}
+#define gEfiAdapterInformationProtocolGuid { 0xE5DD1403, 0xD622, 0xC24E, {0x84, 0x88, 0xC7, 0x1B, 0x17, 0xF5, 0xE8, 0x02 }}
+#define gEfiNetworkInterfaceIdentifierProtocolGuid_31 { 0x1ACED566, 0x76ED, 0x4218, { 0xBC, 0x81, 0x76, 0x7F, 0x1F, 0x97, 0x7A, 0x89 }}
+#define FixedPcdGetBool(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet8(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet16(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet32(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet64(TokenName) _PCD_VALUE_##TokenName
+#define FeaturePcdGet(TokenName) _PCD_VALUE_##TokenName
+#define _PCD_VALUE_PcdIScsiAIPNetworkBootPolicy 0x08
+#define _PCD_VALUE_PcdMaxIScsiAttemptNumber 0x08
+#endif
+
+#endif
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/AutoGen.h b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/AutoGen.h
new file mode 100644
index 000000000000..407bb169f082
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/AutoGen.h
@@ -0,0 +1,111 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ AutoGen.h
+ Abstract: Auto-generated AutoGen.h for building module or library.
+**/
+
+#ifndef _AUTOGENH_9FB1A1F3_3B71_4324_B39A_745CBB015FFF
+#define _AUTOGENH_9FB1A1F3_3B71_4324_B39A_745CBB015FFF
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <Uefi.h>
+
+extern GUID gEfiCallerIdGuid;
+extern GUID gEdkiiDscPlatformGuid;
+extern CHAR8 *gEfiCallerBaseName;
+
+#define EFI_CALLER_ID_GUID \
+ {0x9FB1A1F3, 0x3B71, 0x4324, {0xB3, 0x9A, 0x74, 0x5C, 0xBB, 0x01, 0x5F, 0xFF}}
+#define EDKII_DSC_PLATFORM_GUID \
+ {0x5a9e7754, 0xd81b, 0x49ea, {0x85, 0xad, 0x69, 0xea, 0xa7, 0xb1, 0x53, 0x9b}}
+
+// Guids
+extern EFI_GUID gIp4Config2NvDataGuid;
+extern EFI_GUID gEfiMdePkgTokenSpaceGuid;
+extern EFI_GUID gUefiOvmfPkgTokenSpaceGuid;
+extern EFI_GUID gEfiEventReadyToBootGuid;
+extern EFI_GUID gEfiEventLegacyBootGuid;
+extern EFI_GUID gEfiGlobalVariableGuid;
+extern EFI_GUID gEfiAcpi20TableGuid;
+extern EFI_GUID gEfiAcpi10TableGuid;
+extern EFI_GUID gEfiSmbiosTableGuid;
+extern EFI_GUID gEfiSmbios3TableGuid;
+extern EFI_GUID gEfiAdapterInfoMediaStateGuid;
+extern EFI_GUID gEdkiiIfrBitVarstoreGuid;
+
+// Protocols
+extern EFI_GUID gEfiIp4ServiceBindingProtocolGuid;
+extern EFI_GUID gEfiIp4ProtocolGuid;
+extern EFI_GUID gEfiManagedNetworkServiceBindingProtocolGuid;
+extern EFI_GUID gEfiManagedNetworkProtocolGuid;
+extern EFI_GUID gEfiArpServiceBindingProtocolGuid;
+extern EFI_GUID gEfiIp4Config2ProtocolGuid;
+extern EFI_GUID gEfiArpProtocolGuid;
+extern EFI_GUID gEfiDhcp4ServiceBindingProtocolGuid;
+extern EFI_GUID gEfiDhcp4ProtocolGuid;
+extern EFI_GUID gEfiIpSec2ProtocolGuid;
+extern EFI_GUID gEfiHiiConfigAccessProtocolGuid;
+extern EFI_GUID gEfiDevicePathProtocolGuid;
+extern EFI_GUID gPcdProtocolGuid;
+extern EFI_GUID gEfiPcdProtocolGuid;
+extern EFI_GUID gGetPcdInfoProtocolGuid;
+extern EFI_GUID gEfiGetPcdInfoProtocolGuid;
+extern EFI_GUID gEfiDevicePathUtilitiesProtocolGuid;
+extern EFI_GUID gEfiDevicePathToTextProtocolGuid;
+extern EFI_GUID gEfiDevicePathFromTextProtocolGuid;
+extern EFI_GUID gEfiDriverBindingProtocolGuid;
+extern EFI_GUID gEfiSimpleTextOutProtocolGuid;
+extern EFI_GUID gEfiGraphicsOutputProtocolGuid;
+extern EFI_GUID gEfiHiiFontProtocolGuid;
+extern EFI_GUID gEfiSimpleFileSystemProtocolGuid;
+extern EFI_GUID gEfiUgaDrawProtocolGuid;
+extern EFI_GUID gEfiComponentNameProtocolGuid;
+extern EFI_GUID gEfiComponentName2ProtocolGuid;
+extern EFI_GUID gEfiDriverConfigurationProtocolGuid;
+extern EFI_GUID gEfiDriverConfiguration2ProtocolGuid;
+extern EFI_GUID gEfiDriverDiagnosticsProtocolGuid;
+extern EFI_GUID gEfiDriverDiagnostics2ProtocolGuid;
+extern EFI_GUID gEfiHiiStringProtocolGuid;
+extern EFI_GUID gEfiHiiImageProtocolGuid;
+extern EFI_GUID gEfiHiiDatabaseProtocolGuid;
+extern EFI_GUID gEfiHiiConfigRoutingProtocolGuid;
+extern EFI_GUID gEfiLoadedImageProtocolGuid;
+extern EFI_GUID gEfiSimpleNetworkProtocolGuid;
+extern EFI_GUID gEfiAdapterInformationProtocolGuid;
+extern EFI_GUID gEfiDpcProtocolGuid;
+extern EFI_GUID gEfiFormBrowser2ProtocolGuid;
+
+// Definition of SkuId Array
+extern UINT64 _gPcd_SkuId_Array[];
+
+// Definition of PCDs used in libraries is in AutoGen.c
+
+
+EFI_STATUS
+EFIAPI
+Ip4DriverEntryPoint (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+
+
+EFI_STATUS
+EFIAPI
+NetLibDefaultUnload (
+ IN EFI_HANDLE ImageHandle
+ );
+
+#include "Ip4DxeStrDefs.h"
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4DxeStrDefs.h b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4DxeStrDefs.h
new file mode 100644
index 000000000000..6ca34aa85fd3
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4DxeStrDefs.h
@@ -0,0 +1,68 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ Ip4DxeStrDefs.h
+ Abstract: Auto-generated Ip4DxeStrDefs.h for building module or library.
+**/
+
+#ifndef _STRDEFS_9FB1A1F3_3B71_4324_B39A_745CBB015FFF
+#define _STRDEFS_9FB1A1F3_3B71_4324_B39A_745CBB015FFF
+
+
+//
+//Unicode String ID
+//
+// #define $LANGUAGE_NAME 0x0000 // not referenced
+// #define $PRINTABLE_LANGUAGE_NAME 0x0001 // not referenced
+#define STR_IP4_CONFIG2_FORM_TITLE 0x0002
+#define STR_IP4_CONFIG2_FORM_HELP 0x0003
+#define STR_IP4_DEVICE_FORM_TITLE 0x0004
+#define STR_IP4_DEVICE_FORM_HELP 0x0005
+#define STR_IP4_CONFIGURE 0x0006
+#define STR_IP4_CONFIGURE_HELP 0x0007
+#define STR_IP4_ENABLE_DHCP 0x0008
+#define STR_IP4_LOCAL_IP_ADDRESS 0x0009
+#define STR_IP4_IP_ADDRESS_HELP 0x000A
+#define STR_IP4_LOCAL_MASK 0x000B
+#define STR_IP4_MASK_HELP 0x000C
+#define STR_IP4_LOCAL_GATEWAY 0x000D
+#define STR_IP4_GATEWAY_HELP 0x000E
+#define STR_IP4_LOCAL_DNS 0x000F
+#define STR_IP4_DNS_HELP 0x0010
+#define STR_SAVE_CHANGES 0x0011
+#define STR_NULL 0x0012
+
+extern unsigned char Ip4DxeStrings[];
+
+
+#define STRING_ARRAY_NAME Ip4DxeStrings
+
+#ifdef VFRCOMPILE
+#define gIp4Config2NvDataGuid { 0x9b942747, 0x154e, 0x4d29, { 0xa4, 0x36, 0xbf, 0x71, 0x0, 0xc8, 0xb5, 0x3b }}
+#define gEfiMdePkgTokenSpaceGuid { 0x914AEBE7, 0x4635, 0x459b, { 0xAA, 0x1C, 0x11, 0xE2, 0x19, 0xB0, 0x3A, 0x10 }}
+#define gUefiOvmfPkgTokenSpaceGuid {0x93bb96af, 0xb9f2, 0x4eb8, {0x94, 0x62, 0xe0, 0xba, 0x74, 0x56, 0x42, 0x36}}
+#define gEfiEventReadyToBootGuid { 0x7CE88FB3, 0x4BD7, 0x4679, { 0x87, 0xA8, 0xA8, 0xD8, 0xDE, 0xE5, 0x0D, 0x2B }}
+#define gEfiEventLegacyBootGuid { 0x2A571201, 0x4966, 0x47F6, { 0x8B, 0x86, 0xF3, 0x1E, 0x41, 0xF3, 0x2F, 0x10 }}
+#define gEfiGlobalVariableGuid { 0x8BE4DF61, 0x93CA, 0x11D2, { 0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C }}
+#define gEfiAcpi20TableGuid { 0x8868E871, 0xE4F1, 0x11D3, { 0xBC, 0x22, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }}
+#define gEfiAcpi10TableGuid { 0xEB9D2D30, 0x2D88, 0x11D3, { 0x9A, 0x16, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}
+#define gEfiSmbiosTableGuid { 0xEB9D2D31, 0x2D88, 0x11D3, { 0x9A, 0x16, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}
+#define gEfiSmbios3TableGuid { 0xF2FD1544, 0x9794, 0x4A2C, { 0x99, 0x2E, 0xE5, 0xBB, 0xCF, 0x20, 0xE3, 0x94 }}
+#define gEfiAdapterInfoMediaStateGuid { 0xD7C74207, 0xA831, 0x4A26, {0xB1, 0xF5, 0xD1, 0x93, 0x06, 0x5C, 0xE8, 0xB6 }}
+#define gEdkiiIfrBitVarstoreGuid {0x82DDD68B, 0x9163, 0x4187, {0x9B, 0x27, 0x20, 0xA8, 0xFD, 0x60,0xA7, 0x1D}}
+#define gEfiIp4ServiceBindingProtocolGuid { 0xC51711E7, 0xB4BF, 0x404A, { 0xBF, 0xB8, 0x0A, 0x04, 0x8E, 0xF1, 0xFF, 0xE4 }}
+#define gEfiIp4ProtocolGuid { 0x41D94CD2, 0x35B6, 0x455A, { 0x82, 0x58, 0xD4, 0xE5, 0x13, 0x34, 0xAA, 0xDD }}
+#define gEfiManagedNetworkServiceBindingProtocolGuid { 0xF36FF770, 0xA7E1, 0x42CF, { 0x9E, 0xD2, 0x56, 0xF0, 0xF2, 0x71, 0xF4, 0x4C }}
+#define gEfiManagedNetworkProtocolGuid { 0x7ab33a91, 0xace5, 0x4326, { 0xb5, 0x72, 0xe7, 0xee, 0x33, 0xd3, 0x9f, 0x16 }}
+#define gEfiArpServiceBindingProtocolGuid { 0xF44C00EE, 0x1F2C, 0x4A00, { 0xAA, 0x09, 0x1C, 0x9F, 0x3E, 0x08, 0x00, 0xA3 }}
+#define gEfiIp4Config2ProtocolGuid { 0x5b446ed1, 0xe30b, 0x4faa, {0x87, 0x1a, 0x36, 0x54, 0xec, 0xa3, 0x60, 0x80 }}
+#define gEfiArpProtocolGuid { 0xF4B427BB, 0xBA21, 0x4F16, { 0xBC, 0x4E, 0x43, 0xE4, 0x16, 0xAB, 0x61, 0x9C }}
+#define gEfiDhcp4ServiceBindingProtocolGuid { 0x9D9A39D8, 0xBD42, 0x4A73, { 0xA4, 0xD5, 0x8E, 0xE9, 0x4B, 0xE1, 0x13, 0x80 }}
+#define gEfiDhcp4ProtocolGuid { 0x8A219718, 0x4EF5, 0x4761, { 0x91, 0xC8, 0xC0, 0xF0, 0x4B, 0xDA, 0x9E, 0x56 }}
+#define gEfiIpSec2ProtocolGuid { 0xa3979e64, 0xace8, 0x4ddc, {0xbc, 0x7, 0x4d, 0x66, 0xb8, 0xfd, 0x9, 0x77 }}
+#define gEfiHiiConfigAccessProtocolGuid {0x330d4706, 0xf2a0, 0x4e4f, {0xa3, 0x69, 0xb6, 0x6f, 0xa8, 0xd5, 0x43, 0x85}}
+#define gEfiDevicePathProtocolGuid { 0x09576E91, 0x6D3F, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }}
+#endif
+
+#endif
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/AutoGen.h b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/AutoGen.h
new file mode 100644
index 000000000000..695e1e1cd999
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/AutoGen.h
@@ -0,0 +1,118 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ AutoGen.h
+ Abstract: Auto-generated AutoGen.h for building module or library.
+**/
+
+#ifndef _AUTOGENH_D9DCC5DF_4007_435E_9098_8970935504B2
+#define _AUTOGENH_D9DCC5DF_4007_435E_9098_8970935504B2
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <PiDxe.h>
+#include <Library/PcdLib.h>
+
+extern GUID gEfiCallerIdGuid;
+extern GUID gEdkiiDscPlatformGuid;
+extern CHAR8 *gEfiCallerBaseName;
+
+#define EFI_CALLER_ID_GUID \
+ {0xD9DCC5DF, 0x4007, 0x435E, {0x90, 0x98, 0x89, 0x70, 0x93, 0x55, 0x04, 0xB2}}
+#define EDKII_DSC_PLATFORM_GUID \
+ {0x5a9e7754, 0xd81b, 0x49ea, {0x85, 0xad, 0x69, 0xea, 0xa7, 0xb1, 0x53, 0x9b}}
+
+// Guids
+extern EFI_GUID gEfiIfrTianoGuid;
+extern EFI_GUID gOvmfPlatformConfigGuid;
+extern EFI_GUID gEfiMdeModulePkgTokenSpaceGuid;
+extern EFI_GUID gUefiOvmfPkgTokenSpaceGuid;
+extern EFI_GUID gEfiMdePkgTokenSpaceGuid;
+extern EFI_GUID gEfiEventReadyToBootGuid;
+extern EFI_GUID gEfiEventLegacyBootGuid;
+extern EFI_GUID gEfiGlobalVariableGuid;
+extern EFI_GUID gEfiAcpi20TableGuid;
+extern EFI_GUID gEfiAcpi10TableGuid;
+extern EFI_GUID gEdkiiIfrBitVarstoreGuid;
+
+// Protocols
+extern EFI_GUID gEfiDevicePathProtocolGuid;
+extern EFI_GUID gEfiGraphicsOutputProtocolGuid;
+extern EFI_GUID gEfiHiiConfigAccessProtocolGuid;
+extern EFI_GUID gPcdProtocolGuid;
+extern EFI_GUID gEfiPcdProtocolGuid;
+extern EFI_GUID gGetPcdInfoProtocolGuid;
+extern EFI_GUID gEfiGetPcdInfoProtocolGuid;
+extern EFI_GUID gEfiDevicePathUtilitiesProtocolGuid;
+extern EFI_GUID gEfiDevicePathToTextProtocolGuid;
+extern EFI_GUID gEfiDevicePathFromTextProtocolGuid;
+extern EFI_GUID gEfiDriverBindingProtocolGuid;
+extern EFI_GUID gEfiSimpleTextOutProtocolGuid;
+extern EFI_GUID gEfiHiiFontProtocolGuid;
+extern EFI_GUID gEfiSimpleFileSystemProtocolGuid;
+extern EFI_GUID gEfiUgaDrawProtocolGuid;
+extern EFI_GUID gEfiComponentNameProtocolGuid;
+extern EFI_GUID gEfiComponentName2ProtocolGuid;
+extern EFI_GUID gEfiDriverConfigurationProtocolGuid;
+extern EFI_GUID gEfiDriverConfiguration2ProtocolGuid;
+extern EFI_GUID gEfiDriverDiagnosticsProtocolGuid;
+extern EFI_GUID gEfiDriverDiagnostics2ProtocolGuid;
+extern EFI_GUID gEfiHiiStringProtocolGuid;
+extern EFI_GUID gEfiHiiImageProtocolGuid;
+extern EFI_GUID gEfiHiiDatabaseProtocolGuid;
+extern EFI_GUID gEfiHiiConfigRoutingProtocolGuid;
+extern EFI_GUID gEfiFormBrowser2ProtocolGuid;
+extern EFI_GUID gEfiLoadedImageProtocolGuid;
+
+// Definition of SkuId Array
+extern UINT64 _gPcd_SkuId_Array[];
+
+// Definition of PCDs used in this module
+
+#define _PCD_TOKEN_PcdVideoHorizontalResolution 40U
+#define _PCD_GET_MODE_32_PcdVideoHorizontalResolution LibPcdGet32(_PCD_TOKEN_PcdVideoHorizontalResolution)
+#define _PCD_GET_MODE_SIZE_PcdVideoHorizontalResolution LibPcdGetSize(_PCD_TOKEN_PcdVideoHorizontalResolution)
+#define _PCD_SET_MODE_32_PcdVideoHorizontalResolution(Value) LibPcdSet32(_PCD_TOKEN_PcdVideoHorizontalResolution, (Value))
+#define _PCD_SET_MODE_32_S_PcdVideoHorizontalResolution(Value) LibPcdSet32S(_PCD_TOKEN_PcdVideoHorizontalResolution, (Value))
+
+#define _PCD_TOKEN_PcdVideoVerticalResolution 41U
+#define _PCD_GET_MODE_32_PcdVideoVerticalResolution LibPcdGet32(_PCD_TOKEN_PcdVideoVerticalResolution)
+#define _PCD_GET_MODE_SIZE_PcdVideoVerticalResolution LibPcdGetSize(_PCD_TOKEN_PcdVideoVerticalResolution)
+#define _PCD_SET_MODE_32_PcdVideoVerticalResolution(Value) LibPcdSet32(_PCD_TOKEN_PcdVideoVerticalResolution, (Value))
+#define _PCD_SET_MODE_32_S_PcdVideoVerticalResolution(Value) LibPcdSet32S(_PCD_TOKEN_PcdVideoVerticalResolution, (Value))
+
+#define _PCD_TOKEN_PcdVideoResolutionSource 49U
+#define _PCD_GET_MODE_8_PcdVideoResolutionSource LibPcdGet8(_PCD_TOKEN_PcdVideoResolutionSource)
+#define _PCD_GET_MODE_SIZE_PcdVideoResolutionSource LibPcdGetSize(_PCD_TOKEN_PcdVideoResolutionSource)
+#define _PCD_SET_MODE_8_PcdVideoResolutionSource(Value) LibPcdSet8(_PCD_TOKEN_PcdVideoResolutionSource, (Value))
+#define _PCD_SET_MODE_8_S_PcdVideoResolutionSource(Value) LibPcdSet8S(_PCD_TOKEN_PcdVideoResolutionSource, (Value))
+
+// Definition of PCDs used in libraries is in AutoGen.c
+
+
+EFI_STATUS
+EFIAPI
+PlatformInit (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+
+
+EFI_STATUS
+EFIAPI
+PlatformUnload (
+ IN EFI_HANDLE ImageHandle
+ );
+
+#include "PlatformDxeStrDefs.h"
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformDxeStrDefs.h b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformDxeStrDefs.h
new file mode 100644
index 000000000000..8ab2c1e9cd0e
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformDxeStrDefs.h
@@ -0,0 +1,54 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ PlatformDxeStrDefs.h
+ Abstract: Auto-generated PlatformDxeStrDefs.h for building module or library.
+**/
+
+#ifndef _STRDEFS_D9DCC5DF_4007_435E_9098_8970935504B2
+#define _STRDEFS_D9DCC5DF_4007_435E_9098_8970935504B2
+
+
+//
+//Unicode String ID
+//
+// #define $LANGUAGE_NAME 0x0000 // not referenced
+// #define $PRINTABLE_LANGUAGE_NAME 0x0001 // not referenced
+#define STR_FORMSET_TITLE 0x0002
+#define STR_FORMSET_HELP 0x0003
+#define STR_MAIN_FORM_TITLE 0x0004
+#define STR_RES_CUR 0x0005
+#define STR_RES_CUR_HELP 0x0006
+#define STR_RES_NEXT 0x0007
+#define STR_RES_NEXT_HELP 0x0008
+#define STR_SAVE_EXIT 0x0009
+#define STR_DISCARD_EXIT 0x000A
+
+extern unsigned char PlatformDxeStrings[];
+
+
+#define STRING_ARRAY_NAME PlatformDxeStrings
+
+#ifdef VFRCOMPILE
+#define gEfiIfrTianoGuid { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce }}
+#define gOvmfPlatformConfigGuid {0x7235c51c, 0x0c80, 0x4cab, {0x87, 0xac, 0x3b, 0x08, 0x4a, 0x63, 0x04, 0xb1}}
+#define gEfiMdePkgTokenSpaceGuid { 0x914AEBE7, 0x4635, 0x459b, { 0xAA, 0x1C, 0x11, 0xE2, 0x19, 0xB0, 0x3A, 0x10 }}
+#define gEfiEventReadyToBootGuid { 0x7CE88FB3, 0x4BD7, 0x4679, { 0x87, 0xA8, 0xA8, 0xD8, 0xDE, 0xE5, 0x0D, 0x2B }}
+#define gEfiEventLegacyBootGuid { 0x2A571201, 0x4966, 0x47F6, { 0x8B, 0x86, 0xF3, 0x1E, 0x41, 0xF3, 0x2F, 0x10 }}
+#define gEfiGlobalVariableGuid { 0x8BE4DF61, 0x93CA, 0x11D2, { 0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C }}
+#define gEfiAcpi20TableGuid { 0x8868E871, 0xE4F1, 0x11D3, { 0xBC, 0x22, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }}
+#define gEfiAcpi10TableGuid { 0xEB9D2D30, 0x2D88, 0x11D3, { 0x9A, 0x16, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}
+#define gEdkiiIfrBitVarstoreGuid {0x82DDD68B, 0x9163, 0x4187, {0x9B, 0x27, 0x20, 0xA8, 0xFD, 0x60,0xA7, 0x1D}}
+#define gEfiDevicePathProtocolGuid { 0x09576E91, 0x6D3F, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }}
+#define gEfiGraphicsOutputProtocolGuid { 0x9042A9DE, 0x23DC, 0x4A38, { 0x96, 0xFB, 0x7A, 0xDE, 0xD0, 0x80, 0x51, 0x6A }}
+#define gEfiHiiConfigAccessProtocolGuid {0x330d4706, 0xf2a0, 0x4e4f, {0xa3, 0x69, 0xb6, 0x6f, 0xa8, 0xd5, 0x43, 0x85}}
+#define FixedPcdGetBool(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet8(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet16(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet32(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet64(TokenName) _PCD_VALUE_##TokenName
+#define FeaturePcdGet(TokenName) _PCD_VALUE_##TokenName
+#endif
+
+#endif
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/AutoGen.h b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/AutoGen.h
new file mode 100644
index 000000000000..169c7259f2ef
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/AutoGen.h
@@ -0,0 +1,152 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ AutoGen.h
+ Abstract: Auto-generated AutoGen.h for building module or library.
+**/
+
+#ifndef _AUTOGENH_28A03FF4_12B3_4305_A417_BB1A4F94081E
+#define _AUTOGENH_28A03FF4_12B3_4305_A417_BB1A4F94081E
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <PiDxe.h>
+#include <Library/PcdLib.h>
+
+extern GUID gEfiCallerIdGuid;
+extern GUID gEdkiiDscPlatformGuid;
+extern CHAR8 *gEfiCallerBaseName;
+
+#define EFI_CALLER_ID_GUID \
+ {0x28A03FF4, 0x12B3, 0x4305, {0xA4, 0x17, 0xBB, 0x1A, 0x4F, 0x94, 0x08, 0x1E}}
+#define EDKII_DSC_PLATFORM_GUID \
+ {0x5a9e7754, 0xd81b, 0x49ea, {0x85, 0xad, 0x69, 0xea, 0xa7, 0xb1, 0x53, 0x9b}}
+
+// Guids
+extern EFI_GUID gEfiIfrTianoGuid;
+extern EFI_GUID gRamDiskFormSetGuid;
+extern EFI_GUID gEfiVirtualDiskGuid;
+extern EFI_GUID gEfiFileInfoGuid;
+extern EFI_GUID gEfiMdeModulePkgTokenSpaceGuid;
+extern EFI_GUID gEfiMdePkgTokenSpaceGuid;
+extern EFI_GUID gUefiOvmfPkgTokenSpaceGuid;
+extern EFI_GUID gEfiEventReadyToBootGuid;
+extern EFI_GUID gEfiEventLegacyBootGuid;
+extern EFI_GUID gEfiGlobalVariableGuid;
+extern EFI_GUID gEfiAcpi20TableGuid;
+extern EFI_GUID gEfiAcpi10TableGuid;
+extern EFI_GUID gEdkiiIfrBitVarstoreGuid;
+extern EFI_GUID gEfiHobListGuid;
+extern EFI_GUID gEfiFileSystemVolumeLabelInfoIdGuid;
+
+// Protocols
+extern EFI_GUID gEfiRamDiskProtocolGuid;
+extern EFI_GUID gEfiHiiConfigAccessProtocolGuid;
+extern EFI_GUID gEfiDevicePathProtocolGuid;
+extern EFI_GUID gEfiBlockIoProtocolGuid;
+extern EFI_GUID gEfiBlockIo2ProtocolGuid;
+extern EFI_GUID gEfiAcpiTableProtocolGuid;
+extern EFI_GUID gEfiAcpiSdtProtocolGuid;
+extern EFI_GUID gPcdProtocolGuid;
+extern EFI_GUID gEfiPcdProtocolGuid;
+extern EFI_GUID gGetPcdInfoProtocolGuid;
+extern EFI_GUID gEfiGetPcdInfoProtocolGuid;
+extern EFI_GUID gEfiDevicePathUtilitiesProtocolGuid;
+extern EFI_GUID gEfiDevicePathToTextProtocolGuid;
+extern EFI_GUID gEfiDevicePathFromTextProtocolGuid;
+extern EFI_GUID gEfiHiiFontProtocolGuid;
+extern EFI_GUID gEfiHiiStringProtocolGuid;
+extern EFI_GUID gEfiHiiImageProtocolGuid;
+extern EFI_GUID gEfiHiiDatabaseProtocolGuid;
+extern EFI_GUID gEfiHiiConfigRoutingProtocolGuid;
+extern EFI_GUID gEfiDriverBindingProtocolGuid;
+extern EFI_GUID gEfiSimpleTextOutProtocolGuid;
+extern EFI_GUID gEfiGraphicsOutputProtocolGuid;
+extern EFI_GUID gEfiSimpleFileSystemProtocolGuid;
+extern EFI_GUID gEfiUgaDrawProtocolGuid;
+extern EFI_GUID gEfiComponentNameProtocolGuid;
+extern EFI_GUID gEfiComponentName2ProtocolGuid;
+extern EFI_GUID gEfiDriverConfigurationProtocolGuid;
+extern EFI_GUID gEfiDriverConfiguration2ProtocolGuid;
+extern EFI_GUID gEfiDriverDiagnosticsProtocolGuid;
+extern EFI_GUID gEfiDriverDiagnostics2ProtocolGuid;
+extern EFI_GUID gEfiFormBrowser2ProtocolGuid;
+extern EFI_GUID gEfiLoadedImageProtocolGuid;
+extern EFI_GUID gEfiFirmwareVolume2ProtocolGuid;
+extern EFI_GUID gEfiLoadFileProtocolGuid;
+extern EFI_GUID gEfiLoadFile2ProtocolGuid;
+
+// Definition of SkuId Array
+extern UINT64 _gPcd_SkuId_Array[];
+
+// Definition of PCDs used in this module
+
+#define _PCD_TOKEN_PcdAcpiDefaultOemId 0U
+#define _PCD_VALUE_PcdAcpiDefaultOemId _gPcd_FixedAtBuild_PcdAcpiDefaultOemId
+extern const UINT8 _gPcd_FixedAtBuild_PcdAcpiDefaultOemId[7];
+#define _PCD_GET_MODE_PTR_PcdAcpiDefaultOemId _gPcd_FixedAtBuild_PcdAcpiDefaultOemId
+#define _PCD_SIZE_PcdAcpiDefaultOemId 7
+#define _PCD_GET_MODE_SIZE_PcdAcpiDefaultOemId _PCD_SIZE_PcdAcpiDefaultOemId
+//#define _PCD_SET_MODE_PTR_PcdAcpiDefaultOemId ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdAcpiDefaultOemTableId 0U
+#define _PCD_SIZE_PcdAcpiDefaultOemTableId 8
+#define _PCD_GET_MODE_SIZE_PcdAcpiDefaultOemTableId _PCD_SIZE_PcdAcpiDefaultOemTableId
+#define _PCD_VALUE_PcdAcpiDefaultOemTableId 0x20202020324B4445ULL
+extern const UINT64 _gPcd_FixedAtBuild_PcdAcpiDefaultOemTableId;
+#define _PCD_GET_MODE_64_PcdAcpiDefaultOemTableId _gPcd_FixedAtBuild_PcdAcpiDefaultOemTableId
+//#define _PCD_SET_MODE_64_PcdAcpiDefaultOemTableId ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdAcpiDefaultOemRevision 0U
+#define _PCD_SIZE_PcdAcpiDefaultOemRevision 4
+#define _PCD_GET_MODE_SIZE_PcdAcpiDefaultOemRevision _PCD_SIZE_PcdAcpiDefaultOemRevision
+#define _PCD_VALUE_PcdAcpiDefaultOemRevision 0x00000002U
+extern const UINT32 _gPcd_FixedAtBuild_PcdAcpiDefaultOemRevision;
+#define _PCD_GET_MODE_32_PcdAcpiDefaultOemRevision _gPcd_FixedAtBuild_PcdAcpiDefaultOemRevision
+//#define _PCD_SET_MODE_32_PcdAcpiDefaultOemRevision ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdAcpiDefaultCreatorId 0U
+#define _PCD_SIZE_PcdAcpiDefaultCreatorId 4
+#define _PCD_GET_MODE_SIZE_PcdAcpiDefaultCreatorId _PCD_SIZE_PcdAcpiDefaultCreatorId
+#define _PCD_VALUE_PcdAcpiDefaultCreatorId 0x20202020U
+extern const UINT32 _gPcd_FixedAtBuild_PcdAcpiDefaultCreatorId;
+#define _PCD_GET_MODE_32_PcdAcpiDefaultCreatorId _gPcd_FixedAtBuild_PcdAcpiDefaultCreatorId
+//#define _PCD_SET_MODE_32_PcdAcpiDefaultCreatorId ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdAcpiDefaultCreatorRevision 0U
+#define _PCD_SIZE_PcdAcpiDefaultCreatorRevision 4
+#define _PCD_GET_MODE_SIZE_PcdAcpiDefaultCreatorRevision _PCD_SIZE_PcdAcpiDefaultCreatorRevision
+#define _PCD_VALUE_PcdAcpiDefaultCreatorRevision 0x01000013U
+extern const UINT32 _gPcd_FixedAtBuild_PcdAcpiDefaultCreatorRevision;
+#define _PCD_GET_MODE_32_PcdAcpiDefaultCreatorRevision _gPcd_FixedAtBuild_PcdAcpiDefaultCreatorRevision
+//#define _PCD_SET_MODE_32_PcdAcpiDefaultCreatorRevision ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+// Definition of PCDs used in libraries is in AutoGen.c
+
+
+EFI_STATUS
+EFIAPI
+RamDiskDxeEntryPoint (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+
+
+EFI_STATUS
+EFIAPI
+RamDiskDxeUnload (
+ IN EFI_HANDLE ImageHandle
+ );
+
+#include "RamDiskDxeStrDefs.h"
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskDxeStrDefs.h b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskDxeStrDefs.h
new file mode 100644
index 000000000000..573277eeadfb
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskDxeStrDefs.h
@@ -0,0 +1,83 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ RamDiskDxeStrDefs.h
+ Abstract: Auto-generated RamDiskDxeStrDefs.h for building module or library.
+**/
+
+#ifndef _STRDEFS_28A03FF4_12B3_4305_A417_BB1A4F94081E
+#define _STRDEFS_28A03FF4_12B3_4305_A417_BB1A4F94081E
+
+
+//
+//Unicode String ID
+//
+// #define $LANGUAGE_NAME 0x0000 // not referenced
+// #define $PRINTABLE_LANGUAGE_NAME 0x0001 // not referenced
+#define STR_FORM_SET_TITLE 0x0002
+#define STR_FORM_SET_TITLE_HELP 0x0003
+#define STR_MAIN_FORM_TITLE 0x0004
+#define STR_RAM_DISK_NULL_STRING 0x0005
+#define STR_RAM_DISK_LIST_TEXT 0x0006
+#define STR_RAM_DISK_LIST_HELP 0x0007
+#define STR_GOTO_ADD_RAW_FORM 0x0008
+#define STR_GOTO_ADD_RAW_FORM_HELP 0x0009
+#define STR_GOTO_ADD_FROM_FILE_FORM 0x000A
+#define STR_GOTO_ADD_FROM_FILE_FORM_HELP 0x000B
+#define STR_REMOVE_SEL_HELP 0x000C
+#define STR_REMOVE_SEL_TEXT 0x000D
+#define STR_ADD_RAW_FORM_TITLE 0x000E
+#define STR_SIZE_PROMPT 0x000F
+#define STR_SIZE_HELP 0x0010
+#define STR_MEMORY_TYPE_PROMPT 0x0011
+#define STR_MEMORY_TYPE_HELP 0x0012
+#define STR_RAM_DISK_BOOT_SERVICE_DATA_MEMORY 0x0013
+#define STR_RAM_DISK_RESERVED_MEMORY 0x0014
+#define STR_CREATE_AND_EXIT_HELP 0x0015
+#define STR_CREATE_AND_EXIT_PROMPT 0x0016
+#define STR_DISCARD_AND_EXIT_HELP 0x0017
+#define STR_DISCARD_AND_EXIT_PROMPT 0x0018
+// #define STR_ADD_RAW_FORM_SUBTITLE_TEXT 0x0019 // not referenced
+
+extern unsigned char RamDiskDxeStrings[];
+
+
+#define STRING_ARRAY_NAME RamDiskDxeStrings
+
+#ifdef VFRCOMPILE
+#define gEfiIfrTianoGuid { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce }}
+#define gRamDiskFormSetGuid { 0x2a46715f, 0x3581, 0x4a55, { 0x8e, 0x73, 0x2b, 0x76, 0x9a, 0xaa, 0x30, 0xc5 }}
+#define gEfiVirtualDiskGuid { 0x77AB535A, 0x45FC, 0x624B, {0x55, 0x60, 0xF7, 0xB2, 0x81, 0xD1, 0xF9, 0x6E }}
+#define gEfiFileInfoGuid { 0x09576E92, 0x6D3F, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }}
+#define gEfiMdePkgTokenSpaceGuid { 0x914AEBE7, 0x4635, 0x459b, { 0xAA, 0x1C, 0x11, 0xE2, 0x19, 0xB0, 0x3A, 0x10 }}
+#define gUefiOvmfPkgTokenSpaceGuid {0x93bb96af, 0xb9f2, 0x4eb8, {0x94, 0x62, 0xe0, 0xba, 0x74, 0x56, 0x42, 0x36}}
+#define gEfiEventReadyToBootGuid { 0x7CE88FB3, 0x4BD7, 0x4679, { 0x87, 0xA8, 0xA8, 0xD8, 0xDE, 0xE5, 0x0D, 0x2B }}
+#define gEfiEventLegacyBootGuid { 0x2A571201, 0x4966, 0x47F6, { 0x8B, 0x86, 0xF3, 0x1E, 0x41, 0xF3, 0x2F, 0x10 }}
+#define gEfiGlobalVariableGuid { 0x8BE4DF61, 0x93CA, 0x11D2, { 0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C }}
+#define gEfiAcpi20TableGuid { 0x8868E871, 0xE4F1, 0x11D3, { 0xBC, 0x22, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }}
+#define gEfiAcpi10TableGuid { 0xEB9D2D30, 0x2D88, 0x11D3, { 0x9A, 0x16, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}
+#define gEdkiiIfrBitVarstoreGuid {0x82DDD68B, 0x9163, 0x4187, {0x9B, 0x27, 0x20, 0xA8, 0xFD, 0x60,0xA7, 0x1D}}
+#define gEfiHobListGuid { 0x7739F24C, 0x93D7, 0x11D4, { 0x9A, 0x3A, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}
+#define gEfiFileSystemVolumeLabelInfoIdGuid { 0xDB47D7D3, 0xFE81, 0x11D3, { 0x9A, 0x35, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}
+#define gEfiRamDiskProtocolGuid { 0xab38a0df, 0x6873, 0x44a9, { 0x87, 0xe6, 0xd4, 0xeb, 0x56, 0x14, 0x84, 0x49 }}
+#define gEfiHiiConfigAccessProtocolGuid {0x330d4706, 0xf2a0, 0x4e4f, {0xa3, 0x69, 0xb6, 0x6f, 0xa8, 0xd5, 0x43, 0x85}}
+#define gEfiDevicePathProtocolGuid { 0x09576E91, 0x6D3F, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }}
+#define gEfiBlockIoProtocolGuid { 0x964E5B21, 0x6459, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }}
+#define gEfiBlockIo2ProtocolGuid { 0xa77b2472, 0xe282, 0x4e9f, {0xa2, 0x45, 0xc2, 0xc0, 0xe2, 0x7b, 0xbc, 0xc1 }}
+#define gEfiAcpiTableProtocolGuid { 0xFFE06BDD, 0x6107, 0x46A6, { 0x7B, 0xB2, 0x5A, 0x9C, 0x7E, 0xC5, 0x27, 0x5C }}
+#define gEfiAcpiSdtProtocolGuid { 0xeb97088e, 0xcfdf, 0x49c6, { 0xbe, 0x4b, 0xd9, 0x6, 0xa5, 0xb2, 0xe, 0x86 }}
+#define FixedPcdGetBool(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet8(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet16(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet32(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet64(TokenName) _PCD_VALUE_##TokenName
+#define FeaturePcdGet(TokenName) _PCD_VALUE_##TokenName
+#define _PCD_VALUE_PcdAcpiDefaultOemId "INTEL "
+#define _PCD_VALUE_PcdAcpiDefaultOemTableId 0x20202020324B4445
+#define _PCD_VALUE_PcdAcpiDefaultOemRevision 0x00000002
+#define _PCD_VALUE_PcdAcpiDefaultCreatorId 0x20202020
+#define _PCD_VALUE_PcdAcpiDefaultCreatorRevision 0x01000013
+#endif
+
+#endif
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/AutoGen.h b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/AutoGen.h
new file mode 100644
index 000000000000..72298218c7ee
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/AutoGen.h
@@ -0,0 +1,209 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ AutoGen.h
+ Abstract: Auto-generated AutoGen.h for building module or library.
+**/
+
+#ifndef _AUTOGENH_462CAA21_7614_4503_836E_8AB6F4662331
+#define _AUTOGENH_462CAA21_7614_4503_836E_8AB6F4662331
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <Uefi.h>
+#include <Library/PcdLib.h>
+
+extern GUID gEfiCallerIdGuid;
+extern GUID gEdkiiDscPlatformGuid;
+extern CHAR8 *gEfiCallerBaseName;
+
+#define EFI_CALLER_ID_GUID \
+ {0x462CAA21, 0x7614, 0x4503, {0x83, 0x6E, 0x8A, 0xB6, 0xF4, 0x66, 0x23, 0x31}}
+#define EDKII_DSC_PLATFORM_GUID \
+ {0x5a9e7754, 0xd81b, 0x49ea, {0x85, 0xad, 0x69, 0xea, 0xa7, 0xb1, 0x53, 0x9b}}
+
+// Guids
+extern EFI_GUID gEfiIfrTianoGuid;
+extern EFI_GUID gEfiIfrFrontPageGuid;
+extern EFI_GUID gEfiMdePkgTokenSpaceGuid;
+extern EFI_GUID gEfiMdeModulePkgTokenSpaceGuid;
+extern EFI_GUID gUefiOvmfPkgTokenSpaceGuid;
+extern EFI_GUID gEfiEventReadyToBootGuid;
+extern EFI_GUID gEfiEventLegacyBootGuid;
+extern EFI_GUID gEfiGlobalVariableGuid;
+extern EFI_GUID gEfiAcpi20TableGuid;
+extern EFI_GUID gEfiAcpi10TableGuid;
+extern EFI_GUID gEfiHobListGuid;
+extern EFI_GUID gEfiFileInfoGuid;
+extern EFI_GUID gEfiDxeServicesTableGuid;
+extern EFI_GUID gEdkiiIfrBitVarstoreGuid;
+extern EFI_GUID gEfiStatusCodeSpecificDataGuid;
+extern EFI_GUID gEfiStatusCodeDataTypeDebugGuid;
+extern EFI_GUID gEfiMemoryTypeInformationGuid;
+extern EFI_GUID gEdkiiStatusCodeDataTypeVariableGuid;
+extern EFI_GUID gEfiDiskInfoAhciInterfaceGuid;
+extern EFI_GUID gEfiDiskInfoIdeInterfaceGuid;
+extern EFI_GUID gEfiDiskInfoScsiInterfaceGuid;
+extern EFI_GUID gEfiDiskInfoSdMmcInterfaceGuid;
+extern EFI_GUID gEfiFileSystemVolumeLabelInfoIdGuid;
+extern EFI_GUID gEfiHiiPlatformSetupFormsetGuid;
+extern EFI_GUID gEfiIfrBootMaintenanceGuid;
+
+// Protocols
+extern EFI_GUID gEfiSmbiosProtocolGuid;
+extern EFI_GUID gEfiHiiConfigAccessProtocolGuid;
+extern EFI_GUID gPcdProtocolGuid;
+extern EFI_GUID gEfiPcdProtocolGuid;
+extern EFI_GUID gGetPcdInfoProtocolGuid;
+extern EFI_GUID gEfiGetPcdInfoProtocolGuid;
+extern EFI_GUID gEfiDevicePathProtocolGuid;
+extern EFI_GUID gEfiDevicePathUtilitiesProtocolGuid;
+extern EFI_GUID gEfiDevicePathToTextProtocolGuid;
+extern EFI_GUID gEfiDevicePathFromTextProtocolGuid;
+extern EFI_GUID gEfiDriverBindingProtocolGuid;
+extern EFI_GUID gEfiSimpleTextOutProtocolGuid;
+extern EFI_GUID gEfiGraphicsOutputProtocolGuid;
+extern EFI_GUID gEfiHiiFontProtocolGuid;
+extern EFI_GUID gEfiSimpleFileSystemProtocolGuid;
+extern EFI_GUID gEfiUgaDrawProtocolGuid;
+extern EFI_GUID gEfiComponentNameProtocolGuid;
+extern EFI_GUID gEfiComponentName2ProtocolGuid;
+extern EFI_GUID gEfiDriverConfigurationProtocolGuid;
+extern EFI_GUID gEfiDriverConfiguration2ProtocolGuid;
+extern EFI_GUID gEfiDriverDiagnosticsProtocolGuid;
+extern EFI_GUID gEfiDriverDiagnostics2ProtocolGuid;
+extern EFI_GUID gEfiHiiStringProtocolGuid;
+extern EFI_GUID gEfiHiiImageProtocolGuid;
+extern EFI_GUID gEfiHiiDatabaseProtocolGuid;
+extern EFI_GUID gEfiHiiConfigRoutingProtocolGuid;
+extern EFI_GUID gEfiUnicodeCollation2ProtocolGuid;
+extern EFI_GUID gEfiFirmwareVolume2ProtocolGuid;
+extern EFI_GUID gEfiLoadedImageProtocolGuid;
+extern EFI_GUID gEfiLoadFileProtocolGuid;
+extern EFI_GUID gEfiLoadFile2ProtocolGuid;
+extern EFI_GUID gEfiFormBrowser2ProtocolGuid;
+extern EFI_GUID gEfiStatusCodeRuntimeProtocolGuid;
+extern EFI_GUID gEfiPciRootBridgeIoProtocolGuid;
+extern EFI_GUID gEfiPciIoProtocolGuid;
+extern EFI_GUID gEfiSimpleNetworkProtocolGuid;
+extern EFI_GUID gEfiSimpleTextInProtocolGuid;
+extern EFI_GUID gEfiBlockIoProtocolGuid;
+extern EFI_GUID gEfiBootLogoProtocolGuid;
+extern EFI_GUID gEfiSimpleTextInputExProtocolGuid;
+extern EFI_GUID gEdkiiVariablePolicyProtocolGuid;
+extern EFI_GUID gEfiUsbIoProtocolGuid;
+extern EFI_GUID gEfiNvmExpressPassThruProtocolGuid;
+extern EFI_GUID gEfiDiskInfoProtocolGuid;
+extern EFI_GUID gEfiDriverHealthProtocolGuid;
+extern EFI_GUID gEfiRamDiskProtocolGuid;
+extern EFI_GUID gEfiDeferredImageLoadProtocolGuid;
+extern EFI_GUID gEdkiiPlatformBootManagerProtocolGuid;
+extern EFI_GUID gEdkiiFormBrowserEx2ProtocolGuid;
+extern EFI_GUID gEfiSerialIoProtocolGuid;
+
+// Definition of SkuId Array
+extern UINT64 _gPcd_SkuId_Array[];
+
+// Definition of PCDs used in this module
+
+#define _PCD_TOKEN_PcdUefiVariableDefaultPlatformLangCodes 0U
+#define _PCD_VALUE_PcdUefiVariableDefaultPlatformLangCodes _gPcd_FixedAtBuild_PcdUefiVariableDefaultPlatformLangCodes
+extern const UINT8 _gPcd_FixedAtBuild_PcdUefiVariableDefaultPlatformLangCodes[18];
+#define _PCD_GET_MODE_PTR_PcdUefiVariableDefaultPlatformLangCodes _gPcd_FixedAtBuild_PcdUefiVariableDefaultPlatformLangCodes
+#define _PCD_SIZE_PcdUefiVariableDefaultPlatformLangCodes 18
+#define _PCD_GET_MODE_SIZE_PcdUefiVariableDefaultPlatformLangCodes _PCD_SIZE_PcdUefiVariableDefaultPlatformLangCodes
+//#define _PCD_SET_MODE_PTR_PcdUefiVariableDefaultPlatformLangCodes ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdConOutRow 27U
+#define _PCD_GET_MODE_32_PcdConOutRow LibPcdGet32(_PCD_TOKEN_PcdConOutRow)
+#define _PCD_GET_MODE_SIZE_PcdConOutRow LibPcdGetSize(_PCD_TOKEN_PcdConOutRow)
+#define _PCD_SET_MODE_32_PcdConOutRow(Value) LibPcdSet32(_PCD_TOKEN_PcdConOutRow, (Value))
+#define _PCD_SET_MODE_32_S_PcdConOutRow(Value) LibPcdSet32S(_PCD_TOKEN_PcdConOutRow, (Value))
+
+#define _PCD_TOKEN_PcdConOutColumn 26U
+#define _PCD_GET_MODE_32_PcdConOutColumn LibPcdGet32(_PCD_TOKEN_PcdConOutColumn)
+#define _PCD_GET_MODE_SIZE_PcdConOutColumn LibPcdGetSize(_PCD_TOKEN_PcdConOutColumn)
+#define _PCD_SET_MODE_32_PcdConOutColumn(Value) LibPcdSet32(_PCD_TOKEN_PcdConOutColumn, (Value))
+#define _PCD_SET_MODE_32_S_PcdConOutColumn(Value) LibPcdSet32S(_PCD_TOKEN_PcdConOutColumn, (Value))
+
+#define _PCD_TOKEN_PcdVideoHorizontalResolution 40U
+#define _PCD_GET_MODE_32_PcdVideoHorizontalResolution LibPcdGet32(_PCD_TOKEN_PcdVideoHorizontalResolution)
+#define _PCD_GET_MODE_SIZE_PcdVideoHorizontalResolution LibPcdGetSize(_PCD_TOKEN_PcdVideoHorizontalResolution)
+#define _PCD_SET_MODE_32_PcdVideoHorizontalResolution(Value) LibPcdSet32(_PCD_TOKEN_PcdVideoHorizontalResolution, (Value))
+#define _PCD_SET_MODE_32_S_PcdVideoHorizontalResolution(Value) LibPcdSet32S(_PCD_TOKEN_PcdVideoHorizontalResolution, (Value))
+
+#define _PCD_TOKEN_PcdVideoVerticalResolution 41U
+#define _PCD_GET_MODE_32_PcdVideoVerticalResolution LibPcdGet32(_PCD_TOKEN_PcdVideoVerticalResolution)
+#define _PCD_GET_MODE_SIZE_PcdVideoVerticalResolution LibPcdGetSize(_PCD_TOKEN_PcdVideoVerticalResolution)
+#define _PCD_SET_MODE_32_PcdVideoVerticalResolution(Value) LibPcdSet32(_PCD_TOKEN_PcdVideoVerticalResolution, (Value))
+#define _PCD_SET_MODE_32_S_PcdVideoVerticalResolution(Value) LibPcdSet32S(_PCD_TOKEN_PcdVideoVerticalResolution, (Value))
+
+#define _PCD_TOKEN_PcdSetupConOutColumn 0U
+#define _PCD_PATCHABLE_VALUE_PcdSetupConOutColumn ((UINT32)80U)
+extern volatile UINT32 _gPcd_BinaryPatch_PcdSetupConOutColumn;
+#define _PCD_GET_MODE_32_PcdSetupConOutColumn _gPcd_BinaryPatch_PcdSetupConOutColumn
+#define _PCD_PATCHABLE_PcdSetupConOutColumn_SIZE 4
+#define _PCD_GET_MODE_SIZE_PcdSetupConOutColumn _gPcd_BinaryPatch_Size_PcdSetupConOutColumn
+extern UINTN _gPcd_BinaryPatch_Size_PcdSetupConOutColumn;
+#define _PCD_SET_MODE_32_PcdSetupConOutColumn(Value) (_gPcd_BinaryPatch_PcdSetupConOutColumn = (Value))
+#define _PCD_SET_MODE_32_S_PcdSetupConOutColumn(Value) ((_gPcd_BinaryPatch_PcdSetupConOutColumn = (Value)), RETURN_SUCCESS)
+
+#define _PCD_TOKEN_PcdSetupConOutRow 0U
+#define _PCD_PATCHABLE_VALUE_PcdSetupConOutRow ((UINT32)25U)
+extern volatile UINT32 _gPcd_BinaryPatch_PcdSetupConOutRow;
+#define _PCD_GET_MODE_32_PcdSetupConOutRow _gPcd_BinaryPatch_PcdSetupConOutRow
+#define _PCD_PATCHABLE_PcdSetupConOutRow_SIZE 4
+#define _PCD_GET_MODE_SIZE_PcdSetupConOutRow _gPcd_BinaryPatch_Size_PcdSetupConOutRow
+extern UINTN _gPcd_BinaryPatch_Size_PcdSetupConOutRow;
+#define _PCD_SET_MODE_32_PcdSetupConOutRow(Value) (_gPcd_BinaryPatch_PcdSetupConOutRow = (Value))
+#define _PCD_SET_MODE_32_S_PcdSetupConOutRow(Value) ((_gPcd_BinaryPatch_PcdSetupConOutRow = (Value)), RETURN_SUCCESS)
+
+#define _PCD_TOKEN_PcdSetupVideoHorizontalResolution 35U
+#define _PCD_GET_MODE_32_PcdSetupVideoHorizontalResolution LibPcdGet32(_PCD_TOKEN_PcdSetupVideoHorizontalResolution)
+#define _PCD_GET_MODE_SIZE_PcdSetupVideoHorizontalResolution LibPcdGetSize(_PCD_TOKEN_PcdSetupVideoHorizontalResolution)
+#define _PCD_SET_MODE_32_PcdSetupVideoHorizontalResolution(Value) LibPcdSet32(_PCD_TOKEN_PcdSetupVideoHorizontalResolution, (Value))
+#define _PCD_SET_MODE_32_S_PcdSetupVideoHorizontalResolution(Value) LibPcdSet32S(_PCD_TOKEN_PcdSetupVideoHorizontalResolution, (Value))
+
+#define _PCD_TOKEN_PcdSetupVideoVerticalResolution 36U
+#define _PCD_GET_MODE_32_PcdSetupVideoVerticalResolution LibPcdGet32(_PCD_TOKEN_PcdSetupVideoVerticalResolution)
+#define _PCD_GET_MODE_SIZE_PcdSetupVideoVerticalResolution LibPcdGetSize(_PCD_TOKEN_PcdSetupVideoVerticalResolution)
+#define _PCD_SET_MODE_32_PcdSetupVideoVerticalResolution(Value) LibPcdSet32(_PCD_TOKEN_PcdSetupVideoVerticalResolution, (Value))
+#define _PCD_SET_MODE_32_S_PcdSetupVideoVerticalResolution(Value) LibPcdSet32S(_PCD_TOKEN_PcdSetupVideoVerticalResolution, (Value))
+
+#define _PCD_TOKEN_PcdFirmwareVersionString 0U
+#define _PCD_VALUE_PcdFirmwareVersionString _gPcd_FixedAtBuild_PcdFirmwareVersionString
+extern const UINT16 _gPcd_FixedAtBuild_PcdFirmwareVersionString[1];
+#define _PCD_GET_MODE_PTR_PcdFirmwareVersionString _gPcd_FixedAtBuild_PcdFirmwareVersionString
+#define _PCD_SIZE_PcdFirmwareVersionString 2
+#define _PCD_GET_MODE_SIZE_PcdFirmwareVersionString _PCD_SIZE_PcdFirmwareVersionString
+//#define _PCD_SET_MODE_PTR_PcdFirmwareVersionString ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdTestKeyUsed 39U
+#define _PCD_GET_MODE_BOOL_PcdTestKeyUsed LibPcdGetBool(_PCD_TOKEN_PcdTestKeyUsed)
+#define _PCD_GET_MODE_SIZE_PcdTestKeyUsed LibPcdGetSize(_PCD_TOKEN_PcdTestKeyUsed)
+#define _PCD_SET_MODE_BOOL_PcdTestKeyUsed(Value) LibPcdSetBool(_PCD_TOKEN_PcdTestKeyUsed, (Value))
+#define _PCD_SET_MODE_BOOL_S_PcdTestKeyUsed(Value) LibPcdSetBoolS(_PCD_TOKEN_PcdTestKeyUsed, (Value))
+
+// Definition of PCDs used in libraries is in AutoGen.c
+
+
+EFI_STATUS
+EFIAPI
+InitializeUserInterface (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+
+
+#include "UiAppStrDefs.h"
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/UiAppStrDefs.h b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/UiAppStrDefs.h
new file mode 100644
index 000000000000..258b0955faae
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/UiAppStrDefs.h
@@ -0,0 +1,86 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ UiAppStrDefs.h
+ Abstract: Auto-generated UiAppStrDefs.h for building module or library.
+**/
+
+#ifndef _STRDEFS_462CAA21_7614_4503_836E_8AB6F4662331
+#define _STRDEFS_462CAA21_7614_4503_836E_8AB6F4662331
+
+
+//
+//Unicode String ID
+//
+// #define $LANGUAGE_NAME 0x0000 // not referenced
+// #define $PRINTABLE_LANGUAGE_NAME 0x0001 // not referenced
+#define STR_FRONT_PAGE_TITLE 0x0002
+#define STR_FRONT_PAGE_COMPUTER_MODEL 0x0003
+#define STR_FRONT_PAGE_CPU_MODEL 0x0004
+#define STR_FRONT_PAGE_CPU_SPEED 0x0005
+#define STR_FRONT_PAGE_MEMORY_SIZE 0x0006
+#define STR_FRONT_PAGE_BIOS_VERSION 0x0007
+#define STR_CONTINUE_PROMPT 0x0008
+#define STR_LANGUAGE_SELECT 0x0009
+#define STR_LANGUAGE_SELECT_HELP 0x000A
+#define STR_MISSING_STRING 0x000B
+#define STR_EMPTY_STRING 0x000C
+#define STR_RESET_STRING 0x000D
+#define STR_CUSTOMIZE_BANNER_LINE4_LEFT 0x000E
+#define STR_CUSTOMIZE_BANNER_LINE4_RIGHT 0x000F
+#define STR_CUSTOMIZE_BANNER_LINE5_LEFT 0x0010
+#define STR_CUSTOMIZE_BANNER_LINE5_RIGHT 0x0011
+#define STR_TEST_KEY_USED 0x0012
+#define STR_NULL_STRING 0x0013
+// #define STR_FRONT_PAGE_BANNER_0_LEFT 0x0014 // not referenced
+// #define STR_FRONT_PAGE_BANNER_0_RIGHT 0x0015 // not referenced
+// #define STR_FRONT_PAGE_BANNER_1_LEFT 0x0016 // not referenced
+// #define STR_FRONT_PAGE_BANNER_1_RIGHT 0x0017 // not referenced
+// #define STR_FRONT_PAGE_BANNER_2_LEFT 0x0018 // not referenced
+// #define STR_FRONT_PAGE_BANNER_3_LEFT 0x0019 // not referenced
+// #define STR_CONTINUE_HELP 0x001A // not referenced
+// #define STR_RESET_STRING_HELP 0x001B // not referenced
+
+extern unsigned char UiAppStrings[];
+
+
+#define STRING_ARRAY_NAME UiAppStrings
+
+#ifdef VFRCOMPILE
+#define gEfiIfrTianoGuid { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce }}
+#define gEfiIfrFrontPageGuid { 0xe58809f8, 0xfbc1, 0x48e2, { 0x88, 0x3a, 0xa3, 0x0f, 0xdc, 0x4b, 0x44, 0x1e } }
+#define gUefiOvmfPkgTokenSpaceGuid {0x93bb96af, 0xb9f2, 0x4eb8, {0x94, 0x62, 0xe0, 0xba, 0x74, 0x56, 0x42, 0x36}}
+#define gEfiEventReadyToBootGuid { 0x7CE88FB3, 0x4BD7, 0x4679, { 0x87, 0xA8, 0xA8, 0xD8, 0xDE, 0xE5, 0x0D, 0x2B }}
+#define gEfiEventLegacyBootGuid { 0x2A571201, 0x4966, 0x47F6, { 0x8B, 0x86, 0xF3, 0x1E, 0x41, 0xF3, 0x2F, 0x10 }}
+#define gEfiGlobalVariableGuid { 0x8BE4DF61, 0x93CA, 0x11D2, { 0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C }}
+#define gEfiAcpi20TableGuid { 0x8868E871, 0xE4F1, 0x11D3, { 0xBC, 0x22, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }}
+#define gEfiAcpi10TableGuid { 0xEB9D2D30, 0x2D88, 0x11D3, { 0x9A, 0x16, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}
+#define gEfiHobListGuid { 0x7739F24C, 0x93D7, 0x11D4, { 0x9A, 0x3A, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}
+#define gEfiFileInfoGuid { 0x09576E92, 0x6D3F, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }}
+#define gEfiDxeServicesTableGuid { 0x05AD34BA, 0x6F02, 0x4214, { 0x95, 0x2E, 0x4D, 0xA0, 0x39, 0x8E, 0x2B, 0xB9 }}
+#define gEdkiiIfrBitVarstoreGuid {0x82DDD68B, 0x9163, 0x4187, {0x9B, 0x27, 0x20, 0xA8, 0xFD, 0x60,0xA7, 0x1D}}
+#define gEfiStatusCodeSpecificDataGuid { 0x335984BD, 0xE805, 0x409A, { 0xB8, 0xF8, 0xD2, 0x7E, 0xCE, 0x5F, 0xF7, 0xA6 }}
+#define gEfiStatusCodeDataTypeDebugGuid { 0x9A4E9246, 0xD553, 0x11D5, { 0x87, 0xE2, 0x00, 0x06, 0x29, 0x45, 0xC3, 0xB9 }}
+#define gEfiMemoryTypeInformationGuid { 0x4C19049F, 0x4137, 0x4DD3, { 0x9C, 0x10, 0x8B, 0x97, 0xA8, 0x3F, 0xFD, 0xFA }}
+#define gEdkiiStatusCodeDataTypeVariableGuid { 0xf6ee6dbb, 0xd67f, 0x4ea0, { 0x8b, 0x96, 0x6a, 0x71, 0xb1, 0x9d, 0x84, 0xad }}
+#define gEfiDiskInfoAhciInterfaceGuid { 0x9e498932, 0x4abc, 0x45af, { 0xa3, 0x4d, 0x02, 0x47, 0x78, 0x7b, 0xe7, 0xc6 }}
+#define gEfiDiskInfoIdeInterfaceGuid { 0x5E948FE3, 0x26D3, 0x42B5, { 0xAF, 0x17, 0x61, 0x02, 0x87, 0x18, 0x8D, 0xEC }}
+#define gEfiDiskInfoScsiInterfaceGuid { 0x08F74BAA, 0xEA36, 0x41D9, { 0x95, 0x21, 0x21, 0xA7, 0x0F, 0x87, 0x80, 0xBC }}
+#define gEfiDiskInfoSdMmcInterfaceGuid { 0x8deec992, 0xd39c, 0x4a5c, { 0xab, 0x6b, 0x98, 0x6e, 0x14, 0x24, 0x2b, 0x9d }}
+#define gEfiFileSystemVolumeLabelInfoIdGuid { 0xDB47D7D3, 0xFE81, 0x11D3, { 0x9A, 0x35, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}
+#define gEfiHiiPlatformSetupFormsetGuid { 0x93039971, 0x8545, 0x4b04, { 0xb4, 0x5e, 0x32, 0xeb, 0x83, 0x26, 0x04, 0x0e }}
+#define gEfiIfrBootMaintenanceGuid { 0xb2dedc91, 0xd59f, 0x48d2, { 0x89, 0x8a, 0x12, 0x49, 0xc, 0x74, 0xa4, 0xe0 }}
+#define gEfiSmbiosProtocolGuid {0x3583ff6, 0xcb36, 0x4940, { 0x94, 0x7e, 0xb9, 0xb3, 0x9f, 0x4a, 0xfa, 0xf7}}
+#define gEfiHiiConfigAccessProtocolGuid {0x330d4706, 0xf2a0, 0x4e4f, {0xa3, 0x69, 0xb6, 0x6f, 0xa8, 0xd5, 0x43, 0x85}}
+#define FixedPcdGetBool(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet8(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet16(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet32(TokenName) _PCD_VALUE_##TokenName
+#define FixedPcdGet64(TokenName) _PCD_VALUE_##TokenName
+#define FeaturePcdGet(TokenName) _PCD_VALUE_##TokenName
+#define _PCD_VALUE_PcdUefiVariableDefaultPlatformLangCodes "en;fr;en-US;fr-FR"
+#define _PCD_VALUE_PcdFirmwareVersionString L""
+#endif
+
+#endif
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/AutoGen.h b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/AutoGen.h
new file mode 100644
index 000000000000..d25c7c02b800
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/AutoGen.h
@@ -0,0 +1,105 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ AutoGen.h
+ Abstract: Auto-generated AutoGen.h for building module or library.
+**/
+
+#ifndef _AUTOGENH_E4F61863_FE2C_4b56_A8F4_08519BC439DF
+#define _AUTOGENH_E4F61863_FE2C_4b56_A8F4_08519BC439DF
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <Uefi.h>
+
+extern GUID gEfiCallerIdGuid;
+extern GUID gEdkiiDscPlatformGuid;
+extern CHAR8 *gEfiCallerBaseName;
+
+#define EFI_CALLER_ID_GUID \
+ {0xE4F61863, 0xFE2C, 0x4b56, {0xA8, 0xF4, 0x08, 0x51, 0x9B, 0xC4, 0x39, 0xDF}}
+#define EDKII_DSC_PLATFORM_GUID \
+ {0x5a9e7754, 0xd81b, 0x49ea, {0x85, 0xad, 0x69, 0xea, 0xa7, 0xb1, 0x53, 0x9b}}
+
+// Guids
+extern EFI_GUID gEfiIfrTianoGuid;
+extern EFI_GUID gVlanConfigFormSetGuid;
+extern EFI_GUID gEfiMdePkgTokenSpaceGuid;
+extern EFI_GUID gUefiOvmfPkgTokenSpaceGuid;
+extern EFI_GUID gEfiEventReadyToBootGuid;
+extern EFI_GUID gEfiEventLegacyBootGuid;
+extern EFI_GUID gEfiGlobalVariableGuid;
+extern EFI_GUID gEfiAcpi20TableGuid;
+extern EFI_GUID gEfiAcpi10TableGuid;
+extern EFI_GUID gEfiSmbiosTableGuid;
+extern EFI_GUID gEfiSmbios3TableGuid;
+extern EFI_GUID gEfiAdapterInfoMediaStateGuid;
+extern EFI_GUID gEdkiiIfrBitVarstoreGuid;
+
+// Protocols
+extern EFI_GUID gEfiHiiConfigAccessProtocolGuid;
+extern EFI_GUID gEfiHiiConfigRoutingProtocolGuid;
+extern EFI_GUID gEfiVlanConfigProtocolGuid;
+extern EFI_GUID gPcdProtocolGuid;
+extern EFI_GUID gEfiPcdProtocolGuid;
+extern EFI_GUID gGetPcdInfoProtocolGuid;
+extern EFI_GUID gEfiGetPcdInfoProtocolGuid;
+extern EFI_GUID gEfiDevicePathProtocolGuid;
+extern EFI_GUID gEfiDevicePathUtilitiesProtocolGuid;
+extern EFI_GUID gEfiDevicePathToTextProtocolGuid;
+extern EFI_GUID gEfiDevicePathFromTextProtocolGuid;
+extern EFI_GUID gEfiDriverBindingProtocolGuid;
+extern EFI_GUID gEfiSimpleTextOutProtocolGuid;
+extern EFI_GUID gEfiGraphicsOutputProtocolGuid;
+extern EFI_GUID gEfiHiiFontProtocolGuid;
+extern EFI_GUID gEfiSimpleFileSystemProtocolGuid;
+extern EFI_GUID gEfiUgaDrawProtocolGuid;
+extern EFI_GUID gEfiComponentNameProtocolGuid;
+extern EFI_GUID gEfiComponentName2ProtocolGuid;
+extern EFI_GUID gEfiDriverConfigurationProtocolGuid;
+extern EFI_GUID gEfiDriverConfiguration2ProtocolGuid;
+extern EFI_GUID gEfiDriverDiagnosticsProtocolGuid;
+extern EFI_GUID gEfiDriverDiagnostics2ProtocolGuid;
+extern EFI_GUID gEfiHiiStringProtocolGuid;
+extern EFI_GUID gEfiHiiImageProtocolGuid;
+extern EFI_GUID gEfiHiiDatabaseProtocolGuid;
+extern EFI_GUID gEfiLoadedImageProtocolGuid;
+extern EFI_GUID gEfiSimpleNetworkProtocolGuid;
+extern EFI_GUID gEfiManagedNetworkProtocolGuid;
+extern EFI_GUID gEfiManagedNetworkServiceBindingProtocolGuid;
+extern EFI_GUID gEfiIp4Config2ProtocolGuid;
+extern EFI_GUID gEfiAdapterInformationProtocolGuid;
+extern EFI_GUID gEfiFormBrowser2ProtocolGuid;
+
+// Definition of SkuId Array
+extern UINT64 _gPcd_SkuId_Array[];
+
+// Definition of PCDs used in libraries is in AutoGen.c
+
+
+EFI_STATUS
+EFIAPI
+VlanConfigDriverEntryPoint (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+
+
+EFI_STATUS
+EFIAPI
+NetLibDefaultUnload (
+ IN EFI_HANDLE ImageHandle
+ );
+
+#include "VlanConfigDxeStrDefs.h"
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfigDxeStrDefs.h b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfigDxeStrDefs.h
new file mode 100644
index 000000000000..3434e195e709
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfigDxeStrDefs.h
@@ -0,0 +1,61 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ VlanConfigDxeStrDefs.h
+ Abstract: Auto-generated VlanConfigDxeStrDefs.h for building module or library.
+**/
+
+#ifndef _STRDEFS_E4F61863_FE2C_4b56_A8F4_08519BC439DF
+#define _STRDEFS_E4F61863_FE2C_4b56_A8F4_08519BC439DF
+
+
+//
+//Unicode String ID
+//
+// #define $LANGUAGE_NAME 0x0000 // not referenced
+// #define $PRINTABLE_LANGUAGE_NAME 0x0001 // not referenced
+#define STR_VLAN_FORM_SET_TITLE 0x0002
+#define STR_VLAN_FORM_SET_TITLE_HELP 0x0003
+#define STR_VLAN_FORM_TITLE 0x0004
+#define STR_VLAN_FORM_HELP 0x0005
+#define STR_VLAN_CREATE_VLAN 0x0006
+#define STR_VLAN_VID_PROMPT 0x0007
+#define STR_VLAN_VID_HELP 0x0008
+#define STR_VLAN_PRIORITY_PROMPT 0x0009
+#define STR_VLAN_PRIORITY_HELP 0x000A
+#define STR_VLAN_ADD_VLAN_PROMPT 0x000B
+#define STR_VLAN_ADD_VLAN_HELP 0x000C
+#define STR_VLAN_VLAN_LIST 0x000D
+#define STR_VLAN_VLAN_LIST_HELP 0x000E
+#define STR_VLAN_REMOVE_VLAN_PROMPT 0x000F
+#define STR_VLAN_REMOVE_VLAN_HELP 0x0010
+#define STR_VLAN_NULL_STRING 0x0011
+#define STR_GET_CURRENT_SETTING 0x0012
+#define STR_GET_CURRENT_SETTING_HELP 0x0013
+
+extern unsigned char VlanConfigDxeStrings[];
+
+
+#define STRING_ARRAY_NAME VlanConfigDxeStrings
+
+#ifdef VFRCOMPILE
+#define gEfiIfrTianoGuid { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce }}
+#define gVlanConfigFormSetGuid { 0xd79df6b0, 0xef44, 0x43bd, { 0x97, 0x97, 0x43, 0xe9, 0x3b, 0xcf, 0x5f, 0xa8 }}
+#define gEfiMdePkgTokenSpaceGuid { 0x914AEBE7, 0x4635, 0x459b, { 0xAA, 0x1C, 0x11, 0xE2, 0x19, 0xB0, 0x3A, 0x10 }}
+#define gUefiOvmfPkgTokenSpaceGuid {0x93bb96af, 0xb9f2, 0x4eb8, {0x94, 0x62, 0xe0, 0xba, 0x74, 0x56, 0x42, 0x36}}
+#define gEfiEventReadyToBootGuid { 0x7CE88FB3, 0x4BD7, 0x4679, { 0x87, 0xA8, 0xA8, 0xD8, 0xDE, 0xE5, 0x0D, 0x2B }}
+#define gEfiEventLegacyBootGuid { 0x2A571201, 0x4966, 0x47F6, { 0x8B, 0x86, 0xF3, 0x1E, 0x41, 0xF3, 0x2F, 0x10 }}
+#define gEfiGlobalVariableGuid { 0x8BE4DF61, 0x93CA, 0x11D2, { 0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C }}
+#define gEfiAcpi20TableGuid { 0x8868E871, 0xE4F1, 0x11D3, { 0xBC, 0x22, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }}
+#define gEfiAcpi10TableGuid { 0xEB9D2D30, 0x2D88, 0x11D3, { 0x9A, 0x16, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}
+#define gEfiSmbiosTableGuid { 0xEB9D2D31, 0x2D88, 0x11D3, { 0x9A, 0x16, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}
+#define gEfiSmbios3TableGuid { 0xF2FD1544, 0x9794, 0x4A2C, { 0x99, 0x2E, 0xE5, 0xBB, 0xCF, 0x20, 0xE3, 0x94 }}
+#define gEfiAdapterInfoMediaStateGuid { 0xD7C74207, 0xA831, 0x4A26, {0xB1, 0xF5, 0xD1, 0x93, 0x06, 0x5C, 0xE8, 0xB6 }}
+#define gEdkiiIfrBitVarstoreGuid {0x82DDD68B, 0x9163, 0x4187, {0x9B, 0x27, 0x20, 0xA8, 0xFD, 0x60,0xA7, 0x1D}}
+#define gEfiHiiConfigAccessProtocolGuid {0x330d4706, 0xf2a0, 0x4e4f, {0xa3, 0x69, 0xb6, 0x6f, 0xa8, 0xd5, 0x43, 0x85}}
+#define gEfiHiiConfigRoutingProtocolGuid {0x587e72d7, 0xcc50, 0x4f79, {0x82, 0x09, 0xca, 0x29, 0x1f, 0xc1, 0xa1, 0x0f}}
+#define gEfiVlanConfigProtocolGuid { 0x9e23d768, 0xd2f3, 0x4366, {0x9f, 0xc3, 0x3a, 0x7a, 0xba, 0x86, 0x43, 0x74 }}
+#endif
+
+#endif
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/IScsiConfigVfr.vfr b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/IScsiConfigVfr.vfr
new file mode 100644
index 000000000000..61095d2ac2ce
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/IScsiConfigVfr.vfr
@@ -0,0 +1,399 @@
+/** @file
+ VFR file used by the iSCSI configuration component.
+
+Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include "IScsiConfigNVDataStruc.h"
+
+#define EFI_NETWORK_DEVICE_CLASS 0x04
+
+formset
+ guid = ISCSI_CONFIG_GUID,
+ title = STRING_TOKEN(STR_ISCSI_CONFIG_FORM_TITLE),
+ help = STRING_TOKEN(STR_ISCSI_CONFIG_FORM_HELP),
+
+ varstore ISCSI_CONFIG_IFR_NVDATA,
+ varid = CONFIGURATION_VARSTORE_ID,
+ name = ISCSI_CONFIG_IFR_NVDATA,
+ guid = ISCSI_CONFIG_GUID;
+
+ form formid = FORMID_MAIN_FORM,
+ title = STRING_TOKEN(STR_ISCSI_MAIN_FORM_TITLE);
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.InitiatorName,
+ prompt = STRING_TOKEN(STR_ISCSI_CONFIG_INIT_NAME),
+ help = STRING_TOKEN(STR_ISCSI_CONFIG_INIT_NAME_HELP),
+ flags = INTERACTIVE,
+ key = KEY_INITIATOR_NAME,
+ minsize = ISCSI_NAME_IFR_MIN_SIZE,
+ maxsize = ISCSI_NAME_IFR_MAX_SIZE,
+ endstring;
+
+ subtitle text = STRING_TOKEN(STR_NULL);
+
+ goto FORMID_MAC_FORM,
+ prompt = STRING_TOKEN(STR_ADD_ATTEMPT_ENTRY),
+ help = STRING_TOKEN(STR_ADD_ATTEMPT_ENTRY),
+ flags = INTERACTIVE,
+ key = KEY_ADD_ATTEMPT;
+
+ label ATTEMPT_ENTRY_LABEL;
+ label LABEL_END;
+
+ subtitle text = STRING_TOKEN(STR_NULL);
+
+ goto FORMID_DELETE_FORM,
+ prompt = STRING_TOKEN (STR_DEL_ATTEMPT_ENTRY),
+ help = STRING_TOKEN (STR_DEL_ATTEMPT_ENTRY_HELP),
+ flags = INTERACTIVE,
+ key = KEY_DELETE_ATTEMPT;
+
+ subtitle text = STRING_TOKEN(STR_NULL);
+
+ goto FORMID_ORDER_FORM,
+ prompt = STRING_TOKEN (STR_ORDER_ATTEMPT_ENTRY),
+ help = STRING_TOKEN (STR_ORDER_ATTEMPT_ENTRY),
+ flags = INTERACTIVE,
+ key = KEY_ORDER_ATTEMPT_CONFIG;
+
+ subtitle text = STRING_TOKEN(STR_NULL);
+
+ endform;
+
+ form formid = FORMID_MAC_FORM,
+ title = STRING_TOKEN(STR_ISCSI_MAC_FORM_TITLE);
+
+ label MAC_ENTRY_LABEL;
+ label LABEL_END;
+
+ endform;
+
+ form formid = FORMID_ORDER_FORM,
+ title = STRING_TOKEN(STR_ORDER_ATTEMPT_ENTRY);
+
+ label ORDER_ENTRY_LABEL;
+ label LABEL_END;
+
+ text
+ help = STRING_TOKEN (STR_SAVE_AND_EXIT),
+ text = STRING_TOKEN (STR_SAVE_AND_EXIT),
+ flags = INTERACTIVE,
+ key = KEY_SAVE_ORDER_CHANGES;
+
+ text
+ help = STRING_TOKEN (STR_NO_SAVE_AND_EXIT),
+ text = STRING_TOKEN (STR_NO_SAVE_AND_EXIT),
+ flags = INTERACTIVE,
+ key = KEY_IGNORE_ORDER_CHANGES;
+ endform;
+
+ form formid = FORMID_DELETE_FORM,
+ title = STRING_TOKEN(STR_DEL_ATTEMPT_ENTRY);
+
+ label DELETE_ENTRY_LABEL;
+ label LABEL_END;
+
+ text
+ help = STRING_TOKEN (STR_SAVE_AND_EXIT),
+ text = STRING_TOKEN (STR_SAVE_AND_EXIT),
+ flags = INTERACTIVE,
+ key = KEY_SAVE_DELETE_ATTEMPT;
+
+ text
+ help = STRING_TOKEN (STR_NO_SAVE_AND_EXIT),
+ text = STRING_TOKEN (STR_NO_SAVE_AND_EXIT),
+ flags = INTERACTIVE,
+ key = KEY_IGNORE_DELETE_ATTEMPT;
+ endform;
+
+ form formid = FORMID_ATTEMPT_FORM,
+ title = STRING_TOKEN(STR_ISCSI_ATTEMPT_FORM_TITLE);
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.AttemptName,
+ prompt = STRING_TOKEN(STR_ISCSI_ATTEMPT_NAME),
+ help = STRING_TOKEN(STR_ISCSI_ATTEMPT_NAME_HELP),
+ flags = READ_ONLY,
+ key = KEY_ATTEMPT_NAME,
+ minsize = 0,
+ maxsize = ATTEMPT_NAME_SIZE,
+ endstring;
+
+ subtitle text = STRING_TOKEN(STR_NULL);
+
+ oneof varid = ISCSI_CONFIG_IFR_NVDATA.Enabled,
+ prompt = STRING_TOKEN(STR_ISCSI_MODE_PROMPT),
+ help = STRING_TOKEN(STR_ISCSI_MODE_HELP),
+ option text = STRING_TOKEN(STR_ISCSI_MODE_DISABLED), value = ISCSI_DISABLED, flags = DEFAULT;
+ option text = STRING_TOKEN(STR_ISCSI_MODE_ENABLED), value = ISCSI_ENABLED, flags = 0;
+ option text = STRING_TOKEN(STR_ISCSI_MODE_ENABLED_FOR_MPIO), value = ISCSI_ENABLED_FOR_MPIO, flags = 0;
+ endoneof;
+
+ subtitle text = STRING_TOKEN(STR_NULL);
+
+ oneof varid = ISCSI_CONFIG_IFR_NVDATA.IpMode,
+ questionid = KEY_IP_MODE,
+ prompt = STRING_TOKEN(STR_IP_MODE_PROMPT),
+ help = STRING_TOKEN(STR_IP_MODE_HELP),
+ option text = STRING_TOKEN(STR_IP_MODE_IP4), value = IP_MODE_IP4, flags = INTERACTIVE;
+ option text = STRING_TOKEN(STR_IP_MODE_IP6), value = IP_MODE_IP6, flags = INTERACTIVE;
+ option text = STRING_TOKEN(STR_IP_MODE_AUTOCONFIG), value = IP_MODE_AUTOCONFIG, flags = INTERACTIVE;
+ endoneof;
+
+ subtitle text = STRING_TOKEN(STR_NULL);
+
+ numeric varid = ISCSI_CONFIG_IFR_NVDATA.ConnectRetryCount,
+ prompt = STRING_TOKEN(STR_ISCSI_CONFIG_RETRY),
+ help = STRING_TOKEN(STR_ISCSI_CONFIG_RETRY_HELP),
+ flags = 0,
+ minimum = CONNECT_MIN_RETRY,
+ maximum = CONNECT_MAX_RETRY,
+ step = 0,
+ endnumeric;
+
+ numeric varid = ISCSI_CONFIG_IFR_NVDATA.ConnectTimeout,
+ prompt = STRING_TOKEN(STR_ISCSI_CONFIG_TIMEOUT),
+ help = STRING_TOKEN(STR_ISCSI_CONFIG_TIMEOUT_HELP),
+ flags = 0,
+ minimum = CONNECT_MIN_TIMEOUT,
+ maximum = CONNECT_MAX_TIMEOUT,
+ step = 0,
+ default = CONNECT_DEFAULT_TIMEOUT,
+ endnumeric;
+
+ subtitle text = STRING_TOKEN(STR_NULL);
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.IsId,
+ prompt = STRING_TOKEN(STR_ISCSI_CONFIG_ISID),
+ help = STRING_TOKEN(STR_ISCSI_CONFIG_ISID_HELP),
+ flags = INTERACTIVE,
+ key = KEY_CONFIG_ISID,
+ minsize = ISID_CONFIGURABLE_MIN_LEN,
+ maxsize = ISID_CONFIGURABLE_MAX_LEN,
+ endstring;
+
+ subtitle text = STRING_TOKEN(STR_NULL);
+
+ suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_AUTOCONFIG;
+ checkbox varid = ISCSI_CONFIG_IFR_NVDATA.InitiatorInfoFromDhcp,
+ prompt = STRING_TOKEN(STR_ISCSI_ENABLE_DHCP),
+ help = STRING_TOKEN(STR_ISCSI_ENABLE_DHCP),
+ flags = INTERACTIVE,
+ key = KEY_DHCP_ENABLE,
+ endcheckbox;
+ endif;
+
+ suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_IP6 OR
+ ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_AUTOCONFIG;
+
+ grayoutif ideqval ISCSI_CONFIG_IFR_NVDATA.InitiatorInfoFromDhcp == 0x01;
+ string varid = ISCSI_CONFIG_IFR_NVDATA.LocalIp,
+ prompt = STRING_TOKEN(STR_ISCSI_LOCAL_IP_ADDRESS),
+ help = STRING_TOKEN(STR_ISCSI_IP_ADDRESS_HELP),
+ flags = INTERACTIVE,
+ key = KEY_LOCAL_IP,
+ minsize = IP4_MIN_SIZE,
+ maxsize = IP4_MAX_SIZE,
+ endstring;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.SubnetMask,
+ prompt = STRING_TOKEN(STR_ISCSI_LOCAL_MASK),
+ help = STRING_TOKEN(STR_ISCSI_IP_ADDRESS_HELP),
+ flags = INTERACTIVE,
+ key = KEY_SUBNET_MASK,
+ minsize = IP4_MIN_SIZE,
+ maxsize = IP4_MAX_SIZE,
+ endstring;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.Gateway,
+ prompt = STRING_TOKEN(STR_ISCSI_LOCAL_GATEWAY),
+ help = STRING_TOKEN(STR_ISCSI_IP_ADDRESS_HELP),
+ flags = INTERACTIVE,
+ key = KEY_GATE_WAY,
+ minsize = IP4_MIN_SIZE,
+ maxsize = IP4_MAX_SIZE,
+ endstring;
+ endif;
+
+ endif;
+
+ suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_AUTOCONFIG;
+ subtitle text = STRING_TOKEN(STR_NULL);
+ endif;
+
+ suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_AUTOCONFIG OR
+ ideqval ISCSI_CONFIG_IFR_NVDATA.InitiatorInfoFromDhcp == 0x00;
+ checkbox varid = ISCSI_CONFIG_IFR_NVDATA.TargetInfoFromDhcp,
+ prompt = STRING_TOKEN(STR_ISCSI_ENABLE_DHCP_ON_TARGET),
+ help = STRING_TOKEN(STR_ISCSI_ENABLE_DHCP_ON_TARGET),
+ flags = 0,
+ endcheckbox;
+ endif;
+
+ suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_AUTOCONFIG OR
+ ideqval ISCSI_CONFIG_IFR_NVDATA.TargetInfoFromDhcp == 0x01;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.TargetName,
+ prompt = STRING_TOKEN(STR_ISCSI_TARGET_NAME),
+ help = STRING_TOKEN(STR_ISCSI_TARGET_NAME_HELP),
+ flags = INTERACTIVE,
+ key = KEY_TARGET_NAME,
+ minsize = ISCSI_NAME_IFR_MIN_SIZE,
+ maxsize = ISCSI_NAME_IFR_MAX_SIZE,
+ endstring;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.TargetIp,
+ prompt = STRING_TOKEN(STR_ISCSI_TARGET_ADDRESS),
+ help = STRING_TOKEN(STR_ISCSI_TARGET_ADDRESS_HELP),
+ flags = INTERACTIVE,
+ key = KEY_TARGET_IP,
+ minsize = ISCSI_TARGET_URI_MIN_SIZE,
+ maxsize = ISCSI_TARGET_URI_MAX_SIZE,
+ endstring;
+
+ numeric varid = ISCSI_CONFIG_IFR_NVDATA.TargetPort,
+ prompt = STRING_TOKEN(STR_ISCSI_TARGET_PORT),
+ help = STRING_TOKEN(STR_ISCSI_TARGET_PORT),
+ flags = 0,
+ minimum = TARGET_PORT_MIN_NUM,
+ maximum = TARGET_PORT_MAX_NUM,
+ step = 0,
+ endnumeric;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.BootLun,
+ prompt = STRING_TOKEN(STR_ISCSI_BOOT_LUN),
+ help = STRING_TOKEN(STR_ISCSI_BOOT_LUN_HELP),
+ flags = INTERACTIVE,
+ key = KEY_BOOT_LUN,
+ minsize = LUN_MIN_SIZE,
+ maxsize = LUN_MAX_SIZE,
+ endstring;
+
+ endif;
+
+ suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_AUTOCONFIG;
+ subtitle text = STRING_TOKEN(STR_NULL);
+ endif;
+
+ oneof varid = ISCSI_CONFIG_IFR_NVDATA.AuthenticationType,
+ questionid = KEY_AUTH_TYPE,
+ prompt = STRING_TOKEN(STR_AUTHEN_TYPE_PROMPT),
+ help = STRING_TOKEN(STR_AUTHEN_TYPE_HELP),
+ option text = STRING_TOKEN(STR_AUTHEN_TYPE_CHAP), value = ISCSI_AUTH_TYPE_CHAP, flags = 0;
+ option text = STRING_TOKEN(STR_AUTHEN_TYPE_NONE), value = ISCSI_AUTH_TYPE_NONE, flags = DEFAULT;
+ endoneof;
+
+ suppressif NOT ideqval ISCSI_CONFIG_IFR_NVDATA.AuthenticationType == ISCSI_AUTH_TYPE_CHAP;
+ oneof varid = ISCSI_CONFIG_IFR_NVDATA.CHAPType,
+ prompt = STRING_TOKEN(STR_CHAP_TYPE_PROMPT),
+ help = STRING_TOKEN(STR_CHAP_TYPE_HELP),
+ option text = STRING_TOKEN(STR_CHAP_TYPE_UNI), value = ISCSI_CHAP_UNI, flags = 0;
+ option text = STRING_TOKEN(STR_CHAP_TYPE_MUTUAL), value = ISCSI_CHAP_MUTUAL, flags = DEFAULT;
+ endoneof;
+ endif;
+
+ suppressif NOT ideqval ISCSI_CONFIG_IFR_NVDATA.AuthenticationType == ISCSI_AUTH_TYPE_CHAP;
+ string varid = ISCSI_CONFIG_IFR_NVDATA.CHAPName,
+ prompt = STRING_TOKEN(STR_ISCSI_CHAP_NAME),
+ help = STRING_TOKEN(STR_ISCSI_CHAP_NAME),
+ flags = INTERACTIVE,
+ key = KEY_CHAP_NAME,
+ minsize = 0,
+ maxsize = ISCSI_CHAP_NAME_MAX_LEN,
+ endstring;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.CHAPSecret,
+ prompt = STRING_TOKEN(STR_ISCSI_CHAP_SECRET),
+ help = STRING_TOKEN(STR_ISCSI_CHAP_SECRET_HELP),
+ flags = INTERACTIVE,
+ key = KEY_CHAP_SECRET,
+ minsize = ISCSI_CHAP_SECRET_MIN_LEN,
+ maxsize = ISCSI_CHAP_SECRET_MAX_LEN,
+ endstring;
+
+ endif;
+
+ suppressif NOT ideqval ISCSI_CONFIG_IFR_NVDATA.AuthenticationType == ISCSI_AUTH_TYPE_CHAP OR
+ NOT ideqval ISCSI_CONFIG_IFR_NVDATA.CHAPType == ISCSI_CHAP_MUTUAL;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.ReverseCHAPName,
+ prompt = STRING_TOKEN(STR_ISCSI_REVERSE_CHAP_NAME),
+ help = STRING_TOKEN(STR_ISCSI_REVERSE_CHAP_NAME),
+ flags = INTERACTIVE,
+ key = KEY_REVERSE_CHAP_NAME,
+ minsize = 0,
+ maxsize = ISCSI_CHAP_NAME_MAX_LEN,
+ endstring;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.ReverseCHAPSecret,
+ prompt = STRING_TOKEN(STR_ISCSI_REVERSE_CHAP_SECRET),
+ help = STRING_TOKEN(STR_ISCSI_CHAP_SECRET_HELP),
+ flags = INTERACTIVE,
+ key = KEY_REVERSE_CHAP_SECRET,
+ minsize = ISCSI_CHAP_SECRET_MIN_LEN,
+ maxsize = ISCSI_CHAP_SECRET_MAX_LEN,
+ endstring;
+
+ endif;
+
+ suppressif TRUE;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.ISCSIMacAddr,
+ prompt = STRING_TOKEN(STR_ISCSI_MAC_PROMPT),
+ help = STRING_TOKEN(STR_ISCSI_MAC_PROMPT),
+ minsize = 0,
+ maxsize = ISCSI_MAX_MAC_STRING_LEN,
+ endstring;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.ISCSIAttemptOrder,
+ prompt = STRING_TOKEN(STR_ISCSI_ATTEMPT_ORDER),
+ help = STRING_TOKEN(STR_ISCSI_ATTEMPT_ORDER),
+ minsize = 0,
+ maxsize = ATTEMPT_NAME_LIST_SIZE,
+ endstring;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.ISCSIAddAttemptList,
+ prompt = STRING_TOKEN(STR_ISCSI_ADD_ATTEMPTS),
+ help = STRING_TOKEN(STR_ISCSI_ADD_ATTEMPTS),
+ minsize = 0,
+ maxsize = ATTEMPT_NAME_LIST_SIZE,
+ endstring;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.ISCSIDeleteAttemptList,
+ prompt = STRING_TOKEN(STR_ISCSI_DELETE_ATTEMPTS),
+ help = STRING_TOKEN(STR_ISCSI_DELETE_ATTEMPTS),
+ minsize = 0,
+ maxsize = ATTEMPT_NAME_LIST_SIZE,
+ endstring;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.ISCSIDisplayAttemptList,
+ prompt = STRING_TOKEN(STR_ISCSI_DISPLAY_ATTEMPTS),
+ help = STRING_TOKEN(STR_ISCSI_DISPLAY_ATTEMPTS),
+ flags = READ_ONLY,
+ minsize = 0,
+ maxsize = ATTEMPT_NAME_LIST_SIZE,
+ endstring;
+
+ label KEYWORD_ENTRY_LABEL;
+ label LABEL_END;
+ endif;
+
+ subtitle text = STRING_TOKEN(STR_NULL);
+
+ text
+ help = STRING_TOKEN (STR_SAVE_CHANGES_HELP),
+ text = STRING_TOKEN (STR_SAVE_CHANGES),
+ flags = INTERACTIVE,
+ key = KEY_SAVE_ATTEMPT_CONFIG;
+
+ goto FORMID_MAIN_FORM,
+ prompt = STRING_TOKEN (STR_RETURN_MAIN_FORM),
+ help = STRING_TOKEN (STR_RETURN_MAIN_FORM),
+ flags = 0;
+
+ endform;
+
+endformset;
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/VlanConfig.vfr b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/VlanConfig.vfr
new file mode 100644
index 000000000000..4c6d807959d7
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/VlanConfig.vfr
@@ -0,0 +1,72 @@
+///** @file
+// VLAN configuration formset.
+//
+// Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
+// SPDX-License-Identifier: BSD-2-Clause-Patent
+//
+//**/
+
+#include "VlanConfigNvData.h"
+
+formset
+ guid = VLAN_CONFIG_FORM_SET_GUID,
+ title = STRING_TOKEN(STR_VLAN_FORM_SET_TITLE),
+ help = STRING_TOKEN(STR_VLAN_FORM_SET_TITLE_HELP),
+ classguid = EFI_HII_PLATFORM_SETUP_FORMSET_GUID,
+
+ varstore VLAN_CONFIGURATION,
+ varid = VLAN_CONFIGURATION_VARSTORE_ID,
+ name = VlanNvData,
+ guid = VLAN_CONFIG_FORM_SET_GUID;
+
+ form formid = VLAN_HEAD_FORM_ID,
+ title = STRING_TOKEN(STR_VLAN_FORM_TITLE);
+
+ goto VLAN_CONFIGURATION_FORM_ID,
+ prompt = STRING_TOKEN (STR_GET_CURRENT_SETTING),
+ help = STRING_TOKEN (STR_GET_CURRENT_SETTING_HELP),
+ flags = INTERACTIVE,
+ key = VLAN_UPDATE_QUESTION_ID;
+
+ endform;
+
+ form formid = VLAN_CONFIGURATION_FORM_ID,
+ title = STRING_TOKEN(STR_VLAN_FORM_TITLE);
+
+ subtitle text = STRING_TOKEN(STR_VLAN_CREATE_VLAN);
+
+ numeric varid = VlanNvData.VlanId,
+ prompt = STRING_TOKEN(STR_VLAN_VID_PROMPT),
+ help = STRING_TOKEN(STR_VLAN_VID_HELP),
+ minimum = 0,
+ maximum = 4094,
+ endnumeric;
+
+ numeric varid = VlanNvData.Priority,
+ prompt = STRING_TOKEN(STR_VLAN_PRIORITY_PROMPT),
+ help = STRING_TOKEN(STR_VLAN_PRIORITY_HELP),
+ minimum = 0,
+ maximum = 7,
+ endnumeric;
+
+ text
+ help = STRING_TOKEN(STR_VLAN_ADD_VLAN_HELP),
+ text = STRING_TOKEN(STR_VLAN_ADD_VLAN_PROMPT),
+ flags = INTERACTIVE,
+ key = VLAN_ADD_QUESTION_ID;
+
+ subtitle text = STRING_TOKEN(STR_VLAN_NULL_STRING);
+ subtitle text = STRING_TOKEN(STR_VLAN_VLAN_LIST);
+
+ label LABEL_VLAN_LIST;
+ label LABEL_END;
+
+ text
+ help = STRING_TOKEN(STR_VLAN_REMOVE_VLAN_HELP),
+ text = STRING_TOKEN(STR_VLAN_REMOVE_VLAN_PROMPT),
+ flags = INTERACTIVE,
+ key = VLAN_REMOVE_QUESTION_ID;
+
+ endform;
+
+endformset;
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/AutoGen.c b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/AutoGen.c
new file mode 100644
index 000000000000..a87c851d5ec6
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/AutoGen.c
@@ -0,0 +1,762 @@
+
+//
+//Unicode String Pack Definition
+//
+unsigned char BootMaintenanceManagerUiLibStrings[] = {
+
+// STRGATHER_OUTPUT_HEADER
+ 0xBE, 0x1B, 0x00, 0x00,
+
+// PACKAGE HEADER
+
+ 0xDC, 0x0D, 0x00, 0x04, 0x34, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x65, 0x6E,
+ 0x2D, 0x55, 0x53, 0x00,
+
+// PACKAGE DATA
+
+// 0x0001: $PRINTABLE_LANGUAGE_NAME:0x0001
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x73, 0x00, 0x68, 0x00, 0x00,
+ 0x00,
+// 0x0002: STR_NULL_STRING:0x0002
+ 0x14, 0x20, 0x00, 0x00, 0x00,
+// 0x0003: STR_NONE:0x0003
+ 0x14, 0x4E, 0x00, 0x4F, 0x00, 0x4E, 0x00, 0x45, 0x00, 0x00, 0x00,
+// 0x0004: STR_MISSING_STRING:0x0004
+ 0x14, 0x4D, 0x00, 0x69, 0x00, 0x73, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x20,
+ 0x00, 0x53, 0x00, 0x74, 0x00, 0x72, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x00, 0x00,
+// 0x0005: STR_FORM_MAIN_TITLE:0x0005
+ 0x14, 0x42, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x69,
+ 0x00, 0x6E, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x63, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00, 0x72,
+ 0x00, 0x00, 0x00,
+// 0x0006: STR_FORM_BOOT_SETUP_TITLE:0x0006
+ 0x14, 0x42, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70, 0x00, 0x74,
+ 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x0007: STR_BOOT_MAINT_MANAGER_HELP:0x0007
+ 0x14, 0x54, 0x00, 0x68, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x73, 0x00, 0x65, 0x00, 0x6C,
+ 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x77,
+ 0x00, 0x69, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x74, 0x00, 0x61, 0x00, 0x6B, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x79, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x42, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6E,
+ 0x00, 0x61, 0x00, 0x6E, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x6E,
+ 0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x0008: STR_FORM_BOOT_SETUP_HELP:0x0008
+ 0x14, 0x4D, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x69, 0x00, 0x66, 0x00, 0x79, 0x00, 0x20, 0x00, 0x73,
+ 0x00, 0x79, 0x00, 0x73, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x62, 0x00, 0x6F,
+ 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F,
+ 0x00, 0x6E, 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x0009: STR_FORM_DRIVER_SETUP_TITLE:0x0009
+ 0x14, 0x44, 0x00, 0x72, 0x00, 0x69, 0x00, 0x76, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x4F,
+ 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x000A: STR_FORM_DRIVER_SETUP_HELP:0x000A
+ 0x14, 0x4D, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x69, 0x00, 0x66, 0x00, 0x79, 0x00, 0x20, 0x00, 0x62,
+ 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x64, 0x00, 0x72, 0x00, 0x69, 0x00, 0x76,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F,
+ 0x00, 0x6E, 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x000B: STR_FORM_BOOT_ADD_TITLE:0x000B
+ 0x14, 0x41, 0x00, 0x64, 0x00, 0x64, 0x00, 0x20, 0x00, 0x42, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00,
+ 0x00,
+// 0x000C: STR_FORM_BOOT_ADD_HELP:0x000C
+ 0x14, 0x41, 0x00, 0x64, 0x00, 0x64, 0x00, 0x20, 0x00, 0x45, 0x00, 0x46, 0x00, 0x49, 0x00, 0x20,
+ 0x00, 0x41, 0x00, 0x70, 0x00, 0x70, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x63, 0x00, 0x61, 0x00, 0x74,
+ 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x52,
+ 0x00, 0x65, 0x00, 0x6D, 0x00, 0x6F, 0x00, 0x76, 0x00, 0x61, 0x00, 0x62, 0x00, 0x6C, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x46, 0x00, 0x73, 0x00, 0x20, 0x00, 0x61, 0x00, 0x73, 0x00, 0x20, 0x00, 0x42,
+ 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x000D: STR_FORM_BOOT_DEL_TITLE:0x000D
+ 0x14, 0x44, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x42,
+ 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x000E: STR_FORM_BOOT_IMMEDIATE_HELP:0x000E
+ 0x14, 0x57, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x62, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x76, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x64, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6D,
+ 0x00, 0x6D, 0x00, 0x65, 0x00, 0x64, 0x00, 0x69, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6C,
+ 0x00, 0x79, 0x00, 0x00, 0x00,
+// 0x000F: STR_FORM_BOOT_CHG_TITLE:0x000F
+ 0x14, 0x43, 0x00, 0x68, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65, 0x00, 0x20, 0x00, 0x42,
+ 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x72, 0x00, 0x64, 0x00, 0x65,
+ 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x0010: STR_FORM_DRV_ADD_TITLE:0x0010
+ 0x14, 0x41, 0x00, 0x64, 0x00, 0x64, 0x00, 0x20, 0x00, 0x44, 0x00, 0x72, 0x00, 0x69, 0x00, 0x76,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F,
+ 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x0011: STR_FORM_DRV_ADD_HELP:0x0011
+ 0x14, 0x41, 0x00, 0x64, 0x00, 0x64, 0x00, 0x20, 0x00, 0x2E, 0x00, 0x45, 0x00, 0x46, 0x00, 0x49,
+ 0x00, 0x20, 0x00, 0x44, 0x00, 0x72, 0x00, 0x69, 0x00, 0x76, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20,
+ 0x00, 0x61, 0x00, 0x73, 0x00, 0x20, 0x00, 0x44, 0x00, 0x72, 0x00, 0x69, 0x00, 0x76, 0x00, 0x65,
+ 0x00, 0x72, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E,
+ 0x00, 0x00, 0x00,
+// 0x0012: STR_FORM_DRV_DEL_TITLE:0x0012
+ 0x14, 0x44, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x44,
+ 0x00, 0x72, 0x00, 0x69, 0x00, 0x76, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x0013: STR_FORM_DRV_CHG_TITLE:0x0013
+ 0x14, 0x43, 0x00, 0x68, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65, 0x00, 0x20, 0x00, 0x44,
+ 0x00, 0x72, 0x00, 0x69, 0x00, 0x76, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x72,
+ 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x0014: STR_FORM_NEXT_BOOT_HELP:0x0014
+ 0x14, 0x57, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x62, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x76, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x64, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x6E,
+ 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x78, 0x00, 0x74, 0x00, 0x20, 0x00, 0x62, 0x00, 0x6F,
+ 0x00, 0x6F, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x0015: STR_FORM_CON_MAIN_TITLE:0x0015
+ 0x14, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x4F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x00,
+ 0x00,
+// 0x0016: STR_FORM_CON_MAIN_HELP:0x0016
+ 0x14, 0x4D, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x69, 0x00, 0x66, 0x00, 0x79, 0x00, 0x20, 0x00, 0x73,
+ 0x00, 0x79, 0x00, 0x73, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x63, 0x00, 0x6F,
+ 0x00, 0x6E, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x70,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x0017: STR_FORM_CON_IN_TITLE:0x0017
+ 0x14, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x49, 0x00, 0x6E, 0x00, 0x70, 0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x44, 0x00, 0x65,
+ 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x53, 0x00, 0x65, 0x00, 0x6C,
+ 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x0018: STR_FORM_CON_IN_HELP:0x0018
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x62, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x63,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x64,
+ 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x49, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x0019: STR_FORM_CON_OUT_TITLE:0x0019
+ 0x14, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x4F, 0x00, 0x75, 0x00, 0x74, 0x00, 0x70, 0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x44,
+ 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x53, 0x00, 0x65,
+ 0x00, 0x6C, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x001A: STR_FORM_CON_OUT_HELP:0x001A
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x62, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x63,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x64,
+ 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x4F, 0x00, 0x75, 0x00, 0x74, 0x00, 0x00,
+ 0x00,
+// 0x001B: STR_FORM_STD_ERR_TITLE:0x001B
+ 0x14, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x53, 0x00, 0x74, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x61, 0x00, 0x72, 0x00, 0x64,
+ 0x00, 0x20, 0x00, 0x45, 0x00, 0x72, 0x00, 0x72, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x44,
+ 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x53, 0x00, 0x65,
+ 0x00, 0x6C, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x001C: STR_FORM_STD_ERR_HELP:0x001C
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x62, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x63,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x64,
+ 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x53, 0x00, 0x74, 0x00, 0x64, 0x00, 0x45, 0x00, 0x72, 0x00, 0x72, 0x00, 0x00,
+ 0x00,
+// 0x001D: STR_FORM_MODE_TITLE:0x001D
+ 0x14, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x4F, 0x00, 0x75, 0x00, 0x74, 0x00, 0x70, 0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4D,
+ 0x00, 0x6F, 0x00, 0x64, 0x00, 0x65, 0x00, 0x20, 0x00, 0x53, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x65,
+ 0x00, 0x63, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x001E: STR_FORM_MODE_HELP:0x001E
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x4F,
+ 0x00, 0x75, 0x00, 0x74, 0x00, 0x70, 0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x6F,
+ 0x00, 0x64, 0x00, 0x65, 0x00, 0x3A, 0x00, 0x20, 0x00, 0x38, 0x00, 0x30, 0x00, 0x78, 0x00, 0x32,
+ 0x00, 0x35, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x31, 0x00, 0x30, 0x00, 0x30, 0x00, 0x78, 0x00, 0x33,
+ 0x00, 0x31, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x65, 0x00, 0x74, 0x00, 0x63, 0x00, 0x2E, 0x00, 0x00,
+ 0x00,
+// 0x001F: STR_FORM_COM_TITLE:0x001F
+ 0x14, 0x43, 0x00, 0x4F, 0x00, 0x4D, 0x00, 0x20, 0x00, 0x41, 0x00, 0x74, 0x00, 0x74, 0x00, 0x72,
+ 0x00, 0x69, 0x00, 0x62, 0x00, 0x75, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x53, 0x00, 0x65,
+ 0x00, 0x74, 0x00, 0x75, 0x00, 0x70, 0x00, 0x20, 0x00, 0x50, 0x00, 0x61, 0x00, 0x67, 0x00, 0x65,
+ 0x00, 0x00, 0x00,
+// 0x0020: STR_FORM_COM_HELP:0x0020
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x74, 0x00, 0x75, 0x00, 0x70, 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F,
+ 0x00, 0x6D, 0x00, 0x50, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x74, 0x00, 0x20, 0x00, 0x42, 0x00, 0x61,
+ 0x00, 0x75, 0x00, 0x64, 0x00, 0x52, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x2C, 0x00, 0x20,
+ 0x00, 0x44, 0x00, 0x61, 0x00, 0x74, 0x00, 0x61, 0x00, 0x42, 0x00, 0x69, 0x00, 0x74, 0x00, 0x73,
+ 0x00, 0x2C, 0x00, 0x20, 0x00, 0x53, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x42, 0x00, 0x69,
+ 0x00, 0x74, 0x00, 0x73, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x50, 0x00, 0x61, 0x00, 0x72, 0x00, 0x69,
+ 0x00, 0x74, 0x00, 0x79, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20, 0x00, 0x54,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x6D, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x54,
+ 0x00, 0x79, 0x00, 0x70, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0021: STR_FORM_DRV_ADD_FILE_TITLE:0x0021
+ 0x14, 0x41, 0x00, 0x64, 0x00, 0x64, 0x00, 0x20, 0x00, 0x44, 0x00, 0x72, 0x00, 0x69, 0x00, 0x76,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F,
+ 0x00, 0x6E, 0x00, 0x20, 0x00, 0x55, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x20,
+ 0x00, 0x46, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0022: STR_FORM_DRV_ADD_HANDLE_TITLE:0x0022
+ 0x14, 0x41, 0x00, 0x64, 0x00, 0x64, 0x00, 0x20, 0x00, 0x44, 0x00, 0x72, 0x00, 0x69, 0x00, 0x76,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F,
+ 0x00, 0x6E, 0x00, 0x20, 0x00, 0x55, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x20,
+ 0x00, 0x48, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0023: STR_FORM_BOOT_ADD_DESC_TITLE:0x0023
+ 0x14, 0x4D, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x69, 0x00, 0x66, 0x00, 0x79, 0x00, 0x20, 0x00, 0x42,
+ 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x44, 0x00, 0x65, 0x00, 0x73, 0x00, 0x63, 0x00, 0x72,
+ 0x00, 0x69, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x0024: STR_FORM_DRV_ADD_DESC_TITLE:0x0024
+ 0x14, 0x4D, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x69, 0x00, 0x66, 0x00, 0x79, 0x00, 0x20, 0x00, 0x44,
+ 0x00, 0x72, 0x00, 0x69, 0x00, 0x76, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x44, 0x00, 0x65, 0x00, 0x73,
+ 0x00, 0x63, 0x00, 0x72, 0x00, 0x69, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E,
+ 0x00, 0x00, 0x00,
+// 0x0025: STR_NUM_AUTO_BOOT:0x0025
+ 0x14, 0x41, 0x00, 0x75, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x42, 0x00, 0x6F, 0x00, 0x6F,
+ 0x00, 0x74, 0x00, 0x20, 0x00, 0x54, 0x00, 0x69, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x2D, 0x00, 0x6F,
+ 0x00, 0x75, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x0026: STR_HLP_AUTO_BOOT:0x0026
+ 0x14, 0x52, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65, 0x00, 0x3A, 0x00, 0x20, 0x00, 0x30,
+ 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x36, 0x00, 0x35, 0x00, 0x35, 0x00, 0x33,
+ 0x00, 0x35, 0x00, 0x20, 0x00, 0x73, 0x00, 0x65, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x64,
+ 0x00, 0x73, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x30, 0x00, 0x20, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x61,
+ 0x00, 0x6E, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x77, 0x00, 0x61,
+ 0x00, 0x69, 0x00, 0x74, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x36, 0x00, 0x35, 0x00, 0x35, 0x00, 0x33,
+ 0x00, 0x35, 0x00, 0x20, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x77, 0x00, 0x61, 0x00, 0x69, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x20,
+ 0x00, 0x66, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x6B, 0x00, 0x65, 0x00, 0x79, 0x00, 0x00,
+ 0x00,
+// 0x0027: STR_BOOT_NEXT:0x0027
+ 0x14, 0x42, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4E, 0x00, 0x65, 0x00, 0x78,
+ 0x00, 0x74, 0x00, 0x20, 0x00, 0x56, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x75, 0x00, 0x65, 0x00, 0x00,
+ 0x00,
+// 0x0028: STR_BOOT_NEXT_HELP:0x0028
+ 0x14, 0x4E, 0x00, 0x65, 0x00, 0x78, 0x00, 0x74, 0x00, 0x20, 0x00, 0x62, 0x00, 0x6F, 0x00, 0x6F,
+ 0x00, 0x74, 0x00, 0x20, 0x00, 0x75, 0x00, 0x73, 0x00, 0x65, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68,
+ 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x62, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20,
+ 0x00, 0x6F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x0029: STR_LOAD_OPTION_DESC:0x0029
+ 0x14, 0x49, 0x00, 0x6E, 0x00, 0x70, 0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x64, 0x00, 0x65, 0x00, 0x73, 0x00, 0x63, 0x00, 0x72, 0x00, 0x69,
+ 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x002A: STR_LOAD_OPTION_FORCE_RECON:0x002A
+ 0x14, 0x4C, 0x00, 0x6F, 0x00, 0x61, 0x00, 0x64, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70, 0x00, 0x74,
+ 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x52, 0x00, 0x65, 0x00, 0x63, 0x00, 0x6F,
+ 0x00, 0x6E, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x002B: STR_SAVE_AND_EXIT:0x002B
+ 0x14, 0x43, 0x00, 0x6F, 0x00, 0x6D, 0x00, 0x6D, 0x00, 0x69, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43,
+ 0x00, 0x68, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x69, 0x00, 0x74, 0x00, 0x00,
+ 0x00,
+// 0x002C: STR_NO_SAVE_AND_EXIT:0x002C
+ 0x14, 0x44, 0x00, 0x69, 0x00, 0x73, 0x00, 0x63, 0x00, 0x61, 0x00, 0x72, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x43, 0x00, 0x68, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x61, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x69, 0x00, 0x74,
+ 0x00, 0x00, 0x00,
+// 0x002D: STR_CON_MODE_SETUP:0x002D
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73,
+ 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x75, 0x00, 0x74, 0x00, 0x70,
+ 0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x65, 0x00, 0x00,
+ 0x00,
+// 0x002E: STR_CON_COM_SETUP:0x002E
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43, 0x00, 0x4F, 0x00, 0x4D, 0x00, 0x20,
+ 0x00, 0x41, 0x00, 0x74, 0x00, 0x74, 0x00, 0x72, 0x00, 0x69, 0x00, 0x62, 0x00, 0x75, 0x00, 0x74,
+ 0x00, 0x65, 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x002F: STR_COM_TERMI_TYPE:0x002F
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43, 0x00, 0x4F, 0x00, 0x4D, 0x00, 0x20,
+ 0x00, 0x54, 0x00, 0x65, 0x00, 0x72, 0x00, 0x6D, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x6C,
+ 0x00, 0x20, 0x00, 0x54, 0x00, 0x79, 0x00, 0x70, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0030: STR_COM_FLOW_CONTROL:0x0030
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43, 0x00, 0x4F, 0x00, 0x4D, 0x00, 0x20,
+ 0x00, 0x46, 0x00, 0x6C, 0x00, 0x6F, 0x00, 0x77, 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F, 0x00, 0x6E,
+ 0x00, 0x74, 0x00, 0x72, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x00, 0x00,
+// 0x0031: STR_COM_BAUD_RATE:0x0031
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43, 0x00, 0x4F, 0x00, 0x4D, 0x00, 0x20,
+ 0x00, 0x42, 0x00, 0x61, 0x00, 0x75, 0x00, 0x64, 0x00, 0x20, 0x00, 0x52, 0x00, 0x61, 0x00, 0x74,
+ 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0032: STR_COM_DATA_BITS:0x0032
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43, 0x00, 0x4F, 0x00, 0x4D, 0x00, 0x20,
+ 0x00, 0x44, 0x00, 0x61, 0x00, 0x74, 0x00, 0x61, 0x00, 0x20, 0x00, 0x42, 0x00, 0x69, 0x00, 0x74,
+ 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x0033: STR_COM_PARITY:0x0033
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43, 0x00, 0x4F, 0x00, 0x4D, 0x00, 0x20,
+ 0x00, 0x50, 0x00, 0x61, 0x00, 0x72, 0x00, 0x69, 0x00, 0x74, 0x00, 0x79, 0x00, 0x00, 0x00,
+// 0x0034: STR_COM_STOP_BITS:0x0034
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43, 0x00, 0x4F, 0x00, 0x4D, 0x00, 0x20,
+ 0x00, 0x53, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x20, 0x00, 0x42, 0x00, 0x69, 0x00, 0x74,
+ 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x0035: STR_COM_BAUD_RATE_0:0x0035
+ 0x14, 0x31, 0x00, 0x31, 0x00, 0x35, 0x00, 0x32, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0036: STR_COM_BAUD_RATE_1:0x0036
+ 0x14, 0x35, 0x00, 0x37, 0x00, 0x36, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0037: STR_COM_BAUD_RATE_2:0x0037
+ 0x14, 0x33, 0x00, 0x38, 0x00, 0x34, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0038: STR_COM_BAUD_RATE_3:0x0038
+ 0x14, 0x31, 0x00, 0x39, 0x00, 0x32, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0039: STR_COM_BAUD_RATE_4:0x0039
+ 0x14, 0x39, 0x00, 0x36, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x003A: STR_COM_BAUD_RATE_5:0x003A
+ 0x14, 0x37, 0x00, 0x32, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x003B: STR_COM_BAUD_RATE_6:0x003B
+ 0x14, 0x34, 0x00, 0x38, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x003C: STR_COM_BAUD_RATE_7:0x003C
+ 0x14, 0x33, 0x00, 0x36, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x003D: STR_COM_BAUD_RATE_8:0x003D
+ 0x14, 0x32, 0x00, 0x34, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x003E: STR_COM_BAUD_RATE_9:0x003E
+ 0x14, 0x32, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x003F: STR_COM_BAUD_RATE_10:0x003F
+ 0x14, 0x31, 0x00, 0x38, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0040: STR_COM_BAUD_RATE_11:0x0040
+ 0x14, 0x31, 0x00, 0x32, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0041: STR_COM_BAUD_RATE_12:0x0041
+ 0x14, 0x36, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0042: STR_COM_BAUD_RATE_13:0x0042
+ 0x14, 0x33, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0043: STR_COM_BAUD_RATE_14:0x0043
+ 0x14, 0x31, 0x00, 0x35, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0044: STR_COM_BAUD_RATE_15:0x0044
+ 0x14, 0x31, 0x00, 0x33, 0x00, 0x34, 0x00, 0x00, 0x00,
+// 0x0045: STR_COM_BAUD_RATE_16:0x0045
+ 0x14, 0x31, 0x00, 0x31, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0046: STR_COM_BAUD_RATE_17:0x0046
+ 0x14, 0x37, 0x00, 0x35, 0x00, 0x00, 0x00,
+// 0x0047: STR_COM_BAUD_RATE_18:0x0047
+ 0x14, 0x35, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0048: STR_COM_DATA_BITS_0:0x0048
+ 0x14, 0x35, 0x00, 0x00, 0x00,
+// 0x0049: STR_COM_DATA_BITS_1:0x0049
+ 0x14, 0x36, 0x00, 0x00, 0x00,
+// 0x004A: STR_COM_DATA_BITS_2:0x004A
+ 0x14, 0x37, 0x00, 0x00, 0x00,
+// 0x004B: STR_COM_DATA_BITS_3:0x004B
+ 0x14, 0x38, 0x00, 0x00, 0x00,
+// 0x004C: STR_COM_PAR_0:0x004C
+ 0x14, 0x4E, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x004D: STR_COM_PAR_1:0x004D
+ 0x14, 0x45, 0x00, 0x76, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x004E: STR_COM_PAR_2:0x004E
+ 0x14, 0x4F, 0x00, 0x64, 0x00, 0x64, 0x00, 0x00, 0x00,
+// 0x004F: STR_COM_PAR_3:0x004F
+ 0x14, 0x4D, 0x00, 0x61, 0x00, 0x72, 0x00, 0x6B, 0x00, 0x00, 0x00,
+// 0x0050: STR_COM_PAR_4:0x0050
+ 0x14, 0x53, 0x00, 0x70, 0x00, 0x61, 0x00, 0x63, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0051: STR_COM_STOP_BITS_0:0x0051
+ 0x14, 0x4F, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0052: STR_COM_STOP_BITS_1:0x0052
+ 0x14, 0x4F, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x20, 0x00, 0x41, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x41, 0x00, 0x20, 0x00, 0x48, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x66, 0x00, 0x00, 0x00,
+// 0x0053: STR_COM_STOP_BITS_2:0x0053
+ 0x14, 0x54, 0x00, 0x77, 0x00, 0x6F, 0x00, 0x00, 0x00,
+// 0x0054: STR_COM_TYPE_0:0x0054
+ 0x14, 0x50, 0x00, 0x43, 0x00, 0x5F, 0x00, 0x41, 0x00, 0x4E, 0x00, 0x53, 0x00, 0x49, 0x00, 0x00,
+ 0x00,
+// 0x0055: STR_COM_TYPE_1:0x0055
+ 0x14, 0x56, 0x00, 0x54, 0x00, 0x5F, 0x00, 0x31, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0056: STR_COM_TYPE_2:0x0056
+ 0x14, 0x56, 0x00, 0x54, 0x00, 0x5F, 0x00, 0x31, 0x00, 0x30, 0x00, 0x30, 0x00, 0x5F, 0x00, 0x50,
+ 0x00, 0x4C, 0x00, 0x55, 0x00, 0x53, 0x00, 0x00, 0x00,
+// 0x0057: STR_COM_TYPE_3:0x0057
+ 0x14, 0x56, 0x00, 0x54, 0x00, 0x5F, 0x00, 0x55, 0x00, 0x54, 0x00, 0x46, 0x00, 0x38, 0x00, 0x00,
+ 0x00,
+// 0x0058: STR_COM_TYPE_4:0x0058
+ 0x14, 0x54, 0x00, 0x54, 0x00, 0x59, 0x00, 0x5F, 0x00, 0x54, 0x00, 0x45, 0x00, 0x52, 0x00, 0x4D,
+ 0x00, 0x00, 0x00,
+// 0x0059: STR_COM_TYPE_5:0x0059
+ 0x14, 0x4C, 0x00, 0x49, 0x00, 0x4E, 0x00, 0x55, 0x00, 0x58, 0x00, 0x00, 0x00,
+// 0x005A: STR_COM_TYPE_6:0x005A
+ 0x14, 0x58, 0x00, 0x54, 0x00, 0x45, 0x00, 0x52, 0x00, 0x4D, 0x00, 0x5F, 0x00, 0x52, 0x00, 0x36,
+ 0x00, 0x00, 0x00,
+// 0x005B: STR_COM_TYPE_7:0x005B
+ 0x14, 0x56, 0x00, 0x54, 0x00, 0x5F, 0x00, 0x34, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x005C: STR_COM_TYPE_8:0x005C
+ 0x14, 0x53, 0x00, 0x43, 0x00, 0x4F, 0x00, 0x00, 0x00,
+// 0x005D: STR_FORM_GOTO_MAIN:0x005D
+ 0x14, 0x47, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x42, 0x00, 0x61, 0x00, 0x63, 0x00, 0x6B, 0x00, 0x20,
+ 0x00, 0x54, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x20,
+ 0x00, 0x50, 0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x005E: STR_BOOT_FROM_FILE:0x005E
+ 0x14, 0x42, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x46, 0x00, 0x72, 0x00, 0x6F,
+ 0x00, 0x6D, 0x00, 0x20, 0x00, 0x46, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x005F: STR_BOOT_FROM_FILE_HELP:0x005F
+ 0x14, 0x42, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x73, 0x00, 0x79, 0x00, 0x73,
+ 0x00, 0x74, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x66, 0x00, 0x72, 0x00, 0x6F, 0x00, 0x6D,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x20, 0x00, 0x66, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x64, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63,
+ 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0060: STR_OPTIONAL_DATA:0x0060
+ 0x14, 0x49, 0x00, 0x6E, 0x00, 0x70, 0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x44,
+ 0x00, 0x61, 0x00, 0x74, 0x00, 0x61, 0x00, 0x00, 0x00,
+// 0x0061: STR_CHANGE_ORDER:0x0061
+ 0x14, 0x43, 0x00, 0x68, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72,
+ 0x00, 0x00, 0x00,
+// 0x0062: STR_HARDWARE_FLOW_CONTROL:0x0062
+ 0x14, 0x48, 0x00, 0x61, 0x00, 0x72, 0x00, 0x64, 0x00, 0x77, 0x00, 0x61, 0x00, 0x72, 0x00, 0x65,
+ 0x00, 0x00, 0x00,
+// 0x0063: STR_NONE_FLOW_CONTROL:0x0063
+ 0x14, 0x4E, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x00, 0x00,
+ 0x00,
+// PACKAGE HEADER
+
+ 0xDE, 0x0D, 0x00, 0x04, 0x34, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x66, 0x72,
+ 0x2D, 0x46, 0x52, 0x00,
+
+// PACKAGE DATA
+
+// 0x0001: $PRINTABLE_LANGUAGE_NAME:0x0001
+ 0x14, 0x46, 0x00, 0x72, 0x00, 0x61, 0x00, 0x6E, 0x00, 0xE7, 0x00, 0x61, 0x00, 0x69, 0x00, 0x73,
+ 0x00, 0x00, 0x00,
+// 0x0002: STR_NULL_STRING:0x0002
+ 0x14, 0x20, 0x00, 0x00, 0x00,
+// 0x0003: STR_NONE:0x0003
+ 0x14, 0x4E, 0x00, 0x4F, 0x00, 0x4E, 0x00, 0x45, 0x00, 0x00, 0x00,
+// 0x0004: STR_MISSING_STRING:0x0004
+ 0x14, 0x4D, 0x00, 0x69, 0x00, 0x73, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x20,
+ 0x00, 0x53, 0x00, 0x74, 0x00, 0x72, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x00, 0x00,
+// 0x0005: STR_FORM_MAIN_TITLE:0x0005
+ 0x14, 0x42, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x69,
+ 0x00, 0x6E, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x63, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00, 0x72,
+ 0x00, 0x00, 0x00,
+// 0x0006: STR_FORM_BOOT_SETUP_TITLE:0x0006
+ 0x14, 0x42, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70, 0x00, 0x74,
+ 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x0007: STR_BOOT_MAINT_MANAGER_HELP:0x0007
+ 0x14, 0x54, 0x00, 0x68, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x73, 0x00, 0x65, 0x00, 0x6C,
+ 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x77,
+ 0x00, 0x69, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x74, 0x00, 0x61, 0x00, 0x6B, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x79, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x42, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6E,
+ 0x00, 0x61, 0x00, 0x6E, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x6E,
+ 0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x0008: STR_FORM_BOOT_SETUP_HELP:0x0008
+ 0x14, 0x4D, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x69, 0x00, 0x66, 0x00, 0x79, 0x00, 0x20, 0x00, 0x73,
+ 0x00, 0x79, 0x00, 0x73, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x62, 0x00, 0x6F,
+ 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F,
+ 0x00, 0x6E, 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x0009: STR_FORM_DRIVER_SETUP_TITLE:0x0009
+ 0x14, 0x44, 0x00, 0x72, 0x00, 0x69, 0x00, 0x76, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x4F,
+ 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x000A: STR_FORM_DRIVER_SETUP_HELP:0x000A
+ 0x14, 0x4D, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x69, 0x00, 0x66, 0x00, 0x79, 0x00, 0x20, 0x00, 0x62,
+ 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x64, 0x00, 0x72, 0x00, 0x69, 0x00, 0x76,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F,
+ 0x00, 0x6E, 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x000B: STR_FORM_BOOT_ADD_TITLE:0x000B
+ 0x14, 0x41, 0x00, 0x64, 0x00, 0x64, 0x00, 0x20, 0x00, 0x42, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00,
+ 0x00,
+// 0x000C: STR_FORM_BOOT_ADD_HELP:0x000C
+ 0x14, 0x41, 0x00, 0x64, 0x00, 0x64, 0x00, 0x20, 0x00, 0x45, 0x00, 0x46, 0x00, 0x49, 0x00, 0x20,
+ 0x00, 0x41, 0x00, 0x70, 0x00, 0x70, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x63, 0x00, 0x61, 0x00, 0x74,
+ 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x52,
+ 0x00, 0x65, 0x00, 0x6D, 0x00, 0x6F, 0x00, 0x76, 0x00, 0x61, 0x00, 0x62, 0x00, 0x6C, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x46, 0x00, 0x73, 0x00, 0x20, 0x00, 0x61, 0x00, 0x73, 0x00, 0x20, 0x00, 0x42,
+ 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x000D: STR_FORM_BOOT_DEL_TITLE:0x000D
+ 0x14, 0x44, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x42,
+ 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x000E: STR_FORM_BOOT_IMMEDIATE_HELP:0x000E
+ 0x14, 0x57, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x62, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x76, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x64, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6D,
+ 0x00, 0x6D, 0x00, 0x65, 0x00, 0x64, 0x00, 0x69, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6C,
+ 0x00, 0x79, 0x00, 0x00, 0x00,
+// 0x000F: STR_FORM_BOOT_CHG_TITLE:0x000F
+ 0x14, 0x43, 0x00, 0x68, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65, 0x00, 0x20, 0x00, 0x42,
+ 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x72, 0x00, 0x64, 0x00, 0x65,
+ 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x0010: STR_FORM_DRV_ADD_TITLE:0x0010
+ 0x14, 0x41, 0x00, 0x64, 0x00, 0x64, 0x00, 0x20, 0x00, 0x44, 0x00, 0x72, 0x00, 0x69, 0x00, 0x76,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F,
+ 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x0011: STR_FORM_DRV_ADD_HELP:0x0011
+ 0x14, 0x41, 0x00, 0x64, 0x00, 0x64, 0x00, 0x20, 0x00, 0x2E, 0x00, 0x45, 0x00, 0x46, 0x00, 0x49,
+ 0x00, 0x20, 0x00, 0x44, 0x00, 0x72, 0x00, 0x69, 0x00, 0x76, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20,
+ 0x00, 0x61, 0x00, 0x73, 0x00, 0x20, 0x00, 0x44, 0x00, 0x72, 0x00, 0x69, 0x00, 0x76, 0x00, 0x65,
+ 0x00, 0x72, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E,
+ 0x00, 0x00, 0x00,
+// 0x0012: STR_FORM_DRV_DEL_TITLE:0x0012
+ 0x14, 0x44, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x44,
+ 0x00, 0x72, 0x00, 0x69, 0x00, 0x76, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x0013: STR_FORM_DRV_CHG_TITLE:0x0013
+ 0x14, 0x43, 0x00, 0x68, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65, 0x00, 0x20, 0x00, 0x44,
+ 0x00, 0x72, 0x00, 0x69, 0x00, 0x76, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x72,
+ 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x0014: STR_FORM_NEXT_BOOT_HELP:0x0014
+ 0x14, 0x57, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x62, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x76, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x64, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x6E,
+ 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x78, 0x00, 0x74, 0x00, 0x20, 0x00, 0x62, 0x00, 0x6F,
+ 0x00, 0x6F, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x0015: STR_FORM_CON_MAIN_TITLE:0x0015
+ 0x14, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x4F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x00,
+ 0x00,
+// 0x0016: STR_FORM_CON_MAIN_HELP:0x0016
+ 0x14, 0x4D, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x69, 0x00, 0x66, 0x00, 0x79, 0x00, 0x20, 0x00, 0x73,
+ 0x00, 0x79, 0x00, 0x73, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x63, 0x00, 0x6F,
+ 0x00, 0x6E, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x70,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x0017: STR_FORM_CON_IN_TITLE:0x0017
+ 0x14, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x49, 0x00, 0x6E, 0x00, 0x70, 0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x44, 0x00, 0x65,
+ 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x53, 0x00, 0x65, 0x00, 0x6C,
+ 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x0018: STR_FORM_CON_IN_HELP:0x0018
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x62, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x63,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x64,
+ 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x49, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x0019: STR_FORM_CON_OUT_TITLE:0x0019
+ 0x14, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x4F, 0x00, 0x75, 0x00, 0x74, 0x00, 0x70, 0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x44,
+ 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x53, 0x00, 0x65,
+ 0x00, 0x6C, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x001A: STR_FORM_CON_OUT_HELP:0x001A
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x62, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x63,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x64,
+ 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x4F, 0x00, 0x75, 0x00, 0x74, 0x00, 0x00,
+ 0x00,
+// 0x001B: STR_FORM_STD_ERR_TITLE:0x001B
+ 0x14, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x53, 0x00, 0x74, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x61, 0x00, 0x72, 0x00, 0x64,
+ 0x00, 0x20, 0x00, 0x45, 0x00, 0x72, 0x00, 0x72, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x44,
+ 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x53, 0x00, 0x65,
+ 0x00, 0x6C, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x001C: STR_FORM_STD_ERR_HELP:0x001C
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x62, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x63,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x64,
+ 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x53, 0x00, 0x74, 0x00, 0x64, 0x00, 0x45, 0x00, 0x72, 0x00, 0x72, 0x00, 0x00,
+ 0x00,
+// 0x001D: STR_FORM_MODE_TITLE:0x001D
+ 0x14, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x4F, 0x00, 0x75, 0x00, 0x74, 0x00, 0x70, 0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4D,
+ 0x00, 0x6F, 0x00, 0x64, 0x00, 0x65, 0x00, 0x20, 0x00, 0x53, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x65,
+ 0x00, 0x63, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x001E: STR_FORM_MODE_HELP:0x001E
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x4F,
+ 0x00, 0x75, 0x00, 0x74, 0x00, 0x70, 0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x6F,
+ 0x00, 0x64, 0x00, 0x65, 0x00, 0x3A, 0x00, 0x20, 0x00, 0x38, 0x00, 0x30, 0x00, 0x78, 0x00, 0x32,
+ 0x00, 0x35, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x31, 0x00, 0x30, 0x00, 0x30, 0x00, 0x78, 0x00, 0x33,
+ 0x00, 0x31, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x65, 0x00, 0x74, 0x00, 0x63, 0x00, 0x2E, 0x00, 0x00,
+ 0x00,
+// 0x001F: STR_FORM_COM_TITLE:0x001F
+ 0x14, 0x43, 0x00, 0x4F, 0x00, 0x4D, 0x00, 0x20, 0x00, 0x41, 0x00, 0x74, 0x00, 0x74, 0x00, 0x72,
+ 0x00, 0x69, 0x00, 0x62, 0x00, 0x75, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x53, 0x00, 0x65,
+ 0x00, 0x74, 0x00, 0x75, 0x00, 0x70, 0x00, 0x20, 0x00, 0x50, 0x00, 0x61, 0x00, 0x67, 0x00, 0x65,
+ 0x00, 0x00, 0x00,
+// 0x0020: STR_FORM_COM_HELP:0x0020
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x74, 0x00, 0x75, 0x00, 0x70, 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F,
+ 0x00, 0x6D, 0x00, 0x50, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x74, 0x00, 0x20, 0x00, 0x42, 0x00, 0x61,
+ 0x00, 0x75, 0x00, 0x64, 0x00, 0x52, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x2C, 0x00, 0x20,
+ 0x00, 0x44, 0x00, 0x61, 0x00, 0x74, 0x00, 0x61, 0x00, 0x42, 0x00, 0x69, 0x00, 0x74, 0x00, 0x73,
+ 0x00, 0x2C, 0x00, 0x20, 0x00, 0x53, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x42, 0x00, 0x69,
+ 0x00, 0x74, 0x00, 0x73, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x50, 0x00, 0x61, 0x00, 0x72, 0x00, 0x69,
+ 0x00, 0x74, 0x00, 0x79, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20, 0x00, 0x54,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x6D, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x54,
+ 0x00, 0x79, 0x00, 0x70, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0021: STR_FORM_DRV_ADD_FILE_TITLE:0x0021
+ 0x14, 0x41, 0x00, 0x64, 0x00, 0x64, 0x00, 0x20, 0x00, 0x44, 0x00, 0x72, 0x00, 0x69, 0x00, 0x76,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F,
+ 0x00, 0x6E, 0x00, 0x20, 0x00, 0x55, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x20,
+ 0x00, 0x46, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0022: STR_FORM_DRV_ADD_HANDLE_TITLE:0x0022
+ 0x14, 0x41, 0x00, 0x64, 0x00, 0x64, 0x00, 0x20, 0x00, 0x44, 0x00, 0x72, 0x00, 0x69, 0x00, 0x76,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F,
+ 0x00, 0x6E, 0x00, 0x20, 0x00, 0x55, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x20,
+ 0x00, 0x48, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0023: STR_FORM_BOOT_ADD_DESC_TITLE:0x0023
+ 0x14, 0x4D, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x69, 0x00, 0x66, 0x00, 0x79, 0x00, 0x20, 0x00, 0x42,
+ 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x44, 0x00, 0x65, 0x00, 0x73, 0x00, 0x63, 0x00, 0x72,
+ 0x00, 0x69, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x0024: STR_FORM_DRV_ADD_DESC_TITLE:0x0024
+ 0x14, 0x4D, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x69, 0x00, 0x66, 0x00, 0x79, 0x00, 0x20, 0x00, 0x44,
+ 0x00, 0x72, 0x00, 0x69, 0x00, 0x76, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x44, 0x00, 0x65, 0x00, 0x73,
+ 0x00, 0x63, 0x00, 0x72, 0x00, 0x69, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E,
+ 0x00, 0x00, 0x00,
+// 0x0025: STR_NUM_AUTO_BOOT:0x0025
+ 0x14, 0x41, 0x00, 0x75, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x42, 0x00, 0x6F, 0x00, 0x6F,
+ 0x00, 0x74, 0x00, 0x20, 0x00, 0x54, 0x00, 0x69, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x2D, 0x00, 0x6F,
+ 0x00, 0x75, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x0026: STR_HLP_AUTO_BOOT:0x0026
+ 0x14, 0x52, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65, 0x00, 0x3A, 0x00, 0x20, 0x00, 0x30,
+ 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x36, 0x00, 0x35, 0x00, 0x35, 0x00, 0x33,
+ 0x00, 0x35, 0x00, 0x20, 0x00, 0x73, 0x00, 0x65, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x64,
+ 0x00, 0x73, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x30, 0x00, 0x20, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x61,
+ 0x00, 0x6E, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x77, 0x00, 0x61,
+ 0x00, 0x69, 0x00, 0x74, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x36, 0x00, 0x35, 0x00, 0x35, 0x00, 0x33,
+ 0x00, 0x35, 0x00, 0x20, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x77, 0x00, 0x61, 0x00, 0x69, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x20,
+ 0x00, 0x66, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x6B, 0x00, 0x65, 0x00, 0x79, 0x00, 0x00,
+ 0x00,
+// 0x0027: STR_BOOT_NEXT:0x0027
+ 0x14, 0x42, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4E, 0x00, 0x65, 0x00, 0x78,
+ 0x00, 0x74, 0x00, 0x20, 0x00, 0x56, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x75, 0x00, 0x65, 0x00, 0x00,
+ 0x00,
+// 0x0028: STR_BOOT_NEXT_HELP:0x0028
+ 0x14, 0x4E, 0x00, 0x65, 0x00, 0x78, 0x00, 0x74, 0x00, 0x20, 0x00, 0x62, 0x00, 0x6F, 0x00, 0x6F,
+ 0x00, 0x74, 0x00, 0x20, 0x00, 0x75, 0x00, 0x73, 0x00, 0x65, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68,
+ 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x62, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20,
+ 0x00, 0x6F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x0029: STR_LOAD_OPTION_DESC:0x0029
+ 0x14, 0x49, 0x00, 0x6E, 0x00, 0x70, 0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x64, 0x00, 0x65, 0x00, 0x73, 0x00, 0x63, 0x00, 0x72, 0x00, 0x69,
+ 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x002A: STR_LOAD_OPTION_FORCE_RECON:0x002A
+ 0x14, 0x4C, 0x00, 0x6F, 0x00, 0x61, 0x00, 0x64, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70, 0x00, 0x74,
+ 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x52, 0x00, 0x65, 0x00, 0x63, 0x00, 0x6F,
+ 0x00, 0x6E, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x002B: STR_SAVE_AND_EXIT:0x002B
+ 0x14, 0x43, 0x00, 0x6F, 0x00, 0x6D, 0x00, 0x6D, 0x00, 0x69, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43,
+ 0x00, 0x68, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x69, 0x00, 0x74, 0x00, 0x00,
+ 0x00,
+// 0x002C: STR_NO_SAVE_AND_EXIT:0x002C
+ 0x14, 0x44, 0x00, 0x69, 0x00, 0x73, 0x00, 0x63, 0x00, 0x61, 0x00, 0x72, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x43, 0x00, 0x68, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x61, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x69, 0x00, 0x74,
+ 0x00, 0x00, 0x00,
+// 0x002D: STR_CON_MODE_SETUP:0x002D
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73,
+ 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x75, 0x00, 0x74, 0x00, 0x70,
+ 0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x65, 0x00, 0x00,
+ 0x00,
+// 0x002E: STR_CON_COM_SETUP:0x002E
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43, 0x00, 0x4F, 0x00, 0x4D, 0x00, 0x20,
+ 0x00, 0x41, 0x00, 0x74, 0x00, 0x74, 0x00, 0x72, 0x00, 0x69, 0x00, 0x62, 0x00, 0x75, 0x00, 0x74,
+ 0x00, 0x65, 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x002F: STR_COM_TERMI_TYPE:0x002F
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43, 0x00, 0x4F, 0x00, 0x4D, 0x00, 0x20,
+ 0x00, 0x54, 0x00, 0x65, 0x00, 0x72, 0x00, 0x6D, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x6C,
+ 0x00, 0x20, 0x00, 0x54, 0x00, 0x79, 0x00, 0x70, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0030: STR_COM_FLOW_CONTROL:0x0030
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43, 0x00, 0x4F, 0x00, 0x4D, 0x00, 0x20,
+ 0x00, 0x46, 0x00, 0x6C, 0x00, 0x6F, 0x00, 0x77, 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F, 0x00, 0x6E,
+ 0x00, 0x74, 0x00, 0x72, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x00, 0x00,
+// 0x0031: STR_COM_BAUD_RATE:0x0031
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43, 0x00, 0x4F, 0x00, 0x4D, 0x00, 0x20,
+ 0x00, 0x42, 0x00, 0x61, 0x00, 0x75, 0x00, 0x64, 0x00, 0x20, 0x00, 0x52, 0x00, 0x61, 0x00, 0x74,
+ 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0032: STR_COM_DATA_BITS:0x0032
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43, 0x00, 0x4F, 0x00, 0x4D, 0x00, 0x20,
+ 0x00, 0x44, 0x00, 0x61, 0x00, 0x74, 0x00, 0x61, 0x00, 0x20, 0x00, 0x42, 0x00, 0x69, 0x00, 0x74,
+ 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x0033: STR_COM_PARITY:0x0033
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43, 0x00, 0x4F, 0x00, 0x4D, 0x00, 0x20,
+ 0x00, 0x50, 0x00, 0x61, 0x00, 0x72, 0x00, 0x69, 0x00, 0x74, 0x00, 0x79, 0x00, 0x00, 0x00,
+// 0x0034: STR_COM_STOP_BITS:0x0034
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43, 0x00, 0x4F, 0x00, 0x4D, 0x00, 0x20,
+ 0x00, 0x53, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x20, 0x00, 0x42, 0x00, 0x69, 0x00, 0x74,
+ 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x0035: STR_COM_BAUD_RATE_0:0x0035
+ 0x14, 0x31, 0x00, 0x31, 0x00, 0x35, 0x00, 0x32, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0036: STR_COM_BAUD_RATE_1:0x0036
+ 0x14, 0x35, 0x00, 0x37, 0x00, 0x36, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0037: STR_COM_BAUD_RATE_2:0x0037
+ 0x14, 0x33, 0x00, 0x38, 0x00, 0x34, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0038: STR_COM_BAUD_RATE_3:0x0038
+ 0x14, 0x31, 0x00, 0x39, 0x00, 0x32, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0039: STR_COM_BAUD_RATE_4:0x0039
+ 0x14, 0x39, 0x00, 0x36, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x003A: STR_COM_BAUD_RATE_5:0x003A
+ 0x14, 0x37, 0x00, 0x32, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x003B: STR_COM_BAUD_RATE_6:0x003B
+ 0x14, 0x34, 0x00, 0x38, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x003C: STR_COM_BAUD_RATE_7:0x003C
+ 0x14, 0x33, 0x00, 0x36, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x003D: STR_COM_BAUD_RATE_8:0x003D
+ 0x14, 0x32, 0x00, 0x34, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x003E: STR_COM_BAUD_RATE_9:0x003E
+ 0x14, 0x32, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x003F: STR_COM_BAUD_RATE_10:0x003F
+ 0x14, 0x31, 0x00, 0x38, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0040: STR_COM_BAUD_RATE_11:0x0040
+ 0x14, 0x31, 0x00, 0x32, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0041: STR_COM_BAUD_RATE_12:0x0041
+ 0x14, 0x36, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0042: STR_COM_BAUD_RATE_13:0x0042
+ 0x14, 0x33, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0043: STR_COM_BAUD_RATE_14:0x0043
+ 0x14, 0x31, 0x00, 0x35, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0044: STR_COM_BAUD_RATE_15:0x0044
+ 0x14, 0x31, 0x00, 0x33, 0x00, 0x34, 0x00, 0x00, 0x00,
+// 0x0045: STR_COM_BAUD_RATE_16:0x0045
+ 0x14, 0x31, 0x00, 0x31, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0046: STR_COM_BAUD_RATE_17:0x0046
+ 0x14, 0x37, 0x00, 0x35, 0x00, 0x00, 0x00,
+// 0x0047: STR_COM_BAUD_RATE_18:0x0047
+ 0x14, 0x35, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0048: STR_COM_DATA_BITS_0:0x0048
+ 0x14, 0x35, 0x00, 0x00, 0x00,
+// 0x0049: STR_COM_DATA_BITS_1:0x0049
+ 0x14, 0x36, 0x00, 0x00, 0x00,
+// 0x004A: STR_COM_DATA_BITS_2:0x004A
+ 0x14, 0x37, 0x00, 0x00, 0x00,
+// 0x004B: STR_COM_DATA_BITS_3:0x004B
+ 0x14, 0x38, 0x00, 0x00, 0x00,
+// 0x004C: STR_COM_PAR_0:0x004C
+ 0x14, 0x4E, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x004D: STR_COM_PAR_1:0x004D
+ 0x14, 0x45, 0x00, 0x76, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x004E: STR_COM_PAR_2:0x004E
+ 0x14, 0x4F, 0x00, 0x64, 0x00, 0x64, 0x00, 0x00, 0x00,
+// 0x004F: STR_COM_PAR_3:0x004F
+ 0x14, 0x4D, 0x00, 0x61, 0x00, 0x72, 0x00, 0x6B, 0x00, 0x00, 0x00,
+// 0x0050: STR_COM_PAR_4:0x0050
+ 0x14, 0x53, 0x00, 0x70, 0x00, 0x61, 0x00, 0x63, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0051: STR_COM_STOP_BITS_0:0x0051
+ 0x14, 0x4F, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0052: STR_COM_STOP_BITS_1:0x0052
+ 0x14, 0x4F, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x20, 0x00, 0x41, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x41, 0x00, 0x20, 0x00, 0x48, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x66, 0x00, 0x00, 0x00,
+// 0x0053: STR_COM_STOP_BITS_2:0x0053
+ 0x14, 0x54, 0x00, 0x77, 0x00, 0x6F, 0x00, 0x00, 0x00,
+// 0x0054: STR_COM_TYPE_0:0x0054
+ 0x14, 0x50, 0x00, 0x43, 0x00, 0x5F, 0x00, 0x41, 0x00, 0x4E, 0x00, 0x53, 0x00, 0x49, 0x00, 0x00,
+ 0x00,
+// 0x0055: STR_COM_TYPE_1:0x0055
+ 0x14, 0x56, 0x00, 0x54, 0x00, 0x5F, 0x00, 0x31, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x0056: STR_COM_TYPE_2:0x0056
+ 0x14, 0x56, 0x00, 0x54, 0x00, 0x5F, 0x00, 0x31, 0x00, 0x30, 0x00, 0x30, 0x00, 0x5F, 0x00, 0x50,
+ 0x00, 0x4C, 0x00, 0x55, 0x00, 0x53, 0x00, 0x00, 0x00,
+// 0x0057: STR_COM_TYPE_3:0x0057
+ 0x14, 0x56, 0x00, 0x54, 0x00, 0x5F, 0x00, 0x55, 0x00, 0x54, 0x00, 0x46, 0x00, 0x38, 0x00, 0x00,
+ 0x00,
+// 0x0058: STR_COM_TYPE_4:0x0058
+ 0x14, 0x54, 0x00, 0x54, 0x00, 0x59, 0x00, 0x5F, 0x00, 0x54, 0x00, 0x45, 0x00, 0x52, 0x00, 0x4D,
+ 0x00, 0x00, 0x00,
+// 0x0059: STR_COM_TYPE_5:0x0059
+ 0x14, 0x4C, 0x00, 0x49, 0x00, 0x4E, 0x00, 0x55, 0x00, 0x58, 0x00, 0x00, 0x00,
+// 0x005A: STR_COM_TYPE_6:0x005A
+ 0x14, 0x58, 0x00, 0x54, 0x00, 0x45, 0x00, 0x52, 0x00, 0x4D, 0x00, 0x5F, 0x00, 0x52, 0x00, 0x36,
+ 0x00, 0x00, 0x00,
+// 0x005B: STR_COM_TYPE_7:0x005B
+ 0x14, 0x56, 0x00, 0x54, 0x00, 0x5F, 0x00, 0x34, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
+// 0x005C: STR_COM_TYPE_8:0x005C
+ 0x14, 0x53, 0x00, 0x43, 0x00, 0x4F, 0x00, 0x00, 0x00,
+// 0x005D: STR_FORM_GOTO_MAIN:0x005D
+ 0x14, 0x47, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x42, 0x00, 0x61, 0x00, 0x63, 0x00, 0x6B, 0x00, 0x20,
+ 0x00, 0x54, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x20,
+ 0x00, 0x50, 0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x005E: STR_BOOT_FROM_FILE:0x005E
+ 0x14, 0x42, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x46, 0x00, 0x72, 0x00, 0x6F,
+ 0x00, 0x6D, 0x00, 0x20, 0x00, 0x46, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x005F: STR_BOOT_FROM_FILE_HELP:0x005F
+ 0x14, 0x42, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x73, 0x00, 0x79, 0x00, 0x73,
+ 0x00, 0x74, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x66, 0x00, 0x72, 0x00, 0x6F, 0x00, 0x6D,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x20, 0x00, 0x66, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x64, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63,
+ 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0060: STR_OPTIONAL_DATA:0x0060
+ 0x14, 0x49, 0x00, 0x6E, 0x00, 0x70, 0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x44,
+ 0x00, 0x61, 0x00, 0x74, 0x00, 0x61, 0x00, 0x00, 0x00,
+// 0x0061: STR_CHANGE_ORDER:0x0061
+ 0x14, 0x43, 0x00, 0x68, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72,
+ 0x00, 0x00, 0x00,
+// 0x0062: STR_HARDWARE_FLOW_CONTROL:0x0062
+ 0x14, 0x48, 0x00, 0x61, 0x00, 0x72, 0x00, 0x64, 0x00, 0x77, 0x00, 0x61, 0x00, 0x72, 0x00, 0x65,
+ 0x00, 0x00, 0x00,
+// 0x0063: STR_NONE_FLOW_CONTROL:0x0063
+ 0x14, 0x4E, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x00, 0x00,
+ 0x00,
+
+};
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManager.c b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManager.c
new file mode 100644
index 000000000000..d4311f68529a
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManager.c
@@ -0,0 +1,108 @@
+//
+// DO NOT EDIT -- auto-generated file
+//
+// This file is generated by the vfrcompiler utility
+//
+
+unsigned char BootMaintenanceManagerBin[] = {
+ // ARRAY LENGTH
+
+ 0x94, 0x05, 0x00, 0x00,
+
+ // PACKAGE HEADER
+
+ 0x90, 0x05, 0x00, 0x02,
+
+ // PACKAGE DATA
+
+ 0x0E, 0xA7, 0xC7, 0x37, 0x22, 0x64, 0xD4, 0x35, 0x2D, 0x47, 0x83, 0x65, 0x12, 0xE0, 0xCC, 0xF2,
+ 0x7A, 0x22, 0x05, 0x00, 0x07, 0x00, 0x01, 0xF8, 0x09, 0x88, 0xE5, 0xC1, 0xFB, 0xE2, 0x48, 0x88,
+ 0x3A, 0xA3, 0x0F, 0xDC, 0x4B, 0x44, 0x1E, 0x5C, 0x06, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x06, 0x00,
+ 0x00, 0x01, 0x00, 0x24, 0x1E, 0xC7, 0x37, 0x22, 0x64, 0xD4, 0x35, 0x2D, 0x47, 0x83, 0x65, 0x12,
+ 0xE0, 0xCC, 0xF2, 0x7A, 0x22, 0x00, 0x10, 0xF8, 0x0D, 0x42, 0x6D, 0x6D, 0x44, 0x61, 0x74, 0x61,
+ 0x00, 0x01, 0x86, 0x01, 0x10, 0x05, 0x00, 0x0A, 0x82, 0x46, 0x02, 0x0C, 0x8F, 0x03, 0x00, 0x03,
+ 0x00, 0x17, 0x11, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x29, 0x02, 0x29, 0x02, 0x5F, 0x15,
+ 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE,
+ 0x00, 0xFC, 0xFF, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53,
+ 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0xFD, 0xFF, 0x29, 0x02, 0x01, 0x86, 0x14, 0x10, 0x06, 0x00,
+ 0x0F, 0x0F, 0x5D, 0x00, 0x5D, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x10, 0x0F,
+ 0x0F, 0x0B, 0x00, 0x0C, 0x00, 0x02, 0x10, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x14, 0x10, 0x0F, 0x0F,
+ 0x0D, 0x00, 0x0E, 0x00, 0x03, 0x10, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x03, 0x10, 0x0F, 0x0F, 0x0F,
+ 0x00, 0x0E, 0x00, 0x04, 0x10, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x04, 0x10, 0x29, 0x02, 0x01, 0x86,
+ 0x15, 0x10, 0x09, 0x00, 0x0F, 0x0F, 0x5D, 0x00, 0x5D, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+ 0x00, 0x01, 0x10, 0x0F, 0x0F, 0x10, 0x00, 0x11, 0x00, 0x05, 0x10, 0x00, 0x00, 0xFF, 0xFF, 0x04,
+ 0x05, 0x10, 0x0F, 0x0F, 0x12, 0x00, 0x14, 0x00, 0x06, 0x10, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x06,
+ 0x10, 0x0F, 0x0F, 0x13, 0x00, 0x14, 0x00, 0x07, 0x10, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x07, 0x10,
+ 0x29, 0x02, 0x01, 0x86, 0x02, 0x10, 0x23, 0x00, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87,
+ 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x02, 0x10, 0x5F, 0x15, 0x35,
+ 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00,
+ 0xFF, 0xFF, 0x02, 0x87, 0x02, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x1C, 0x90, 0x29, 0x00, 0x02,
+ 0x00, 0x0F, 0x11, 0x00, 0x10, 0x66, 0x0A, 0x04, 0x06, 0x4B, 0x00, 0x29, 0x02, 0x1C, 0x90, 0x60,
+ 0x00, 0x02, 0x00, 0x10, 0x11, 0x00, 0x10, 0x2E, 0x0B, 0x04, 0x00, 0x78, 0x00, 0x29, 0x02, 0x02,
+ 0x87, 0x02, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x0C, 0x8F, 0x2B, 0x00, 0x2B, 0x00, 0x13, 0x11,
+ 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x29, 0x02, 0x0C, 0x8F, 0x2C, 0x00, 0x2C, 0x00, 0x14,
+ 0x11, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x29, 0x02, 0x29, 0x02, 0x01, 0x86, 0x03, 0x10,
+ 0x0D, 0x00, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C,
+ 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x03, 0x10, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93,
+ 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0xFF, 0xFF, 0x29, 0x02, 0x01, 0x86,
+ 0x04, 0x10, 0x0F, 0x00, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66,
+ 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x04, 0x10, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0,
+ 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0xFF, 0xFF, 0x29, 0x02,
+ 0x01, 0x86, 0x05, 0x10, 0x10, 0x00, 0x0F, 0x0F, 0x5D, 0x00, 0x5D, 0x00, 0x03, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF, 0x00, 0x01, 0x10, 0x0F, 0x0F, 0x21, 0x00, 0x21, 0x00, 0x0E, 0x10, 0x00, 0x00, 0xFF,
+ 0xFF, 0x04, 0x15, 0x10, 0x29, 0x02, 0x01, 0x86, 0x0E, 0x10, 0x24, 0x00, 0x5F, 0x15, 0x35, 0x17,
+ 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x0E,
+ 0x10, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38,
+ 0xAF, 0x48, 0xCE, 0x00, 0xFF, 0xFF, 0x02, 0x87, 0x02, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x1C,
+ 0x90, 0x29, 0x00, 0x02, 0x00, 0x11, 0x11, 0x00, 0x10, 0x2C, 0x0C, 0x04, 0x06, 0x4B, 0x00, 0x29,
+ 0x02, 0x1C, 0x90, 0x60, 0x00, 0x02, 0x00, 0x12, 0x11, 0x00, 0x10, 0xF4, 0x0C, 0x04, 0x00, 0x78,
+ 0x00, 0x29, 0x02, 0x06, 0x8E, 0x2A, 0x00, 0x2A, 0x00, 0x04, 0x00, 0x00, 0x10, 0xF5, 0x0D, 0x00,
+ 0x01, 0x29, 0x02, 0x02, 0x87, 0x02, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x0C, 0x8F, 0x2B, 0x00,
+ 0x2B, 0x00, 0x15, 0x11, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x29, 0x02, 0x0C, 0x8F, 0x2C,
+ 0x00, 0x2C, 0x00, 0x16, 0x11, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x29, 0x02, 0x29, 0x02,
+ 0x01, 0x86, 0x06, 0x10, 0x12, 0x00, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41,
+ 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x06, 0x10, 0x5F, 0x15, 0x35, 0x17, 0x0B,
+ 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0xFF, 0xFF,
+ 0x29, 0x02, 0x01, 0x86, 0x07, 0x10, 0x13, 0x00, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87,
+ 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x07, 0x10, 0x5F, 0x15, 0x35,
+ 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00,
+ 0xFF, 0xFF, 0x29, 0x02, 0x01, 0x86, 0x08, 0x10, 0x15, 0x00, 0x0F, 0x0F, 0x5D, 0x00, 0x5D, 0x00,
+ 0x05, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x10, 0x0F, 0x0F, 0x17, 0x00, 0x18, 0x00, 0x09,
+ 0x10, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x09, 0x10, 0x0F, 0x0F, 0x19, 0x00, 0x1A, 0x00, 0x0A, 0x10,
+ 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x0A, 0x10, 0x0F, 0x0F, 0x1B, 0x00, 0x1C, 0x00, 0x0B, 0x10, 0x00,
+ 0x00, 0xFF, 0xFF, 0x04, 0x0B, 0x10, 0x0F, 0x0F, 0x1D, 0x00, 0x1E, 0x00, 0x21, 0x10, 0x00, 0x00,
+ 0xFF, 0xFF, 0x04, 0x21, 0x10, 0x0F, 0x0F, 0x1F, 0x00, 0x20, 0x00, 0x17, 0x10, 0x00, 0x00, 0xFF,
+ 0xFF, 0x04, 0x17, 0x10, 0x29, 0x02, 0x01, 0x86, 0x21, 0x10, 0x1D, 0x00, 0x5F, 0x15, 0x35, 0x17,
+ 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x21,
+ 0x10, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38,
+ 0xAF, 0x48, 0xCE, 0x00, 0xFF, 0xFF, 0x29, 0x02, 0x01, 0x86, 0x17, 0x10, 0x1F, 0x00, 0x5F, 0x15,
+ 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE,
+ 0x00, 0x17, 0x10, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53,
+ 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0xFF, 0xFF, 0x29, 0x02, 0x01, 0x86, 0x18, 0x10, 0x2E, 0x00,
+ 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF,
+ 0x48, 0xCE, 0x00, 0x18, 0x10, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2,
+ 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0xFF, 0xFF, 0x29, 0x02, 0x01, 0x86, 0x0C, 0x10,
+ 0x0B, 0x00, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C,
+ 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x0C, 0x10, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93,
+ 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0xFF, 0xFF, 0x29, 0x02, 0x01, 0x86,
+ 0x0D, 0x10, 0x0B, 0x00, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66,
+ 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x0D, 0x10, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0,
+ 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0xFF, 0xFF, 0x29, 0x02,
+ 0x01, 0x86, 0x0F, 0x10, 0x22, 0x00, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41,
+ 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x0F, 0x10, 0x5F, 0x15, 0x35, 0x17, 0x0B,
+ 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0xFF, 0xFF,
+ 0x29, 0x02, 0x01, 0x86, 0x10, 0x10, 0x24, 0x00, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87,
+ 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x10, 0x10, 0x5F, 0x15, 0x35,
+ 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00,
+ 0xFF, 0xFF, 0x29, 0x02, 0x01, 0x86, 0x09, 0x10, 0x17, 0x00, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F,
+ 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x09, 0x10, 0x5F,
+ 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48,
+ 0xCE, 0x00, 0xFF, 0xFF, 0x29, 0x02, 0x01, 0x86, 0x0A, 0x10, 0x19, 0x00, 0x5F, 0x15, 0x35, 0x17,
+ 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x0A,
+ 0x10, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38,
+ 0xAF, 0x48, 0xCE, 0x00, 0xFF, 0xFF, 0x29, 0x02, 0x01, 0x86, 0x0B, 0x10, 0x1B, 0x00, 0x5F, 0x15,
+ 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE,
+ 0x00, 0x0B, 0x10, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53,
+ 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0xFF, 0xFF, 0x29, 0x02, 0x29, 0x02
+
+};
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/AutoGen.c b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/AutoGen.c
new file mode 100644
index 000000000000..a92924f36e0e
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/AutoGen.c
@@ -0,0 +1,115 @@
+
+//
+//Unicode String Pack Definition
+//
+unsigned char BootManagerUiLibStrings[] = {
+
+// STRGATHER_OUTPUT_HEADER
+ 0x34, 0x04, 0x00, 0x00,
+
+// PACKAGE HEADER
+
+ 0x40, 0x02, 0x00, 0x04, 0x34, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x65, 0x6E,
+ 0x2D, 0x55, 0x53, 0x00,
+
+// PACKAGE DATA
+
+// 0x0001: $PRINTABLE_LANGUAGE_NAME:0x0001
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x73, 0x00, 0x68, 0x00, 0x00,
+ 0x00,
+// 0x0002: STR_BM_BANNER:0x0002
+ 0x14, 0x42, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x6E,
+ 0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x0003: STR_BOOT_MANAGER_HELP:0x0003
+ 0x14, 0x54, 0x00, 0x68, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x73, 0x00, 0x65, 0x00, 0x6C,
+ 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x77,
+ 0x00, 0x69, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x74, 0x00, 0x61, 0x00, 0x6B, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x79, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x42, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00, 0x72,
+ 0x00, 0x00, 0x00,
+// 0x0004: STR_HELP_FOOTER:0x0004
+ 0x14, 0x55, 0x00, 0x73, 0x00, 0x65, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x3C, 0x00, 0x91, 0x21, 0x3E, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x3C, 0x00, 0x93, 0x21, 0x3E, 0x00, 0x20, 0x00, 0x6B, 0x00, 0x65, 0x00, 0x79, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x63, 0x00, 0x68, 0x00, 0x6F, 0x00, 0x6F,
+ 0x00, 0x73, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61, 0x00, 0x20, 0x00, 0x62, 0x00, 0x6F, 0x00, 0x6F,
+ 0x00, 0x74, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E,
+ 0x00, 0x2C, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x3C, 0x00, 0x45,
+ 0x00, 0x6E, 0x00, 0x74, 0x00, 0x65, 0x00, 0x72, 0x00, 0x3E, 0x00, 0x20, 0x00, 0x6B, 0x00, 0x65,
+ 0x00, 0x79, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x73, 0x00, 0x65, 0x00, 0x6C,
+ 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x20, 0x00, 0x61, 0x00, 0x20, 0x00, 0x62, 0x00, 0x6F,
+ 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F,
+ 0x00, 0x6E, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x3C, 0x00, 0x45, 0x00, 0x73, 0x00, 0x63, 0x00, 0x3E,
+ 0x00, 0x20, 0x00, 0x6B, 0x00, 0x65, 0x00, 0x79, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20,
+ 0x00, 0x65, 0x00, 0x78, 0x00, 0x69, 0x00, 0x74, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x42, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x61,
+ 0x00, 0x6E, 0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x65,
+ 0x00, 0x6E, 0x00, 0x75, 0x00, 0x2E, 0x00, 0x00, 0x00,
+// 0x0005: STR_BOOT_OPTION_BANNER:0x0005
+ 0x14, 0x42, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x6E,
+ 0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x65, 0x00, 0x6E,
+ 0x00, 0x75, 0x00, 0x00, 0x00,
+// 0x0006: STR_ANY_KEY_CONTINUE:0x0006
+ 0x14, 0x50, 0x00, 0x72, 0x00, 0x65, 0x00, 0x73, 0x00, 0x73, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6E,
+ 0x00, 0x79, 0x00, 0x20, 0x00, 0x6B, 0x00, 0x65, 0x00, 0x79, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F,
+ 0x00, 0x20, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x75,
+ 0x00, 0x65, 0x00, 0x2E, 0x00, 0x2E, 0x00, 0x2E, 0x00, 0x00, 0x00,
+// 0x0007: STR_LAST_STRING:0x0007
+ 0x14, 0x00, 0x00,
+ 0x00,
+// PACKAGE HEADER
+
+ 0xF0, 0x01, 0x00, 0x04, 0x34, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x66, 0x72,
+ 0x2D, 0x46, 0x52, 0x00,
+
+// PACKAGE DATA
+
+// 0x0001: $PRINTABLE_LANGUAGE_NAME:0x0001
+ 0x14, 0x46, 0x00, 0x72, 0x00, 0x61, 0x00, 0x6E, 0x00, 0xE7, 0x00, 0x61, 0x00, 0x69, 0x00, 0x73,
+ 0x00, 0x00, 0x00,
+// 0x0002: STR_BM_BANNER:0x0002
+ 0x14, 0x42, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x6E,
+ 0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x0003: STR_BOOT_MANAGER_HELP:0x0003
+ 0x14, 0x54, 0x00, 0x68, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x73, 0x00, 0x65, 0x00, 0x6C,
+ 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x77,
+ 0x00, 0x69, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x74, 0x00, 0x61, 0x00, 0x6B, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x79, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x42, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00, 0x72,
+ 0x00, 0x00, 0x00,
+// 0x0004: STR_HELP_FOOTER:0x0004
+ 0x14, 0x3C, 0x00, 0x91, 0x21, 0x3E, 0x00, 0x20, 0x00, 0x70, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x72,
+ 0x00, 0x20, 0x00, 0x3C, 0x00, 0x93, 0x21, 0x3E, 0x00, 0x20, 0x00, 0x63, 0x00, 0x68, 0x00, 0x61,
+ 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x6C, 0x00, 0x27, 0x00, 0x6F,
+ 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x3C,
+ 0x00, 0x45, 0x00, 0x4E, 0x00, 0x54, 0x00, 0x52, 0x00, 0x45, 0x00, 0x52, 0x00, 0x3E, 0x00, 0x20,
+ 0x00, 0x63, 0x00, 0x68, 0x00, 0x6F, 0x00, 0x69, 0x00, 0x73, 0x00, 0x69, 0x00, 0x72, 0x00, 0x20,
+ 0x00, 0x75, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x3C, 0x00, 0x45, 0x00, 0x53, 0x00, 0x43,
+ 0x00, 0x3E, 0x00, 0x20, 0x00, 0x70, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x72, 0x00, 0x20, 0x00, 0x73,
+ 0x00, 0x6F, 0x00, 0x72, 0x00, 0x74, 0x00, 0x69, 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x0005: STR_BOOT_OPTION_BANNER:0x0005
+ 0x14, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x75, 0x00, 0x20,
+ 0x00, 0x64, 0x00, 0x27, 0x00, 0x4F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E,
+ 0x00, 0x20, 0x00, 0x64, 0x00, 0x65, 0x00, 0x20, 0x00, 0x42, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x74,
+ 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0006: STR_ANY_KEY_CONTINUE:0x0006
+ 0x14, 0x41, 0x00, 0x70, 0x00, 0x70, 0x00, 0x75, 0x00, 0x69, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6E,
+ 0x00, 0x27, 0x00, 0x69, 0x00, 0x6D, 0x00, 0x70, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x74, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x71, 0x00, 0x75, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x70, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x72, 0x00, 0x20, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x6E,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x75, 0x00, 0x65, 0x00, 0x72, 0x00, 0x2E, 0x00, 0x2E,
+ 0x00, 0x2E, 0x00, 0x00, 0x00,
+// 0x0007: STR_LAST_STRING:0x0007
+ 0x14, 0x00, 0x00,
+ 0x00,
+
+};
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerVfr.c b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerVfr.c
new file mode 100644
index 000000000000..cd4847e5f90d
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerVfr.c
@@ -0,0 +1,30 @@
+//
+// DO NOT EDIT -- auto-generated file
+//
+// This file is generated by the vfrcompiler utility
+//
+
+unsigned char BootManagerVfrBin[] = {
+ // ARRAY LENGTH
+
+ 0xB3, 0x00, 0x00, 0x00,
+
+ // PACKAGE HEADER
+
+ 0xAF, 0x00, 0x00, 0x02,
+
+ // PACKAGE DATA
+
+ 0x0E, 0xA7, 0xFE, 0xC3, 0x7B, 0x84, 0x74, 0xB9, 0x6D, 0x44, 0x94, 0x49, 0x5A, 0xD5, 0x41, 0x2E,
+ 0x99, 0x3B, 0x02, 0x00, 0x03, 0x00, 0x01, 0xF8, 0x09, 0x88, 0xE5, 0xC1, 0xFB, 0xE2, 0x48, 0x88,
+ 0x3A, 0xA3, 0x0F, 0xDC, 0x4B, 0x44, 0x1E, 0x5C, 0x06, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x06, 0x00,
+ 0x00, 0x01, 0x00, 0x01, 0x86, 0x00, 0x10, 0x02, 0x00, 0x02, 0x87, 0x07, 0x00, 0x00, 0x00, 0x00,
+ 0x29, 0x02, 0x02, 0x87, 0x05, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x02, 0x87, 0x07, 0x00, 0x00,
+ 0x00, 0x00, 0x29, 0x02, 0x0A, 0x82, 0x46, 0x02, 0x0C, 0x8F, 0x07, 0x00, 0x07, 0x00, 0x12, 0x12,
+ 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x29, 0x02, 0x29, 0x02, 0x5F, 0x15, 0x35, 0x17, 0x0B,
+ 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x00, 0x00,
+ 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF,
+ 0x48, 0xCE, 0x00, 0x01, 0x00, 0x02, 0x87, 0x07, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x02, 0x87,
+ 0x04, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x29, 0x02, 0x29, 0x02
+
+};
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/AutoGen.c b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/AutoGen.c
new file mode 100644
index 000000000000..508ecc9d0282
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/AutoGen.c
@@ -0,0 +1,138 @@
+
+//
+//Unicode String Pack Definition
+//
+unsigned char DeviceManagerUiLibStrings[] = {
+
+// STRGATHER_OUTPUT_HEADER
+ 0xB8, 0x04, 0x00, 0x00,
+
+// PACKAGE HEADER
+
+ 0x67, 0x02, 0x00, 0x04, 0x34, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x65, 0x6E,
+ 0x2D, 0x55, 0x53, 0x00,
+
+// PACKAGE DATA
+
+// 0x0001: $PRINTABLE_LANGUAGE_NAME:0x0001
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x73, 0x00, 0x68, 0x00, 0x00,
+ 0x00,
+// 0x0002: STR_EDKII_MENU_TITLE:0x0002
+ 0x14, 0x44, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x4D,
+ 0x00, 0x61, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x0003: STR_EDKII_MENU_HELP:0x0003
+ 0x14, 0x54, 0x00, 0x68, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x73, 0x00, 0x65, 0x00, 0x6C,
+ 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x77,
+ 0x00, 0x69, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x74, 0x00, 0x61, 0x00, 0x6B, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x79, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x44, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69,
+ 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x67,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x0004: STR_DEVICES_LIST:0x0004
+ 0x14, 0x44, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x4C, 0x00, 0x69, 0x00, 0x73, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x0005: STR_MISSING_STRING:0x0005
+ 0x14, 0x4D, 0x00, 0x69, 0x00, 0x73, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x20,
+ 0x00, 0x53, 0x00, 0x74, 0x00, 0x72, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x00, 0x00,
+// 0x0006: STR_EMPTY_STRING:0x0006
+ 0x14, 0x00, 0x00,
+// 0x0007: STR_EXIT_STRING:0x0007
+ 0x14, 0x50, 0x00, 0x72, 0x00, 0x65, 0x00, 0x73, 0x00, 0x73, 0x00, 0x20, 0x00, 0x45, 0x00, 0x53,
+ 0x00, 0x43, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x65, 0x00, 0x78, 0x00, 0x69,
+ 0x00, 0x74, 0x00, 0x2E, 0x00, 0x00, 0x00,
+// 0x0008: STR_FORM_NETWORK_DEVICE_TITLE_HEAD:0x0008
+ 0x14, 0x4E, 0x00, 0x65, 0x00, 0x74, 0x00, 0x77, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x6B, 0x00, 0x20,
+ 0x00, 0x44, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0009: STR_FORM_NETWORK_DEVICE_TITLE:0x0009
+ 0x14, 0x4E, 0x00, 0x65, 0x00, 0x74, 0x00, 0x77, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x6B, 0x00, 0x20,
+ 0x00, 0x44, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x000A: STR_NETWORK_DEVICE_STRING:0x000A
+ 0x14, 0x4E, 0x00, 0x65, 0x00, 0x74, 0x00, 0x77, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x6B, 0x00, 0x20,
+ 0x00, 0x44, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x000B: STR_FORM_NETWORK_DEVICE_LIST_HELP:0x000B
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x74, 0x00, 0x77, 0x00, 0x6F,
+ 0x00, 0x72, 0x00, 0x6B, 0x00, 0x20, 0x00, 0x64, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x61, 0x00, 0x63, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x64,
+ 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x4D, 0x00, 0x41, 0x00, 0x43, 0x00, 0x20, 0x00, 0x61, 0x00, 0x64, 0x00, 0x64, 0x00, 0x72,
+ 0x00, 0x65, 0x00, 0x73, 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x000C: STR_FORM_NETWORK_DEVICE_LIST_TITLE:0x000C
+ 0x14, 0x4E, 0x00, 0x65, 0x00, 0x74, 0x00, 0x77, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x6B, 0x00, 0x20,
+ 0x00, 0x44, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x4C,
+ 0x00, 0x69, 0x00, 0x73, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x000D: STR_NETWORK_DEVICE_LIST_STRING:0x000D
+ 0x14, 0x4E, 0x00, 0x65, 0x00, 0x74, 0x00, 0x77, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x6B, 0x00, 0x20,
+ 0x00, 0x44, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x4C,
+ 0x00, 0x69, 0x00, 0x73, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x000E: STR_NETWORK_DEVICE_HELP:0x000E
+ 0x14, 0x4E, 0x00, 0x65, 0x00, 0x74, 0x00, 0x77, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x6B, 0x00, 0x20,
+ 0x00, 0x44, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x00, 0x00,
+ 0x00,
+// PACKAGE HEADER
+
+ 0x4D, 0x02, 0x00, 0x04, 0x34, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x66, 0x72,
+ 0x2D, 0x46, 0x52, 0x00,
+
+// PACKAGE DATA
+
+// 0x0001: $PRINTABLE_LANGUAGE_NAME:0x0001
+ 0x14, 0x46, 0x00, 0x72, 0x00, 0x61, 0x00, 0x6E, 0x00, 0xE7, 0x00, 0x61, 0x00, 0x69, 0x00, 0x73,
+ 0x00, 0x00, 0x00,
+// 0x0002: STR_EDKII_MENU_TITLE:0x0002
+ 0x14, 0x44, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x4D,
+ 0x00, 0x61, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x0003: STR_EDKII_MENU_HELP:0x0003
+ 0x14, 0x54, 0x00, 0x68, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x73, 0x00, 0x65, 0x00, 0x6C,
+ 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x77,
+ 0x00, 0x69, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x74, 0x00, 0x61, 0x00, 0x6B, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x79, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x44, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69,
+ 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x67,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x0004: STR_DEVICES_LIST:0x0004
+ 0x14, 0x44, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x4C, 0x00, 0x69, 0x00, 0x73, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x0005: STR_MISSING_STRING:0x0005
+ 0x14, 0x4D, 0x00, 0x69, 0x00, 0x73, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x20,
+ 0x00, 0x53, 0x00, 0x74, 0x00, 0x72, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x00, 0x00,
+// 0x0006: STR_EMPTY_STRING:0x0006
+ 0x14, 0x00, 0x00,
+// 0x0007: STR_EXIT_STRING:0x0007
+ 0x14, 0x50, 0x00, 0x72, 0x00, 0x65, 0x00, 0x73, 0x00, 0x73, 0x00, 0x20, 0x00, 0x45, 0x00, 0x53,
+ 0x00, 0x43, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x65, 0x00, 0x78, 0x00, 0x69,
+ 0x00, 0x74, 0x00, 0x2E, 0x00, 0x00, 0x00,
+ 0x21, 0x01, 0x00,
+// 0x0009: STR_FORM_NETWORK_DEVICE_TITLE:0x0009
+ 0x14, 0x4E, 0x00, 0x65, 0x00, 0x74, 0x00, 0x77, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x6B, 0x00, 0x20,
+ 0x00, 0x44, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x000A: STR_NETWORK_DEVICE_STRING:0x000A
+ 0x14, 0x4E, 0x00, 0x65, 0x00, 0x74, 0x00, 0x77, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x6B, 0x00, 0x20,
+ 0x00, 0x44, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x000B: STR_FORM_NETWORK_DEVICE_LIST_HELP:0x000B
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x74, 0x00, 0x77, 0x00, 0x6F,
+ 0x00, 0x72, 0x00, 0x6B, 0x00, 0x20, 0x00, 0x64, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x61, 0x00, 0x63, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x64,
+ 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x4D, 0x00, 0x41, 0x00, 0x43, 0x00, 0x20, 0x00, 0x61, 0x00, 0x64, 0x00, 0x64, 0x00, 0x72,
+ 0x00, 0x65, 0x00, 0x73, 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x000C: STR_FORM_NETWORK_DEVICE_LIST_TITLE:0x000C
+ 0x14, 0x4E, 0x00, 0x65, 0x00, 0x74, 0x00, 0x77, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x6B, 0x00, 0x20,
+ 0x00, 0x44, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x4C,
+ 0x00, 0x69, 0x00, 0x73, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x000D: STR_NETWORK_DEVICE_LIST_STRING:0x000D
+ 0x14, 0x4E, 0x00, 0x65, 0x00, 0x74, 0x00, 0x77, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x6B, 0x00, 0x20,
+ 0x00, 0x44, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x4C,
+ 0x00, 0x69, 0x00, 0x73, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x000E: STR_NETWORK_DEVICE_HELP:0x000E
+ 0x14, 0x4E, 0x00, 0x65, 0x00, 0x74, 0x00, 0x77, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x6B, 0x00, 0x20,
+ 0x00, 0x44, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x00, 0x00,
+ 0x00,
+
+};
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerVfr.c b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerVfr.c
new file mode 100644
index 000000000000..bbce9b23e014
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerVfr.c
@@ -0,0 +1,38 @@
+//
+// DO NOT EDIT -- auto-generated file
+//
+// This file is generated by the vfrcompiler utility
+//
+
+unsigned char DeviceManagerVfrBin[] = {
+ // ARRAY LENGTH
+
+ 0x2D, 0x01, 0x00, 0x00,
+
+ // PACKAGE HEADER
+
+ 0x29, 0x01, 0x00, 0x02,
+
+ // PACKAGE DATA
+
+ 0x0E, 0xA7, 0xE6, 0xA8, 0xBF, 0x3E, 0x1D, 0x51, 0x5B, 0x4B, 0xA9, 0x5F, 0xFB, 0x38, 0x26, 0x0F,
+ 0x1C, 0x27, 0x02, 0x00, 0x03, 0x00, 0x01, 0xF8, 0x09, 0x88, 0xE5, 0xC1, 0xFB, 0xE2, 0x48, 0x88,
+ 0x3A, 0xA3, 0x0F, 0xDC, 0x4B, 0x44, 0x1E, 0x5C, 0x06, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x06, 0x00,
+ 0x00, 0x01, 0x00, 0x01, 0x86, 0x00, 0x10, 0x02, 0x00, 0x02, 0x87, 0x04, 0x00, 0x00, 0x00, 0x00,
+ 0x29, 0x02, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C,
+ 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x00, 0x11, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93,
+ 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0xFF, 0xFF, 0x02, 0x87, 0x06, 0x00,
+ 0x00, 0x00, 0x00, 0x29, 0x02, 0x02, 0x87, 0x06, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x02, 0x87,
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x29, 0x02, 0x01, 0x86, 0x01, 0x10, 0x0C, 0x00, 0x02,
+ 0x87, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87,
+ 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x01, 0x11, 0x5F, 0x15, 0x35,
+ 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00,
+ 0xFF, 0xFF, 0x02, 0x87, 0x06, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x02, 0x87, 0x07, 0x00, 0x00,
+ 0x00, 0x00, 0x29, 0x02, 0x29, 0x02, 0x01, 0x86, 0x02, 0x10, 0x09, 0x00, 0x02, 0x87, 0x0A, 0x00,
+ 0x00, 0x00, 0x00, 0x29, 0x02, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2,
+ 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x02, 0x11, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F,
+ 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0xFF, 0xFF, 0x02,
+ 0x87, 0x06, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x02, 0x87, 0x07, 0x00, 0x00, 0x00, 0x00, 0x29,
+ 0x02, 0x29, 0x02, 0x29, 0x02
+
+};
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/AutoGen.c b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/AutoGen.c
new file mode 100644
index 000000000000..223d67534cc2
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/AutoGen.c
@@ -0,0 +1,206 @@
+
+//
+//Unicode String Pack Definition
+//
+unsigned char FileExplorerLibStrings[] = {
+
+// STRGATHER_OUTPUT_HEADER
+ 0x1A, 0x08, 0x00, 0x00,
+
+// PACKAGE HEADER
+
+ 0x0A, 0x04, 0x00, 0x04, 0x34, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x65, 0x6E,
+ 0x2D, 0x55, 0x53, 0x00,
+
+// PACKAGE DATA
+
+// 0x0001: $PRINTABLE_LANGUAGE_NAME:0x0001
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x73, 0x00, 0x68, 0x00, 0x00,
+ 0x00,
+// 0x0002: STR_NULL_STRING:0x0002
+ 0x14, 0x20, 0x00, 0x00, 0x00,
+// 0x0003: STR_FILE_EXPLORER_TITLE:0x0003
+ 0x14, 0x46, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x70,
+ 0x00, 0x6C, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x65, 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x0004: STR_NEW_FILE:0x0004
+ 0x14, 0x2A, 0x00, 0x2A, 0x00, 0x2A, 0x00, 0x4E, 0x00, 0x45, 0x00, 0x57, 0x00, 0x20, 0x00, 0x46,
+ 0x00, 0x49, 0x00, 0x4C, 0x00, 0x45, 0x00, 0x2A, 0x00, 0x2A, 0x00, 0x2A, 0x00, 0x00, 0x00,
+// 0x0005: STR_NEW_FILE_HELP:0x0005
+ 0x14, 0x54, 0x00, 0x68, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x6E,
+ 0x00, 0x75, 0x00, 0x20, 0x00, 0x75, 0x00, 0x73, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x6F, 0x00, 0x20, 0x00, 0x63, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x20, 0x00, 0x66,
+ 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x63,
+ 0x00, 0x75, 0x00, 0x72, 0x00, 0x72, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x20, 0x00, 0x64,
+ 0x00, 0x69, 0x00, 0x72, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x79,
+ 0x00, 0x2C, 0x00, 0x20, 0x00, 0x6A, 0x00, 0x75, 0x00, 0x6D, 0x00, 0x70, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x6F, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x78, 0x00, 0x74, 0x00, 0x20, 0x00, 0x70,
+ 0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x6E,
+ 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x6E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x20, 0x00, 0x66, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65,
+ 0x00, 0x00, 0x00,
+// 0x0006: STR_ADD_NEW_FILE_TITLE:0x0006
+ 0x14, 0x43, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x20, 0x00, 0x66, 0x00, 0x69, 0x00, 0x6C,
+ 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0007: STR_ADD_NEW_FOLDER_TITLE:0x0007
+ 0x14, 0x43, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x20, 0x00, 0x66, 0x00, 0x6F, 0x00, 0x6C,
+ 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x0008: STR_NEW_FILE_NAME_PROMPT:0x0008
+ 0x14, 0x46, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x4E, 0x00, 0x61, 0x00, 0x6D,
+ 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0009: STR_NEW_FILE_NAME_HELP:0x0009
+ 0x14, 0x50, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x61, 0x00, 0x73, 0x00, 0x65, 0x00, 0x20, 0x00, 0x69,
+ 0x00, 0x6E, 0x00, 0x70, 0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x61, 0x00, 0x20, 0x00, 0x6E,
+ 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x20, 0x00, 0x66, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x20,
+ 0x00, 0x66, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x000A: STR_CREATE_FILE_AND_EXIT:0x000A
+ 0x14, 0x43, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x46,
+ 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x45, 0x00, 0x78, 0x00, 0x69, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x000B: STR_NO_CREATE_FILE_AND_EXIT:0x000B
+ 0x14, 0x44, 0x00, 0x69, 0x00, 0x73, 0x00, 0x63, 0x00, 0x61, 0x00, 0x72, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x43, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x69, 0x00, 0x74, 0x00, 0x00,
+ 0x00,
+// 0x000C: STR_NEW_FOLDER:0x000C
+ 0x14, 0x2A, 0x00, 0x2A, 0x00, 0x2A, 0x00, 0x4E, 0x00, 0x45, 0x00, 0x57, 0x00, 0x20, 0x00, 0x46,
+ 0x00, 0x4F, 0x00, 0x4C, 0x00, 0x44, 0x00, 0x45, 0x00, 0x52, 0x00, 0x2A, 0x00, 0x2A, 0x00, 0x2A,
+ 0x00, 0x00, 0x00,
+// 0x000D: STR_NEW_FOLDER_HELP:0x000D
+ 0x14, 0x54, 0x00, 0x68, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x6E,
+ 0x00, 0x75, 0x00, 0x20, 0x00, 0x75, 0x00, 0x73, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x6F, 0x00, 0x20, 0x00, 0x63, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x20, 0x00, 0x66,
+ 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6E,
+ 0x00, 0x20, 0x00, 0x63, 0x00, 0x75, 0x00, 0x72, 0x00, 0x72, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x64, 0x00, 0x69, 0x00, 0x72, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x6F,
+ 0x00, 0x72, 0x00, 0x79, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x6A, 0x00, 0x75, 0x00, 0x6D, 0x00, 0x70,
+ 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x78, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x70, 0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F,
+ 0x00, 0x20, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x20, 0x00, 0x66, 0x00, 0x6F,
+ 0x00, 0x6C, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x000E: STR_NEW_FOLDER_NAME_PROMPT:0x000E
+ 0x14, 0x46, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x4E,
+ 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x000F: STR_NEW_FOLDER_NAME_HELP:0x000F
+ 0x14, 0x50, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x61, 0x00, 0x73, 0x00, 0x65, 0x00, 0x20, 0x00, 0x69,
+ 0x00, 0x6E, 0x00, 0x70, 0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x61, 0x00, 0x20, 0x00, 0x6E,
+ 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x20, 0x00, 0x66, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x20,
+ 0x00, 0x66, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x0010: STR_CREATE_FOLDER_AND_EXIT:0x0010
+ 0x14, 0x43, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x46,
+ 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6E,
+ 0x00, 0x64, 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x69, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x0011: STR_NO_CREATE_FOLDER_AND_EXIT:0x0011
+ 0x14, 0x44, 0x00, 0x69, 0x00, 0x73, 0x00, 0x63, 0x00, 0x61, 0x00, 0x72, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x43, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x69, 0x00, 0x74, 0x00, 0x00,
+ 0x00,
+ 0x00,
+// PACKAGE HEADER
+
+ 0x0C, 0x04, 0x00, 0x04, 0x34, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x66, 0x72,
+ 0x2D, 0x46, 0x52, 0x00,
+
+// PACKAGE DATA
+
+// 0x0001: $PRINTABLE_LANGUAGE_NAME:0x0001
+ 0x14, 0x46, 0x00, 0x72, 0x00, 0x61, 0x00, 0x6E, 0x00, 0xE7, 0x00, 0x61, 0x00, 0x69, 0x00, 0x73,
+ 0x00, 0x00, 0x00,
+// 0x0002: STR_NULL_STRING:0x0002
+ 0x14, 0x20, 0x00, 0x00, 0x00,
+// 0x0003: STR_FILE_EXPLORER_TITLE:0x0003
+ 0x14, 0x46, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x70,
+ 0x00, 0x6C, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x65, 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x0004: STR_NEW_FILE:0x0004
+ 0x14, 0x2A, 0x00, 0x2A, 0x00, 0x2A, 0x00, 0x4E, 0x00, 0x45, 0x00, 0x57, 0x00, 0x20, 0x00, 0x46,
+ 0x00, 0x49, 0x00, 0x4C, 0x00, 0x45, 0x00, 0x2A, 0x00, 0x2A, 0x00, 0x2A, 0x00, 0x00, 0x00,
+// 0x0005: STR_NEW_FILE_HELP:0x0005
+ 0x14, 0x54, 0x00, 0x68, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x6E,
+ 0x00, 0x75, 0x00, 0x20, 0x00, 0x75, 0x00, 0x73, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x6F, 0x00, 0x20, 0x00, 0x63, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x20, 0x00, 0x66,
+ 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x63,
+ 0x00, 0x75, 0x00, 0x72, 0x00, 0x72, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x20, 0x00, 0x64,
+ 0x00, 0x69, 0x00, 0x72, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x79,
+ 0x00, 0x2C, 0x00, 0x20, 0x00, 0x6A, 0x00, 0x75, 0x00, 0x6D, 0x00, 0x70, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x6F, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x78, 0x00, 0x74, 0x00, 0x20, 0x00, 0x70,
+ 0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x6E,
+ 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x6E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x20, 0x00, 0x66, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65,
+ 0x00, 0x00, 0x00,
+// 0x0006: STR_ADD_NEW_FILE_TITLE:0x0006
+ 0x14, 0x43, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x20, 0x00, 0x66, 0x00, 0x69, 0x00, 0x6C,
+ 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0007: STR_ADD_NEW_FOLDER_TITLE:0x0007
+ 0x14, 0x43, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x20, 0x00, 0x66, 0x00, 0x6F, 0x00, 0x6C,
+ 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x0008: STR_NEW_FILE_NAME_PROMPT:0x0008
+ 0x14, 0x46, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x4E, 0x00, 0x61, 0x00, 0x6D,
+ 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0009: STR_NEW_FILE_NAME_HELP:0x0009
+ 0x14, 0x50, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x61, 0x00, 0x73, 0x00, 0x65, 0x00, 0x20, 0x00, 0x69,
+ 0x00, 0x6E, 0x00, 0x70, 0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x61, 0x00, 0x20, 0x00, 0x6E,
+ 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x20, 0x00, 0x66, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x20,
+ 0x00, 0x66, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x000A: STR_CREATE_FILE_AND_EXIT:0x000A
+ 0x14, 0x43, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x46,
+ 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x45, 0x00, 0x78, 0x00, 0x69, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x000B: STR_NO_CREATE_FILE_AND_EXIT:0x000B
+ 0x14, 0x44, 0x00, 0x69, 0x00, 0x73, 0x00, 0x63, 0x00, 0x61, 0x00, 0x72, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x43, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x69, 0x00, 0x74, 0x00, 0x00,
+ 0x00,
+// 0x000C: STR_NEW_FOLDER:0x000C
+ 0x14, 0x2A, 0x00, 0x2A, 0x00, 0x2A, 0x00, 0x4E, 0x00, 0x45, 0x00, 0x57, 0x00, 0x20, 0x00, 0x46,
+ 0x00, 0x4F, 0x00, 0x4C, 0x00, 0x44, 0x00, 0x45, 0x00, 0x52, 0x00, 0x2A, 0x00, 0x2A, 0x00, 0x2A,
+ 0x00, 0x00, 0x00,
+// 0x000D: STR_NEW_FOLDER_HELP:0x000D
+ 0x14, 0x54, 0x00, 0x68, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x6E,
+ 0x00, 0x75, 0x00, 0x20, 0x00, 0x75, 0x00, 0x73, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x6F, 0x00, 0x20, 0x00, 0x63, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x20, 0x00, 0x66,
+ 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6E,
+ 0x00, 0x20, 0x00, 0x63, 0x00, 0x75, 0x00, 0x72, 0x00, 0x72, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x64, 0x00, 0x69, 0x00, 0x72, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x6F,
+ 0x00, 0x72, 0x00, 0x79, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x6A, 0x00, 0x75, 0x00, 0x6D, 0x00, 0x70,
+ 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x78, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x70, 0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F,
+ 0x00, 0x20, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x20, 0x00, 0x66, 0x00, 0x6F,
+ 0x00, 0x6C, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x000E: STR_NEW_FOLDER_NAME_PROMPT:0x000E
+ 0x14, 0x46, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x4E,
+ 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x000F: STR_NEW_FOLDER_NAME_HELP:0x000F
+ 0x14, 0x50, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x61, 0x00, 0x73, 0x00, 0x65, 0x00, 0x20, 0x00, 0x69,
+ 0x00, 0x6E, 0x00, 0x70, 0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x61, 0x00, 0x20, 0x00, 0x6E,
+ 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x20, 0x00, 0x66, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x20,
+ 0x00, 0x66, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x0010: STR_CREATE_FOLDER_AND_EXIT:0x0010
+ 0x14, 0x43, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x46,
+ 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6E,
+ 0x00, 0x64, 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x69, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x0011: STR_NO_CREATE_FOLDER_AND_EXIT:0x0011
+ 0x14, 0x44, 0x00, 0x69, 0x00, 0x73, 0x00, 0x63, 0x00, 0x61, 0x00, 0x72, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x43, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x69, 0x00, 0x74, 0x00, 0x00,
+ 0x00,
+ 0x00,
+
+};
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerVfr.c b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerVfr.c
new file mode 100644
index 000000000000..e6f87f1bfdee
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerVfr.c
@@ -0,0 +1,35 @@
+//
+// DO NOT EDIT -- auto-generated file
+//
+// This file is generated by the vfrcompiler utility
+//
+
+unsigned char FileExplorerVfrBin[] = {
+ // ARRAY LENGTH
+
+ 0xF9, 0x00, 0x00, 0x00,
+
+ // PACKAGE HEADER
+
+ 0xF5, 0x00, 0x00, 0x02,
+
+ // PACKAGE DATA
+
+ 0x0E, 0xA7, 0x96, 0x15, 0x56, 0xFE, 0xBF, 0xE6, 0xA6, 0x41, 0x83, 0x76, 0xC7, 0x2B, 0x71, 0x98,
+ 0x74, 0xD0, 0x03, 0x00, 0x02, 0x00, 0x01, 0x96, 0x15, 0x56, 0xFE, 0xBF, 0xE6, 0xA6, 0x41, 0x83,
+ 0x76, 0xC7, 0x2B, 0x71, 0x98, 0x74, 0xD0, 0x5C, 0x06, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x06, 0x00,
+ 0x00, 0x01, 0x00, 0x01, 0x86, 0x00, 0x10, 0x03, 0x00, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0,
+ 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x00, 0x10, 0x5F, 0x15,
+ 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE,
+ 0x00, 0xFF, 0xFF, 0x29, 0x02, 0x01, 0x86, 0x00, 0x20, 0x06, 0x00, 0x1C, 0x90, 0x08, 0x00, 0x09,
+ 0x00, 0x01, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x02, 0x14, 0x00, 0x29, 0x02, 0x02, 0x87, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x0C, 0x8F, 0x0A, 0x00, 0x0A, 0x00, 0x02, 0x20, 0x00, 0x00,
+ 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x29, 0x02, 0x0C, 0x8F, 0x0B, 0x00, 0x0B, 0x00, 0x03, 0x20, 0x00,
+ 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x29, 0x02, 0x29, 0x02, 0x01, 0x86, 0x00, 0x30, 0x07, 0x00,
+ 0x1C, 0x90, 0x0E, 0x00, 0x0F, 0x00, 0x01, 0x30, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x02, 0x14, 0x00,
+ 0x29, 0x02, 0x02, 0x87, 0x02, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x0C, 0x8F, 0x10, 0x00, 0x10,
+ 0x00, 0x02, 0x30, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x29, 0x02, 0x0C, 0x8F, 0x11, 0x00,
+ 0x11, 0x00, 0x03, 0x30, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x29, 0x02, 0x29, 0x02, 0x29,
+ 0x02
+
+};
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/AutoGen.c b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/AutoGen.c
new file mode 100644
index 000000000000..613862044b8e
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/AutoGen.c
@@ -0,0 +1,901 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ AutoGen.c
+ Abstract: Auto-generated AutoGen.c for building module or library.
+**/
+#include <Uefi.h>
+#include <Library/BaseLib.h>
+#include <Library/DebugLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+#include <Library/UefiDriverEntryPoint.h>
+
+GLOBAL_REMOVE_IF_UNREFERENCED GUID gEfiCallerIdGuid = {0x86CDDF93, 0x4872, 0x4597, {0x8A, 0xF9, 0xA3, 0x5A, 0xE4, 0xD3, 0x72, 0x5F}};
+
+GLOBAL_REMOVE_IF_UNREFERENCED GUID gEdkiiDscPlatformGuid = {0x5a9e7754, 0xd81b, 0x49ea, {0x85, 0xad, 0x69, 0xea, 0xa7, 0xb1, 0x53, 0x9b}};
+
+GLOBAL_REMOVE_IF_UNREFERENCED CHAR8 *gEfiCallerBaseName = "IScsiDxe";
+
+// Guids
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiEventExitBootServicesGuid = { 0x27ABF055, 0xB1B8, 0x4C26, { 0x80, 0x48, 0x74, 0x8F, 0x37, 0xBA, 0xA2, 0xDF }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiIfrTianoGuid = { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAcpiTableGuid = { 0x8868E871, 0xE4F1, 0x11D3, { 0xBC, 0x22, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAcpi10TableGuid = { 0xEB9D2D30, 0x2D88, 0x11D3, { 0x9A, 0x16, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAdapterInfoNetworkBootGuid = { 0x1FBD2960, 0x4130, 0x41E5, {0x94, 0xAC, 0xD2, 0xCF, 0x03, 0x7F, 0xB3, 0x7C }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAdapterInfoUndiIpv6SupportGuid = { 0x4bd56be3, 0x4975, 0x4d8a, {0xa0, 0xad, 0xc4, 0x91, 0x20, 0x4b, 0x5d, 0x4d }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gIScsiConfigGuid = { 0x4b47d616, 0xa8d6, 0x4552, { 0x9d, 0x44, 0xcc, 0xad, 0x2e, 0xf, 0x4c, 0xf9}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiNetworkPkgTokenSpaceGuid = { 0x40e064b2, 0x0ae0, 0x48b1, { 0xa0, 0x7d, 0xf8, 0xcf, 0x1e, 0x1a, 0x23, 0x10}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiMdePkgTokenSpaceGuid = { 0x914AEBE7, 0x4635, 0x459b, { 0xAA, 0x1C, 0x11, 0xE2, 0x19, 0xB0, 0x3A, 0x10 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gUefiOvmfPkgTokenSpaceGuid = {0x93bb96af, 0xb9f2, 0x4eb8, {0x94, 0x62, 0xe0, 0xba, 0x74, 0x56, 0x42, 0x36}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiEventReadyToBootGuid = { 0x7CE88FB3, 0x4BD7, 0x4679, { 0x87, 0xA8, 0xA8, 0xD8, 0xDE, 0xE5, 0x0D, 0x2B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiEventLegacyBootGuid = { 0x2A571201, 0x4966, 0x47F6, { 0x8B, 0x86, 0xF3, 0x1E, 0x41, 0xF3, 0x2F, 0x10 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiGlobalVariableGuid = { 0x8BE4DF61, 0x93CA, 0x11D2, { 0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAcpi20TableGuid = { 0x8868E871, 0xE4F1, 0x11D3, { 0xBC, 0x22, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHobListGuid = { 0x7739F24C, 0x93D7, 0x11D4, { 0x9A, 0x3A, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gUefiOvmfPkgPlatformInfoGuid = {0xdec9b486, 0x1f16, 0x47c7, {0x8f, 0x68, 0xdf, 0x1a, 0x41, 0x88, 0x8b, 0xa5}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiCryptoPkgTokenSpaceGuid = { 0x6bd7de60, 0x9ef7, 0x4899, { 0x97, 0xd0, 0xab, 0xff, 0xfd, 0xe9, 0x70, 0xf2 } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEdkiiIfrBitVarstoreGuid = {0x82DDD68B, 0x9163, 0x4187, {0x9B, 0x27, 0x20, 0xA8, 0xFD, 0x60,0xA7, 0x1D}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSmbiosTableGuid = { 0xEB9D2D31, 0x2D88, 0x11D3, { 0x9A, 0x16, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSmbios3TableGuid = { 0xF2FD1544, 0x9794, 0x4A2C, { 0x99, 0x2E, 0xE5, 0xBB, 0xCF, 0x20, 0xE3, 0x94 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAdapterInfoMediaStateGuid = { 0xD7C74207, 0xA831, 0x4A26, {0xB1, 0xF5, 0xD1, 0x93, 0x06, 0x5C, 0xE8, 0xB6 }};
+
+// Protocols
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAcpiTableProtocolGuid = { 0xFFE06BDD, 0x6107, 0x46A6, { 0x7B, 0xB2, 0x5A, 0x9C, 0x7E, 0xC5, 0x27, 0x5C }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverBindingProtocolGuid = { 0x18A031AB, 0xB443, 0x4D1A, { 0xA5, 0xC0, 0x0C, 0x09, 0x26, 0x1E, 0x9F, 0x71 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiPciIoProtocolGuid = { 0x4CF5B200, 0x68B8, 0x4CA5, { 0x9E, 0xEC, 0xB2, 0x3E, 0x3F, 0x50, 0x02, 0x9A }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDhcp4ProtocolGuid = { 0x8A219718, 0x4EF5, 0x4761, { 0x91, 0xC8, 0xC0, 0xF0, 0x4B, 0xDA, 0x9E, 0x56 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDhcp6ProtocolGuid = { 0x87c8bad7, 0x595, 0x4053, {0x82, 0x97, 0xde, 0xde, 0x39, 0x5f, 0x5d, 0x5b }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDhcp4ServiceBindingProtocolGuid = { 0x9D9A39D8, 0xBD42, 0x4A73, { 0xA4, 0xD5, 0x8E, 0xE9, 0x4B, 0xE1, 0x13, 0x80 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDhcp6ServiceBindingProtocolGuid = { 0x9fb9a8a1, 0x2f4a, 0x43a6, {0x88, 0x9c, 0xd0, 0xf7, 0xb6, 0xc4, 0x7a, 0xd5 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDns4ServiceBindingProtocolGuid = { 0xb625b186, 0xe063, 0x44f7, { 0x89, 0x5, 0x6a, 0x74, 0xdc, 0x6f, 0x52, 0xb4 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDns4ProtocolGuid = { 0xae3d28cc, 0xe05b, 0x4fa1, { 0xa0, 0x11, 0x7e, 0xb5, 0x5a, 0x3f, 0x14, 0x1 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDns6ServiceBindingProtocolGuid = { 0x7f1647c8, 0xb76e, 0x44b2, { 0xa5, 0x65, 0xf7, 0xf, 0xf1, 0x9c, 0xd1, 0x9e }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDns6ProtocolGuid = { 0xca37bc1f, 0xa327, 0x4ae9, { 0x82, 0x8a, 0x8c, 0x40, 0xd8, 0x50, 0x6a, 0x17 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiIp4Config2ProtocolGuid = { 0x5b446ed1, 0xe30b, 0x4faa, {0x87, 0x1a, 0x36, 0x54, 0xec, 0xa3, 0x60, 0x80 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiIp6ConfigProtocolGuid = { 0x937fe521, 0x95ae, 0x4d1a, {0x89, 0x29, 0x48, 0xbc, 0xd9, 0x0a, 0xd3, 0x1a }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiTcp4ProtocolGuid = { 0x65530BC7, 0xA359, 0x410F, { 0xB0, 0x10, 0x5A, 0xAD, 0xC7, 0xEC, 0x2B, 0x62 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiTcp6ProtocolGuid = { 0x46e44855, 0xbd60, 0x4ab7, {0xab, 0x0d, 0xa6, 0x79, 0xb9, 0x44, 0x7d, 0x77 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiTcp4ServiceBindingProtocolGuid = { 0x00720665, 0x67EB, 0x4A99, { 0xBA, 0xF7, 0xD3, 0xC3, 0x3A, 0x1C, 0x7C, 0xC9 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiTcp6ServiceBindingProtocolGuid = { 0xec20eb79, 0x6c1a, 0x4664, {0x9a, 0x0d, 0xd2, 0xe4, 0xcc, 0x16, 0xd6, 0x64 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiExtScsiPassThruProtocolGuid = { 0x143b7632, 0xb81b, 0x4cb7, {0xab, 0xd3, 0xb6, 0x25, 0xa5, 0xb9, 0xbf, 0xfe }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiConfigAccessProtocolGuid = {0x330d4706, 0xf2a0, 0x4e4f, {0xa3, 0x69, 0xb6, 0x6f, 0xa8, 0xd5, 0x43, 0x85}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathProtocolGuid = { 0x09576E91, 0x6D3F, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiIScsiInitiatorNameProtocolGuid = { 0x59324945, 0xEC44, 0x4C0D, { 0xB1, 0xCD, 0x9D, 0xB1, 0x39, 0xDF, 0x07, 0x0C }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAuthenticationInfoProtocolGuid = { 0x7671D9D0, 0x53DB, 0x4173, { 0xAA, 0x69, 0x23, 0x27, 0xF2, 0x1F, 0x0B, 0xC7 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAdapterInformationProtocolGuid = { 0xE5DD1403, 0xD622, 0xC24E, {0x84, 0x88, 0xC7, 0x1B, 0x17, 0xF5, 0xE8, 0x02 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiNetworkInterfaceIdentifierProtocolGuid_31 = { 0x1ACED566, 0x76ED, 0x4218, { 0xBC, 0x81, 0x76, 0x7F, 0x1F, 0x97, 0x7A, 0x89 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gPcdProtocolGuid = { 0x11B34006, 0xD85B, 0x4D0A, { 0xA2, 0x90, 0xD5, 0xA5, 0x71, 0x31, 0x0E, 0xF7 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiPcdProtocolGuid = { 0x13a3f0f6, 0x264a, 0x3ef0, { 0xf2, 0xe0, 0xde, 0xc5, 0x12, 0x34, 0x2f, 0x34 } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gGetPcdInfoProtocolGuid = { 0x5be40f57, 0xfa68, 0x4610, { 0xbb, 0xbf, 0xe9, 0xc5, 0xfc, 0xda, 0xd3, 0x65 } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiGetPcdInfoProtocolGuid = { 0xfd0f4478, 0xefd, 0x461d, { 0xba, 0x2d, 0xe5, 0x8c, 0x45, 0xfd, 0x5f, 0x5e } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathUtilitiesProtocolGuid = { 0x0379BE4E, 0xD706, 0x437D, { 0xB0, 0x37, 0xED, 0xB8, 0x2F, 0xB7, 0x72, 0xA4 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathToTextProtocolGuid = { 0x8B843E20, 0x8132, 0x4852, { 0x90, 0xCC, 0x55, 0x1A, 0x4E, 0x4A, 0x7F, 0x1C }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathFromTextProtocolGuid = { 0x05C99A21, 0xC70F, 0x4AD2, { 0x8A, 0x5F, 0x35, 0xDF, 0x33, 0x43, 0xF5, 0x1E }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimpleTextOutProtocolGuid = { 0x387477C2, 0x69C7, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiGraphicsOutputProtocolGuid = { 0x9042A9DE, 0x23DC, 0x4A38, { 0x96, 0xFB, 0x7A, 0xDE, 0xD0, 0x80, 0x51, 0x6A }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiFontProtocolGuid = {0xe9ca4775, 0x8657, 0x47fc, {0x97, 0xe7, 0x7e, 0xd6, 0x5a, 0x08, 0x43, 0x24}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimpleFileSystemProtocolGuid = { 0x964E5B22, 0x6459, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiUgaDrawProtocolGuid = { 0x982C298B, 0xF4FA, 0x41CB, { 0xB8, 0x38, 0x77, 0xAA, 0x68, 0x8F, 0xB8, 0x39 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiComponentNameProtocolGuid = { 0x107A772C, 0xD5E1, 0x11D4, { 0x9A, 0x46, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiComponentName2ProtocolGuid = { 0x6A7A5CFF, 0xE8D9, 0x4F70, { 0xBA, 0xDA, 0x75, 0xAB, 0x30, 0x25, 0xCE, 0x14 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverConfigurationProtocolGuid = { 0x107A772B, 0xD5E1, 0x11D4, { 0x9A, 0x46, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverConfiguration2ProtocolGuid = { 0xBFD7DC1D, 0x24F1, 0x40D9, { 0x82, 0xE7, 0x2E, 0x09, 0xBB, 0x6B, 0x4E, 0xBE }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverDiagnosticsProtocolGuid = { 0x0784924F, 0xE296, 0x11D4, { 0x9A, 0x49, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverDiagnostics2ProtocolGuid = { 0x4D330321, 0x025F, 0x4AAC, { 0x90, 0xD8, 0x5E, 0xD9, 0x00, 0x17, 0x3B, 0x63 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiStringProtocolGuid = {0x0fd96974, 0x23aa, 0x4cdc, {0xb9, 0xcb, 0x98, 0xd1, 0x77, 0x50, 0x32, 0x2a}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiImageProtocolGuid = {0x31a6406a, 0x6bdf, 0x4e46, {0xb2, 0xa2, 0xeb, 0xaa, 0x89, 0xc4, 0x09, 0x20}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiDatabaseProtocolGuid = {0xef9fc172, 0xa1b2, 0x4693, {0xb3, 0x27, 0x6d, 0x32, 0xfc, 0x41, 0x60, 0x42}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiConfigRoutingProtocolGuid = {0x587e72d7, 0xcc50, 0x4f79, {0x82, 0x09, 0xca, 0x29, 0x1f, 0xc1, 0xa1, 0x0f}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiFormBrowser2ProtocolGuid = {0xb9d4c360, 0xbcfb, 0x4f9b, {0x92, 0x98, 0x53, 0xc1, 0x36, 0x98, 0x22, 0x58}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimpleNetworkProtocolGuid = { 0xA19832B9, 0xAC25, 0x11D3, { 0x9A, 0x2D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiManagedNetworkProtocolGuid = { 0x7ab33a91, 0xace5, 0x4326, { 0xb5, 0x72, 0xe7, 0xee, 0x33, 0xd3, 0x9f, 0x16 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiManagedNetworkServiceBindingProtocolGuid = { 0xF36FF770, 0xA7E1, 0x42CF, { 0x9E, 0xD2, 0x56, 0xF0, 0xF2, 0x71, 0xF4, 0x4C }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiLoadedImageProtocolGuid = { 0x5B1B31A1, 0x9562, 0x11D2, { 0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+
+// Definition of SkuId Array
+GLOBAL_REMOVE_IF_UNREFERENCED UINT64 _gPcd_SkuId_Array[] = {0x0};
+
+// Definition of PCDs used in this module
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdIScsiAIPNetworkBootPolicy = _PCD_VALUE_PcdIScsiAIPNetworkBootPolicy;
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdMaxIScsiAttemptNumber = _PCD_VALUE_PcdMaxIScsiAttemptNumber;
+
+// Definition of PCDs used in libraries
+
+#define _PCD_TOKEN_PcdVerifyNodeInList 0U
+#define _PCD_SIZE_PcdVerifyNodeInList 1
+#define _PCD_GET_MODE_SIZE_PcdVerifyNodeInList _PCD_SIZE_PcdVerifyNodeInList
+#define _PCD_VALUE_PcdVerifyNodeInList ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdVerifyNodeInList = _PCD_VALUE_PcdVerifyNodeInList;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdVerifyNodeInList;
+#define _PCD_GET_MODE_BOOL_PcdVerifyNodeInList _gPcd_FixedAtBuild_PcdVerifyNodeInList
+//#define _PCD_SET_MODE_BOOL_PcdVerifyNodeInList ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumLinkedListLength 0U
+#define _PCD_SIZE_PcdMaximumLinkedListLength 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumLinkedListLength _PCD_SIZE_PcdMaximumLinkedListLength
+#define _PCD_VALUE_PcdMaximumLinkedListLength 0U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumLinkedListLength = _PCD_VALUE_PcdMaximumLinkedListLength;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumLinkedListLength;
+#define _PCD_GET_MODE_32_PcdMaximumLinkedListLength _gPcd_FixedAtBuild_PcdMaximumLinkedListLength
+//#define _PCD_SET_MODE_32_PcdMaximumLinkedListLength ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumAsciiStringLength 0U
+#define _PCD_SIZE_PcdMaximumAsciiStringLength 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumAsciiStringLength _PCD_SIZE_PcdMaximumAsciiStringLength
+#define _PCD_VALUE_PcdMaximumAsciiStringLength 1000000U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumAsciiStringLength = _PCD_VALUE_PcdMaximumAsciiStringLength;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumAsciiStringLength;
+#define _PCD_GET_MODE_32_PcdMaximumAsciiStringLength _gPcd_FixedAtBuild_PcdMaximumAsciiStringLength
+//#define _PCD_SET_MODE_32_PcdMaximumAsciiStringLength ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumUnicodeStringLength 0U
+#define _PCD_SIZE_PcdMaximumUnicodeStringLength 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumUnicodeStringLength _PCD_SIZE_PcdMaximumUnicodeStringLength
+#define _PCD_VALUE_PcdMaximumUnicodeStringLength 1000000U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength = _PCD_VALUE_PcdMaximumUnicodeStringLength;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength;
+#define _PCD_GET_MODE_32_PcdMaximumUnicodeStringLength _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength
+//#define _PCD_SET_MODE_32_PcdMaximumUnicodeStringLength ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdControlFlowEnforcementPropertyMask 0U
+#define _PCD_SIZE_PcdControlFlowEnforcementPropertyMask 4
+#define _PCD_GET_MODE_SIZE_PcdControlFlowEnforcementPropertyMask _PCD_SIZE_PcdControlFlowEnforcementPropertyMask
+#define _PCD_VALUE_PcdControlFlowEnforcementPropertyMask 0x0U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdControlFlowEnforcementPropertyMask = _PCD_VALUE_PcdControlFlowEnforcementPropertyMask;
+extern const UINT32 _gPcd_FixedAtBuild_PcdControlFlowEnforcementPropertyMask;
+#define _PCD_GET_MODE_32_PcdControlFlowEnforcementPropertyMask _gPcd_FixedAtBuild_PcdControlFlowEnforcementPropertyMask
+//#define _PCD_SET_MODE_32_PcdControlFlowEnforcementPropertyMask ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdSpeculationBarrierType 0U
+#define _PCD_SIZE_PcdSpeculationBarrierType 1
+#define _PCD_GET_MODE_SIZE_PcdSpeculationBarrierType _PCD_SIZE_PcdSpeculationBarrierType
+#define _PCD_VALUE_PcdSpeculationBarrierType 0x01U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdSpeculationBarrierType = _PCD_VALUE_PcdSpeculationBarrierType;
+extern const UINT8 _gPcd_FixedAtBuild_PcdSpeculationBarrierType;
+#define _PCD_GET_MODE_8_PcdSpeculationBarrierType _gPcd_FixedAtBuild_PcdSpeculationBarrierType
+//#define _PCD_SET_MODE_8_PcdSpeculationBarrierType ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdOvmfWorkAreaBase 0U
+#define _PCD_SIZE_PcdOvmfWorkAreaBase 4
+#define _PCD_GET_MODE_SIZE_PcdOvmfWorkAreaBase _PCD_SIZE_PcdOvmfWorkAreaBase
+#define _PCD_VALUE_PcdOvmfWorkAreaBase 0x0080B000U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdOvmfWorkAreaBase = _PCD_VALUE_PcdOvmfWorkAreaBase;
+extern const UINT32 _gPcd_FixedAtBuild_PcdOvmfWorkAreaBase;
+#define _PCD_GET_MODE_32_PcdOvmfWorkAreaBase _gPcd_FixedAtBuild_PcdOvmfWorkAreaBase
+//#define _PCD_SET_MODE_32_PcdOvmfWorkAreaBase ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugPrintErrorLevel 0U
+#define _PCD_SIZE_PcdDebugPrintErrorLevel 4
+#define _PCD_GET_MODE_SIZE_PcdDebugPrintErrorLevel _PCD_SIZE_PcdDebugPrintErrorLevel
+#define _PCD_VALUE_PcdDebugPrintErrorLevel 0x8000004FU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdDebugPrintErrorLevel = _PCD_VALUE_PcdDebugPrintErrorLevel;
+extern const UINT32 _gPcd_FixedAtBuild_PcdDebugPrintErrorLevel;
+#define _PCD_GET_MODE_32_PcdDebugPrintErrorLevel _gPcd_FixedAtBuild_PcdDebugPrintErrorLevel
+//#define _PCD_SET_MODE_32_PcdDebugPrintErrorLevel ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugIoPort 0U
+#define _PCD_SIZE_PcdDebugIoPort 2
+#define _PCD_GET_MODE_SIZE_PcdDebugIoPort _PCD_SIZE_PcdDebugIoPort
+#define _PCD_VALUE_PcdDebugIoPort 0x402U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT16 _gPcd_FixedAtBuild_PcdDebugIoPort = _PCD_VALUE_PcdDebugIoPort;
+extern const UINT16 _gPcd_FixedAtBuild_PcdDebugIoPort;
+#define _PCD_GET_MODE_16_PcdDebugIoPort _gPcd_FixedAtBuild_PcdDebugIoPort
+//#define _PCD_SET_MODE_16_PcdDebugIoPort ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugClearMemoryValue 0U
+#define _PCD_SIZE_PcdDebugClearMemoryValue 1
+#define _PCD_GET_MODE_SIZE_PcdDebugClearMemoryValue _PCD_SIZE_PcdDebugClearMemoryValue
+#define _PCD_VALUE_PcdDebugClearMemoryValue 0xAFU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdDebugClearMemoryValue = _PCD_VALUE_PcdDebugClearMemoryValue;
+extern const UINT8 _gPcd_FixedAtBuild_PcdDebugClearMemoryValue;
+#define _PCD_GET_MODE_8_PcdDebugClearMemoryValue _gPcd_FixedAtBuild_PcdDebugClearMemoryValue
+//#define _PCD_SET_MODE_8_PcdDebugClearMemoryValue ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugPropertyMask 0U
+#define _PCD_SIZE_PcdDebugPropertyMask 1
+#define _PCD_GET_MODE_SIZE_PcdDebugPropertyMask _PCD_SIZE_PcdDebugPropertyMask
+#define _PCD_VALUE_PcdDebugPropertyMask 0x2FU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdDebugPropertyMask = _PCD_VALUE_PcdDebugPropertyMask;
+extern const UINT8 _gPcd_FixedAtBuild_PcdDebugPropertyMask;
+#define _PCD_GET_MODE_8_PcdDebugPropertyMask _gPcd_FixedAtBuild_PcdDebugPropertyMask
+//#define _PCD_SET_MODE_8_PcdDebugPropertyMask ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdFixedDebugPrintErrorLevel 0U
+#define _PCD_SIZE_PcdFixedDebugPrintErrorLevel 4
+#define _PCD_GET_MODE_SIZE_PcdFixedDebugPrintErrorLevel _PCD_SIZE_PcdFixedDebugPrintErrorLevel
+#define _PCD_VALUE_PcdFixedDebugPrintErrorLevel 0xFFFFFFFFU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel = _PCD_VALUE_PcdFixedDebugPrintErrorLevel;
+extern const UINT32 _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel;
+#define _PCD_GET_MODE_32_PcdFixedDebugPrintErrorLevel _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel
+//#define _PCD_SET_MODE_32_PcdFixedDebugPrintErrorLevel ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumDevicePathNodeCount 0U
+#define _PCD_SIZE_PcdMaximumDevicePathNodeCount 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumDevicePathNodeCount _PCD_SIZE_PcdMaximumDevicePathNodeCount
+#define _PCD_VALUE_PcdMaximumDevicePathNodeCount 0U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumDevicePathNodeCount = _PCD_VALUE_PcdMaximumDevicePathNodeCount;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumDevicePathNodeCount;
+#define _PCD_GET_MODE_32_PcdMaximumDevicePathNodeCount _gPcd_FixedAtBuild_PcdMaximumDevicePathNodeCount
+//#define _PCD_SET_MODE_32_PcdMaximumDevicePathNodeCount ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDriverDiagnosticsDisable 0U
+#define _PCD_SIZE_PcdDriverDiagnosticsDisable 1
+#define _PCD_GET_MODE_SIZE_PcdDriverDiagnosticsDisable _PCD_SIZE_PcdDriverDiagnosticsDisable
+#define _PCD_VALUE_PcdDriverDiagnosticsDisable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnosticsDisable = _PCD_VALUE_PcdDriverDiagnosticsDisable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnosticsDisable;
+#define _PCD_GET_MODE_BOOL_PcdDriverDiagnosticsDisable _gPcd_FixedAtBuild_PcdDriverDiagnosticsDisable
+//#define _PCD_SET_MODE_BOOL_PcdDriverDiagnosticsDisable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdComponentNameDisable 0U
+#define _PCD_SIZE_PcdComponentNameDisable 1
+#define _PCD_GET_MODE_SIZE_PcdComponentNameDisable _PCD_SIZE_PcdComponentNameDisable
+#define _PCD_VALUE_PcdComponentNameDisable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdComponentNameDisable = _PCD_VALUE_PcdComponentNameDisable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdComponentNameDisable;
+#define _PCD_GET_MODE_BOOL_PcdComponentNameDisable _gPcd_FixedAtBuild_PcdComponentNameDisable
+//#define _PCD_SET_MODE_BOOL_PcdComponentNameDisable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDriverDiagnostics2Disable 0U
+#define _PCD_SIZE_PcdDriverDiagnostics2Disable 1
+#define _PCD_GET_MODE_SIZE_PcdDriverDiagnostics2Disable _PCD_SIZE_PcdDriverDiagnostics2Disable
+#define _PCD_VALUE_PcdDriverDiagnostics2Disable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnostics2Disable = _PCD_VALUE_PcdDriverDiagnostics2Disable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnostics2Disable;
+#define _PCD_GET_MODE_BOOL_PcdDriverDiagnostics2Disable _gPcd_FixedAtBuild_PcdDriverDiagnostics2Disable
+//#define _PCD_SET_MODE_BOOL_PcdDriverDiagnostics2Disable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdComponentName2Disable 0U
+#define _PCD_SIZE_PcdComponentName2Disable 1
+#define _PCD_GET_MODE_SIZE_PcdComponentName2Disable _PCD_SIZE_PcdComponentName2Disable
+#define _PCD_VALUE_PcdComponentName2Disable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdComponentName2Disable = _PCD_VALUE_PcdComponentName2Disable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdComponentName2Disable;
+#define _PCD_GET_MODE_BOOL_PcdComponentName2Disable _gPcd_FixedAtBuild_PcdComponentName2Disable
+//#define _PCD_SET_MODE_BOOL_PcdComponentName2Disable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdUgaConsumeSupport 0U
+#define _PCD_SIZE_PcdUgaConsumeSupport 1
+#define _PCD_GET_MODE_SIZE_PcdUgaConsumeSupport _PCD_SIZE_PcdUgaConsumeSupport
+#define _PCD_VALUE_PcdUgaConsumeSupport ((BOOLEAN)1U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdUgaConsumeSupport = _PCD_VALUE_PcdUgaConsumeSupport;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdUgaConsumeSupport;
+#define _PCD_GET_MODE_BOOL_PcdUgaConsumeSupport _gPcd_FixedAtBuild_PcdUgaConsumeSupport
+//#define _PCD_SET_MODE_BOOL_PcdUgaConsumeSupport ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdUefiLibMaxPrintBufferSize 0U
+#define _PCD_SIZE_PcdUefiLibMaxPrintBufferSize 4
+#define _PCD_GET_MODE_SIZE_PcdUefiLibMaxPrintBufferSize _PCD_SIZE_PcdUefiLibMaxPrintBufferSize
+#define _PCD_VALUE_PcdUefiLibMaxPrintBufferSize 320U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdUefiLibMaxPrintBufferSize = _PCD_VALUE_PcdUefiLibMaxPrintBufferSize;
+extern const UINT32 _gPcd_FixedAtBuild_PcdUefiLibMaxPrintBufferSize;
+#define _PCD_GET_MODE_32_PcdUefiLibMaxPrintBufferSize _gPcd_FixedAtBuild_PcdUefiLibMaxPrintBufferSize
+//#define _PCD_SET_MODE_32_PcdUefiLibMaxPrintBufferSize ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdPciExpressBaseAddress 0U
+#define _PCD_SIZE_PcdPciExpressBaseAddress 8
+#define _PCD_GET_MODE_SIZE_PcdPciExpressBaseAddress _PCD_SIZE_PcdPciExpressBaseAddress
+#define _PCD_VALUE_PcdPciExpressBaseAddress 0xB0000000ULL
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT64 _gPcd_FixedAtBuild_PcdPciExpressBaseAddress = _PCD_VALUE_PcdPciExpressBaseAddress;
+extern const UINT64 _gPcd_FixedAtBuild_PcdPciExpressBaseAddress;
+#define _PCD_GET_MODE_64_PcdPciExpressBaseAddress _gPcd_FixedAtBuild_PcdPciExpressBaseAddress
+//#define _PCD_SET_MODE_64_PcdPciExpressBaseAddress ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdPciExpressBaseSize 0U
+#define _PCD_SIZE_PcdPciExpressBaseSize 8
+#define _PCD_GET_MODE_SIZE_PcdPciExpressBaseSize _PCD_SIZE_PcdPciExpressBaseSize
+#define _PCD_VALUE_PcdPciExpressBaseSize 0x10000000ULL
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT64 _gPcd_FixedAtBuild_PcdPciExpressBaseSize = _PCD_VALUE_PcdPciExpressBaseSize;
+extern const UINT64 _gPcd_FixedAtBuild_PcdPciExpressBaseSize;
+#define _PCD_GET_MODE_64_PcdPciExpressBaseSize _gPcd_FixedAtBuild_PcdPciExpressBaseSize
+//#define _PCD_SET_MODE_64_PcdPciExpressBaseSize ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdOvmfHostBridgePciDevId 14U
+#define _PCD_GET_MODE_16_PcdOvmfHostBridgePciDevId LibPcdGet16(_PCD_TOKEN_PcdOvmfHostBridgePciDevId)
+#define _PCD_GET_MODE_SIZE_PcdOvmfHostBridgePciDevId LibPcdGetSize(_PCD_TOKEN_PcdOvmfHostBridgePciDevId)
+#define _PCD_SET_MODE_16_PcdOvmfHostBridgePciDevId(Value) LibPcdSet16(_PCD_TOKEN_PcdOvmfHostBridgePciDevId, (Value))
+#define _PCD_SET_MODE_16_S_PcdOvmfHostBridgePciDevId(Value) LibPcdSet16S(_PCD_TOKEN_PcdOvmfHostBridgePciDevId, (Value))
+
+#define _PCD_TOKEN_PcdOpensslEcEnabled 0U
+#define _PCD_SIZE_PcdOpensslEcEnabled 1
+#define _PCD_GET_MODE_SIZE_PcdOpensslEcEnabled _PCD_SIZE_PcdOpensslEcEnabled
+#define _PCD_VALUE_PcdOpensslEcEnabled 0U
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdOpensslEcEnabled = _PCD_VALUE_PcdOpensslEcEnabled;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdOpensslEcEnabled;
+#define _PCD_GET_MODE_BOOL_PcdOpensslEcEnabled _gPcd_FixedAtBuild_PcdOpensslEcEnabled
+//#define _PCD_SET_MODE_BOOL_PcdOpensslEcEnabled ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+
+RETURN_STATUS
+EFIAPI
+PlatformDebugLibIoPortConstructor (
+ VOID
+ );
+
+EFI_STATUS
+EFIAPI
+UefiBootServicesTableLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+UefiRuntimeServicesTableLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+DevicePathLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+UefiLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+HobLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+RETURN_STATUS
+EFIAPI
+InitializeConfigAccessMethod (
+ VOID
+ );
+
+RETURN_STATUS
+EFIAPI
+AcpiTimerLibConstructor (
+ VOID
+ );
+
+EFI_STATUS
+EFIAPI
+UefiHiiServicesLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+
+VOID
+EFIAPI
+ProcessLibraryConstructorList (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+{
+ EFI_STATUS Status;
+
+ Status = PlatformDebugLibIoPortConstructor ();
+ ASSERT_RETURN_ERROR (Status);
+
+ Status = UefiBootServicesTableLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = UefiRuntimeServicesTableLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = DevicePathLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = UefiLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = HobLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = InitializeConfigAccessMethod ();
+ ASSERT_RETURN_ERROR (Status);
+
+ Status = AcpiTimerLibConstructor ();
+ ASSERT_RETURN_ERROR (Status);
+
+ Status = UefiHiiServicesLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+}
+
+
+
+VOID
+EFIAPI
+ProcessLibraryDestructorList (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+{
+
+}
+
+const UINT32 _gUefiDriverRevision = 0x00000000U;
+const UINT32 _gDxeRevision = 0x00000000U;
+
+
+EFI_STATUS
+EFIAPI
+ProcessModuleEntryPointList (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+
+{
+ return IScsiDriverEntryPoint (ImageHandle, SystemTable);
+}
+
+VOID
+EFIAPI
+ExitDriver (
+ IN EFI_STATUS Status
+ )
+{
+ if (EFI_ERROR (Status)) {
+ ProcessLibraryDestructorList (gImageHandle, gST);
+ }
+ gBS->Exit (gImageHandle, Status, 0, NULL);
+}
+
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gDriverUnloadImageCount = 1U;
+
+
+EFI_STATUS
+EFIAPI
+ProcessModuleUnloadList (
+ IN EFI_HANDLE ImageHandle
+ )
+{
+ return IScsiUnload (ImageHandle);
+}
+
+
+//
+//Unicode String Pack Definition
+//
+unsigned char IScsiDxeStrings[] = {
+
+// STRGATHER_OUTPUT_HEADER
+ 0xA8, 0x12, 0x00, 0x00,
+
+// PACKAGE HEADER
+
+ 0x61, 0x11, 0x00, 0x04, 0x34, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x65, 0x6E,
+ 0x2D, 0x55, 0x53, 0x00,
+
+// PACKAGE DATA
+
+// 0x0001: $PRINTABLE_LANGUAGE_NAME:0x0001
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x73, 0x00, 0x68, 0x00, 0x00,
+ 0x00,
+// 0x0002: STR_ISCSI_CONFIG_FORM_TITLE:0x0002
+ 0x14, 0x69, 0x00, 0x53, 0x00, 0x43, 0x00, 0x53, 0x00, 0x49, 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F,
+ 0x00, 0x6E, 0x00, 0x66, 0x00, 0x69, 0x00, 0x67, 0x00, 0x75, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74,
+ 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x0003: STR_ISCSI_CONFIG_FORM_HELP:0x0003
+ 0x14, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x66, 0x00, 0x69, 0x00, 0x67, 0x00, 0x75, 0x00, 0x72,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x69, 0x00, 0x53,
+ 0x00, 0x43, 0x00, 0x53, 0x00, 0x49, 0x00, 0x20, 0x00, 0x70, 0x00, 0x61, 0x00, 0x72, 0x00, 0x61,
+ 0x00, 0x6D, 0x00, 0x65, 0x00, 0x74, 0x00, 0x65, 0x00, 0x72, 0x00, 0x73, 0x00, 0x2E, 0x00, 0x00,
+ 0x00,
+// 0x0004: STR_ISCSI_MAIN_FORM_TITLE:0x0004
+ 0x14, 0x69, 0x00, 0x53, 0x00, 0x43, 0x00, 0x53, 0x00, 0x49, 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F,
+ 0x00, 0x6E, 0x00, 0x66, 0x00, 0x69, 0x00, 0x67, 0x00, 0x75, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74,
+ 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x0005: STR_ISCSI_MAC_FORM_TITLE:0x0005
+ 0x14, 0x4D, 0x00, 0x41, 0x00, 0x43, 0x00, 0x20, 0x00, 0x53, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x65,
+ 0x00, 0x63, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x0006: STR_ISCSI_CONFIG_INIT_NAME:0x0006
+ 0x14, 0x69, 0x00, 0x53, 0x00, 0x43, 0x00, 0x53, 0x00, 0x49, 0x00, 0x20, 0x00, 0x49, 0x00, 0x6E,
+ 0x00, 0x69, 0x00, 0x74, 0x00, 0x69, 0x00, 0x61, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20,
+ 0x00, 0x4E, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0007: STR_ISCSI_CONFIG_INIT_NAME_HELP:0x0007
+ 0x14, 0x54, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x77, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x6C,
+ 0x00, 0x64, 0x00, 0x77, 0x00, 0x69, 0x00, 0x64, 0x00, 0x65, 0x00, 0x20, 0x00, 0x75, 0x00, 0x6E,
+ 0x00, 0x69, 0x00, 0x71, 0x00, 0x75, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x6D,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x66, 0x00, 0x20, 0x00, 0x69, 0x00, 0x53, 0x00, 0x43,
+ 0x00, 0x53, 0x00, 0x49, 0x00, 0x20, 0x00, 0x49, 0x00, 0x6E, 0x00, 0x69, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x61, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x2E, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x6E,
+ 0x00, 0x6C, 0x00, 0x79, 0x00, 0x20, 0x00, 0x49, 0x00, 0x51, 0x00, 0x4E, 0x00, 0x20, 0x00, 0x66,
+ 0x00, 0x6F, 0x00, 0x72, 0x00, 0x6D, 0x00, 0x61, 0x00, 0x74, 0x00, 0x20, 0x00, 0x69, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x63, 0x00, 0x63, 0x00, 0x65, 0x00, 0x70, 0x00, 0x74, 0x00, 0x65,
+ 0x00, 0x64, 0x00, 0x2E, 0x00, 0x00, 0x00,
+// 0x0008: STR_ISCSI_ATTEMPT_NAME:0x0008
+ 0x14, 0x69, 0x00, 0x53, 0x00, 0x43, 0x00, 0x53, 0x00, 0x49, 0x00, 0x20, 0x00, 0x41, 0x00, 0x74,
+ 0x00, 0x74, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x70, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4E, 0x00, 0x61,
+ 0x00, 0x6D, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0009: STR_ISCSI_ATTEMPT_NAME_HELP:0x0009
+ 0x14, 0x54, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x68, 0x00, 0x75, 0x00, 0x6D, 0x00, 0x61,
+ 0x00, 0x6E, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x20, 0x00, 0x64,
+ 0x00, 0x65, 0x00, 0x66, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x66,
+ 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x61, 0x00, 0x74, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x70, 0x00, 0x74, 0x00, 0x2E,
+ 0x00, 0x00, 0x00,
+// 0x000A: STR_ISCSI_CONFIG_RETRY:0x000A
+ 0x14, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x52, 0x00, 0x65, 0x00, 0x74, 0x00, 0x72, 0x00, 0x79,
+ 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x000B: STR_ISCSI_CONFIG_RETRY_HELP:0x000B
+ 0x14, 0x54, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6D, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x69,
+ 0x00, 0x6D, 0x00, 0x75, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x76, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x75,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x30, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6D,
+ 0x00, 0x61, 0x00, 0x78, 0x00, 0x69, 0x00, 0x6D, 0x00, 0x75, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x69,
+ 0x00, 0x73, 0x00, 0x20, 0x00, 0x31, 0x00, 0x36, 0x00, 0x2E, 0x00, 0x20, 0x00, 0x30, 0x00, 0x20,
+ 0x00, 0x6D, 0x00, 0x65, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x6F,
+ 0x00, 0x20, 0x00, 0x72, 0x00, 0x65, 0x00, 0x74, 0x00, 0x72, 0x00, 0x79, 0x00, 0x2E, 0x00, 0x00,
+ 0x00,
+// 0x000C: STR_ISCSI_CONFIG_TIMEOUT:0x000C
+ 0x14, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x45, 0x00, 0x73, 0x00, 0x74, 0x00, 0x61, 0x00, 0x62,
+ 0x00, 0x6C, 0x00, 0x69, 0x00, 0x73, 0x00, 0x68, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x20,
+ 0x00, 0x54, 0x00, 0x69, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x74, 0x00, 0x00,
+ 0x00,
+// 0x000D: STR_ISCSI_CONFIG_TIMEOUT_HELP:0x000D
+ 0x14, 0x54, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6D, 0x00, 0x65,
+ 0x00, 0x6F, 0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x76, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x75,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x6D, 0x00, 0x69, 0x00, 0x6C,
+ 0x00, 0x6C, 0x00, 0x69, 0x00, 0x73, 0x00, 0x65, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x64,
+ 0x00, 0x73, 0x00, 0x2E, 0x00, 0x20, 0x00, 0x54, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6D,
+ 0x00, 0x69, 0x00, 0x6E, 0x00, 0x69, 0x00, 0x6D, 0x00, 0x75, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x76,
+ 0x00, 0x61, 0x00, 0x6C, 0x00, 0x75, 0x00, 0x65, 0x00, 0x20, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x31, 0x00, 0x30, 0x00, 0x30, 0x00, 0x20, 0x00, 0x6D, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x6C,
+ 0x00, 0x69, 0x00, 0x73, 0x00, 0x65, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x6D, 0x00, 0x61, 0x00, 0x78, 0x00, 0x69, 0x00, 0x6D, 0x00, 0x75, 0x00, 0x6D,
+ 0x00, 0x20, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x32, 0x00, 0x30, 0x00, 0x20, 0x00, 0x73,
+ 0x00, 0x65, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x73, 0x00, 0x2E, 0x00, 0x00,
+ 0x00,
+// 0x000E: STR_ADD_ATTEMPT_ENTRY:0x000E
+ 0x14, 0x41, 0x00, 0x64, 0x00, 0x64, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x41,
+ 0x00, 0x74, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x70, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x000F: STR_ISCSI_ATTEMPT_FORM_TITLE:0x000F
+ 0x14, 0x41, 0x00, 0x74, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x70, 0x00, 0x74, 0x00, 0x20,
+ 0x00, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x66, 0x00, 0x69, 0x00, 0x67, 0x00, 0x75, 0x00, 0x72,
+ 0x00, 0x61, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x0010: STR_DEL_ATTEMPT_ENTRY:0x0010
+ 0x14, 0x44, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x41,
+ 0x00, 0x74, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x70, 0x00, 0x74, 0x00, 0x73, 0x00, 0x00,
+ 0x00,
+// 0x0011: STR_DEL_ATTEMPT_ENTRY_HELP:0x0011
+ 0x14, 0x44, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6F,
+ 0x00, 0x6E, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x6D, 0x00, 0x6F,
+ 0x00, 0x72, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61, 0x00, 0x74, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6D,
+ 0x00, 0x70, 0x00, 0x74, 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x0012: STR_ORDER_ATTEMPT_ENTRY:0x0012
+ 0x14, 0x43, 0x00, 0x68, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65, 0x00, 0x20, 0x00, 0x41,
+ 0x00, 0x74, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x70, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4F,
+ 0x00, 0x72, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x0013: STR_ISCSI_MODE_PROMPT:0x0013
+ 0x14, 0x69, 0x00, 0x53, 0x00, 0x43, 0x00, 0x53, 0x00, 0x49, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x6F,
+ 0x00, 0x64, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0014: STR_ISCSI_MODE_HELP:0x0014
+ 0x14, 0x44, 0x00, 0x69, 0x00, 0x73, 0x00, 0x61, 0x00, 0x62, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x64,
+ 0x00, 0x2C, 0x00, 0x20, 0x00, 0x45, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x62, 0x00, 0x6C, 0x00, 0x65,
+ 0x00, 0x64, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x45, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x62, 0x00, 0x6C,
+ 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x66, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x4D,
+ 0x00, 0x50, 0x00, 0x49, 0x00, 0x4F, 0x00, 0x00, 0x00,
+// 0x0015: STR_ISCSI_MODE_DISABLED:0x0015
+ 0x14, 0x44, 0x00, 0x69, 0x00, 0x73, 0x00, 0x61, 0x00, 0x62, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x64,
+ 0x00, 0x00, 0x00,
+// 0x0016: STR_ISCSI_MODE_ENABLED:0x0016
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x62, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x64, 0x00, 0x00,
+ 0x00,
+// 0x0017: STR_ISCSI_MODE_ENABLED_FOR_MPIO:0x0017
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x62, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x66, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x50, 0x00, 0x49, 0x00, 0x4F,
+ 0x00, 0x00, 0x00,
+// 0x0018: STR_IP_MODE_PROMPT:0x0018
+ 0x14, 0x49, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x65, 0x00, 0x72, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x50, 0x00, 0x72, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x63, 0x00, 0x6F,
+ 0x00, 0x6C, 0x00, 0x00, 0x00,
+// 0x0019: STR_IP_MODE_HELP:0x0019
+ 0x14, 0x49, 0x00, 0x6E, 0x00, 0x69, 0x00, 0x74, 0x00, 0x69, 0x00, 0x61, 0x00, 0x74, 0x00, 0x6F,
+ 0x00, 0x72, 0x00, 0x20, 0x00, 0x49, 0x00, 0x50, 0x00, 0x20, 0x00, 0x61, 0x00, 0x64, 0x00, 0x64,
+ 0x00, 0x72, 0x00, 0x65, 0x00, 0x73, 0x00, 0x73, 0x00, 0x20, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x73, 0x00, 0x79, 0x00, 0x73, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x73, 0x00, 0x73, 0x00, 0x69, 0x00, 0x67, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x69, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x49, 0x00, 0x50, 0x00, 0x36, 0x00, 0x20, 0x00, 0x6D,
+ 0x00, 0x6F, 0x00, 0x64, 0x00, 0x65, 0x00, 0x2E, 0x00, 0x20, 0x00, 0x49, 0x00, 0x6E, 0x00, 0x20,
+ 0x00, 0x41, 0x00, 0x75, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x66,
+ 0x00, 0x69, 0x00, 0x67, 0x00, 0x75, 0x00, 0x72, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6D, 0x00, 0x6F,
+ 0x00, 0x64, 0x00, 0x65, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x69, 0x00, 0x53, 0x00, 0x43, 0x00, 0x53,
+ 0x00, 0x49, 0x00, 0x20, 0x00, 0x64, 0x00, 0x72, 0x00, 0x69, 0x00, 0x76, 0x00, 0x65, 0x00, 0x72,
+ 0x00, 0x20, 0x00, 0x77, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x61, 0x00, 0x74,
+ 0x00, 0x74, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x70, 0x00, 0x74, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F,
+ 0x00, 0x20, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x69, 0x00, 0x53, 0x00, 0x43, 0x00, 0x53, 0x00, 0x49, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x61, 0x00, 0x72, 0x00, 0x67, 0x00, 0x65, 0x00, 0x74, 0x00, 0x20, 0x00, 0x76, 0x00, 0x69,
+ 0x00, 0x61, 0x00, 0x20, 0x00, 0x49, 0x00, 0x50, 0x00, 0x76, 0x00, 0x34, 0x00, 0x20, 0x00, 0x73,
+ 0x00, 0x74, 0x00, 0x61, 0x00, 0x63, 0x00, 0x6B, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x69, 0x00, 0x66,
+ 0x00, 0x20, 0x00, 0x66, 0x00, 0x61, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x61, 0x00, 0x74, 0x00, 0x74,
+ 0x00, 0x65, 0x00, 0x6D, 0x00, 0x70, 0x00, 0x74, 0x00, 0x20, 0x00, 0x49, 0x00, 0x50, 0x00, 0x76,
+ 0x00, 0x36, 0x00, 0x20, 0x00, 0x73, 0x00, 0x74, 0x00, 0x61, 0x00, 0x63, 0x00, 0x6B, 0x00, 0x2E,
+ 0x00, 0x00, 0x00,
+// 0x001A: STR_IP_MODE_IP4:0x001A
+ 0x14, 0x49, 0x00, 0x50, 0x00, 0x34, 0x00, 0x00, 0x00,
+// 0x001B: STR_IP_MODE_IP6:0x001B
+ 0x14, 0x49, 0x00, 0x50, 0x00, 0x36, 0x00, 0x00, 0x00,
+// 0x001C: STR_IP_MODE_AUTOCONFIG:0x001C
+ 0x14, 0x41, 0x00, 0x75, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x66,
+ 0x00, 0x69, 0x00, 0x67, 0x00, 0x75, 0x00, 0x72, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x001D: STR_AUTHEN_TYPE_PROMPT:0x001D
+ 0x14, 0x41, 0x00, 0x75, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x63, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x54,
+ 0x00, 0x79, 0x00, 0x70, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x001E: STR_AUTHEN_TYPE_HELP:0x001E
+ 0x14, 0x41, 0x00, 0x75, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x63, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x6D,
+ 0x00, 0x65, 0x00, 0x74, 0x00, 0x68, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x3A, 0x00, 0x20, 0x00, 0x43,
+ 0x00, 0x48, 0x00, 0x41, 0x00, 0x50, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x4B, 0x00, 0x65, 0x00, 0x72,
+ 0x00, 0x62, 0x00, 0x65, 0x00, 0x72, 0x00, 0x6F, 0x00, 0x73, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x6F,
+ 0x00, 0x72, 0x00, 0x20, 0x00, 0x4E, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x001F: STR_AUTHEN_TYPE_CHAP:0x001F
+ 0x14, 0x43, 0x00, 0x48, 0x00, 0x41, 0x00, 0x50, 0x00, 0x00, 0x00,
+// 0x0020: STR_AUTHEN_TYPE_NONE:0x0020
+ 0x14, 0x4E, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0021: STR_ISCSI_LOCAL_IP_ADDRESS:0x0021
+ 0x14, 0x20, 0x00, 0x20, 0x00, 0x49, 0x00, 0x6E, 0x00, 0x69, 0x00, 0x74, 0x00, 0x69, 0x00, 0x61,
+ 0x00, 0x74, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x49, 0x00, 0x50, 0x00, 0x20, 0x00, 0x41,
+ 0x00, 0x64, 0x00, 0x64, 0x00, 0x72, 0x00, 0x65, 0x00, 0x73, 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x0022: STR_ISCSI_LOCAL_MASK:0x0022
+ 0x14, 0x20, 0x00, 0x20, 0x00, 0x49, 0x00, 0x6E, 0x00, 0x69, 0x00, 0x74, 0x00, 0x69, 0x00, 0x61,
+ 0x00, 0x74, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x53, 0x00, 0x75, 0x00, 0x62, 0x00, 0x6E,
+ 0x00, 0x65, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x73, 0x00, 0x6B, 0x00, 0x00,
+ 0x00,
+// 0x0023: STR_ISCSI_LOCAL_GATEWAY:0x0023
+ 0x14, 0x20, 0x00, 0x20, 0x00, 0x47, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x77, 0x00, 0x61,
+ 0x00, 0x79, 0x00, 0x00, 0x00,
+// 0x0024: STR_ISCSI_IP_ADDRESS_HELP:0x0024
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x49, 0x00, 0x50,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x64, 0x00, 0x64, 0x00, 0x72, 0x00, 0x65, 0x00, 0x73, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x64, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x74,
+ 0x00, 0x65, 0x00, 0x64, 0x00, 0x2D, 0x00, 0x64, 0x00, 0x65, 0x00, 0x63, 0x00, 0x69, 0x00, 0x6D,
+ 0x00, 0x61, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x61, 0x00, 0x74,
+ 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x2E, 0x00, 0x00, 0x00,
+// 0x0025: STR_ISCSI_TARGET_NAME:0x0025
+ 0x14, 0x20, 0x00, 0x20, 0x00, 0x54, 0x00, 0x61, 0x00, 0x72, 0x00, 0x67, 0x00, 0x65, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x4E, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0026: STR_ISCSI_TARGET_NAME_HELP:0x0026
+ 0x14, 0x54, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x77, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x6C,
+ 0x00, 0x64, 0x00, 0x77, 0x00, 0x69, 0x00, 0x64, 0x00, 0x65, 0x00, 0x20, 0x00, 0x75, 0x00, 0x6E,
+ 0x00, 0x69, 0x00, 0x71, 0x00, 0x75, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x6D,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x66, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x74, 0x00, 0x61, 0x00, 0x72, 0x00, 0x67, 0x00, 0x65, 0x00, 0x74, 0x00, 0x2E,
+ 0x00, 0x20, 0x00, 0x4F, 0x00, 0x6E, 0x00, 0x6C, 0x00, 0x79, 0x00, 0x20, 0x00, 0x69, 0x00, 0x71,
+ 0x00, 0x6E, 0x00, 0x2E, 0x00, 0x20, 0x00, 0x66, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x6D, 0x00, 0x61,
+ 0x00, 0x74, 0x00, 0x20, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x61, 0x00, 0x63, 0x00, 0x63,
+ 0x00, 0x65, 0x00, 0x70, 0x00, 0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x2E, 0x00, 0x00, 0x00,
+// 0x0027: STR_ISCSI_TARGET_ADDRESS:0x0027
+ 0x14, 0x20, 0x00, 0x20, 0x00, 0x54, 0x00, 0x61, 0x00, 0x72, 0x00, 0x67, 0x00, 0x65, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x41, 0x00, 0x64, 0x00, 0x64, 0x00, 0x72, 0x00, 0x65, 0x00, 0x73, 0x00, 0x73,
+ 0x00, 0x00, 0x00,
+// 0x0028: STR_ISCSI_TARGET_ADDRESS_HELP:0x0028
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x54, 0x00, 0x61,
+ 0x00, 0x72, 0x00, 0x67, 0x00, 0x65, 0x00, 0x74, 0x00, 0x20, 0x00, 0x61, 0x00, 0x64, 0x00, 0x64,
+ 0x00, 0x72, 0x00, 0x65, 0x00, 0x73, 0x00, 0x73, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x20,
+ 0x00, 0x49, 0x00, 0x50, 0x00, 0x76, 0x00, 0x34, 0x00, 0x2C, 0x00, 0x49, 0x00, 0x50, 0x00, 0x76,
+ 0x00, 0x36, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x55, 0x00, 0x52, 0x00, 0x4C,
+ 0x00, 0x20, 0x00, 0x66, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x6D, 0x00, 0x61, 0x00, 0x74, 0x00, 0x2E,
+ 0x00, 0x59, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x65, 0x00, 0x64,
+ 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x66,
+ 0x00, 0x69, 0x00, 0x67, 0x00, 0x75, 0x00, 0x72, 0x00, 0x65, 0x00, 0x20, 0x00, 0x44, 0x00, 0x4E,
+ 0x00, 0x53, 0x00, 0x20, 0x00, 0x73, 0x00, 0x65, 0x00, 0x72, 0x00, 0x76, 0x00, 0x65, 0x00, 0x72,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x64, 0x00, 0x64, 0x00, 0x72, 0x00, 0x65, 0x00, 0x73, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x61, 0x00, 0x64, 0x00, 0x76, 0x00, 0x61,
+ 0x00, 0x6E, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x69, 0x00, 0x66, 0x00, 0x20, 0x00, 0x69,
+ 0x00, 0x6E, 0x00, 0x70, 0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x61, 0x00, 0x20, 0x00, 0x55,
+ 0x00, 0x52, 0x00, 0x4C, 0x00, 0x20, 0x00, 0x73, 0x00, 0x74, 0x00, 0x72, 0x00, 0x69, 0x00, 0x6E,
+ 0x00, 0x67, 0x00, 0x2E, 0x00, 0x00, 0x00,
+// 0x0029: STR_ISCSI_TARGET_PORT:0x0029
+ 0x14, 0x20, 0x00, 0x20, 0x00, 0x54, 0x00, 0x61, 0x00, 0x72, 0x00, 0x67, 0x00, 0x65, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x50, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x002A: STR_ISCSI_BOOT_LUN:0x002A
+ 0x14, 0x20, 0x00, 0x20, 0x00, 0x42, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4C,
+ 0x00, 0x55, 0x00, 0x4E, 0x00, 0x00, 0x00,
+// 0x002B: STR_ISCSI_BOOT_LUN_HELP:0x002B
+ 0x14, 0x48, 0x00, 0x65, 0x00, 0x78, 0x00, 0x61, 0x00, 0x64, 0x00, 0x65, 0x00, 0x63, 0x00, 0x69,
+ 0x00, 0x6D, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x72, 0x00, 0x65, 0x00, 0x70, 0x00, 0x72,
+ 0x00, 0x65, 0x00, 0x73, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x66, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x4C, 0x00, 0x55, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x75, 0x00, 0x6D,
+ 0x00, 0x62, 0x00, 0x65, 0x00, 0x72, 0x00, 0x2E, 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x61,
+ 0x00, 0x6D, 0x00, 0x70, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20, 0x00, 0x61, 0x00, 0x72,
+ 0x00, 0x65, 0x00, 0x3A, 0x00, 0x20, 0x00, 0x34, 0x00, 0x37, 0x00, 0x35, 0x00, 0x32, 0x00, 0x2D,
+ 0x00, 0x33, 0x00, 0x41, 0x00, 0x34, 0x00, 0x46, 0x00, 0x2D, 0x00, 0x36, 0x00, 0x62, 0x00, 0x37,
+ 0x00, 0x65, 0x00, 0x2D, 0x00, 0x32, 0x00, 0x46, 0x00, 0x39, 0x00, 0x39, 0x00, 0x2C, 0x00, 0x20,
+ 0x00, 0x36, 0x00, 0x37, 0x00, 0x33, 0x00, 0x34, 0x00, 0x2D, 0x00, 0x39, 0x00, 0x2D, 0x00, 0x31,
+ 0x00, 0x35, 0x00, 0x36, 0x00, 0x66, 0x00, 0x2D, 0x00, 0x31, 0x00, 0x32, 0x00, 0x37, 0x00, 0x2C,
+ 0x00, 0x20, 0x00, 0x34, 0x00, 0x31, 0x00, 0x38, 0x00, 0x36, 0x00, 0x2D, 0x00, 0x39, 0x00, 0x00,
+ 0x00,
+// 0x002C: STR_ISCSI_ENABLE_DHCP:0x002C
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x62, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x44,
+ 0x00, 0x48, 0x00, 0x43, 0x00, 0x50, 0x00, 0x00, 0x00,
+// 0x002D: STR_ISCSI_ENABLE_DHCP_ON_TARGET:0x002D
+ 0x14, 0x47, 0x00, 0x65, 0x00, 0x74, 0x00, 0x20, 0x00, 0x74, 0x00, 0x61, 0x00, 0x72, 0x00, 0x67,
+ 0x00, 0x65, 0x00, 0x74, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x66, 0x00, 0x6F, 0x00, 0x20,
+ 0x00, 0x76, 0x00, 0x69, 0x00, 0x61, 0x00, 0x20, 0x00, 0x44, 0x00, 0x48, 0x00, 0x43, 0x00, 0x50,
+ 0x00, 0x00, 0x00,
+// 0x002E: STR_CHAP_TYPE_PROMPT:0x002E
+ 0x14, 0x20, 0x00, 0x20, 0x00, 0x43, 0x00, 0x48, 0x00, 0x41, 0x00, 0x50, 0x00, 0x20, 0x00, 0x54,
+ 0x00, 0x79, 0x00, 0x70, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x002F: STR_CHAP_TYPE_HELP:0x002F
+ 0x14, 0x4E, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x6E,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x77, 0x00, 0x61, 0x00, 0x79, 0x00, 0x20, 0x00, 0x43, 0x00, 0x48,
+ 0x00, 0x41, 0x00, 0x50, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x6D, 0x00, 0x75,
+ 0x00, 0x74, 0x00, 0x75, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x43, 0x00, 0x48, 0x00, 0x41,
+ 0x00, 0x50, 0x00, 0x00, 0x00,
+// 0x0030: STR_CHAP_TYPE_UNI:0x0030
+ 0x14, 0x4F, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x20, 0x00, 0x77, 0x00, 0x61, 0x00, 0x79, 0x00, 0x00,
+ 0x00,
+// 0x0031: STR_CHAP_TYPE_MUTUAL:0x0031
+ 0x14, 0x4D, 0x00, 0x75, 0x00, 0x74, 0x00, 0x75, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x00, 0x00,
+// 0x0032: STR_ISCSI_CHAP_NAME:0x0032
+ 0x14, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x43, 0x00, 0x48, 0x00, 0x41, 0x00, 0x50,
+ 0x00, 0x20, 0x00, 0x4E, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0033: STR_ISCSI_CHAP_SECRET:0x0033
+ 0x14, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x43, 0x00, 0x48, 0x00, 0x41, 0x00, 0x50,
+ 0x00, 0x20, 0x00, 0x53, 0x00, 0x65, 0x00, 0x63, 0x00, 0x72, 0x00, 0x65, 0x00, 0x74, 0x00, 0x00,
+ 0x00,
+// 0x0034: STR_ISCSI_CHAP_SECRET_HELP:0x0034
+ 0x14, 0x54, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6D, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x69,
+ 0x00, 0x6D, 0x00, 0x75, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x67,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x20, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x31, 0x00, 0x32,
+ 0x00, 0x20, 0x00, 0x62, 0x00, 0x79, 0x00, 0x74, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6D,
+ 0x00, 0x61, 0x00, 0x78, 0x00, 0x69, 0x00, 0x6D, 0x00, 0x75, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x6C,
+ 0x00, 0x65, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x74, 0x00, 0x68, 0x00, 0x20, 0x00, 0x69, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x31, 0x00, 0x36, 0x00, 0x20, 0x00, 0x62, 0x00, 0x79, 0x00, 0x74, 0x00, 0x65,
+ 0x00, 0x73, 0x00, 0x2E, 0x00, 0x00, 0x00,
+// 0x0035: STR_ISCSI_REVERSE_CHAP_NAME:0x0035
+ 0x14, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x52, 0x00, 0x65, 0x00, 0x76, 0x00, 0x65,
+ 0x00, 0x72, 0x00, 0x73, 0x00, 0x65, 0x00, 0x20, 0x00, 0x43, 0x00, 0x48, 0x00, 0x41, 0x00, 0x50,
+ 0x00, 0x20, 0x00, 0x4E, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0036: STR_ISCSI_REVERSE_CHAP_SECRET:0x0036
+ 0x14, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x52, 0x00, 0x65, 0x00, 0x76, 0x00, 0x65,
+ 0x00, 0x72, 0x00, 0x73, 0x00, 0x65, 0x00, 0x20, 0x00, 0x43, 0x00, 0x48, 0x00, 0x41, 0x00, 0x50,
+ 0x00, 0x20, 0x00, 0x53, 0x00, 0x65, 0x00, 0x63, 0x00, 0x72, 0x00, 0x65, 0x00, 0x74, 0x00, 0x00,
+ 0x00,
+// 0x0037: STR_RETURN_MAIN_FORM:0x0037
+ 0x14, 0x42, 0x00, 0x61, 0x00, 0x63, 0x00, 0x6B, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20,
+ 0x00, 0x50, 0x00, 0x72, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x50, 0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0038: STR_SAVE_CHANGES:0x0038
+ 0x14, 0x53, 0x00, 0x61, 0x00, 0x76, 0x00, 0x65, 0x00, 0x20, 0x00, 0x43, 0x00, 0x68, 0x00, 0x61,
+ 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65, 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x0039: STR_SAVE_CHANGES_HELP:0x0039
+ 0x14, 0x4D, 0x00, 0x75, 0x00, 0x73, 0x00, 0x74, 0x00, 0x20, 0x00, 0x72, 0x00, 0x65, 0x00, 0x62,
+ 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x73, 0x00, 0x79, 0x00, 0x73, 0x00, 0x74,
+ 0x00, 0x65, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x6D, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x75, 0x00, 0x61,
+ 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x79, 0x00, 0x20, 0x00, 0x66, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20,
+ 0x00, 0x63, 0x00, 0x68, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x74, 0x00, 0x61, 0x00, 0x6B, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x70, 0x00, 0x6C, 0x00, 0x61, 0x00, 0x63, 0x00, 0x65, 0x00, 0x2E, 0x00, 0x00, 0x00,
+// 0x003A: STR_NULL:0x003A
+ 0x14, 0x00, 0x00,
+// 0x003B: STR_SAVE_AND_EXIT:0x003B
+ 0x14, 0x43, 0x00, 0x6F, 0x00, 0x6D, 0x00, 0x6D, 0x00, 0x69, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43,
+ 0x00, 0x68, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x69, 0x00, 0x74, 0x00, 0x00,
+ 0x00,
+// 0x003C: STR_NO_SAVE_AND_EXIT:0x003C
+ 0x14, 0x44, 0x00, 0x69, 0x00, 0x73, 0x00, 0x63, 0x00, 0x61, 0x00, 0x72, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x43, 0x00, 0x68, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x61, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x69, 0x00, 0x74,
+ 0x00, 0x00, 0x00,
+// 0x003D: STR_ISCSI_CONFIG_ISID:0x003D
+ 0x14, 0x49, 0x00, 0x53, 0x00, 0x49, 0x00, 0x44, 0x00, 0x00, 0x00,
+// 0x003E: STR_ISCSI_CONFIG_ISID_HELP:0x003E
+ 0x14, 0x4F, 0x00, 0x55, 0x00, 0x49, 0x00, 0x2D, 0x00, 0x66, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x6D,
+ 0x00, 0x61, 0x00, 0x74, 0x00, 0x20, 0x00, 0x49, 0x00, 0x53, 0x00, 0x49, 0x00, 0x44, 0x00, 0x20,
+ 0x00, 0x69, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x36, 0x00, 0x20, 0x00, 0x62, 0x00, 0x79, 0x00, 0x74,
+ 0x00, 0x65, 0x00, 0x73, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x64, 0x00, 0x65, 0x00, 0x66, 0x00, 0x61,
+ 0x00, 0x75, 0x00, 0x6C, 0x00, 0x74, 0x00, 0x20, 0x00, 0x76, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x75,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x61, 0x00, 0x72, 0x00, 0x65, 0x00, 0x20, 0x00, 0x64, 0x00, 0x65,
+ 0x00, 0x72, 0x00, 0x69, 0x00, 0x76, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x66, 0x00, 0x72,
+ 0x00, 0x6F, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x41, 0x00, 0x43, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x64, 0x00, 0x64, 0x00, 0x72, 0x00, 0x65, 0x00, 0x73, 0x00, 0x73, 0x00, 0x2E, 0x00, 0x20,
+ 0x00, 0x4F, 0x00, 0x6E, 0x00, 0x6C, 0x00, 0x79, 0x00, 0x20, 0x00, 0x6C, 0x00, 0x61, 0x00, 0x73,
+ 0x00, 0x74, 0x00, 0x20, 0x00, 0x33, 0x00, 0x20, 0x00, 0x62, 0x00, 0x79, 0x00, 0x74, 0x00, 0x65,
+ 0x00, 0x73, 0x00, 0x20, 0x00, 0x61, 0x00, 0x72, 0x00, 0x65, 0x00, 0x20, 0x00, 0x63, 0x00, 0x6F,
+ 0x00, 0x6E, 0x00, 0x66, 0x00, 0x69, 0x00, 0x67, 0x00, 0x75, 0x00, 0x72, 0x00, 0x61, 0x00, 0x62,
+ 0x00, 0x6C, 0x00, 0x65, 0x00, 0x2E, 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x61, 0x00, 0x6D,
+ 0x00, 0x70, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x3A, 0x00, 0x20, 0x00, 0x75, 0x00, 0x70, 0x00, 0x64,
+ 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x30, 0x00, 0x41, 0x00, 0x42, 0x00, 0x42,
+ 0x00, 0x43, 0x00, 0x43, 0x00, 0x44, 0x00, 0x44, 0x00, 0x45, 0x00, 0x45, 0x00, 0x46, 0x00, 0x46,
+ 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x30, 0x00, 0x41, 0x00, 0x42, 0x00, 0x42,
+ 0x00, 0x43, 0x00, 0x43, 0x00, 0x46, 0x00, 0x30, 0x00, 0x37, 0x00, 0x39, 0x00, 0x30, 0x00, 0x31,
+ 0x00, 0x20, 0x00, 0x62, 0x00, 0x79, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x70, 0x00, 0x75,
+ 0x00, 0x74, 0x00, 0x20, 0x00, 0x46, 0x00, 0x30, 0x00, 0x37, 0x00, 0x39, 0x00, 0x30, 0x00, 0x31,
+ 0x00, 0x2E, 0x00, 0x00, 0x00,
+// 0x003F: STR_ISCSI_MAC_PROMPT:0x003F
+ 0x14, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x66, 0x00, 0x69, 0x00, 0x67, 0x00, 0x75, 0x00, 0x72,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6D, 0x00, 0x61,
+ 0x00, 0x63, 0x00, 0x20, 0x00, 0x61, 0x00, 0x64, 0x00, 0x64, 0x00, 0x72, 0x00, 0x65, 0x00, 0x73,
+ 0x00, 0x73, 0x00, 0x20, 0x00, 0x66, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x61, 0x00, 0x74, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x70,
+ 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x0040: STR_ISCSI_ADD_ATTEMPTS:0x0040
+ 0x14, 0x41, 0x00, 0x64, 0x00, 0x64, 0x00, 0x20, 0x00, 0x41, 0x00, 0x74, 0x00, 0x74, 0x00, 0x65,
+ 0x00, 0x6D, 0x00, 0x70, 0x00, 0x74, 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x0041: STR_ISCSI_DELETE_ATTEMPTS:0x0041
+ 0x14, 0x44, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x41,
+ 0x00, 0x74, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x70, 0x00, 0x74, 0x00, 0x73, 0x00, 0x00,
+ 0x00,
+// 0x0042: STR_ISCSI_DISPLAY_ATTEMPTS:0x0042
+ 0x14, 0x44, 0x00, 0x69, 0x00, 0x73, 0x00, 0x70, 0x00, 0x6C, 0x00, 0x61, 0x00, 0x79, 0x00, 0x20,
+ 0x00, 0x41, 0x00, 0x74, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x70, 0x00, 0x74, 0x00, 0x73,
+ 0x00, 0x00, 0x00,
+// 0x0043: STR_ISCSI_ATTEMPT_ORDER:0x0043
+ 0x14, 0x4E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x20, 0x00, 0x41, 0x00, 0x74, 0x00, 0x74, 0x00, 0x65,
+ 0x00, 0x6D, 0x00, 0x70, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x72, 0x00, 0x64, 0x00, 0x65,
+ 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x0044: STR_ISCSI_ISID_HELP:0x0044
+ 0x14, 0x54, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x69, 0x00, 0x53, 0x00, 0x43, 0x00, 0x53,
+ 0x00, 0x49, 0x00, 0x20, 0x00, 0x49, 0x00, 0x53, 0x00, 0x49, 0x00, 0x44, 0x00, 0x2E, 0x00, 0x20,
+ 0x00, 0x44, 0x00, 0x65, 0x00, 0x66, 0x00, 0x61, 0x00, 0x75, 0x00, 0x6C, 0x00, 0x74, 0x00, 0x20,
+ 0x00, 0x76, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x75, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61, 0x00, 0x72,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x69, 0x00, 0x76, 0x00, 0x65,
+ 0x00, 0x64, 0x00, 0x20, 0x00, 0x66, 0x00, 0x72, 0x00, 0x6F, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x4D,
+ 0x00, 0x41, 0x00, 0x43, 0x00, 0x20, 0x00, 0x61, 0x00, 0x64, 0x00, 0x64, 0x00, 0x72, 0x00, 0x65,
+ 0x00, 0x73, 0x00, 0x73, 0x00, 0x2E, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x6E, 0x00, 0x6C, 0x00, 0x79,
+ 0x00, 0x20, 0x00, 0x6C, 0x00, 0x61, 0x00, 0x73, 0x00, 0x74, 0x00, 0x20, 0x00, 0x33, 0x00, 0x20,
+ 0x00, 0x62, 0x00, 0x79, 0x00, 0x74, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20, 0x00, 0x61, 0x00, 0x72,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x66, 0x00, 0x69, 0x00, 0x67,
+ 0x00, 0x75, 0x00, 0x72, 0x00, 0x61, 0x00, 0x62, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x2E, 0x00, 0x00,
+ 0x00,
+ 0x00,
+// PACKAGE HEADER
+
+ 0x43, 0x01, 0x00, 0x04, 0x38, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x78, 0x2D,
+ 0x55, 0x45, 0x46, 0x49, 0x2D, 0x6E, 0x73, 0x00,
+
+// PACKAGE DATA
+
+// 0x0001: $PRINTABLE_LANGUAGE_NAME:0x0001
+ 0x14, 0x55, 0x00, 0x65, 0x00, 0x66, 0x00, 0x69, 0x00, 0x4E, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65,
+ 0x00, 0x53, 0x00, 0x70, 0x00, 0x61, 0x00, 0x63, 0x00, 0x65, 0x00, 0x00, 0x00,
+ 0x21, 0x04, 0x00,
+// 0x0006: STR_ISCSI_CONFIG_INIT_NAME:0x0006
+ 0x14, 0x69, 0x00, 0x53, 0x00, 0x43, 0x00, 0x53, 0x00, 0x49, 0x00, 0x49, 0x00, 0x6E, 0x00, 0x69,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x61, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x4E, 0x00, 0x61,
+ 0x00, 0x6D, 0x00, 0x65, 0x00, 0x00, 0x00,
+ 0x21, 0x38, 0x00,
+// 0x003F: STR_ISCSI_MAC_PROMPT:0x003F
+ 0x14, 0x69, 0x00, 0x53, 0x00, 0x43, 0x00, 0x53, 0x00, 0x49, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x63,
+ 0x00, 0x41, 0x00, 0x64, 0x00, 0x64, 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x0040: STR_ISCSI_ADD_ATTEMPTS:0x0040
+ 0x14, 0x69, 0x00, 0x53, 0x00, 0x43, 0x00, 0x53, 0x00, 0x49, 0x00, 0x41, 0x00, 0x64, 0x00, 0x64,
+ 0x00, 0x41, 0x00, 0x74, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x70, 0x00, 0x74, 0x00, 0x73,
+ 0x00, 0x00, 0x00,
+// 0x0041: STR_ISCSI_DELETE_ATTEMPTS:0x0041
+ 0x14, 0x69, 0x00, 0x53, 0x00, 0x43, 0x00, 0x53, 0x00, 0x49, 0x00, 0x44, 0x00, 0x65, 0x00, 0x6C,
+ 0x00, 0x65, 0x00, 0x74, 0x00, 0x65, 0x00, 0x41, 0x00, 0x74, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6D,
+ 0x00, 0x70, 0x00, 0x74, 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x0042: STR_ISCSI_DISPLAY_ATTEMPTS:0x0042
+ 0x14, 0x69, 0x00, 0x53, 0x00, 0x43, 0x00, 0x53, 0x00, 0x49, 0x00, 0x44, 0x00, 0x69, 0x00, 0x73,
+ 0x00, 0x70, 0x00, 0x6C, 0x00, 0x61, 0x00, 0x79, 0x00, 0x41, 0x00, 0x74, 0x00, 0x74, 0x00, 0x65,
+ 0x00, 0x6D, 0x00, 0x70, 0x00, 0x74, 0x00, 0x4C, 0x00, 0x69, 0x00, 0x73, 0x00, 0x74, 0x00, 0x00,
+ 0x00,
+// 0x0043: STR_ISCSI_ATTEMPT_ORDER:0x0043
+ 0x14, 0x69, 0x00, 0x53, 0x00, 0x43, 0x00, 0x53, 0x00, 0x49, 0x00, 0x41, 0x00, 0x74, 0x00, 0x74,
+ 0x00, 0x65, 0x00, 0x6D, 0x00, 0x70, 0x00, 0x74, 0x00, 0x4F, 0x00, 0x72, 0x00, 0x64, 0x00, 0x65,
+ 0x00, 0x72, 0x00, 0x00, 0x00,
+ 0x21, 0x01, 0x00,
+ 0x00,
+
+};
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiConfigVfr.c b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiConfigVfr.c
new file mode 100644
index 000000000000..54c447b95fc5
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiConfigVfr.c
@@ -0,0 +1,103 @@
+//
+// DO NOT EDIT -- auto-generated file
+//
+// This file is generated by the vfrcompiler utility
+//
+
+unsigned char IScsiConfigVfrBin[] = {
+ // ARRAY LENGTH
+
+ 0x3C, 0x05, 0x00, 0x00,
+
+ // PACKAGE HEADER
+
+ 0x38, 0x05, 0x00, 0x02,
+
+ // PACKAGE DATA
+
+ 0x0E, 0xA7, 0x16, 0xD6, 0x47, 0x4B, 0xD6, 0xA8, 0x52, 0x45, 0x9D, 0x44, 0xCC, 0xAD, 0x2E, 0x0F,
+ 0x4C, 0xF9, 0x02, 0x00, 0x03, 0x00, 0x01, 0x71, 0x99, 0x03, 0x93, 0x45, 0x85, 0x04, 0x4B, 0xB4,
+ 0x5E, 0x32, 0xEB, 0x83, 0x26, 0x04, 0x0E, 0x5C, 0x06, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x06, 0x00,
+ 0x00, 0x01, 0x00, 0x24, 0x2E, 0x16, 0xD6, 0x47, 0x4B, 0xD6, 0xA8, 0x52, 0x45, 0x9D, 0x44, 0xCC,
+ 0xAD, 0x2E, 0x0F, 0x4C, 0xF9, 0x66, 0x66, 0x3C, 0x45, 0x49, 0x53, 0x43, 0x53, 0x49, 0x5F, 0x43,
+ 0x4F, 0x4E, 0x46, 0x49, 0x47, 0x5F, 0x49, 0x46, 0x52, 0x5F, 0x4E, 0x56, 0x44, 0x41, 0x54, 0x41,
+ 0x00, 0x01, 0x86, 0x01, 0x00, 0x04, 0x00, 0x1C, 0x90, 0x06, 0x00, 0x07, 0x00, 0x01, 0x01, 0x66,
+ 0x66, 0x00, 0x00, 0x04, 0x04, 0xDF, 0x00, 0x29, 0x02, 0x02, 0x87, 0x3A, 0x00, 0x00, 0x00, 0x00,
+ 0x29, 0x02, 0x0F, 0x0F, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x02,
+ 0x00, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38,
+ 0xAF, 0x48, 0xCE, 0x00, 0x00, 0x90, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41,
+ 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0xFF, 0xFF, 0x02, 0x87, 0x3A, 0x00, 0x00,
+ 0x00, 0x00, 0x29, 0x02, 0x0F, 0x0F, 0x10, 0x00, 0x11, 0x00, 0x16, 0x01, 0x00, 0x00, 0xFF, 0xFF,
+ 0x04, 0x05, 0x00, 0x02, 0x87, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x0F, 0x0F, 0x12, 0x00,
+ 0x12, 0x00, 0x10, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x04, 0x00, 0x02, 0x87, 0x3A, 0x00, 0x00,
+ 0x00, 0x00, 0x29, 0x02, 0x29, 0x02, 0x01, 0x86, 0x02, 0x00, 0x05, 0x00, 0x5F, 0x15, 0x35, 0x17,
+ 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x00,
+ 0x30, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38,
+ 0xAF, 0x48, 0xCE, 0x00, 0xFF, 0xFF, 0x29, 0x02, 0x01, 0x86, 0x04, 0x00, 0x12, 0x00, 0x5F, 0x15,
+ 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE,
+ 0x00, 0x00, 0x40, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53,
+ 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0xFF, 0xFF, 0x0C, 0x8F, 0x3B, 0x00, 0x3B, 0x00, 0x11, 0x01,
+ 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x29, 0x02, 0x0C, 0x8F, 0x3C, 0x00, 0x3C, 0x00, 0x12,
+ 0x01, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x29, 0x02, 0x29, 0x02, 0x01, 0x86, 0x05, 0x00,
+ 0x10, 0x00, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C,
+ 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x00, 0x50, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93,
+ 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0xFF, 0xFF, 0x0C, 0x8F, 0x3B, 0x00,
+ 0x3B, 0x00, 0x14, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x29, 0x02, 0x0C, 0x8F, 0x3C,
+ 0x00, 0x3C, 0x00, 0x15, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x29, 0x02, 0x29, 0x02,
+ 0x01, 0x86, 0x03, 0x00, 0x0F, 0x00, 0x1C, 0x90, 0x08, 0x00, 0x09, 0x00, 0x01, 0x00, 0x66, 0x66,
+ 0xC0, 0x01, 0x01, 0x00, 0x0C, 0x00, 0x29, 0x02, 0x02, 0x87, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x29,
+ 0x02, 0x05, 0x91, 0x13, 0x00, 0x14, 0x00, 0x02, 0x00, 0x66, 0x66, 0xD8, 0x01, 0x00, 0x10, 0x00,
+ 0x02, 0x00, 0x09, 0x07, 0x15, 0x00, 0x10, 0x00, 0x00, 0x09, 0x07, 0x16, 0x00, 0x00, 0x00, 0x01,
+ 0x09, 0x07, 0x17, 0x00, 0x00, 0x00, 0x02, 0x29, 0x02, 0x02, 0x87, 0x3A, 0x00, 0x00, 0x00, 0x00,
+ 0x29, 0x02, 0x05, 0x91, 0x18, 0x00, 0x19, 0x00, 0x1C, 0x01, 0x66, 0x66, 0xD9, 0x01, 0x04, 0x10,
+ 0x00, 0x02, 0x00, 0x09, 0x07, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x09, 0x07, 0x1B, 0x00, 0x00, 0x00,
+ 0x01, 0x09, 0x07, 0x1C, 0x00, 0x00, 0x00, 0x02, 0x29, 0x02, 0x02, 0x87, 0x3A, 0x00, 0x00, 0x00,
+ 0x00, 0x29, 0x02, 0x07, 0x91, 0x0A, 0x00, 0x0B, 0x00, 0x03, 0x00, 0x66, 0x66, 0xDA, 0x01, 0x00,
+ 0x10, 0x00, 0x10, 0x00, 0x29, 0x02, 0x07, 0x94, 0x0C, 0x00, 0x0D, 0x00, 0x04, 0x00, 0x66, 0x66,
+ 0xDC, 0x01, 0x00, 0x11, 0x64, 0x00, 0x20, 0x4E, 0x00, 0x00, 0x5B, 0x07, 0x00, 0x00, 0x01, 0xE8,
+ 0x03, 0x29, 0x02, 0x02, 0x87, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x1C, 0x90, 0x3D, 0x00,
+ 0x3E, 0x00, 0x1E, 0x01, 0x66, 0x66, 0x3A, 0x0B, 0x04, 0x06, 0x0C, 0x00, 0x29, 0x02, 0x02, 0x87,
+ 0x3A, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x0A, 0x82, 0x12, 0x06, 0x1C, 0x01, 0x02, 0x00, 0x06,
+ 0x8E, 0x2C, 0x00, 0x2C, 0x00, 0x02, 0x01, 0x66, 0x66, 0xDE, 0x01, 0x04, 0x00, 0x29, 0x02, 0x29,
+ 0x02, 0x0A, 0x82, 0x12, 0x86, 0x1C, 0x01, 0x01, 0x00, 0x12, 0x06, 0x1C, 0x01, 0x02, 0x00, 0x16,
+ 0x02, 0x29, 0x02, 0x19, 0x82, 0x12, 0x06, 0x02, 0x01, 0x01, 0x00, 0x1C, 0x90, 0x21, 0x00, 0x24,
+ 0x00, 0x03, 0x01, 0x66, 0x66, 0xE0, 0x01, 0x04, 0x07, 0x0F, 0x00, 0x29, 0x02, 0x1C, 0x90, 0x22,
+ 0x00, 0x24, 0x00, 0x04, 0x01, 0x66, 0x66, 0x00, 0x02, 0x04, 0x07, 0x0F, 0x00, 0x29, 0x02, 0x1C,
+ 0x90, 0x23, 0x00, 0x24, 0x00, 0x05, 0x01, 0x66, 0x66, 0x20, 0x02, 0x04, 0x07, 0x0F, 0x00, 0x29,
+ 0x02, 0x29, 0x02, 0x29, 0x02, 0x0A, 0x82, 0x12, 0x06, 0x1C, 0x01, 0x02, 0x00, 0x02, 0x87, 0x3A,
+ 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x29, 0x02, 0x0A, 0x82, 0x12, 0x86, 0x1C, 0x01, 0x02, 0x00,
+ 0x12, 0x06, 0x02, 0x01, 0x00, 0x00, 0x16, 0x02, 0x29, 0x02, 0x06, 0x8E, 0x2D, 0x00, 0x2D, 0x00,
+ 0x05, 0x00, 0x66, 0x66, 0xDF, 0x01, 0x00, 0x00, 0x29, 0x02, 0x29, 0x02, 0x0A, 0x82, 0x12, 0x86,
+ 0x1C, 0x01, 0x02, 0x00, 0x12, 0x06, 0x05, 0x00, 0x01, 0x00, 0x16, 0x02, 0x29, 0x02, 0x1C, 0x90,
+ 0x25, 0x00, 0x26, 0x00, 0x0C, 0x01, 0x66, 0x66, 0x40, 0x02, 0x04, 0x04, 0xDF, 0x00, 0x29, 0x02,
+ 0x1C, 0x90, 0x27, 0x00, 0x28, 0x00, 0x06, 0x01, 0x66, 0x66, 0x00, 0x04, 0x04, 0x00, 0xFF, 0x00,
+ 0x29, 0x02, 0x07, 0x94, 0x29, 0x00, 0x29, 0x00, 0x06, 0x00, 0x66, 0x66, 0xFE, 0x05, 0x00, 0x11,
+ 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x29, 0x02, 0x1C, 0x90, 0x2A, 0x00, 0x2B, 0x00, 0x0D, 0x01,
+ 0x66, 0x66, 0x00, 0x06, 0x04, 0x01, 0x14, 0x00, 0x29, 0x02, 0x29, 0x02, 0x0A, 0x82, 0x12, 0x06,
+ 0x1C, 0x01, 0x02, 0x00, 0x02, 0x87, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x29, 0x02, 0x05,
+ 0x91, 0x1D, 0x00, 0x1E, 0x00, 0x1D, 0x01, 0x66, 0x66, 0x2A, 0x06, 0x00, 0x10, 0x00, 0x01, 0x00,
+ 0x09, 0x07, 0x1F, 0x00, 0x00, 0x00, 0x01, 0x09, 0x07, 0x20, 0x00, 0x10, 0x00, 0x00, 0x29, 0x02,
+ 0x0A, 0x82, 0x12, 0x86, 0x1D, 0x01, 0x01, 0x00, 0x17, 0x02, 0x29, 0x02, 0x05, 0x91, 0x2E, 0x00,
+ 0x2F, 0x00, 0x07, 0x00, 0x66, 0x66, 0x2B, 0x06, 0x00, 0x10, 0x00, 0x01, 0x00, 0x09, 0x07, 0x30,
+ 0x00, 0x00, 0x00, 0x00, 0x09, 0x07, 0x31, 0x00, 0x10, 0x00, 0x01, 0x29, 0x02, 0x29, 0x02, 0x0A,
+ 0x82, 0x12, 0x86, 0x1D, 0x01, 0x01, 0x00, 0x17, 0x02, 0x29, 0x02, 0x1C, 0x90, 0x32, 0x00, 0x32,
+ 0x00, 0x07, 0x01, 0x66, 0x66, 0x2C, 0x06, 0x04, 0x00, 0x7E, 0x00, 0x29, 0x02, 0x1C, 0x90, 0x33,
+ 0x00, 0x34, 0x00, 0x08, 0x01, 0x66, 0x66, 0x2A, 0x07, 0x04, 0x0C, 0x10, 0x00, 0x29, 0x02, 0x29,
+ 0x02, 0x0A, 0x82, 0x12, 0x86, 0x1D, 0x01, 0x01, 0x00, 0x17, 0x02, 0x12, 0x06, 0x07, 0x00, 0x01,
+ 0x00, 0x17, 0x02, 0x16, 0x02, 0x29, 0x02, 0x1C, 0x90, 0x35, 0x00, 0x35, 0x00, 0x09, 0x01, 0x66,
+ 0x66, 0x4C, 0x07, 0x04, 0x00, 0x7E, 0x00, 0x29, 0x02, 0x1C, 0x90, 0x36, 0x00, 0x34, 0x00, 0x0A,
+ 0x01, 0x66, 0x66, 0x4A, 0x08, 0x04, 0x0C, 0x10, 0x00, 0x29, 0x02, 0x29, 0x02, 0x0A, 0x82, 0x46,
+ 0x02, 0x1C, 0x90, 0x3F, 0x00, 0x3F, 0x00, 0x08, 0x00, 0x66, 0x66, 0x54, 0x0B, 0x00, 0x00, 0x60,
+ 0x00, 0x29, 0x02, 0x1C, 0x90, 0x43, 0x00, 0x43, 0x00, 0x09, 0x00, 0x66, 0x66, 0x14, 0x0C, 0x00,
+ 0x00, 0x60, 0x00, 0x29, 0x02, 0x1C, 0x90, 0x40, 0x00, 0x40, 0x00, 0x0A, 0x00, 0x66, 0x66, 0xD4,
+ 0x0C, 0x00, 0x00, 0x60, 0x00, 0x29, 0x02, 0x1C, 0x90, 0x41, 0x00, 0x41, 0x00, 0x0B, 0x00, 0x66,
+ 0x66, 0x94, 0x0D, 0x00, 0x00, 0x60, 0x00, 0x29, 0x02, 0x1C, 0x90, 0x42, 0x00, 0x42, 0x00, 0x0C,
+ 0x00, 0x66, 0x66, 0x54, 0x0E, 0x01, 0x00, 0x60, 0x00, 0x29, 0x02, 0x5F, 0x15, 0x35, 0x17, 0x0B,
+ 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x00, 0x60,
+ 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF,
+ 0x48, 0xCE, 0x00, 0xFF, 0xFF, 0x29, 0x02, 0x02, 0x87, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02,
+ 0x0C, 0x8F, 0x38, 0x00, 0x39, 0x00, 0x0F, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x29,
+ 0x02, 0x0F, 0x0F, 0x37, 0x00, 0x37, 0x00, 0x0D, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x00,
+ 0x29, 0x02, 0x29, 0x02
+
+};
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/AutoGen.c b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/AutoGen.c
new file mode 100644
index 000000000000..56fca027ab62
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/AutoGen.c
@@ -0,0 +1,492 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ AutoGen.c
+ Abstract: Auto-generated AutoGen.c for building module or library.
+**/
+#include <Uefi.h>
+#include <Library/BaseLib.h>
+#include <Library/DebugLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+#include <Library/UefiDriverEntryPoint.h>
+
+GLOBAL_REMOVE_IF_UNREFERENCED GUID gEfiCallerIdGuid = {0x9FB1A1F3, 0x3B71, 0x4324, {0xB3, 0x9A, 0x74, 0x5C, 0xBB, 0x01, 0x5F, 0xFF}};
+
+GLOBAL_REMOVE_IF_UNREFERENCED GUID gEdkiiDscPlatformGuid = {0x5a9e7754, 0xd81b, 0x49ea, {0x85, 0xad, 0x69, 0xea, 0xa7, 0xb1, 0x53, 0x9b}};
+
+GLOBAL_REMOVE_IF_UNREFERENCED CHAR8 *gEfiCallerBaseName = "Ip4Dxe";
+
+// Guids
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gIp4Config2NvDataGuid = { 0x9b942747, 0x154e, 0x4d29, { 0xa4, 0x36, 0xbf, 0x71, 0x0, 0xc8, 0xb5, 0x3b }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiMdePkgTokenSpaceGuid = { 0x914AEBE7, 0x4635, 0x459b, { 0xAA, 0x1C, 0x11, 0xE2, 0x19, 0xB0, 0x3A, 0x10 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gUefiOvmfPkgTokenSpaceGuid = {0x93bb96af, 0xb9f2, 0x4eb8, {0x94, 0x62, 0xe0, 0xba, 0x74, 0x56, 0x42, 0x36}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiEventReadyToBootGuid = { 0x7CE88FB3, 0x4BD7, 0x4679, { 0x87, 0xA8, 0xA8, 0xD8, 0xDE, 0xE5, 0x0D, 0x2B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiEventLegacyBootGuid = { 0x2A571201, 0x4966, 0x47F6, { 0x8B, 0x86, 0xF3, 0x1E, 0x41, 0xF3, 0x2F, 0x10 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiGlobalVariableGuid = { 0x8BE4DF61, 0x93CA, 0x11D2, { 0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAcpi20TableGuid = { 0x8868E871, 0xE4F1, 0x11D3, { 0xBC, 0x22, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAcpi10TableGuid = { 0xEB9D2D30, 0x2D88, 0x11D3, { 0x9A, 0x16, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSmbiosTableGuid = { 0xEB9D2D31, 0x2D88, 0x11D3, { 0x9A, 0x16, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSmbios3TableGuid = { 0xF2FD1544, 0x9794, 0x4A2C, { 0x99, 0x2E, 0xE5, 0xBB, 0xCF, 0x20, 0xE3, 0x94 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAdapterInfoMediaStateGuid = { 0xD7C74207, 0xA831, 0x4A26, {0xB1, 0xF5, 0xD1, 0x93, 0x06, 0x5C, 0xE8, 0xB6 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEdkiiIfrBitVarstoreGuid = {0x82DDD68B, 0x9163, 0x4187, {0x9B, 0x27, 0x20, 0xA8, 0xFD, 0x60,0xA7, 0x1D}};
+
+// Protocols
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiIp4ServiceBindingProtocolGuid = { 0xC51711E7, 0xB4BF, 0x404A, { 0xBF, 0xB8, 0x0A, 0x04, 0x8E, 0xF1, 0xFF, 0xE4 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiIp4ProtocolGuid = { 0x41D94CD2, 0x35B6, 0x455A, { 0x82, 0x58, 0xD4, 0xE5, 0x13, 0x34, 0xAA, 0xDD }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiManagedNetworkServiceBindingProtocolGuid = { 0xF36FF770, 0xA7E1, 0x42CF, { 0x9E, 0xD2, 0x56, 0xF0, 0xF2, 0x71, 0xF4, 0x4C }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiManagedNetworkProtocolGuid = { 0x7ab33a91, 0xace5, 0x4326, { 0xb5, 0x72, 0xe7, 0xee, 0x33, 0xd3, 0x9f, 0x16 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiArpServiceBindingProtocolGuid = { 0xF44C00EE, 0x1F2C, 0x4A00, { 0xAA, 0x09, 0x1C, 0x9F, 0x3E, 0x08, 0x00, 0xA3 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiIp4Config2ProtocolGuid = { 0x5b446ed1, 0xe30b, 0x4faa, {0x87, 0x1a, 0x36, 0x54, 0xec, 0xa3, 0x60, 0x80 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiArpProtocolGuid = { 0xF4B427BB, 0xBA21, 0x4F16, { 0xBC, 0x4E, 0x43, 0xE4, 0x16, 0xAB, 0x61, 0x9C }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDhcp4ServiceBindingProtocolGuid = { 0x9D9A39D8, 0xBD42, 0x4A73, { 0xA4, 0xD5, 0x8E, 0xE9, 0x4B, 0xE1, 0x13, 0x80 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDhcp4ProtocolGuid = { 0x8A219718, 0x4EF5, 0x4761, { 0x91, 0xC8, 0xC0, 0xF0, 0x4B, 0xDA, 0x9E, 0x56 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiIpSec2ProtocolGuid = { 0xa3979e64, 0xace8, 0x4ddc, {0xbc, 0x7, 0x4d, 0x66, 0xb8, 0xfd, 0x9, 0x77 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiConfigAccessProtocolGuid = {0x330d4706, 0xf2a0, 0x4e4f, {0xa3, 0x69, 0xb6, 0x6f, 0xa8, 0xd5, 0x43, 0x85}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathProtocolGuid = { 0x09576E91, 0x6D3F, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gPcdProtocolGuid = { 0x11B34006, 0xD85B, 0x4D0A, { 0xA2, 0x90, 0xD5, 0xA5, 0x71, 0x31, 0x0E, 0xF7 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiPcdProtocolGuid = { 0x13a3f0f6, 0x264a, 0x3ef0, { 0xf2, 0xe0, 0xde, 0xc5, 0x12, 0x34, 0x2f, 0x34 } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gGetPcdInfoProtocolGuid = { 0x5be40f57, 0xfa68, 0x4610, { 0xbb, 0xbf, 0xe9, 0xc5, 0xfc, 0xda, 0xd3, 0x65 } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiGetPcdInfoProtocolGuid = { 0xfd0f4478, 0xefd, 0x461d, { 0xba, 0x2d, 0xe5, 0x8c, 0x45, 0xfd, 0x5f, 0x5e } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathUtilitiesProtocolGuid = { 0x0379BE4E, 0xD706, 0x437D, { 0xB0, 0x37, 0xED, 0xB8, 0x2F, 0xB7, 0x72, 0xA4 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathToTextProtocolGuid = { 0x8B843E20, 0x8132, 0x4852, { 0x90, 0xCC, 0x55, 0x1A, 0x4E, 0x4A, 0x7F, 0x1C }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathFromTextProtocolGuid = { 0x05C99A21, 0xC70F, 0x4AD2, { 0x8A, 0x5F, 0x35, 0xDF, 0x33, 0x43, 0xF5, 0x1E }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverBindingProtocolGuid = { 0x18A031AB, 0xB443, 0x4D1A, { 0xA5, 0xC0, 0x0C, 0x09, 0x26, 0x1E, 0x9F, 0x71 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimpleTextOutProtocolGuid = { 0x387477C2, 0x69C7, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiGraphicsOutputProtocolGuid = { 0x9042A9DE, 0x23DC, 0x4A38, { 0x96, 0xFB, 0x7A, 0xDE, 0xD0, 0x80, 0x51, 0x6A }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiFontProtocolGuid = {0xe9ca4775, 0x8657, 0x47fc, {0x97, 0xe7, 0x7e, 0xd6, 0x5a, 0x08, 0x43, 0x24}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimpleFileSystemProtocolGuid = { 0x964E5B22, 0x6459, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiUgaDrawProtocolGuid = { 0x982C298B, 0xF4FA, 0x41CB, { 0xB8, 0x38, 0x77, 0xAA, 0x68, 0x8F, 0xB8, 0x39 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiComponentNameProtocolGuid = { 0x107A772C, 0xD5E1, 0x11D4, { 0x9A, 0x46, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiComponentName2ProtocolGuid = { 0x6A7A5CFF, 0xE8D9, 0x4F70, { 0xBA, 0xDA, 0x75, 0xAB, 0x30, 0x25, 0xCE, 0x14 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverConfigurationProtocolGuid = { 0x107A772B, 0xD5E1, 0x11D4, { 0x9A, 0x46, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverConfiguration2ProtocolGuid = { 0xBFD7DC1D, 0x24F1, 0x40D9, { 0x82, 0xE7, 0x2E, 0x09, 0xBB, 0x6B, 0x4E, 0xBE }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverDiagnosticsProtocolGuid = { 0x0784924F, 0xE296, 0x11D4, { 0x9A, 0x49, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverDiagnostics2ProtocolGuid = { 0x4D330321, 0x025F, 0x4AAC, { 0x90, 0xD8, 0x5E, 0xD9, 0x00, 0x17, 0x3B, 0x63 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiStringProtocolGuid = {0x0fd96974, 0x23aa, 0x4cdc, {0xb9, 0xcb, 0x98, 0xd1, 0x77, 0x50, 0x32, 0x2a}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiImageProtocolGuid = {0x31a6406a, 0x6bdf, 0x4e46, {0xb2, 0xa2, 0xeb, 0xaa, 0x89, 0xc4, 0x09, 0x20}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiDatabaseProtocolGuid = {0xef9fc172, 0xa1b2, 0x4693, {0xb3, 0x27, 0x6d, 0x32, 0xfc, 0x41, 0x60, 0x42}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiConfigRoutingProtocolGuid = {0x587e72d7, 0xcc50, 0x4f79, {0x82, 0x09, 0xca, 0x29, 0x1f, 0xc1, 0xa1, 0x0f}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiLoadedImageProtocolGuid = { 0x5B1B31A1, 0x9562, 0x11D2, { 0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimpleNetworkProtocolGuid = { 0xA19832B9, 0xAC25, 0x11D3, { 0x9A, 0x2D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAdapterInformationProtocolGuid = { 0xE5DD1403, 0xD622, 0xC24E, {0x84, 0x88, 0xC7, 0x1B, 0x17, 0xF5, 0xE8, 0x02 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDpcProtocolGuid = {0x480f8ae9, 0xc46, 0x4aa9, { 0xbc, 0x89, 0xdb, 0x9f, 0xba, 0x61, 0x98, 0x6 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiFormBrowser2ProtocolGuid = {0xb9d4c360, 0xbcfb, 0x4f9b, {0x92, 0x98, 0x53, 0xc1, 0x36, 0x98, 0x22, 0x58}};
+
+// Definition of SkuId Array
+GLOBAL_REMOVE_IF_UNREFERENCED UINT64 _gPcd_SkuId_Array[] = {0x0};
+
+// Definition of PCDs used in libraries
+
+#define _PCD_TOKEN_PcdVerifyNodeInList 0U
+#define _PCD_SIZE_PcdVerifyNodeInList 1
+#define _PCD_GET_MODE_SIZE_PcdVerifyNodeInList _PCD_SIZE_PcdVerifyNodeInList
+#define _PCD_VALUE_PcdVerifyNodeInList ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdVerifyNodeInList = _PCD_VALUE_PcdVerifyNodeInList;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdVerifyNodeInList;
+#define _PCD_GET_MODE_BOOL_PcdVerifyNodeInList _gPcd_FixedAtBuild_PcdVerifyNodeInList
+//#define _PCD_SET_MODE_BOOL_PcdVerifyNodeInList ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumLinkedListLength 0U
+#define _PCD_SIZE_PcdMaximumLinkedListLength 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumLinkedListLength _PCD_SIZE_PcdMaximumLinkedListLength
+#define _PCD_VALUE_PcdMaximumLinkedListLength 0U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumLinkedListLength = _PCD_VALUE_PcdMaximumLinkedListLength;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumLinkedListLength;
+#define _PCD_GET_MODE_32_PcdMaximumLinkedListLength _gPcd_FixedAtBuild_PcdMaximumLinkedListLength
+//#define _PCD_SET_MODE_32_PcdMaximumLinkedListLength ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumAsciiStringLength 0U
+#define _PCD_SIZE_PcdMaximumAsciiStringLength 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumAsciiStringLength _PCD_SIZE_PcdMaximumAsciiStringLength
+#define _PCD_VALUE_PcdMaximumAsciiStringLength 1000000U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumAsciiStringLength = _PCD_VALUE_PcdMaximumAsciiStringLength;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumAsciiStringLength;
+#define _PCD_GET_MODE_32_PcdMaximumAsciiStringLength _gPcd_FixedAtBuild_PcdMaximumAsciiStringLength
+//#define _PCD_SET_MODE_32_PcdMaximumAsciiStringLength ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumUnicodeStringLength 0U
+#define _PCD_SIZE_PcdMaximumUnicodeStringLength 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumUnicodeStringLength _PCD_SIZE_PcdMaximumUnicodeStringLength
+#define _PCD_VALUE_PcdMaximumUnicodeStringLength 1000000U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength = _PCD_VALUE_PcdMaximumUnicodeStringLength;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength;
+#define _PCD_GET_MODE_32_PcdMaximumUnicodeStringLength _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength
+//#define _PCD_SET_MODE_32_PcdMaximumUnicodeStringLength ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdControlFlowEnforcementPropertyMask 0U
+#define _PCD_SIZE_PcdControlFlowEnforcementPropertyMask 4
+#define _PCD_GET_MODE_SIZE_PcdControlFlowEnforcementPropertyMask _PCD_SIZE_PcdControlFlowEnforcementPropertyMask
+#define _PCD_VALUE_PcdControlFlowEnforcementPropertyMask 0x0U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdControlFlowEnforcementPropertyMask = _PCD_VALUE_PcdControlFlowEnforcementPropertyMask;
+extern const UINT32 _gPcd_FixedAtBuild_PcdControlFlowEnforcementPropertyMask;
+#define _PCD_GET_MODE_32_PcdControlFlowEnforcementPropertyMask _gPcd_FixedAtBuild_PcdControlFlowEnforcementPropertyMask
+//#define _PCD_SET_MODE_32_PcdControlFlowEnforcementPropertyMask ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdSpeculationBarrierType 0U
+#define _PCD_SIZE_PcdSpeculationBarrierType 1
+#define _PCD_GET_MODE_SIZE_PcdSpeculationBarrierType _PCD_SIZE_PcdSpeculationBarrierType
+#define _PCD_VALUE_PcdSpeculationBarrierType 0x01U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdSpeculationBarrierType = _PCD_VALUE_PcdSpeculationBarrierType;
+extern const UINT8 _gPcd_FixedAtBuild_PcdSpeculationBarrierType;
+#define _PCD_GET_MODE_8_PcdSpeculationBarrierType _gPcd_FixedAtBuild_PcdSpeculationBarrierType
+//#define _PCD_SET_MODE_8_PcdSpeculationBarrierType ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugPrintErrorLevel 0U
+#define _PCD_SIZE_PcdDebugPrintErrorLevel 4
+#define _PCD_GET_MODE_SIZE_PcdDebugPrintErrorLevel _PCD_SIZE_PcdDebugPrintErrorLevel
+#define _PCD_VALUE_PcdDebugPrintErrorLevel 0x8000004FU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdDebugPrintErrorLevel = _PCD_VALUE_PcdDebugPrintErrorLevel;
+extern const UINT32 _gPcd_FixedAtBuild_PcdDebugPrintErrorLevel;
+#define _PCD_GET_MODE_32_PcdDebugPrintErrorLevel _gPcd_FixedAtBuild_PcdDebugPrintErrorLevel
+//#define _PCD_SET_MODE_32_PcdDebugPrintErrorLevel ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugIoPort 0U
+#define _PCD_SIZE_PcdDebugIoPort 2
+#define _PCD_GET_MODE_SIZE_PcdDebugIoPort _PCD_SIZE_PcdDebugIoPort
+#define _PCD_VALUE_PcdDebugIoPort 0x402U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT16 _gPcd_FixedAtBuild_PcdDebugIoPort = _PCD_VALUE_PcdDebugIoPort;
+extern const UINT16 _gPcd_FixedAtBuild_PcdDebugIoPort;
+#define _PCD_GET_MODE_16_PcdDebugIoPort _gPcd_FixedAtBuild_PcdDebugIoPort
+//#define _PCD_SET_MODE_16_PcdDebugIoPort ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugClearMemoryValue 0U
+#define _PCD_SIZE_PcdDebugClearMemoryValue 1
+#define _PCD_GET_MODE_SIZE_PcdDebugClearMemoryValue _PCD_SIZE_PcdDebugClearMemoryValue
+#define _PCD_VALUE_PcdDebugClearMemoryValue 0xAFU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdDebugClearMemoryValue = _PCD_VALUE_PcdDebugClearMemoryValue;
+extern const UINT8 _gPcd_FixedAtBuild_PcdDebugClearMemoryValue;
+#define _PCD_GET_MODE_8_PcdDebugClearMemoryValue _gPcd_FixedAtBuild_PcdDebugClearMemoryValue
+//#define _PCD_SET_MODE_8_PcdDebugClearMemoryValue ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugPropertyMask 0U
+#define _PCD_SIZE_PcdDebugPropertyMask 1
+#define _PCD_GET_MODE_SIZE_PcdDebugPropertyMask _PCD_SIZE_PcdDebugPropertyMask
+#define _PCD_VALUE_PcdDebugPropertyMask 0x2FU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdDebugPropertyMask = _PCD_VALUE_PcdDebugPropertyMask;
+extern const UINT8 _gPcd_FixedAtBuild_PcdDebugPropertyMask;
+#define _PCD_GET_MODE_8_PcdDebugPropertyMask _gPcd_FixedAtBuild_PcdDebugPropertyMask
+//#define _PCD_SET_MODE_8_PcdDebugPropertyMask ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdFixedDebugPrintErrorLevel 0U
+#define _PCD_SIZE_PcdFixedDebugPrintErrorLevel 4
+#define _PCD_GET_MODE_SIZE_PcdFixedDebugPrintErrorLevel _PCD_SIZE_PcdFixedDebugPrintErrorLevel
+#define _PCD_VALUE_PcdFixedDebugPrintErrorLevel 0xFFFFFFFFU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel = _PCD_VALUE_PcdFixedDebugPrintErrorLevel;
+extern const UINT32 _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel;
+#define _PCD_GET_MODE_32_PcdFixedDebugPrintErrorLevel _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel
+//#define _PCD_SET_MODE_32_PcdFixedDebugPrintErrorLevel ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumDevicePathNodeCount 0U
+#define _PCD_SIZE_PcdMaximumDevicePathNodeCount 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumDevicePathNodeCount _PCD_SIZE_PcdMaximumDevicePathNodeCount
+#define _PCD_VALUE_PcdMaximumDevicePathNodeCount 0U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumDevicePathNodeCount = _PCD_VALUE_PcdMaximumDevicePathNodeCount;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumDevicePathNodeCount;
+#define _PCD_GET_MODE_32_PcdMaximumDevicePathNodeCount _gPcd_FixedAtBuild_PcdMaximumDevicePathNodeCount
+//#define _PCD_SET_MODE_32_PcdMaximumDevicePathNodeCount ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDriverDiagnosticsDisable 0U
+#define _PCD_SIZE_PcdDriverDiagnosticsDisable 1
+#define _PCD_GET_MODE_SIZE_PcdDriverDiagnosticsDisable _PCD_SIZE_PcdDriverDiagnosticsDisable
+#define _PCD_VALUE_PcdDriverDiagnosticsDisable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnosticsDisable = _PCD_VALUE_PcdDriverDiagnosticsDisable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnosticsDisable;
+#define _PCD_GET_MODE_BOOL_PcdDriverDiagnosticsDisable _gPcd_FixedAtBuild_PcdDriverDiagnosticsDisable
+//#define _PCD_SET_MODE_BOOL_PcdDriverDiagnosticsDisable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdComponentNameDisable 0U
+#define _PCD_SIZE_PcdComponentNameDisable 1
+#define _PCD_GET_MODE_SIZE_PcdComponentNameDisable _PCD_SIZE_PcdComponentNameDisable
+#define _PCD_VALUE_PcdComponentNameDisable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdComponentNameDisable = _PCD_VALUE_PcdComponentNameDisable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdComponentNameDisable;
+#define _PCD_GET_MODE_BOOL_PcdComponentNameDisable _gPcd_FixedAtBuild_PcdComponentNameDisable
+//#define _PCD_SET_MODE_BOOL_PcdComponentNameDisable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDriverDiagnostics2Disable 0U
+#define _PCD_SIZE_PcdDriverDiagnostics2Disable 1
+#define _PCD_GET_MODE_SIZE_PcdDriverDiagnostics2Disable _PCD_SIZE_PcdDriverDiagnostics2Disable
+#define _PCD_VALUE_PcdDriverDiagnostics2Disable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnostics2Disable = _PCD_VALUE_PcdDriverDiagnostics2Disable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnostics2Disable;
+#define _PCD_GET_MODE_BOOL_PcdDriverDiagnostics2Disable _gPcd_FixedAtBuild_PcdDriverDiagnostics2Disable
+//#define _PCD_SET_MODE_BOOL_PcdDriverDiagnostics2Disable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdComponentName2Disable 0U
+#define _PCD_SIZE_PcdComponentName2Disable 1
+#define _PCD_GET_MODE_SIZE_PcdComponentName2Disable _PCD_SIZE_PcdComponentName2Disable
+#define _PCD_VALUE_PcdComponentName2Disable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdComponentName2Disable = _PCD_VALUE_PcdComponentName2Disable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdComponentName2Disable;
+#define _PCD_GET_MODE_BOOL_PcdComponentName2Disable _gPcd_FixedAtBuild_PcdComponentName2Disable
+//#define _PCD_SET_MODE_BOOL_PcdComponentName2Disable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdUgaConsumeSupport 0U
+#define _PCD_SIZE_PcdUgaConsumeSupport 1
+#define _PCD_GET_MODE_SIZE_PcdUgaConsumeSupport _PCD_SIZE_PcdUgaConsumeSupport
+#define _PCD_VALUE_PcdUgaConsumeSupport ((BOOLEAN)1U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdUgaConsumeSupport = _PCD_VALUE_PcdUgaConsumeSupport;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdUgaConsumeSupport;
+#define _PCD_GET_MODE_BOOL_PcdUgaConsumeSupport _gPcd_FixedAtBuild_PcdUgaConsumeSupport
+//#define _PCD_SET_MODE_BOOL_PcdUgaConsumeSupport ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdUefiLibMaxPrintBufferSize 0U
+#define _PCD_SIZE_PcdUefiLibMaxPrintBufferSize 4
+#define _PCD_GET_MODE_SIZE_PcdUefiLibMaxPrintBufferSize _PCD_SIZE_PcdUefiLibMaxPrintBufferSize
+#define _PCD_VALUE_PcdUefiLibMaxPrintBufferSize 320U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdUefiLibMaxPrintBufferSize = _PCD_VALUE_PcdUefiLibMaxPrintBufferSize;
+extern const UINT32 _gPcd_FixedAtBuild_PcdUefiLibMaxPrintBufferSize;
+#define _PCD_GET_MODE_32_PcdUefiLibMaxPrintBufferSize _gPcd_FixedAtBuild_PcdUefiLibMaxPrintBufferSize
+//#define _PCD_SET_MODE_32_PcdUefiLibMaxPrintBufferSize ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+
+RETURN_STATUS
+EFIAPI
+PlatformDebugLibIoPortConstructor (
+ VOID
+ );
+
+EFI_STATUS
+EFIAPI
+UefiBootServicesTableLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+DevicePathLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+UefiRuntimeServicesTableLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+UefiLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+UefiHiiServicesLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+DpcLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+
+VOID
+EFIAPI
+ProcessLibraryConstructorList (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+{
+ EFI_STATUS Status;
+
+ Status = PlatformDebugLibIoPortConstructor ();
+ ASSERT_RETURN_ERROR (Status);
+
+ Status = UefiBootServicesTableLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = DevicePathLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = UefiRuntimeServicesTableLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = UefiLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = UefiHiiServicesLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = DpcLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+}
+
+
+
+VOID
+EFIAPI
+ProcessLibraryDestructorList (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+{
+
+}
+
+const UINT32 _gUefiDriverRevision = 0x00000000U;
+const UINT32 _gDxeRevision = 0x00000000U;
+
+
+EFI_STATUS
+EFIAPI
+ProcessModuleEntryPointList (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+
+{
+ return Ip4DriverEntryPoint (ImageHandle, SystemTable);
+}
+
+VOID
+EFIAPI
+ExitDriver (
+ IN EFI_STATUS Status
+ )
+{
+ if (EFI_ERROR (Status)) {
+ ProcessLibraryDestructorList (gImageHandle, gST);
+ }
+ gBS->Exit (gImageHandle, Status, 0, NULL);
+}
+
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gDriverUnloadImageCount = 1U;
+
+
+EFI_STATUS
+EFIAPI
+ProcessModuleUnloadList (
+ IN EFI_HANDLE ImageHandle
+ )
+{
+ return NetLibDefaultUnload (ImageHandle);
+}
+
+
+//
+//Unicode String Pack Definition
+//
+unsigned char Ip4DxeStrings[] = {
+
+// STRGATHER_OUTPUT_HEADER
+ 0x69, 0x04, 0x00, 0x00,
+
+// PACKAGE HEADER
+
+ 0x65, 0x04, 0x00, 0x04, 0x34, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x65, 0x6E,
+ 0x2D, 0x55, 0x53, 0x00,
+
+// PACKAGE DATA
+
+// 0x0001: $PRINTABLE_LANGUAGE_NAME:0x0001
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x73, 0x00, 0x68, 0x00, 0x00,
+ 0x00,
+// 0x0002: STR_IP4_CONFIG2_FORM_TITLE:0x0002
+ 0x14, 0x49, 0x00, 0x50, 0x00, 0x76, 0x00, 0x34, 0x00, 0x20, 0x00, 0x4E, 0x00, 0x65, 0x00, 0x74,
+ 0x00, 0x77, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x6B, 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F, 0x00, 0x6E,
+ 0x00, 0x66, 0x00, 0x69, 0x00, 0x67, 0x00, 0x75, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x0003: STR_IP4_CONFIG2_FORM_HELP:0x0003
+ 0x14, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x66, 0x00, 0x69, 0x00, 0x67, 0x00, 0x75, 0x00, 0x72,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x74, 0x00, 0x77, 0x00, 0x6F, 0x00, 0x72,
+ 0x00, 0x6B, 0x00, 0x20, 0x00, 0x70, 0x00, 0x61, 0x00, 0x72, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65,
+ 0x00, 0x74, 0x00, 0x65, 0x00, 0x72, 0x00, 0x73, 0x00, 0x2E, 0x00, 0x00, 0x00,
+// 0x0004: STR_IP4_DEVICE_FORM_TITLE:0x0004
+ 0x14, 0x00, 0x00,
+// 0x0005: STR_IP4_DEVICE_FORM_HELP:0x0005
+ 0x14, 0x00, 0x00,
+// 0x0006: STR_IP4_CONFIGURE:0x0006
+ 0x14, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x66, 0x00, 0x69, 0x00, 0x67, 0x00, 0x75, 0x00, 0x72,
+ 0x00, 0x65, 0x00, 0x64, 0x00, 0x00, 0x00,
+// 0x0007: STR_IP4_CONFIGURE_HELP:0x0007
+ 0x14, 0x49, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x69, 0x00, 0x63, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x77, 0x00, 0x68, 0x00, 0x65, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x72,
+ 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x74, 0x00, 0x77, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x6B,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x64, 0x00, 0x64, 0x00, 0x72, 0x00, 0x65, 0x00, 0x73, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x66, 0x00, 0x69, 0x00, 0x67, 0x00, 0x75,
+ 0x00, 0x72, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x73, 0x00, 0x75, 0x00, 0x63, 0x00, 0x63,
+ 0x00, 0x65, 0x00, 0x73, 0x00, 0x73, 0x00, 0x66, 0x00, 0x75, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x79,
+ 0x00, 0x20, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x2E,
+ 0x00, 0x00, 0x00,
+// 0x0008: STR_IP4_ENABLE_DHCP:0x0008
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x62, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x44,
+ 0x00, 0x48, 0x00, 0x43, 0x00, 0x50, 0x00, 0x00, 0x00,
+// 0x0009: STR_IP4_LOCAL_IP_ADDRESS:0x0009
+ 0x14, 0x4C, 0x00, 0x6F, 0x00, 0x63, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x49, 0x00, 0x50,
+ 0x00, 0x20, 0x00, 0x41, 0x00, 0x64, 0x00, 0x64, 0x00, 0x72, 0x00, 0x65, 0x00, 0x73, 0x00, 0x73,
+ 0x00, 0x00, 0x00,
+// 0x000A: STR_IP4_IP_ADDRESS_HELP:0x000A
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x49, 0x00, 0x50,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x64, 0x00, 0x64, 0x00, 0x72, 0x00, 0x65, 0x00, 0x73, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x64, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x74,
+ 0x00, 0x65, 0x00, 0x64, 0x00, 0x2D, 0x00, 0x64, 0x00, 0x65, 0x00, 0x63, 0x00, 0x69, 0x00, 0x6D,
+ 0x00, 0x61, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x61, 0x00, 0x74,
+ 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x2E, 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x61,
+ 0x00, 0x6D, 0x00, 0x70, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x3A, 0x00, 0x20, 0x00, 0x31, 0x00, 0x39,
+ 0x00, 0x32, 0x00, 0x2E, 0x00, 0x31, 0x00, 0x36, 0x00, 0x38, 0x00, 0x2E, 0x00, 0x31, 0x00, 0x30,
+ 0x00, 0x2E, 0x00, 0x31, 0x00, 0x32, 0x00, 0x0D, 0x00, 0x0A, 0x00, 0x00, 0x00,
+// 0x000B: STR_IP4_LOCAL_MASK:0x000B
+ 0x14, 0x4C, 0x00, 0x6F, 0x00, 0x63, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x4E, 0x00, 0x65,
+ 0x00, 0x74, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x73, 0x00, 0x6B, 0x00, 0x00, 0x00,
+// 0x000C: STR_IP4_MASK_HELP:0x000C
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x4E, 0x00, 0x65,
+ 0x00, 0x74, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x73, 0x00, 0x6B, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6E,
+ 0x00, 0x20, 0x00, 0x64, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x2D,
+ 0x00, 0x64, 0x00, 0x65, 0x00, 0x63, 0x00, 0x69, 0x00, 0x6D, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x20,
+ 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E,
+ 0x00, 0x2E, 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x70, 0x00, 0x6C,
+ 0x00, 0x65, 0x00, 0x3A, 0x00, 0x20, 0x00, 0x32, 0x00, 0x35, 0x00, 0x35, 0x00, 0x2E, 0x00, 0x32,
+ 0x00, 0x35, 0x00, 0x35, 0x00, 0x2E, 0x00, 0x32, 0x00, 0x35, 0x00, 0x35, 0x00, 0x2E, 0x00, 0x30,
+ 0x00, 0x0D, 0x00, 0x0A, 0x00, 0x00, 0x00,
+// 0x000D: STR_IP4_LOCAL_GATEWAY:0x000D
+ 0x14, 0x4C, 0x00, 0x6F, 0x00, 0x63, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x47, 0x00, 0x61,
+ 0x00, 0x74, 0x00, 0x65, 0x00, 0x77, 0x00, 0x61, 0x00, 0x79, 0x00, 0x00, 0x00,
+// 0x000E: STR_IP4_GATEWAY_HELP:0x000E
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x47, 0x00, 0x61,
+ 0x00, 0x74, 0x00, 0x65, 0x00, 0x77, 0x00, 0x61, 0x00, 0x79, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6E,
+ 0x00, 0x20, 0x00, 0x64, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x2D,
+ 0x00, 0x64, 0x00, 0x65, 0x00, 0x63, 0x00, 0x69, 0x00, 0x6D, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x20,
+ 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E,
+ 0x00, 0x2E, 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x70, 0x00, 0x6C,
+ 0x00, 0x65, 0x00, 0x3A, 0x00, 0x20, 0x00, 0x31, 0x00, 0x39, 0x00, 0x32, 0x00, 0x2E, 0x00, 0x31,
+ 0x00, 0x36, 0x00, 0x38, 0x00, 0x2E, 0x00, 0x31, 0x00, 0x30, 0x00, 0x2E, 0x00, 0x31, 0x00, 0x0D,
+ 0x00, 0x0A, 0x00, 0x00, 0x00,
+// 0x000F: STR_IP4_LOCAL_DNS:0x000F
+ 0x14, 0x4C, 0x00, 0x6F, 0x00, 0x63, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x44, 0x00, 0x4E,
+ 0x00, 0x53, 0x00, 0x20, 0x00, 0x53, 0x00, 0x65, 0x00, 0x72, 0x00, 0x76, 0x00, 0x65, 0x00, 0x72,
+ 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x0010: STR_IP4_DNS_HELP:0x0010
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x44, 0x00, 0x4E,
+ 0x00, 0x53, 0x00, 0x20, 0x00, 0x53, 0x00, 0x65, 0x00, 0x72, 0x00, 0x76, 0x00, 0x65, 0x00, 0x72,
+ 0x00, 0x73, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x64, 0x00, 0x6F, 0x00, 0x74,
+ 0x00, 0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x2D, 0x00, 0x64, 0x00, 0x65, 0x00, 0x63, 0x00, 0x69,
+ 0x00, 0x6D, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x61,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x2E, 0x00, 0x20, 0x00, 0x45, 0x00, 0x78,
+ 0x00, 0x61, 0x00, 0x6D, 0x00, 0x70, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x3A, 0x00, 0x20, 0x00, 0x31,
+ 0x00, 0x39, 0x00, 0x32, 0x00, 0x2E, 0x00, 0x31, 0x00, 0x36, 0x00, 0x38, 0x00, 0x2E, 0x00, 0x31,
+ 0x00, 0x30, 0x00, 0x2E, 0x00, 0x38, 0x00, 0x20, 0x00, 0x31, 0x00, 0x39, 0x00, 0x32, 0x00, 0x2E,
+ 0x00, 0x31, 0x00, 0x36, 0x00, 0x38, 0x00, 0x2E, 0x00, 0x31, 0x00, 0x30, 0x00, 0x2E, 0x00, 0x39,
+ 0x00, 0x0D, 0x00, 0x0A, 0x00, 0x00, 0x00,
+// 0x0011: STR_SAVE_CHANGES:0x0011
+ 0x14, 0x53, 0x00, 0x61, 0x00, 0x76, 0x00, 0x65, 0x00, 0x20, 0x00, 0x43, 0x00, 0x68, 0x00, 0x61,
+ 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x64,
+ 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x69, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x0012: STR_NULL:0x0012
+ 0x14, 0x00, 0x00,
+ 0x00,
+
+};
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Config2.c b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Config2.c
new file mode 100644
index 000000000000..661db0926326
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Config2.c
@@ -0,0 +1,39 @@
+//
+// DO NOT EDIT -- auto-generated file
+//
+// This file is generated by the vfrcompiler utility
+//
+
+unsigned char Ip4Config2Bin[] = {
+ // ARRAY LENGTH
+
+ 0x3C, 0x01, 0x00, 0x00,
+
+ // PACKAGE HEADER
+
+ 0x38, 0x01, 0x00, 0x02,
+
+ // PACKAGE DATA
+
+ 0x0E, 0xA7, 0x47, 0x27, 0x94, 0x9B, 0x4E, 0x15, 0x29, 0x4D, 0xA4, 0x36, 0xBF, 0x71, 0x00, 0xC8,
+ 0xB5, 0x3B, 0x02, 0x00, 0x03, 0x00, 0x01, 0x71, 0x99, 0x03, 0x93, 0x45, 0x85, 0x04, 0x4B, 0xB4,
+ 0x5E, 0x32, 0xEB, 0x83, 0x26, 0x04, 0x0E, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93,
+ 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x03, 0x04, 0x00, 0x5F, 0x15, 0x35, 0x17,
+ 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x04, 0x03,
+ 0x00, 0x5C, 0x06, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x06, 0x00, 0x00, 0x01, 0x00, 0x24, 0x2D, 0x47,
+ 0x27, 0x94, 0x9B, 0x4E, 0x15, 0x29, 0x4D, 0xA4, 0x36, 0xBF, 0x71, 0x00, 0xC8, 0xB5, 0x3B, 0x01,
+ 0x00, 0x60, 0x02, 0x49, 0x50, 0x34, 0x5F, 0x43, 0x4F, 0x4E, 0x46, 0x49, 0x47, 0x32, 0x5F, 0x49,
+ 0x46, 0x52, 0x5F, 0x4E, 0x56, 0x44, 0x41, 0x54, 0x41, 0x00, 0x01, 0x86, 0x01, 0x00, 0x04, 0x00,
+ 0x06, 0x8E, 0x06, 0x00, 0x07, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x29, 0x02,
+ 0x0A, 0x82, 0x12, 0x06, 0x00, 0x01, 0x00, 0x00, 0x06, 0x8E, 0x08, 0x00, 0x08, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x29, 0x02, 0x29, 0x02, 0x0A, 0x82, 0x12, 0x86, 0x01, 0x01,
+ 0x01, 0x00, 0x12, 0x06, 0x00, 0x01, 0x00, 0x00, 0x16, 0x02, 0x29, 0x02, 0x1C, 0x90, 0x09, 0x00,
+ 0x0A, 0x00, 0x02, 0x01, 0x01, 0x00, 0x02, 0x00, 0x04, 0x07, 0x0F, 0x00, 0x29, 0x02, 0x1C, 0x90,
+ 0x0B, 0x00, 0x0C, 0x00, 0x03, 0x01, 0x01, 0x00, 0x22, 0x00, 0x04, 0x07, 0x0F, 0x00, 0x29, 0x02,
+ 0x1C, 0x90, 0x0D, 0x00, 0x0E, 0x00, 0x04, 0x01, 0x01, 0x00, 0x42, 0x00, 0x04, 0x07, 0x0F, 0x00,
+ 0x29, 0x02, 0x1C, 0x90, 0x0F, 0x00, 0x10, 0x00, 0x05, 0x01, 0x01, 0x00, 0x62, 0x00, 0x04, 0x07,
+ 0xFF, 0x00, 0x29, 0x02, 0x29, 0x02, 0x02, 0x87, 0x12, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x0C,
+ 0x8F, 0x11, 0x00, 0x11, 0x00, 0x06, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x29, 0x02,
+ 0x29, 0x02, 0x29, 0x02
+
+};
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/AutoGen.c b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/AutoGen.c
new file mode 100644
index 000000000000..6c67bdc22e2c
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/AutoGen.c
@@ -0,0 +1,459 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ AutoGen.c
+ Abstract: Auto-generated AutoGen.c for building module or library.
+**/
+#include <PiDxe.h>
+#include <Library/BaseLib.h>
+#include <Library/DebugLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+#include <Library/UefiDriverEntryPoint.h>
+
+GLOBAL_REMOVE_IF_UNREFERENCED GUID gEfiCallerIdGuid = {0xD9DCC5DF, 0x4007, 0x435E, {0x90, 0x98, 0x89, 0x70, 0x93, 0x55, 0x04, 0xB2}};
+
+GLOBAL_REMOVE_IF_UNREFERENCED GUID gEdkiiDscPlatformGuid = {0x5a9e7754, 0xd81b, 0x49ea, {0x85, 0xad, 0x69, 0xea, 0xa7, 0xb1, 0x53, 0x9b}};
+
+GLOBAL_REMOVE_IF_UNREFERENCED CHAR8 *gEfiCallerBaseName = "PlatformDxe";
+
+// Guids
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiIfrTianoGuid = { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gOvmfPlatformConfigGuid = {0x7235c51c, 0x0c80, 0x4cab, {0x87, 0xac, 0x3b, 0x08, 0x4a, 0x63, 0x04, 0xb1}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiMdeModulePkgTokenSpaceGuid = { 0xA1AFF049, 0xFDEB, 0x442a, { 0xB3, 0x20, 0x13, 0xAB, 0x4C, 0xB7, 0x2B, 0xBC }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gUefiOvmfPkgTokenSpaceGuid = {0x93bb96af, 0xb9f2, 0x4eb8, {0x94, 0x62, 0xe0, 0xba, 0x74, 0x56, 0x42, 0x36}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiMdePkgTokenSpaceGuid = { 0x914AEBE7, 0x4635, 0x459b, { 0xAA, 0x1C, 0x11, 0xE2, 0x19, 0xB0, 0x3A, 0x10 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiEventReadyToBootGuid = { 0x7CE88FB3, 0x4BD7, 0x4679, { 0x87, 0xA8, 0xA8, 0xD8, 0xDE, 0xE5, 0x0D, 0x2B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiEventLegacyBootGuid = { 0x2A571201, 0x4966, 0x47F6, { 0x8B, 0x86, 0xF3, 0x1E, 0x41, 0xF3, 0x2F, 0x10 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiGlobalVariableGuid = { 0x8BE4DF61, 0x93CA, 0x11D2, { 0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAcpi20TableGuid = { 0x8868E871, 0xE4F1, 0x11D3, { 0xBC, 0x22, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAcpi10TableGuid = { 0xEB9D2D30, 0x2D88, 0x11D3, { 0x9A, 0x16, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEdkiiIfrBitVarstoreGuid = {0x82DDD68B, 0x9163, 0x4187, {0x9B, 0x27, 0x20, 0xA8, 0xFD, 0x60,0xA7, 0x1D}};
+
+// Protocols
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathProtocolGuid = { 0x09576E91, 0x6D3F, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiGraphicsOutputProtocolGuid = { 0x9042A9DE, 0x23DC, 0x4A38, { 0x96, 0xFB, 0x7A, 0xDE, 0xD0, 0x80, 0x51, 0x6A }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiConfigAccessProtocolGuid = {0x330d4706, 0xf2a0, 0x4e4f, {0xa3, 0x69, 0xb6, 0x6f, 0xa8, 0xd5, 0x43, 0x85}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gPcdProtocolGuid = { 0x11B34006, 0xD85B, 0x4D0A, { 0xA2, 0x90, 0xD5, 0xA5, 0x71, 0x31, 0x0E, 0xF7 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiPcdProtocolGuid = { 0x13a3f0f6, 0x264a, 0x3ef0, { 0xf2, 0xe0, 0xde, 0xc5, 0x12, 0x34, 0x2f, 0x34 } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gGetPcdInfoProtocolGuid = { 0x5be40f57, 0xfa68, 0x4610, { 0xbb, 0xbf, 0xe9, 0xc5, 0xfc, 0xda, 0xd3, 0x65 } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiGetPcdInfoProtocolGuid = { 0xfd0f4478, 0xefd, 0x461d, { 0xba, 0x2d, 0xe5, 0x8c, 0x45, 0xfd, 0x5f, 0x5e } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathUtilitiesProtocolGuid = { 0x0379BE4E, 0xD706, 0x437D, { 0xB0, 0x37, 0xED, 0xB8, 0x2F, 0xB7, 0x72, 0xA4 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathToTextProtocolGuid = { 0x8B843E20, 0x8132, 0x4852, { 0x90, 0xCC, 0x55, 0x1A, 0x4E, 0x4A, 0x7F, 0x1C }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathFromTextProtocolGuid = { 0x05C99A21, 0xC70F, 0x4AD2, { 0x8A, 0x5F, 0x35, 0xDF, 0x33, 0x43, 0xF5, 0x1E }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverBindingProtocolGuid = { 0x18A031AB, 0xB443, 0x4D1A, { 0xA5, 0xC0, 0x0C, 0x09, 0x26, 0x1E, 0x9F, 0x71 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimpleTextOutProtocolGuid = { 0x387477C2, 0x69C7, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiFontProtocolGuid = {0xe9ca4775, 0x8657, 0x47fc, {0x97, 0xe7, 0x7e, 0xd6, 0x5a, 0x08, 0x43, 0x24}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimpleFileSystemProtocolGuid = { 0x964E5B22, 0x6459, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiUgaDrawProtocolGuid = { 0x982C298B, 0xF4FA, 0x41CB, { 0xB8, 0x38, 0x77, 0xAA, 0x68, 0x8F, 0xB8, 0x39 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiComponentNameProtocolGuid = { 0x107A772C, 0xD5E1, 0x11D4, { 0x9A, 0x46, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiComponentName2ProtocolGuid = { 0x6A7A5CFF, 0xE8D9, 0x4F70, { 0xBA, 0xDA, 0x75, 0xAB, 0x30, 0x25, 0xCE, 0x14 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverConfigurationProtocolGuid = { 0x107A772B, 0xD5E1, 0x11D4, { 0x9A, 0x46, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverConfiguration2ProtocolGuid = { 0xBFD7DC1D, 0x24F1, 0x40D9, { 0x82, 0xE7, 0x2E, 0x09, 0xBB, 0x6B, 0x4E, 0xBE }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverDiagnosticsProtocolGuid = { 0x0784924F, 0xE296, 0x11D4, { 0x9A, 0x49, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverDiagnostics2ProtocolGuid = { 0x4D330321, 0x025F, 0x4AAC, { 0x90, 0xD8, 0x5E, 0xD9, 0x00, 0x17, 0x3B, 0x63 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiStringProtocolGuid = {0x0fd96974, 0x23aa, 0x4cdc, {0xb9, 0xcb, 0x98, 0xd1, 0x77, 0x50, 0x32, 0x2a}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiImageProtocolGuid = {0x31a6406a, 0x6bdf, 0x4e46, {0xb2, 0xa2, 0xeb, 0xaa, 0x89, 0xc4, 0x09, 0x20}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiDatabaseProtocolGuid = {0xef9fc172, 0xa1b2, 0x4693, {0xb3, 0x27, 0x6d, 0x32, 0xfc, 0x41, 0x60, 0x42}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiConfigRoutingProtocolGuid = {0x587e72d7, 0xcc50, 0x4f79, {0x82, 0x09, 0xca, 0x29, 0x1f, 0xc1, 0xa1, 0x0f}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiFormBrowser2ProtocolGuid = {0xb9d4c360, 0xbcfb, 0x4f9b, {0x92, 0x98, 0x53, 0xc1, 0x36, 0x98, 0x22, 0x58}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiLoadedImageProtocolGuid = { 0x5B1B31A1, 0x9562, 0x11D2, { 0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+
+// Definition of SkuId Array
+GLOBAL_REMOVE_IF_UNREFERENCED UINT64 _gPcd_SkuId_Array[] = {0x0};
+
+// Definition of PCDs used in this module
+
+// Definition of PCDs used in libraries
+
+#define _PCD_TOKEN_PcdVerifyNodeInList 0U
+#define _PCD_SIZE_PcdVerifyNodeInList 1
+#define _PCD_GET_MODE_SIZE_PcdVerifyNodeInList _PCD_SIZE_PcdVerifyNodeInList
+#define _PCD_VALUE_PcdVerifyNodeInList ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdVerifyNodeInList = _PCD_VALUE_PcdVerifyNodeInList;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdVerifyNodeInList;
+#define _PCD_GET_MODE_BOOL_PcdVerifyNodeInList _gPcd_FixedAtBuild_PcdVerifyNodeInList
+//#define _PCD_SET_MODE_BOOL_PcdVerifyNodeInList ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumLinkedListLength 0U
+#define _PCD_SIZE_PcdMaximumLinkedListLength 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumLinkedListLength _PCD_SIZE_PcdMaximumLinkedListLength
+#define _PCD_VALUE_PcdMaximumLinkedListLength 0U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumLinkedListLength = _PCD_VALUE_PcdMaximumLinkedListLength;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumLinkedListLength;
+#define _PCD_GET_MODE_32_PcdMaximumLinkedListLength _gPcd_FixedAtBuild_PcdMaximumLinkedListLength
+//#define _PCD_SET_MODE_32_PcdMaximumLinkedListLength ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumAsciiStringLength 0U
+#define _PCD_SIZE_PcdMaximumAsciiStringLength 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumAsciiStringLength _PCD_SIZE_PcdMaximumAsciiStringLength
+#define _PCD_VALUE_PcdMaximumAsciiStringLength 1000000U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumAsciiStringLength = _PCD_VALUE_PcdMaximumAsciiStringLength;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumAsciiStringLength;
+#define _PCD_GET_MODE_32_PcdMaximumAsciiStringLength _gPcd_FixedAtBuild_PcdMaximumAsciiStringLength
+//#define _PCD_SET_MODE_32_PcdMaximumAsciiStringLength ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumUnicodeStringLength 0U
+#define _PCD_SIZE_PcdMaximumUnicodeStringLength 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumUnicodeStringLength _PCD_SIZE_PcdMaximumUnicodeStringLength
+#define _PCD_VALUE_PcdMaximumUnicodeStringLength 1000000U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength = _PCD_VALUE_PcdMaximumUnicodeStringLength;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength;
+#define _PCD_GET_MODE_32_PcdMaximumUnicodeStringLength _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength
+//#define _PCD_SET_MODE_32_PcdMaximumUnicodeStringLength ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdControlFlowEnforcementPropertyMask 0U
+#define _PCD_SIZE_PcdControlFlowEnforcementPropertyMask 4
+#define _PCD_GET_MODE_SIZE_PcdControlFlowEnforcementPropertyMask _PCD_SIZE_PcdControlFlowEnforcementPropertyMask
+#define _PCD_VALUE_PcdControlFlowEnforcementPropertyMask 0x0U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdControlFlowEnforcementPropertyMask = _PCD_VALUE_PcdControlFlowEnforcementPropertyMask;
+extern const UINT32 _gPcd_FixedAtBuild_PcdControlFlowEnforcementPropertyMask;
+#define _PCD_GET_MODE_32_PcdControlFlowEnforcementPropertyMask _gPcd_FixedAtBuild_PcdControlFlowEnforcementPropertyMask
+//#define _PCD_SET_MODE_32_PcdControlFlowEnforcementPropertyMask ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdSpeculationBarrierType 0U
+#define _PCD_SIZE_PcdSpeculationBarrierType 1
+#define _PCD_GET_MODE_SIZE_PcdSpeculationBarrierType _PCD_SIZE_PcdSpeculationBarrierType
+#define _PCD_VALUE_PcdSpeculationBarrierType 0x01U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdSpeculationBarrierType = _PCD_VALUE_PcdSpeculationBarrierType;
+extern const UINT8 _gPcd_FixedAtBuild_PcdSpeculationBarrierType;
+#define _PCD_GET_MODE_8_PcdSpeculationBarrierType _gPcd_FixedAtBuild_PcdSpeculationBarrierType
+//#define _PCD_SET_MODE_8_PcdSpeculationBarrierType ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdOvmfWorkAreaBase 0U
+#define _PCD_SIZE_PcdOvmfWorkAreaBase 4
+#define _PCD_GET_MODE_SIZE_PcdOvmfWorkAreaBase _PCD_SIZE_PcdOvmfWorkAreaBase
+#define _PCD_VALUE_PcdOvmfWorkAreaBase 0x0080B000U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdOvmfWorkAreaBase = _PCD_VALUE_PcdOvmfWorkAreaBase;
+extern const UINT32 _gPcd_FixedAtBuild_PcdOvmfWorkAreaBase;
+#define _PCD_GET_MODE_32_PcdOvmfWorkAreaBase _gPcd_FixedAtBuild_PcdOvmfWorkAreaBase
+//#define _PCD_SET_MODE_32_PcdOvmfWorkAreaBase ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugPrintErrorLevel 0U
+#define _PCD_SIZE_PcdDebugPrintErrorLevel 4
+#define _PCD_GET_MODE_SIZE_PcdDebugPrintErrorLevel _PCD_SIZE_PcdDebugPrintErrorLevel
+#define _PCD_VALUE_PcdDebugPrintErrorLevel 0x8000004FU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdDebugPrintErrorLevel = _PCD_VALUE_PcdDebugPrintErrorLevel;
+extern const UINT32 _gPcd_FixedAtBuild_PcdDebugPrintErrorLevel;
+#define _PCD_GET_MODE_32_PcdDebugPrintErrorLevel _gPcd_FixedAtBuild_PcdDebugPrintErrorLevel
+//#define _PCD_SET_MODE_32_PcdDebugPrintErrorLevel ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugIoPort 0U
+#define _PCD_SIZE_PcdDebugIoPort 2
+#define _PCD_GET_MODE_SIZE_PcdDebugIoPort _PCD_SIZE_PcdDebugIoPort
+#define _PCD_VALUE_PcdDebugIoPort 0x402U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT16 _gPcd_FixedAtBuild_PcdDebugIoPort = _PCD_VALUE_PcdDebugIoPort;
+extern const UINT16 _gPcd_FixedAtBuild_PcdDebugIoPort;
+#define _PCD_GET_MODE_16_PcdDebugIoPort _gPcd_FixedAtBuild_PcdDebugIoPort
+//#define _PCD_SET_MODE_16_PcdDebugIoPort ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugClearMemoryValue 0U
+#define _PCD_SIZE_PcdDebugClearMemoryValue 1
+#define _PCD_GET_MODE_SIZE_PcdDebugClearMemoryValue _PCD_SIZE_PcdDebugClearMemoryValue
+#define _PCD_VALUE_PcdDebugClearMemoryValue 0xAFU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdDebugClearMemoryValue = _PCD_VALUE_PcdDebugClearMemoryValue;
+extern const UINT8 _gPcd_FixedAtBuild_PcdDebugClearMemoryValue;
+#define _PCD_GET_MODE_8_PcdDebugClearMemoryValue _gPcd_FixedAtBuild_PcdDebugClearMemoryValue
+//#define _PCD_SET_MODE_8_PcdDebugClearMemoryValue ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugPropertyMask 0U
+#define _PCD_SIZE_PcdDebugPropertyMask 1
+#define _PCD_GET_MODE_SIZE_PcdDebugPropertyMask _PCD_SIZE_PcdDebugPropertyMask
+#define _PCD_VALUE_PcdDebugPropertyMask 0x2FU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdDebugPropertyMask = _PCD_VALUE_PcdDebugPropertyMask;
+extern const UINT8 _gPcd_FixedAtBuild_PcdDebugPropertyMask;
+#define _PCD_GET_MODE_8_PcdDebugPropertyMask _gPcd_FixedAtBuild_PcdDebugPropertyMask
+//#define _PCD_SET_MODE_8_PcdDebugPropertyMask ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdFixedDebugPrintErrorLevel 0U
+#define _PCD_SIZE_PcdFixedDebugPrintErrorLevel 4
+#define _PCD_GET_MODE_SIZE_PcdFixedDebugPrintErrorLevel _PCD_SIZE_PcdFixedDebugPrintErrorLevel
+#define _PCD_VALUE_PcdFixedDebugPrintErrorLevel 0xFFFFFFFFU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel = _PCD_VALUE_PcdFixedDebugPrintErrorLevel;
+extern const UINT32 _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel;
+#define _PCD_GET_MODE_32_PcdFixedDebugPrintErrorLevel _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel
+//#define _PCD_SET_MODE_32_PcdFixedDebugPrintErrorLevel ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumDevicePathNodeCount 0U
+#define _PCD_SIZE_PcdMaximumDevicePathNodeCount 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumDevicePathNodeCount _PCD_SIZE_PcdMaximumDevicePathNodeCount
+#define _PCD_VALUE_PcdMaximumDevicePathNodeCount 0U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumDevicePathNodeCount = _PCD_VALUE_PcdMaximumDevicePathNodeCount;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumDevicePathNodeCount;
+#define _PCD_GET_MODE_32_PcdMaximumDevicePathNodeCount _gPcd_FixedAtBuild_PcdMaximumDevicePathNodeCount
+//#define _PCD_SET_MODE_32_PcdMaximumDevicePathNodeCount ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDriverDiagnosticsDisable 0U
+#define _PCD_SIZE_PcdDriverDiagnosticsDisable 1
+#define _PCD_GET_MODE_SIZE_PcdDriverDiagnosticsDisable _PCD_SIZE_PcdDriverDiagnosticsDisable
+#define _PCD_VALUE_PcdDriverDiagnosticsDisable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnosticsDisable = _PCD_VALUE_PcdDriverDiagnosticsDisable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnosticsDisable;
+#define _PCD_GET_MODE_BOOL_PcdDriverDiagnosticsDisable _gPcd_FixedAtBuild_PcdDriverDiagnosticsDisable
+//#define _PCD_SET_MODE_BOOL_PcdDriverDiagnosticsDisable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdComponentNameDisable 0U
+#define _PCD_SIZE_PcdComponentNameDisable 1
+#define _PCD_GET_MODE_SIZE_PcdComponentNameDisable _PCD_SIZE_PcdComponentNameDisable
+#define _PCD_VALUE_PcdComponentNameDisable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdComponentNameDisable = _PCD_VALUE_PcdComponentNameDisable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdComponentNameDisable;
+#define _PCD_GET_MODE_BOOL_PcdComponentNameDisable _gPcd_FixedAtBuild_PcdComponentNameDisable
+//#define _PCD_SET_MODE_BOOL_PcdComponentNameDisable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDriverDiagnostics2Disable 0U
+#define _PCD_SIZE_PcdDriverDiagnostics2Disable 1
+#define _PCD_GET_MODE_SIZE_PcdDriverDiagnostics2Disable _PCD_SIZE_PcdDriverDiagnostics2Disable
+#define _PCD_VALUE_PcdDriverDiagnostics2Disable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnostics2Disable = _PCD_VALUE_PcdDriverDiagnostics2Disable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnostics2Disable;
+#define _PCD_GET_MODE_BOOL_PcdDriverDiagnostics2Disable _gPcd_FixedAtBuild_PcdDriverDiagnostics2Disable
+//#define _PCD_SET_MODE_BOOL_PcdDriverDiagnostics2Disable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdComponentName2Disable 0U
+#define _PCD_SIZE_PcdComponentName2Disable 1
+#define _PCD_GET_MODE_SIZE_PcdComponentName2Disable _PCD_SIZE_PcdComponentName2Disable
+#define _PCD_VALUE_PcdComponentName2Disable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdComponentName2Disable = _PCD_VALUE_PcdComponentName2Disable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdComponentName2Disable;
+#define _PCD_GET_MODE_BOOL_PcdComponentName2Disable _gPcd_FixedAtBuild_PcdComponentName2Disable
+//#define _PCD_SET_MODE_BOOL_PcdComponentName2Disable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdUgaConsumeSupport 0U
+#define _PCD_SIZE_PcdUgaConsumeSupport 1
+#define _PCD_GET_MODE_SIZE_PcdUgaConsumeSupport _PCD_SIZE_PcdUgaConsumeSupport
+#define _PCD_VALUE_PcdUgaConsumeSupport ((BOOLEAN)1U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdUgaConsumeSupport = _PCD_VALUE_PcdUgaConsumeSupport;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdUgaConsumeSupport;
+#define _PCD_GET_MODE_BOOL_PcdUgaConsumeSupport _gPcd_FixedAtBuild_PcdUgaConsumeSupport
+//#define _PCD_SET_MODE_BOOL_PcdUgaConsumeSupport ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdUefiLibMaxPrintBufferSize 0U
+#define _PCD_SIZE_PcdUefiLibMaxPrintBufferSize 4
+#define _PCD_GET_MODE_SIZE_PcdUefiLibMaxPrintBufferSize _PCD_SIZE_PcdUefiLibMaxPrintBufferSize
+#define _PCD_VALUE_PcdUefiLibMaxPrintBufferSize 320U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdUefiLibMaxPrintBufferSize = _PCD_VALUE_PcdUefiLibMaxPrintBufferSize;
+extern const UINT32 _gPcd_FixedAtBuild_PcdUefiLibMaxPrintBufferSize;
+#define _PCD_GET_MODE_32_PcdUefiLibMaxPrintBufferSize _gPcd_FixedAtBuild_PcdUefiLibMaxPrintBufferSize
+//#define _PCD_SET_MODE_32_PcdUefiLibMaxPrintBufferSize ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+
+RETURN_STATUS
+EFIAPI
+PlatformDebugLibIoPortConstructor (
+ VOID
+ );
+
+EFI_STATUS
+EFIAPI
+UefiBootServicesTableLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+UefiRuntimeServicesTableLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+DevicePathLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+UefiLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+UefiHiiServicesLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+
+VOID
+EFIAPI
+ProcessLibraryConstructorList (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+{
+ EFI_STATUS Status;
+
+ Status = PlatformDebugLibIoPortConstructor ();
+ ASSERT_RETURN_ERROR (Status);
+
+ Status = UefiBootServicesTableLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = UefiRuntimeServicesTableLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = DevicePathLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = UefiLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = UefiHiiServicesLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+}
+
+
+
+VOID
+EFIAPI
+ProcessLibraryDestructorList (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+{
+
+}
+
+const UINT32 _gUefiDriverRevision = 0x00000000U;
+const UINT32 _gDxeRevision = 0x00000000U;
+
+
+EFI_STATUS
+EFIAPI
+ProcessModuleEntryPointList (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+
+{
+ return PlatformInit (ImageHandle, SystemTable);
+}
+
+VOID
+EFIAPI
+ExitDriver (
+ IN EFI_STATUS Status
+ )
+{
+ if (EFI_ERROR (Status)) {
+ ProcessLibraryDestructorList (gImageHandle, gST);
+ }
+ gBS->Exit (gImageHandle, Status, 0, NULL);
+}
+
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gDriverUnloadImageCount = 1U;
+
+
+EFI_STATUS
+EFIAPI
+ProcessModuleUnloadList (
+ IN EFI_HANDLE ImageHandle
+ )
+{
+ return PlatformUnload (ImageHandle);
+}
+
+
+//
+//Unicode String Pack Definition
+//
+unsigned char PlatformDxeStrings[] = {
+
+// STRGATHER_OUTPUT_HEADER
+ 0xE7, 0x03, 0x00, 0x00,
+
+// PACKAGE HEADER
+
+ 0xE3, 0x03, 0x00, 0x04, 0x34, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x65, 0x6E,
+ 0x2D, 0x55, 0x53, 0x00,
+
+// PACKAGE DATA
+
+// 0x0001: $PRINTABLE_LANGUAGE_NAME:0x0001
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x73, 0x00, 0x68, 0x00, 0x00,
+ 0x00,
+// 0x0002: STR_FORMSET_TITLE:0x0002
+ 0x14, 0x4F, 0x00, 0x56, 0x00, 0x4D, 0x00, 0x46, 0x00, 0x20, 0x00, 0x50, 0x00, 0x6C, 0x00, 0x61,
+ 0x00, 0x74, 0x00, 0x66, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F,
+ 0x00, 0x6E, 0x00, 0x66, 0x00, 0x69, 0x00, 0x67, 0x00, 0x75, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74,
+ 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x0003: STR_FORMSET_HELP:0x0003
+ 0x14, 0x43, 0x00, 0x68, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65, 0x00, 0x20, 0x00, 0x76,
+ 0x00, 0x61, 0x00, 0x72, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x73, 0x00, 0x20, 0x00, 0x4F,
+ 0x00, 0x56, 0x00, 0x4D, 0x00, 0x46, 0x00, 0x20, 0x00, 0x70, 0x00, 0x6C, 0x00, 0x61, 0x00, 0x74,
+ 0x00, 0x66, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x73, 0x00, 0x65, 0x00, 0x74,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x73, 0x00, 0x2E, 0x00, 0x00, 0x00,
+// 0x0004: STR_MAIN_FORM_TITLE:0x0004
+ 0x14, 0x4F, 0x00, 0x56, 0x00, 0x4D, 0x00, 0x46, 0x00, 0x20, 0x00, 0x53, 0x00, 0x65, 0x00, 0x74,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x0005: STR_RES_CUR:0x0005
+ 0x14, 0x50, 0x00, 0x72, 0x00, 0x65, 0x00, 0x66, 0x00, 0x65, 0x00, 0x72, 0x00, 0x72, 0x00, 0x65,
+ 0x00, 0x64, 0x00, 0x20, 0x00, 0x52, 0x00, 0x65, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x75,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x61, 0x00, 0x74, 0x00, 0x20,
+ 0x00, 0x4E, 0x00, 0x65, 0x00, 0x78, 0x00, 0x74, 0x00, 0x20, 0x00, 0x42, 0x00, 0x6F, 0x00, 0x6F,
+ 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x0006: STR_RES_CUR_HELP:0x0006
+ 0x14, 0x54, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x70, 0x00, 0x72, 0x00, 0x65, 0x00, 0x66,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x72, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x72, 0x00, 0x65,
+ 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x75, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E,
+ 0x00, 0x20, 0x00, 0x6F, 0x00, 0x66, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x47, 0x00, 0x72, 0x00, 0x61, 0x00, 0x70, 0x00, 0x68, 0x00, 0x69, 0x00, 0x63, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x74, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x78, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x62, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x2E, 0x00, 0x20, 0x00, 0x49,
+ 0x00, 0x74, 0x00, 0x20, 0x00, 0x6D, 0x00, 0x69, 0x00, 0x67, 0x00, 0x68, 0x00, 0x74, 0x00, 0x20,
+ 0x00, 0x62, 0x00, 0x65, 0x00, 0x20, 0x00, 0x75, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x65, 0x00, 0x74,
+ 0x00, 0x2C, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x65, 0x00, 0x76, 0x00, 0x65,
+ 0x00, 0x6E, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x76, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x69,
+ 0x00, 0x64, 0x00, 0x20, 0x00, 0x28, 0x00, 0x68, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x63, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x69, 0x00, 0x67, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x65, 0x00, 0x64,
+ 0x00, 0x29, 0x00, 0x20, 0x00, 0x77, 0x00, 0x72, 0x00, 0x74, 0x00, 0x2E, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x76, 0x00, 0x69, 0x00, 0x64, 0x00, 0x65, 0x00, 0x6F,
+ 0x00, 0x20, 0x00, 0x52, 0x00, 0x41, 0x00, 0x4D, 0x00, 0x20, 0x00, 0x73, 0x00, 0x69, 0x00, 0x7A,
+ 0x00, 0x65, 0x00, 0x2E, 0x00, 0x00, 0x00,
+// 0x0007: STR_RES_NEXT:0x0007
+ 0x14, 0x43, 0x00, 0x68, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65, 0x00, 0x20, 0x00, 0x50,
+ 0x00, 0x72, 0x00, 0x65, 0x00, 0x66, 0x00, 0x65, 0x00, 0x72, 0x00, 0x72, 0x00, 0x65, 0x00, 0x64,
+ 0x00, 0x20, 0x00, 0x52, 0x00, 0x65, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x75, 0x00, 0x74,
+ 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x66, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20,
+ 0x00, 0x4E, 0x00, 0x65, 0x00, 0x78, 0x00, 0x74, 0x00, 0x20, 0x00, 0x42, 0x00, 0x6F, 0x00, 0x6F,
+ 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x0008: STR_RES_NEXT_HELP:0x0008
+ 0x14, 0x59, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x20, 0x00, 0x63, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x20,
+ 0x00, 0x73, 0x00, 0x70, 0x00, 0x65, 0x00, 0x63, 0x00, 0x69, 0x00, 0x66, 0x00, 0x79, 0x00, 0x20,
+ 0x00, 0x61, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x20, 0x00, 0x70, 0x00, 0x72,
+ 0x00, 0x65, 0x00, 0x66, 0x00, 0x65, 0x00, 0x72, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x63, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x66, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x47, 0x00, 0x72, 0x00, 0x61, 0x00, 0x70, 0x00, 0x68, 0x00, 0x69, 0x00, 0x63,
+ 0x00, 0x73, 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6C,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x68, 0x00, 0x65, 0x00, 0x72, 0x00, 0x65, 0x00, 0x2E, 0x00, 0x20,
+ 0x00, 0x54, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x73, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x66, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x74,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x61, 0x00, 0x67, 0x00, 0x61,
+ 0x00, 0x69, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x74, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x76, 0x00, 0x69, 0x00, 0x64, 0x00, 0x65, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x52,
+ 0x00, 0x41, 0x00, 0x4D, 0x00, 0x20, 0x00, 0x73, 0x00, 0x69, 0x00, 0x7A, 0x00, 0x65, 0x00, 0x2E,
+ 0x00, 0x00, 0x00,
+// 0x0009: STR_SAVE_EXIT:0x0009
+ 0x14, 0x43, 0x00, 0x6F, 0x00, 0x6D, 0x00, 0x6D, 0x00, 0x69, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43,
+ 0x00, 0x68, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x69, 0x00, 0x74, 0x00, 0x00,
+ 0x00,
+// 0x000A: STR_DISCARD_EXIT:0x000A
+ 0x14, 0x44, 0x00, 0x69, 0x00, 0x73, 0x00, 0x63, 0x00, 0x61, 0x00, 0x72, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x43, 0x00, 0x68, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x61, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x69, 0x00, 0x74,
+ 0x00, 0x00, 0x00,
+ 0x00,
+
+};
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformForms.c b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformForms.c
new file mode 100644
index 000000000000..b395930ed4be
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformForms.c
@@ -0,0 +1,30 @@
+//
+// DO NOT EDIT -- auto-generated file
+//
+// This file is generated by the vfrcompiler utility
+//
+
+unsigned char PlatformFormsBin[] = {
+ // ARRAY LENGTH
+
+ 0xB2, 0x00, 0x00, 0x00,
+
+ // PACKAGE HEADER
+
+ 0xAE, 0x00, 0x00, 0x02,
+
+ // PACKAGE DATA
+
+ 0x0E, 0xA7, 0x1C, 0xC5, 0x35, 0x72, 0x80, 0x0C, 0xAB, 0x4C, 0x87, 0xAC, 0x3B, 0x08, 0x4A, 0x63,
+ 0x04, 0xB1, 0x02, 0x00, 0x03, 0x00, 0x01, 0x71, 0x99, 0x03, 0x93, 0x45, 0x85, 0x04, 0x4B, 0xB4,
+ 0x5E, 0x32, 0xEB, 0x83, 0x26, 0x04, 0x0E, 0x5C, 0x06, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x06, 0x00,
+ 0x00, 0x01, 0x00, 0x24, 0x24, 0x1C, 0xC5, 0x35, 0x72, 0x80, 0x0C, 0xAB, 0x4C, 0x87, 0xAC, 0x3B,
+ 0x08, 0x4A, 0x63, 0x04, 0xB1, 0x01, 0x00, 0x24, 0x00, 0x4D, 0x61, 0x69, 0x6E, 0x46, 0x6F, 0x72,
+ 0x6D, 0x53, 0x74, 0x61, 0x74, 0x65, 0x00, 0x01, 0x86, 0x01, 0x00, 0x04, 0x00, 0x1C, 0x90, 0x05,
+ 0x00, 0x06, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x00, 0x29, 0x02, 0x5F,
+ 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48,
+ 0xCE, 0x00, 0x01, 0x00, 0x0C, 0x8F, 0x09, 0x00, 0x09, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+ 0x04, 0x00, 0x00, 0x29, 0x02, 0x0C, 0x8F, 0x0A, 0x00, 0x0A, 0x00, 0x04, 0x00, 0x00, 0x00, 0xFF,
+ 0xFF, 0x04, 0x00, 0x00, 0x29, 0x02, 0x29, 0x02, 0x29, 0x02
+
+};
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/AutoGen.c b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/AutoGen.c
new file mode 100644
index 000000000000..dc1a9eb79a1b
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/AutoGen.c
@@ -0,0 +1,549 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ AutoGen.c
+ Abstract: Auto-generated AutoGen.c for building module or library.
+**/
+#include <PiDxe.h>
+#include <Library/BaseLib.h>
+#include <Library/DebugLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+#include <Library/UefiDriverEntryPoint.h>
+
+GLOBAL_REMOVE_IF_UNREFERENCED GUID gEfiCallerIdGuid = {0x28A03FF4, 0x12B3, 0x4305, {0xA4, 0x17, 0xBB, 0x1A, 0x4F, 0x94, 0x08, 0x1E}};
+
+GLOBAL_REMOVE_IF_UNREFERENCED GUID gEdkiiDscPlatformGuid = {0x5a9e7754, 0xd81b, 0x49ea, {0x85, 0xad, 0x69, 0xea, 0xa7, 0xb1, 0x53, 0x9b}};
+
+GLOBAL_REMOVE_IF_UNREFERENCED CHAR8 *gEfiCallerBaseName = "RamDiskDxe";
+
+// Guids
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiIfrTianoGuid = { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gRamDiskFormSetGuid = { 0x2a46715f, 0x3581, 0x4a55, { 0x8e, 0x73, 0x2b, 0x76, 0x9a, 0xaa, 0x30, 0xc5 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiVirtualDiskGuid = { 0x77AB535A, 0x45FC, 0x624B, {0x55, 0x60, 0xF7, 0xB2, 0x81, 0xD1, 0xF9, 0x6E }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiFileInfoGuid = { 0x09576E92, 0x6D3F, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiMdeModulePkgTokenSpaceGuid = { 0xA1AFF049, 0xFDEB, 0x442a, { 0xB3, 0x20, 0x13, 0xAB, 0x4C, 0xB7, 0x2B, 0xBC }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiMdePkgTokenSpaceGuid = { 0x914AEBE7, 0x4635, 0x459b, { 0xAA, 0x1C, 0x11, 0xE2, 0x19, 0xB0, 0x3A, 0x10 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gUefiOvmfPkgTokenSpaceGuid = {0x93bb96af, 0xb9f2, 0x4eb8, {0x94, 0x62, 0xe0, 0xba, 0x74, 0x56, 0x42, 0x36}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiEventReadyToBootGuid = { 0x7CE88FB3, 0x4BD7, 0x4679, { 0x87, 0xA8, 0xA8, 0xD8, 0xDE, 0xE5, 0x0D, 0x2B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiEventLegacyBootGuid = { 0x2A571201, 0x4966, 0x47F6, { 0x8B, 0x86, 0xF3, 0x1E, 0x41, 0xF3, 0x2F, 0x10 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiGlobalVariableGuid = { 0x8BE4DF61, 0x93CA, 0x11D2, { 0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAcpi20TableGuid = { 0x8868E871, 0xE4F1, 0x11D3, { 0xBC, 0x22, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAcpi10TableGuid = { 0xEB9D2D30, 0x2D88, 0x11D3, { 0x9A, 0x16, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEdkiiIfrBitVarstoreGuid = {0x82DDD68B, 0x9163, 0x4187, {0x9B, 0x27, 0x20, 0xA8, 0xFD, 0x60,0xA7, 0x1D}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHobListGuid = { 0x7739F24C, 0x93D7, 0x11D4, { 0x9A, 0x3A, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiFileSystemVolumeLabelInfoIdGuid = { 0xDB47D7D3, 0xFE81, 0x11D3, { 0x9A, 0x35, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+
+// Protocols
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiRamDiskProtocolGuid = { 0xab38a0df, 0x6873, 0x44a9, { 0x87, 0xe6, 0xd4, 0xeb, 0x56, 0x14, 0x84, 0x49 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiConfigAccessProtocolGuid = {0x330d4706, 0xf2a0, 0x4e4f, {0xa3, 0x69, 0xb6, 0x6f, 0xa8, 0xd5, 0x43, 0x85}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathProtocolGuid = { 0x09576E91, 0x6D3F, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiBlockIoProtocolGuid = { 0x964E5B21, 0x6459, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiBlockIo2ProtocolGuid = { 0xa77b2472, 0xe282, 0x4e9f, {0xa2, 0x45, 0xc2, 0xc0, 0xe2, 0x7b, 0xbc, 0xc1 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAcpiTableProtocolGuid = { 0xFFE06BDD, 0x6107, 0x46A6, { 0x7B, 0xB2, 0x5A, 0x9C, 0x7E, 0xC5, 0x27, 0x5C }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAcpiSdtProtocolGuid = { 0xeb97088e, 0xcfdf, 0x49c6, { 0xbe, 0x4b, 0xd9, 0x6, 0xa5, 0xb2, 0xe, 0x86 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gPcdProtocolGuid = { 0x11B34006, 0xD85B, 0x4D0A, { 0xA2, 0x90, 0xD5, 0xA5, 0x71, 0x31, 0x0E, 0xF7 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiPcdProtocolGuid = { 0x13a3f0f6, 0x264a, 0x3ef0, { 0xf2, 0xe0, 0xde, 0xc5, 0x12, 0x34, 0x2f, 0x34 } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gGetPcdInfoProtocolGuid = { 0x5be40f57, 0xfa68, 0x4610, { 0xbb, 0xbf, 0xe9, 0xc5, 0xfc, 0xda, 0xd3, 0x65 } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiGetPcdInfoProtocolGuid = { 0xfd0f4478, 0xefd, 0x461d, { 0xba, 0x2d, 0xe5, 0x8c, 0x45, 0xfd, 0x5f, 0x5e } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathUtilitiesProtocolGuid = { 0x0379BE4E, 0xD706, 0x437D, { 0xB0, 0x37, 0xED, 0xB8, 0x2F, 0xB7, 0x72, 0xA4 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathToTextProtocolGuid = { 0x8B843E20, 0x8132, 0x4852, { 0x90, 0xCC, 0x55, 0x1A, 0x4E, 0x4A, 0x7F, 0x1C }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathFromTextProtocolGuid = { 0x05C99A21, 0xC70F, 0x4AD2, { 0x8A, 0x5F, 0x35, 0xDF, 0x33, 0x43, 0xF5, 0x1E }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiFontProtocolGuid = {0xe9ca4775, 0x8657, 0x47fc, {0x97, 0xe7, 0x7e, 0xd6, 0x5a, 0x08, 0x43, 0x24}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiStringProtocolGuid = {0x0fd96974, 0x23aa, 0x4cdc, {0xb9, 0xcb, 0x98, 0xd1, 0x77, 0x50, 0x32, 0x2a}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiImageProtocolGuid = {0x31a6406a, 0x6bdf, 0x4e46, {0xb2, 0xa2, 0xeb, 0xaa, 0x89, 0xc4, 0x09, 0x20}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiDatabaseProtocolGuid = {0xef9fc172, 0xa1b2, 0x4693, {0xb3, 0x27, 0x6d, 0x32, 0xfc, 0x41, 0x60, 0x42}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiConfigRoutingProtocolGuid = {0x587e72d7, 0xcc50, 0x4f79, {0x82, 0x09, 0xca, 0x29, 0x1f, 0xc1, 0xa1, 0x0f}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverBindingProtocolGuid = { 0x18A031AB, 0xB443, 0x4D1A, { 0xA5, 0xC0, 0x0C, 0x09, 0x26, 0x1E, 0x9F, 0x71 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimpleTextOutProtocolGuid = { 0x387477C2, 0x69C7, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiGraphicsOutputProtocolGuid = { 0x9042A9DE, 0x23DC, 0x4A38, { 0x96, 0xFB, 0x7A, 0xDE, 0xD0, 0x80, 0x51, 0x6A }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimpleFileSystemProtocolGuid = { 0x964E5B22, 0x6459, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiUgaDrawProtocolGuid = { 0x982C298B, 0xF4FA, 0x41CB, { 0xB8, 0x38, 0x77, 0xAA, 0x68, 0x8F, 0xB8, 0x39 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiComponentNameProtocolGuid = { 0x107A772C, 0xD5E1, 0x11D4, { 0x9A, 0x46, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiComponentName2ProtocolGuid = { 0x6A7A5CFF, 0xE8D9, 0x4F70, { 0xBA, 0xDA, 0x75, 0xAB, 0x30, 0x25, 0xCE, 0x14 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverConfigurationProtocolGuid = { 0x107A772B, 0xD5E1, 0x11D4, { 0x9A, 0x46, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverConfiguration2ProtocolGuid = { 0xBFD7DC1D, 0x24F1, 0x40D9, { 0x82, 0xE7, 0x2E, 0x09, 0xBB, 0x6B, 0x4E, 0xBE }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverDiagnosticsProtocolGuid = { 0x0784924F, 0xE296, 0x11D4, { 0x9A, 0x49, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverDiagnostics2ProtocolGuid = { 0x4D330321, 0x025F, 0x4AAC, { 0x90, 0xD8, 0x5E, 0xD9, 0x00, 0x17, 0x3B, 0x63 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiFormBrowser2ProtocolGuid = {0xb9d4c360, 0xbcfb, 0x4f9b, {0x92, 0x98, 0x53, 0xc1, 0x36, 0x98, 0x22, 0x58}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiLoadedImageProtocolGuid = { 0x5B1B31A1, 0x9562, 0x11D2, { 0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiFirmwareVolume2ProtocolGuid = { 0x220e73b6, 0x6bdb, 0x4413, { 0x84, 0x5, 0xb9, 0x74, 0xb1, 0x8, 0x61, 0x9a } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiLoadFileProtocolGuid = { 0x56EC3091, 0x954C, 0x11D2, { 0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiLoadFile2ProtocolGuid = { 0x4006c0c1, 0xfcb3, 0x403e, {0x99, 0x6d, 0x4a, 0x6c, 0x87, 0x24, 0xe0, 0x6d }};
+
+// Definition of SkuId Array
+GLOBAL_REMOVE_IF_UNREFERENCED UINT64 _gPcd_SkuId_Array[] = {0x0};
+
+// Definition of PCDs used in this module
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdAcpiDefaultOemId[7] = {73, 78, 84, 69, 76, 32, 0 };
+GLOBAL_REMOVE_IF_UNREFERENCED const UINTN _gPcd_FixedAtBuild_Size_PcdAcpiDefaultOemId = 7;
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT64 _gPcd_FixedAtBuild_PcdAcpiDefaultOemTableId = _PCD_VALUE_PcdAcpiDefaultOemTableId;
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdAcpiDefaultOemRevision = _PCD_VALUE_PcdAcpiDefaultOemRevision;
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdAcpiDefaultCreatorId = _PCD_VALUE_PcdAcpiDefaultCreatorId;
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdAcpiDefaultCreatorRevision = _PCD_VALUE_PcdAcpiDefaultCreatorRevision;
+
+// Definition of PCDs used in libraries
+
+#define _PCD_TOKEN_PcdVerifyNodeInList 0U
+#define _PCD_SIZE_PcdVerifyNodeInList 1
+#define _PCD_GET_MODE_SIZE_PcdVerifyNodeInList _PCD_SIZE_PcdVerifyNodeInList
+#define _PCD_VALUE_PcdVerifyNodeInList ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdVerifyNodeInList = _PCD_VALUE_PcdVerifyNodeInList;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdVerifyNodeInList;
+#define _PCD_GET_MODE_BOOL_PcdVerifyNodeInList _gPcd_FixedAtBuild_PcdVerifyNodeInList
+//#define _PCD_SET_MODE_BOOL_PcdVerifyNodeInList ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumLinkedListLength 0U
+#define _PCD_SIZE_PcdMaximumLinkedListLength 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumLinkedListLength _PCD_SIZE_PcdMaximumLinkedListLength
+#define _PCD_VALUE_PcdMaximumLinkedListLength 0U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumLinkedListLength = _PCD_VALUE_PcdMaximumLinkedListLength;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumLinkedListLength;
+#define _PCD_GET_MODE_32_PcdMaximumLinkedListLength _gPcd_FixedAtBuild_PcdMaximumLinkedListLength
+//#define _PCD_SET_MODE_32_PcdMaximumLinkedListLength ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumAsciiStringLength 0U
+#define _PCD_SIZE_PcdMaximumAsciiStringLength 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumAsciiStringLength _PCD_SIZE_PcdMaximumAsciiStringLength
+#define _PCD_VALUE_PcdMaximumAsciiStringLength 1000000U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumAsciiStringLength = _PCD_VALUE_PcdMaximumAsciiStringLength;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumAsciiStringLength;
+#define _PCD_GET_MODE_32_PcdMaximumAsciiStringLength _gPcd_FixedAtBuild_PcdMaximumAsciiStringLength
+//#define _PCD_SET_MODE_32_PcdMaximumAsciiStringLength ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumUnicodeStringLength 0U
+#define _PCD_SIZE_PcdMaximumUnicodeStringLength 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumUnicodeStringLength _PCD_SIZE_PcdMaximumUnicodeStringLength
+#define _PCD_VALUE_PcdMaximumUnicodeStringLength 1000000U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength = _PCD_VALUE_PcdMaximumUnicodeStringLength;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength;
+#define _PCD_GET_MODE_32_PcdMaximumUnicodeStringLength _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength
+//#define _PCD_SET_MODE_32_PcdMaximumUnicodeStringLength ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdControlFlowEnforcementPropertyMask 0U
+#define _PCD_SIZE_PcdControlFlowEnforcementPropertyMask 4
+#define _PCD_GET_MODE_SIZE_PcdControlFlowEnforcementPropertyMask _PCD_SIZE_PcdControlFlowEnforcementPropertyMask
+#define _PCD_VALUE_PcdControlFlowEnforcementPropertyMask 0x0U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdControlFlowEnforcementPropertyMask = _PCD_VALUE_PcdControlFlowEnforcementPropertyMask;
+extern const UINT32 _gPcd_FixedAtBuild_PcdControlFlowEnforcementPropertyMask;
+#define _PCD_GET_MODE_32_PcdControlFlowEnforcementPropertyMask _gPcd_FixedAtBuild_PcdControlFlowEnforcementPropertyMask
+//#define _PCD_SET_MODE_32_PcdControlFlowEnforcementPropertyMask ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdSpeculationBarrierType 0U
+#define _PCD_SIZE_PcdSpeculationBarrierType 1
+#define _PCD_GET_MODE_SIZE_PcdSpeculationBarrierType _PCD_SIZE_PcdSpeculationBarrierType
+#define _PCD_VALUE_PcdSpeculationBarrierType 0x01U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdSpeculationBarrierType = _PCD_VALUE_PcdSpeculationBarrierType;
+extern const UINT8 _gPcd_FixedAtBuild_PcdSpeculationBarrierType;
+#define _PCD_GET_MODE_8_PcdSpeculationBarrierType _gPcd_FixedAtBuild_PcdSpeculationBarrierType
+//#define _PCD_SET_MODE_8_PcdSpeculationBarrierType ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdOvmfWorkAreaBase 0U
+#define _PCD_SIZE_PcdOvmfWorkAreaBase 4
+#define _PCD_GET_MODE_SIZE_PcdOvmfWorkAreaBase _PCD_SIZE_PcdOvmfWorkAreaBase
+#define _PCD_VALUE_PcdOvmfWorkAreaBase 0x0080B000U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdOvmfWorkAreaBase = _PCD_VALUE_PcdOvmfWorkAreaBase;
+extern const UINT32 _gPcd_FixedAtBuild_PcdOvmfWorkAreaBase;
+#define _PCD_GET_MODE_32_PcdOvmfWorkAreaBase _gPcd_FixedAtBuild_PcdOvmfWorkAreaBase
+//#define _PCD_SET_MODE_32_PcdOvmfWorkAreaBase ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugPrintErrorLevel 0U
+#define _PCD_SIZE_PcdDebugPrintErrorLevel 4
+#define _PCD_GET_MODE_SIZE_PcdDebugPrintErrorLevel _PCD_SIZE_PcdDebugPrintErrorLevel
+#define _PCD_VALUE_PcdDebugPrintErrorLevel 0x8000004FU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdDebugPrintErrorLevel = _PCD_VALUE_PcdDebugPrintErrorLevel;
+extern const UINT32 _gPcd_FixedAtBuild_PcdDebugPrintErrorLevel;
+#define _PCD_GET_MODE_32_PcdDebugPrintErrorLevel _gPcd_FixedAtBuild_PcdDebugPrintErrorLevel
+//#define _PCD_SET_MODE_32_PcdDebugPrintErrorLevel ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugIoPort 0U
+#define _PCD_SIZE_PcdDebugIoPort 2
+#define _PCD_GET_MODE_SIZE_PcdDebugIoPort _PCD_SIZE_PcdDebugIoPort
+#define _PCD_VALUE_PcdDebugIoPort 0x402U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT16 _gPcd_FixedAtBuild_PcdDebugIoPort = _PCD_VALUE_PcdDebugIoPort;
+extern const UINT16 _gPcd_FixedAtBuild_PcdDebugIoPort;
+#define _PCD_GET_MODE_16_PcdDebugIoPort _gPcd_FixedAtBuild_PcdDebugIoPort
+//#define _PCD_SET_MODE_16_PcdDebugIoPort ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugClearMemoryValue 0U
+#define _PCD_SIZE_PcdDebugClearMemoryValue 1
+#define _PCD_GET_MODE_SIZE_PcdDebugClearMemoryValue _PCD_SIZE_PcdDebugClearMemoryValue
+#define _PCD_VALUE_PcdDebugClearMemoryValue 0xAFU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdDebugClearMemoryValue = _PCD_VALUE_PcdDebugClearMemoryValue;
+extern const UINT8 _gPcd_FixedAtBuild_PcdDebugClearMemoryValue;
+#define _PCD_GET_MODE_8_PcdDebugClearMemoryValue _gPcd_FixedAtBuild_PcdDebugClearMemoryValue
+//#define _PCD_SET_MODE_8_PcdDebugClearMemoryValue ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugPropertyMask 0U
+#define _PCD_SIZE_PcdDebugPropertyMask 1
+#define _PCD_GET_MODE_SIZE_PcdDebugPropertyMask _PCD_SIZE_PcdDebugPropertyMask
+#define _PCD_VALUE_PcdDebugPropertyMask 0x2FU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdDebugPropertyMask = _PCD_VALUE_PcdDebugPropertyMask;
+extern const UINT8 _gPcd_FixedAtBuild_PcdDebugPropertyMask;
+#define _PCD_GET_MODE_8_PcdDebugPropertyMask _gPcd_FixedAtBuild_PcdDebugPropertyMask
+//#define _PCD_SET_MODE_8_PcdDebugPropertyMask ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdFixedDebugPrintErrorLevel 0U
+#define _PCD_SIZE_PcdFixedDebugPrintErrorLevel 4
+#define _PCD_GET_MODE_SIZE_PcdFixedDebugPrintErrorLevel _PCD_SIZE_PcdFixedDebugPrintErrorLevel
+#define _PCD_VALUE_PcdFixedDebugPrintErrorLevel 0xFFFFFFFFU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel = _PCD_VALUE_PcdFixedDebugPrintErrorLevel;
+extern const UINT32 _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel;
+#define _PCD_GET_MODE_32_PcdFixedDebugPrintErrorLevel _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel
+//#define _PCD_SET_MODE_32_PcdFixedDebugPrintErrorLevel ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumDevicePathNodeCount 0U
+#define _PCD_SIZE_PcdMaximumDevicePathNodeCount 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumDevicePathNodeCount _PCD_SIZE_PcdMaximumDevicePathNodeCount
+#define _PCD_VALUE_PcdMaximumDevicePathNodeCount 0U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumDevicePathNodeCount = _PCD_VALUE_PcdMaximumDevicePathNodeCount;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumDevicePathNodeCount;
+#define _PCD_GET_MODE_32_PcdMaximumDevicePathNodeCount _gPcd_FixedAtBuild_PcdMaximumDevicePathNodeCount
+//#define _PCD_SET_MODE_32_PcdMaximumDevicePathNodeCount ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDriverDiagnosticsDisable 0U
+#define _PCD_SIZE_PcdDriverDiagnosticsDisable 1
+#define _PCD_GET_MODE_SIZE_PcdDriverDiagnosticsDisable _PCD_SIZE_PcdDriverDiagnosticsDisable
+#define _PCD_VALUE_PcdDriverDiagnosticsDisable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnosticsDisable = _PCD_VALUE_PcdDriverDiagnosticsDisable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnosticsDisable;
+#define _PCD_GET_MODE_BOOL_PcdDriverDiagnosticsDisable _gPcd_FixedAtBuild_PcdDriverDiagnosticsDisable
+//#define _PCD_SET_MODE_BOOL_PcdDriverDiagnosticsDisable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdComponentNameDisable 0U
+#define _PCD_SIZE_PcdComponentNameDisable 1
+#define _PCD_GET_MODE_SIZE_PcdComponentNameDisable _PCD_SIZE_PcdComponentNameDisable
+#define _PCD_VALUE_PcdComponentNameDisable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdComponentNameDisable = _PCD_VALUE_PcdComponentNameDisable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdComponentNameDisable;
+#define _PCD_GET_MODE_BOOL_PcdComponentNameDisable _gPcd_FixedAtBuild_PcdComponentNameDisable
+//#define _PCD_SET_MODE_BOOL_PcdComponentNameDisable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDriverDiagnostics2Disable 0U
+#define _PCD_SIZE_PcdDriverDiagnostics2Disable 1
+#define _PCD_GET_MODE_SIZE_PcdDriverDiagnostics2Disable _PCD_SIZE_PcdDriverDiagnostics2Disable
+#define _PCD_VALUE_PcdDriverDiagnostics2Disable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnostics2Disable = _PCD_VALUE_PcdDriverDiagnostics2Disable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnostics2Disable;
+#define _PCD_GET_MODE_BOOL_PcdDriverDiagnostics2Disable _gPcd_FixedAtBuild_PcdDriverDiagnostics2Disable
+//#define _PCD_SET_MODE_BOOL_PcdDriverDiagnostics2Disable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdComponentName2Disable 0U
+#define _PCD_SIZE_PcdComponentName2Disable 1
+#define _PCD_GET_MODE_SIZE_PcdComponentName2Disable _PCD_SIZE_PcdComponentName2Disable
+#define _PCD_VALUE_PcdComponentName2Disable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdComponentName2Disable = _PCD_VALUE_PcdComponentName2Disable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdComponentName2Disable;
+#define _PCD_GET_MODE_BOOL_PcdComponentName2Disable _gPcd_FixedAtBuild_PcdComponentName2Disable
+//#define _PCD_SET_MODE_BOOL_PcdComponentName2Disable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdUgaConsumeSupport 0U
+#define _PCD_SIZE_PcdUgaConsumeSupport 1
+#define _PCD_GET_MODE_SIZE_PcdUgaConsumeSupport _PCD_SIZE_PcdUgaConsumeSupport
+#define _PCD_VALUE_PcdUgaConsumeSupport ((BOOLEAN)1U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdUgaConsumeSupport = _PCD_VALUE_PcdUgaConsumeSupport;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdUgaConsumeSupport;
+#define _PCD_GET_MODE_BOOL_PcdUgaConsumeSupport _gPcd_FixedAtBuild_PcdUgaConsumeSupport
+//#define _PCD_SET_MODE_BOOL_PcdUgaConsumeSupport ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdUefiLibMaxPrintBufferSize 0U
+#define _PCD_SIZE_PcdUefiLibMaxPrintBufferSize 4
+#define _PCD_GET_MODE_SIZE_PcdUefiLibMaxPrintBufferSize _PCD_SIZE_PcdUefiLibMaxPrintBufferSize
+#define _PCD_VALUE_PcdUefiLibMaxPrintBufferSize 320U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdUefiLibMaxPrintBufferSize = _PCD_VALUE_PcdUefiLibMaxPrintBufferSize;
+extern const UINT32 _gPcd_FixedAtBuild_PcdUefiLibMaxPrintBufferSize;
+#define _PCD_GET_MODE_32_PcdUefiLibMaxPrintBufferSize _gPcd_FixedAtBuild_PcdUefiLibMaxPrintBufferSize
+//#define _PCD_SET_MODE_32_PcdUefiLibMaxPrintBufferSize ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+
+RETURN_STATUS
+EFIAPI
+PlatformDebugLibIoPortConstructor (
+ VOID
+ );
+
+EFI_STATUS
+EFIAPI
+UefiBootServicesTableLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+UefiRuntimeServicesTableLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+DevicePathLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+UefiHiiServicesLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+UefiLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+HobLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+FileExplorerLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+
+VOID
+EFIAPI
+ProcessLibraryConstructorList (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+{
+ EFI_STATUS Status;
+
+ Status = PlatformDebugLibIoPortConstructor ();
+ ASSERT_RETURN_ERROR (Status);
+
+ Status = UefiBootServicesTableLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = UefiRuntimeServicesTableLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = DevicePathLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = UefiHiiServicesLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = UefiLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = HobLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = FileExplorerLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+}
+
+
+EFI_STATUS
+EFIAPI
+FileExplorerLibDestructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+
+VOID
+EFIAPI
+ProcessLibraryDestructorList (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+{
+ EFI_STATUS Status;
+
+ Status = FileExplorerLibDestructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+}
+
+const UINT32 _gUefiDriverRevision = 0x00000000U;
+const UINT32 _gDxeRevision = 0x00000000U;
+
+
+EFI_STATUS
+EFIAPI
+ProcessModuleEntryPointList (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+
+{
+ return RamDiskDxeEntryPoint (ImageHandle, SystemTable);
+}
+
+VOID
+EFIAPI
+ExitDriver (
+ IN EFI_STATUS Status
+ )
+{
+ if (EFI_ERROR (Status)) {
+ ProcessLibraryDestructorList (gImageHandle, gST);
+ }
+ gBS->Exit (gImageHandle, Status, 0, NULL);
+}
+
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gDriverUnloadImageCount = 1U;
+
+
+EFI_STATUS
+EFIAPI
+ProcessModuleUnloadList (
+ IN EFI_HANDLE ImageHandle
+ )
+{
+ return RamDiskDxeUnload (ImageHandle);
+}
+
+
+//
+//Unicode String Pack Definition
+//
+unsigned char RamDiskDxeStrings[] = {
+
+// STRGATHER_OUTPUT_HEADER
+ 0x3D, 0x05, 0x00, 0x00,
+
+// PACKAGE HEADER
+
+ 0x39, 0x05, 0x00, 0x04, 0x34, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x65, 0x6E,
+ 0x2D, 0x55, 0x53, 0x00,
+
+// PACKAGE DATA
+
+// 0x0001: $PRINTABLE_LANGUAGE_NAME:0x0001
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x73, 0x00, 0x68, 0x00, 0x00,
+ 0x00,
+// 0x0002: STR_FORM_SET_TITLE:0x0002
+ 0x14, 0x52, 0x00, 0x41, 0x00, 0x4D, 0x00, 0x20, 0x00, 0x44, 0x00, 0x69, 0x00, 0x73, 0x00, 0x6B,
+ 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x66, 0x00, 0x69, 0x00, 0x67, 0x00, 0x75,
+ 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x0003: STR_FORM_SET_TITLE_HELP:0x0003
+ 0x14, 0x50, 0x00, 0x72, 0x00, 0x65, 0x00, 0x73, 0x00, 0x73, 0x00, 0x20, 0x00, 0x3C, 0x00, 0x45,
+ 0x00, 0x6E, 0x00, 0x74, 0x00, 0x65, 0x00, 0x72, 0x00, 0x3E, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x64, 0x00, 0x64, 0x00, 0x2F, 0x00, 0x72, 0x00, 0x65, 0x00, 0x6D,
+ 0x00, 0x6F, 0x00, 0x76, 0x00, 0x65, 0x00, 0x20, 0x00, 0x52, 0x00, 0x41, 0x00, 0x4D, 0x00, 0x20,
+ 0x00, 0x64, 0x00, 0x69, 0x00, 0x73, 0x00, 0x6B, 0x00, 0x73, 0x00, 0x2E, 0x00, 0x00, 0x00,
+// 0x0004: STR_MAIN_FORM_TITLE:0x0004
+ 0x14, 0x52, 0x00, 0x41, 0x00, 0x4D, 0x00, 0x20, 0x00, 0x44, 0x00, 0x69, 0x00, 0x73, 0x00, 0x6B,
+ 0x00, 0x20, 0x00, 0x48, 0x00, 0x49, 0x00, 0x49, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x69,
+ 0x00, 0x6E, 0x00, 0x20, 0x00, 0x53, 0x00, 0x63, 0x00, 0x72, 0x00, 0x65, 0x00, 0x65, 0x00, 0x6E,
+ 0x00, 0x00, 0x00,
+// 0x0005: STR_RAM_DISK_NULL_STRING:0x0005
+ 0x14, 0x00, 0x00,
+// 0x0006: STR_RAM_DISK_LIST_TEXT:0x0006
+ 0x14, 0x43, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x52, 0x00, 0x41, 0x00, 0x4D, 0x00, 0x20, 0x00, 0x64, 0x00, 0x69, 0x00, 0x73, 0x00, 0x6B,
+ 0x00, 0x20, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x73, 0x00, 0x74, 0x00, 0x3A, 0x00, 0x00, 0x00,
+// 0x0007: STR_RAM_DISK_LIST_HELP:0x0007
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x20, 0x00, 0x66,
+ 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x72, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x6F, 0x00, 0x76,
+ 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0008: STR_GOTO_ADD_RAW_FORM:0x0008
+ 0x14, 0x43, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x72,
+ 0x00, 0x61, 0x00, 0x77, 0x00, 0x00, 0x00,
+// 0x0009: STR_GOTO_ADD_RAW_FORM_HELP:0x0009
+ 0x14, 0x43, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x20, 0x00, 0x72, 0x00, 0x61, 0x00, 0x77, 0x00, 0x20, 0x00, 0x52, 0x00, 0x41, 0x00, 0x4D,
+ 0x00, 0x20, 0x00, 0x64, 0x00, 0x69, 0x00, 0x73, 0x00, 0x6B, 0x00, 0x2E, 0x00, 0x00, 0x00,
+// 0x000A: STR_GOTO_ADD_FROM_FILE_FORM:0x000A
+ 0x14, 0x43, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x66,
+ 0x00, 0x72, 0x00, 0x6F, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x66, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65,
+ 0x00, 0x00, 0x00,
+// 0x000B: STR_GOTO_ADD_FROM_FILE_FORM_HELP:0x000B
+ 0x14, 0x43, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x20, 0x00, 0x52, 0x00, 0x41, 0x00, 0x4D, 0x00, 0x20, 0x00, 0x64, 0x00, 0x69, 0x00, 0x73,
+ 0x00, 0x6B, 0x00, 0x20, 0x00, 0x66, 0x00, 0x72, 0x00, 0x6F, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x20, 0x00, 0x67, 0x00, 0x69, 0x00, 0x76, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x66,
+ 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x2E, 0x00, 0x00, 0x00,
+// 0x000C: STR_REMOVE_SEL_HELP:0x000C
+ 0x14, 0x52, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x6F, 0x00, 0x76, 0x00, 0x65, 0x00, 0x20, 0x00, 0x73,
+ 0x00, 0x65, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x52, 0x00, 0x41, 0x00, 0x4D, 0x00, 0x20, 0x00, 0x64, 0x00, 0x69, 0x00, 0x73, 0x00, 0x6B,
+ 0x00, 0x28, 0x00, 0x73, 0x00, 0x29, 0x00, 0x00, 0x00,
+// 0x000D: STR_REMOVE_SEL_TEXT:0x000D
+ 0x14, 0x52, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x6F, 0x00, 0x76, 0x00, 0x65, 0x00, 0x20, 0x00, 0x73,
+ 0x00, 0x65, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x52, 0x00, 0x41, 0x00, 0x4D, 0x00, 0x20, 0x00, 0x64, 0x00, 0x69, 0x00, 0x73, 0x00, 0x6B,
+ 0x00, 0x28, 0x00, 0x73, 0x00, 0x29, 0x00, 0x2E, 0x00, 0x00, 0x00,
+// 0x000E: STR_ADD_RAW_FORM_TITLE:0x000E
+ 0x14, 0x41, 0x00, 0x64, 0x00, 0x64, 0x00, 0x20, 0x00, 0x41, 0x00, 0x20, 0x00, 0x52, 0x00, 0x61,
+ 0x00, 0x77, 0x00, 0x20, 0x00, 0x52, 0x00, 0x41, 0x00, 0x4D, 0x00, 0x20, 0x00, 0x44, 0x00, 0x69,
+ 0x00, 0x73, 0x00, 0x6B, 0x00, 0x00, 0x00,
+// 0x000F: STR_SIZE_PROMPT:0x000F
+ 0x14, 0x53, 0x00, 0x69, 0x00, 0x7A, 0x00, 0x65, 0x00, 0x20, 0x00, 0x28, 0x00, 0x48, 0x00, 0x65,
+ 0x00, 0x78, 0x00, 0x29, 0x00, 0x3A, 0x00, 0x00, 0x00,
+// 0x0010: STR_SIZE_HELP:0x0010
+ 0x14, 0x54, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x76, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x69,
+ 0x00, 0x64, 0x00, 0x20, 0x00, 0x52, 0x00, 0x41, 0x00, 0x4D, 0x00, 0x20, 0x00, 0x64, 0x00, 0x69,
+ 0x00, 0x73, 0x00, 0x6B, 0x00, 0x20, 0x00, 0x73, 0x00, 0x69, 0x00, 0x7A, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x73, 0x00, 0x68, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x6C, 0x00, 0x64, 0x00, 0x20, 0x00, 0x62,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x6D, 0x00, 0x75, 0x00, 0x6C, 0x00, 0x74, 0x00, 0x69, 0x00, 0x70,
+ 0x00, 0x6C, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x66, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x52, 0x00, 0x41, 0x00, 0x4D, 0x00, 0x20, 0x00, 0x64,
+ 0x00, 0x69, 0x00, 0x73, 0x00, 0x6B, 0x00, 0x20, 0x00, 0x62, 0x00, 0x6C, 0x00, 0x6F, 0x00, 0x63,
+ 0x00, 0x6B, 0x00, 0x20, 0x00, 0x73, 0x00, 0x69, 0x00, 0x7A, 0x00, 0x65, 0x00, 0x2E, 0x00, 0x00,
+ 0x00,
+// 0x0011: STR_MEMORY_TYPE_PROMPT:0x0011
+ 0x14, 0x44, 0x00, 0x69, 0x00, 0x73, 0x00, 0x6B, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x65, 0x00, 0x6D,
+ 0x00, 0x6F, 0x00, 0x72, 0x00, 0x79, 0x00, 0x20, 0x00, 0x54, 0x00, 0x79, 0x00, 0x70, 0x00, 0x65,
+ 0x00, 0x3A, 0x00, 0x00, 0x00,
+// 0x0012: STR_MEMORY_TYPE_HELP:0x0012
+ 0x14, 0x53, 0x00, 0x70, 0x00, 0x65, 0x00, 0x63, 0x00, 0x69, 0x00, 0x66, 0x00, 0x69, 0x00, 0x65,
+ 0x00, 0x73, 0x00, 0x20, 0x00, 0x74, 0x00, 0x79, 0x00, 0x70, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6F,
+ 0x00, 0x66, 0x00, 0x20, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x79,
+ 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x75, 0x00, 0x73, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x66, 0x00, 0x72, 0x00, 0x6F, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x61, 0x00, 0x76, 0x00, 0x61,
+ 0x00, 0x69, 0x00, 0x6C, 0x00, 0x61, 0x00, 0x62, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6D,
+ 0x00, 0x65, 0x00, 0x6D, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x79, 0x00, 0x20, 0x00, 0x70, 0x00, 0x6F,
+ 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x73, 0x00, 0x79,
+ 0x00, 0x73, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20,
+ 0x00, 0x63, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x20, 0x00, 0x64, 0x00, 0x69, 0x00, 0x73, 0x00, 0x6B, 0x00, 0x2E, 0x00, 0x00, 0x00,
+// 0x0013: STR_RAM_DISK_BOOT_SERVICE_DATA_MEMORY:0x0013
+ 0x14, 0x42, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x20, 0x00, 0x53, 0x00, 0x65, 0x00, 0x72,
+ 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x44, 0x00, 0x61, 0x00, 0x74,
+ 0x00, 0x61, 0x00, 0x00, 0x00,
+// 0x0014: STR_RAM_DISK_RESERVED_MEMORY:0x0014
+ 0x14, 0x52, 0x00, 0x65, 0x00, 0x73, 0x00, 0x65, 0x00, 0x72, 0x00, 0x76, 0x00, 0x65, 0x00, 0x64,
+ 0x00, 0x00, 0x00,
+// 0x0015: STR_CREATE_AND_EXIT_HELP:0x0015
+ 0x14, 0x43, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x20, 0x00, 0x52, 0x00, 0x41, 0x00, 0x4D,
+ 0x00, 0x20, 0x00, 0x64, 0x00, 0x69, 0x00, 0x73, 0x00, 0x6B, 0x00, 0x20, 0x00, 0x77, 0x00, 0x69,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x67,
+ 0x00, 0x69, 0x00, 0x76, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x73, 0x00, 0x74, 0x00, 0x61,
+ 0x00, 0x72, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6E,
+ 0x00, 0x64, 0x00, 0x20, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x64, 0x00, 0x64, 0x00, 0x72, 0x00, 0x65, 0x00, 0x73, 0x00, 0x73,
+ 0x00, 0x2E, 0x00, 0x00, 0x00,
+// 0x0016: STR_CREATE_AND_EXIT_PROMPT:0x0016
+ 0x14, 0x43, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x26,
+ 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x69, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x0017: STR_DISCARD_AND_EXIT_HELP:0x0017
+ 0x14, 0x44, 0x00, 0x69, 0x00, 0x73, 0x00, 0x63, 0x00, 0x61, 0x00, 0x72, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x61, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x20, 0x00, 0x65, 0x00, 0x78, 0x00, 0x69, 0x00, 0x74,
+ 0x00, 0x2E, 0x00, 0x00, 0x00,
+// 0x0018: STR_DISCARD_AND_EXIT_PROMPT:0x0018
+ 0x14, 0x44, 0x00, 0x69, 0x00, 0x73, 0x00, 0x63, 0x00, 0x61, 0x00, 0x72, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x26, 0x00, 0x20, 0x00, 0x45, 0x00, 0x78, 0x00, 0x69, 0x00, 0x74, 0x00, 0x00, 0x00,
+ 0x00,
+
+};
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskHii.c b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskHii.c
new file mode 100644
index 000000000000..2a4fd6b7f3d1
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskHii.c
@@ -0,0 +1,39 @@
+//
+// DO NOT EDIT -- auto-generated file
+//
+// This file is generated by the vfrcompiler utility
+//
+
+unsigned char RamDiskHiiBin[] = {
+ // ARRAY LENGTH
+
+ 0x47, 0x01, 0x00, 0x00,
+
+ // PACKAGE HEADER
+
+ 0x43, 0x01, 0x00, 0x02,
+
+ // PACKAGE DATA
+
+ 0x0E, 0xA7, 0x5F, 0x71, 0x46, 0x2A, 0x81, 0x35, 0x55, 0x4A, 0x8E, 0x73, 0x2B, 0x76, 0x9A, 0xAA,
+ 0x30, 0xC5, 0x02, 0x00, 0x03, 0x00, 0x01, 0x71, 0x99, 0x03, 0x93, 0x45, 0x85, 0x04, 0x4B, 0xB4,
+ 0x5E, 0x32, 0xEB, 0x83, 0x26, 0x04, 0x0E, 0x5C, 0x06, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x06, 0x00,
+ 0x00, 0x01, 0x00, 0x01, 0x86, 0x00, 0x10, 0x04, 0x00, 0x05, 0x91, 0x11, 0x00, 0x12, 0x00, 0x04,
+ 0x20, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x10, 0x00, 0x01, 0x00, 0x09, 0x07, 0x13, 0x00, 0x10, 0x00,
+ 0x00, 0x09, 0x07, 0x14, 0x00, 0x00, 0x00, 0x01, 0x29, 0x02, 0x02, 0x87, 0x05, 0x00, 0x00, 0x00,
+ 0x00, 0x29, 0x02, 0x0F, 0x0F, 0x08, 0x00, 0x09, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00,
+ 0x00, 0x20, 0x0F, 0x0F, 0x0A, 0x00, 0x0B, 0x00, 0x01, 0x10, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x00,
+ 0x10, 0x02, 0x87, 0x05, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x02, 0x87, 0x06, 0x00, 0x00, 0x00,
+ 0x00, 0x29, 0x02, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53,
+ 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x03, 0x10, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87,
+ 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x04, 0x10, 0x02, 0x87, 0x05,
+ 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x0C, 0x8F, 0x0D, 0x00, 0x0C, 0x00, 0x02, 0x10, 0x00, 0x00,
+ 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x29, 0x02, 0x29, 0x02, 0x01, 0x86, 0x00, 0x20, 0x0E, 0x00, 0x02,
+ 0x87, 0x05, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x07, 0xA6, 0x0F, 0x00, 0x10, 0x00, 0x01, 0x20,
+ 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x23, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02,
+ 0x02, 0x87, 0x05, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x0C, 0x8F, 0x16, 0x00, 0x15, 0x00, 0x02,
+ 0x20, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x29, 0x02, 0x0C, 0x8F, 0x18, 0x00, 0x17, 0x00,
+ 0x03, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x29, 0x02, 0x29, 0x02, 0x29, 0x02
+
+};
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.c b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.c
new file mode 100644
index 000000000000..e9b2a55ebe10
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.c
@@ -0,0 +1,23 @@
+
+// This file has been generated from:
+// -Python script: c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDisk.amli
+// -Input AML file: C:\Users\mliang2x\WorkSpace\edk2\BaseTools\Source\Python\AmlToC\AmlToC.py
+
+unsigned char ramdisk_aml_code[] = {
+ 0x53, 0x53, 0x44, 0x54, 0x7C, 0x00, 0x00, 0x00,
+ 0x02, 0xA1, 0x49, 0x4E, 0x54, 0x45, 0x4C, 0x20,
+ 0x52, 0x61, 0x6D, 0x44, 0x69, 0x73, 0x6B, 0x20,
+ 0x00, 0x10, 0x00, 0x00, 0x49, 0x4E, 0x54, 0x4C,
+ 0x25, 0x09, 0x20, 0x20, 0x10, 0x47, 0x05, 0x5C,
+ 0x5F, 0x53, 0x42, 0x5F, 0x5B, 0x82, 0x4E, 0x04,
+ 0x4E, 0x56, 0x44, 0x52, 0x08, 0x5F, 0x48, 0x49,
+ 0x44, 0x0D, 0x41, 0x43, 0x50, 0x49, 0x30, 0x30,
+ 0x31, 0x32, 0x00, 0x08, 0x5F, 0x53, 0x54, 0x52,
+ 0x11, 0x29, 0x0A, 0x26, 0x4E, 0x00, 0x56, 0x00,
+ 0x44, 0x00, 0x49, 0x00, 0x4D, 0x00, 0x4D, 0x00,
+ 0x20, 0x00, 0x52, 0x00, 0x6F, 0x00, 0x6F, 0x00,
+ 0x74, 0x00, 0x20, 0x00, 0x44, 0x00, 0x65, 0x00,
+ 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00,
+ 0x00, 0x00, 0x14, 0x09, 0x5F, 0x53, 0x54, 0x41,
+ 0x00, 0xA4, 0x0A, 0x0F,
+};
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/AutoGen.c b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/AutoGen.c
new file mode 100644
index 000000000000..bb3ade03e372
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/AutoGen.c
@@ -0,0 +1,759 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ AutoGen.c
+ Abstract: Auto-generated AutoGen.c for building module or library.
+**/
+#include <Uefi.h>
+#include <Library/BaseLib.h>
+#include <Library/DebugLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+#include <Library/UefiApplicationEntryPoint.h>
+
+GLOBAL_REMOVE_IF_UNREFERENCED GUID gEfiCallerIdGuid = {0x462CAA21, 0x7614, 0x4503, {0x83, 0x6E, 0x8A, 0xB6, 0xF4, 0x66, 0x23, 0x31}};
+
+GLOBAL_REMOVE_IF_UNREFERENCED GUID gEdkiiDscPlatformGuid = {0x5a9e7754, 0xd81b, 0x49ea, {0x85, 0xad, 0x69, 0xea, 0xa7, 0xb1, 0x53, 0x9b}};
+
+GLOBAL_REMOVE_IF_UNREFERENCED CHAR8 *gEfiCallerBaseName = "UiApp";
+
+// Guids
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiIfrTianoGuid = { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiIfrFrontPageGuid = { 0xe58809f8, 0xfbc1, 0x48e2, { 0x88, 0x3a, 0xa3, 0x0f, 0xdc, 0x4b, 0x44, 0x1e } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiMdePkgTokenSpaceGuid = { 0x914AEBE7, 0x4635, 0x459b, { 0xAA, 0x1C, 0x11, 0xE2, 0x19, 0xB0, 0x3A, 0x10 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiMdeModulePkgTokenSpaceGuid = { 0xA1AFF049, 0xFDEB, 0x442a, { 0xB3, 0x20, 0x13, 0xAB, 0x4C, 0xB7, 0x2B, 0xBC }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gUefiOvmfPkgTokenSpaceGuid = {0x93bb96af, 0xb9f2, 0x4eb8, {0x94, 0x62, 0xe0, 0xba, 0x74, 0x56, 0x42, 0x36}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiEventReadyToBootGuid = { 0x7CE88FB3, 0x4BD7, 0x4679, { 0x87, 0xA8, 0xA8, 0xD8, 0xDE, 0xE5, 0x0D, 0x2B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiEventLegacyBootGuid = { 0x2A571201, 0x4966, 0x47F6, { 0x8B, 0x86, 0xF3, 0x1E, 0x41, 0xF3, 0x2F, 0x10 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiGlobalVariableGuid = { 0x8BE4DF61, 0x93CA, 0x11D2, { 0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAcpi20TableGuid = { 0x8868E871, 0xE4F1, 0x11D3, { 0xBC, 0x22, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAcpi10TableGuid = { 0xEB9D2D30, 0x2D88, 0x11D3, { 0x9A, 0x16, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHobListGuid = { 0x7739F24C, 0x93D7, 0x11D4, { 0x9A, 0x3A, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiFileInfoGuid = { 0x09576E92, 0x6D3F, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDxeServicesTableGuid = { 0x05AD34BA, 0x6F02, 0x4214, { 0x95, 0x2E, 0x4D, 0xA0, 0x39, 0x8E, 0x2B, 0xB9 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEdkiiIfrBitVarstoreGuid = {0x82DDD68B, 0x9163, 0x4187, {0x9B, 0x27, 0x20, 0xA8, 0xFD, 0x60,0xA7, 0x1D}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiStatusCodeSpecificDataGuid = { 0x335984BD, 0xE805, 0x409A, { 0xB8, 0xF8, 0xD2, 0x7E, 0xCE, 0x5F, 0xF7, 0xA6 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiStatusCodeDataTypeDebugGuid = { 0x9A4E9246, 0xD553, 0x11D5, { 0x87, 0xE2, 0x00, 0x06, 0x29, 0x45, 0xC3, 0xB9 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiMemoryTypeInformationGuid = { 0x4C19049F, 0x4137, 0x4DD3, { 0x9C, 0x10, 0x8B, 0x97, 0xA8, 0x3F, 0xFD, 0xFA }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEdkiiStatusCodeDataTypeVariableGuid = { 0xf6ee6dbb, 0xd67f, 0x4ea0, { 0x8b, 0x96, 0x6a, 0x71, 0xb1, 0x9d, 0x84, 0xad }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDiskInfoAhciInterfaceGuid = { 0x9e498932, 0x4abc, 0x45af, { 0xa3, 0x4d, 0x02, 0x47, 0x78, 0x7b, 0xe7, 0xc6 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDiskInfoIdeInterfaceGuid = { 0x5E948FE3, 0x26D3, 0x42B5, { 0xAF, 0x17, 0x61, 0x02, 0x87, 0x18, 0x8D, 0xEC }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDiskInfoScsiInterfaceGuid = { 0x08F74BAA, 0xEA36, 0x41D9, { 0x95, 0x21, 0x21, 0xA7, 0x0F, 0x87, 0x80, 0xBC }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDiskInfoSdMmcInterfaceGuid = { 0x8deec992, 0xd39c, 0x4a5c, { 0xab, 0x6b, 0x98, 0x6e, 0x14, 0x24, 0x2b, 0x9d }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiFileSystemVolumeLabelInfoIdGuid = { 0xDB47D7D3, 0xFE81, 0x11D3, { 0x9A, 0x35, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiPlatformSetupFormsetGuid = { 0x93039971, 0x8545, 0x4b04, { 0xb4, 0x5e, 0x32, 0xeb, 0x83, 0x26, 0x04, 0x0e }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiIfrBootMaintenanceGuid = { 0xb2dedc91, 0xd59f, 0x48d2, { 0x89, 0x8a, 0x12, 0x49, 0xc, 0x74, 0xa4, 0xe0 }};
+
+// Protocols
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSmbiosProtocolGuid = {0x3583ff6, 0xcb36, 0x4940, { 0x94, 0x7e, 0xb9, 0xb3, 0x9f, 0x4a, 0xfa, 0xf7}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiConfigAccessProtocolGuid = {0x330d4706, 0xf2a0, 0x4e4f, {0xa3, 0x69, 0xb6, 0x6f, 0xa8, 0xd5, 0x43, 0x85}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gPcdProtocolGuid = { 0x11B34006, 0xD85B, 0x4D0A, { 0xA2, 0x90, 0xD5, 0xA5, 0x71, 0x31, 0x0E, 0xF7 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiPcdProtocolGuid = { 0x13a3f0f6, 0x264a, 0x3ef0, { 0xf2, 0xe0, 0xde, 0xc5, 0x12, 0x34, 0x2f, 0x34 } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gGetPcdInfoProtocolGuid = { 0x5be40f57, 0xfa68, 0x4610, { 0xbb, 0xbf, 0xe9, 0xc5, 0xfc, 0xda, 0xd3, 0x65 } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiGetPcdInfoProtocolGuid = { 0xfd0f4478, 0xefd, 0x461d, { 0xba, 0x2d, 0xe5, 0x8c, 0x45, 0xfd, 0x5f, 0x5e } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathProtocolGuid = { 0x09576E91, 0x6D3F, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathUtilitiesProtocolGuid = { 0x0379BE4E, 0xD706, 0x437D, { 0xB0, 0x37, 0xED, 0xB8, 0x2F, 0xB7, 0x72, 0xA4 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathToTextProtocolGuid = { 0x8B843E20, 0x8132, 0x4852, { 0x90, 0xCC, 0x55, 0x1A, 0x4E, 0x4A, 0x7F, 0x1C }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathFromTextProtocolGuid = { 0x05C99A21, 0xC70F, 0x4AD2, { 0x8A, 0x5F, 0x35, 0xDF, 0x33, 0x43, 0xF5, 0x1E }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverBindingProtocolGuid = { 0x18A031AB, 0xB443, 0x4D1A, { 0xA5, 0xC0, 0x0C, 0x09, 0x26, 0x1E, 0x9F, 0x71 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimpleTextOutProtocolGuid = { 0x387477C2, 0x69C7, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiGraphicsOutputProtocolGuid = { 0x9042A9DE, 0x23DC, 0x4A38, { 0x96, 0xFB, 0x7A, 0xDE, 0xD0, 0x80, 0x51, 0x6A }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiFontProtocolGuid = {0xe9ca4775, 0x8657, 0x47fc, {0x97, 0xe7, 0x7e, 0xd6, 0x5a, 0x08, 0x43, 0x24}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimpleFileSystemProtocolGuid = { 0x964E5B22, 0x6459, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiUgaDrawProtocolGuid = { 0x982C298B, 0xF4FA, 0x41CB, { 0xB8, 0x38, 0x77, 0xAA, 0x68, 0x8F, 0xB8, 0x39 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiComponentNameProtocolGuid = { 0x107A772C, 0xD5E1, 0x11D4, { 0x9A, 0x46, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiComponentName2ProtocolGuid = { 0x6A7A5CFF, 0xE8D9, 0x4F70, { 0xBA, 0xDA, 0x75, 0xAB, 0x30, 0x25, 0xCE, 0x14 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverConfigurationProtocolGuid = { 0x107A772B, 0xD5E1, 0x11D4, { 0x9A, 0x46, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverConfiguration2ProtocolGuid = { 0xBFD7DC1D, 0x24F1, 0x40D9, { 0x82, 0xE7, 0x2E, 0x09, 0xBB, 0x6B, 0x4E, 0xBE }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverDiagnosticsProtocolGuid = { 0x0784924F, 0xE296, 0x11D4, { 0x9A, 0x49, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverDiagnostics2ProtocolGuid = { 0x4D330321, 0x025F, 0x4AAC, { 0x90, 0xD8, 0x5E, 0xD9, 0x00, 0x17, 0x3B, 0x63 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiStringProtocolGuid = {0x0fd96974, 0x23aa, 0x4cdc, {0xb9, 0xcb, 0x98, 0xd1, 0x77, 0x50, 0x32, 0x2a}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiImageProtocolGuid = {0x31a6406a, 0x6bdf, 0x4e46, {0xb2, 0xa2, 0xeb, 0xaa, 0x89, 0xc4, 0x09, 0x20}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiDatabaseProtocolGuid = {0xef9fc172, 0xa1b2, 0x4693, {0xb3, 0x27, 0x6d, 0x32, 0xfc, 0x41, 0x60, 0x42}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiConfigRoutingProtocolGuid = {0x587e72d7, 0xcc50, 0x4f79, {0x82, 0x09, 0xca, 0x29, 0x1f, 0xc1, 0xa1, 0x0f}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiUnicodeCollation2ProtocolGuid = {0xa4c751fc, 0x23ae, 0x4c3e, { 0x92, 0xe9, 0x49, 0x64, 0xcf, 0x63, 0xf3, 0x49 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiFirmwareVolume2ProtocolGuid = { 0x220e73b6, 0x6bdb, 0x4413, { 0x84, 0x5, 0xb9, 0x74, 0xb1, 0x8, 0x61, 0x9a } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiLoadedImageProtocolGuid = { 0x5B1B31A1, 0x9562, 0x11D2, { 0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiLoadFileProtocolGuid = { 0x56EC3091, 0x954C, 0x11D2, { 0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiLoadFile2ProtocolGuid = { 0x4006c0c1, 0xfcb3, 0x403e, {0x99, 0x6d, 0x4a, 0x6c, 0x87, 0x24, 0xe0, 0x6d }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiFormBrowser2ProtocolGuid = {0xb9d4c360, 0xbcfb, 0x4f9b, {0x92, 0x98, 0x53, 0xc1, 0x36, 0x98, 0x22, 0x58}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiStatusCodeRuntimeProtocolGuid = { 0xD2B2B828, 0x0826, 0x48A7, { 0xB3, 0xDF, 0x98, 0x3C, 0x00, 0x60, 0x24, 0xF0 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiPciRootBridgeIoProtocolGuid = { 0x2F707EBB, 0x4A1A, 0x11D4, { 0x9A, 0x38, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiPciIoProtocolGuid = { 0x4CF5B200, 0x68B8, 0x4CA5, { 0x9E, 0xEC, 0xB2, 0x3E, 0x3F, 0x50, 0x02, 0x9A }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimpleNetworkProtocolGuid = { 0xA19832B9, 0xAC25, 0x11D3, { 0x9A, 0x2D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimpleTextInProtocolGuid = { 0x387477C1, 0x69C7, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiBlockIoProtocolGuid = { 0x964E5B21, 0x6459, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiBootLogoProtocolGuid = { 0xcdea2bd3, 0xfc25, 0x4c1c, { 0xb9, 0x7c, 0xb3, 0x11, 0x86, 0x6, 0x49, 0x90 } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimpleTextInputExProtocolGuid = {0xdd9e7534, 0x7762, 0x4698, { 0x8c, 0x14, 0xf5, 0x85, 0x17, 0xa6, 0x25, 0xaa } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEdkiiVariablePolicyProtocolGuid = { 0x81D1675C, 0x86F6, 0x48DF, { 0xBD, 0x95, 0x9A, 0x6E, 0x4F, 0x09, 0x25, 0xC3 } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiUsbIoProtocolGuid = { 0x2B2F68D6, 0x0CD2, 0x44CF, { 0x8E, 0x8B, 0xBB, 0xA2, 0x0B, 0x1B, 0x5B, 0x75 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiNvmExpressPassThruProtocolGuid = { 0x52c78312, 0x8edc, 0x4233, { 0x98, 0xf2, 0x1a, 0x1a, 0xa5, 0xe3, 0x88, 0xa5 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDiskInfoProtocolGuid = { 0xD432A67F, 0x14DC, 0x484B, { 0xB3, 0xBB, 0x3F, 0x02, 0x91, 0x84, 0x93, 0x27 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverHealthProtocolGuid = { 0x2a534210, 0x9280, 0x41d8, {0xae, 0x79, 0xca, 0xda, 0x1, 0xa2, 0xb1, 0x27 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiRamDiskProtocolGuid = { 0xab38a0df, 0x6873, 0x44a9, { 0x87, 0xe6, 0xd4, 0xeb, 0x56, 0x14, 0x84, 0x49 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDeferredImageLoadProtocolGuid = { 0x15853d7c, 0x3ddf, 0x43e0, {0xa1, 0xcb, 0xeb, 0xf8, 0x5b, 0x8f, 0x87, 0x2c }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEdkiiPlatformBootManagerProtocolGuid = { 0xaa17add4, 0x756c, 0x460d, { 0x94, 0xb8, 0x43, 0x88, 0xd7, 0xfb, 0x3e, 0x59 } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEdkiiFormBrowserEx2ProtocolGuid = { 0xa770c357, 0xb693, 0x4e6d, { 0xa6, 0xcf, 0xd2, 0x1c, 0x72, 0x8e, 0x55, 0xb } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSerialIoProtocolGuid = { 0xBB25CF6F, 0xF1D4, 0x11D2, { 0x9A, 0x0C, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0xFD }};
+
+// Definition of SkuId Array
+GLOBAL_REMOVE_IF_UNREFERENCED UINT64 _gPcd_SkuId_Array[] = {0x0};
+
+// Definition of PCDs used in this module
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdUefiVariableDefaultPlatformLangCodes[18] = {101, 110, 59, 102, 114, 59, 101, 110, 45, 85, 83, 59, 102, 114, 45, 70, 82, 0 };
+GLOBAL_REMOVE_IF_UNREFERENCED const UINTN _gPcd_FixedAtBuild_Size_PcdUefiVariableDefaultPlatformLangCodes = 18;
+volatile UINT32 _gPcd_BinaryPatch_PcdSetupConOutColumn = _PCD_PATCHABLE_VALUE_PcdSetupConOutColumn;
+GLOBAL_REMOVE_IF_UNREFERENCED UINTN _gPcd_BinaryPatch_Size_PcdSetupConOutColumn = 4;
+volatile UINT32 _gPcd_BinaryPatch_PcdSetupConOutRow = _PCD_PATCHABLE_VALUE_PcdSetupConOutRow;
+GLOBAL_REMOVE_IF_UNREFERENCED UINTN _gPcd_BinaryPatch_Size_PcdSetupConOutRow = 4;
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT16 _gPcd_FixedAtBuild_PcdFirmwareVersionString[1] = {0 };
+GLOBAL_REMOVE_IF_UNREFERENCED const UINTN _gPcd_FixedAtBuild_Size_PcdFirmwareVersionString = 2;
+
+// Definition of PCDs used in libraries
+
+#define _PCD_TOKEN_PcdVerifyNodeInList 0U
+#define _PCD_SIZE_PcdVerifyNodeInList 1
+#define _PCD_GET_MODE_SIZE_PcdVerifyNodeInList _PCD_SIZE_PcdVerifyNodeInList
+#define _PCD_VALUE_PcdVerifyNodeInList ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdVerifyNodeInList = _PCD_VALUE_PcdVerifyNodeInList;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdVerifyNodeInList;
+#define _PCD_GET_MODE_BOOL_PcdVerifyNodeInList _gPcd_FixedAtBuild_PcdVerifyNodeInList
+//#define _PCD_SET_MODE_BOOL_PcdVerifyNodeInList ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumLinkedListLength 0U
+#define _PCD_SIZE_PcdMaximumLinkedListLength 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumLinkedListLength _PCD_SIZE_PcdMaximumLinkedListLength
+#define _PCD_VALUE_PcdMaximumLinkedListLength 0U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumLinkedListLength = _PCD_VALUE_PcdMaximumLinkedListLength;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumLinkedListLength;
+#define _PCD_GET_MODE_32_PcdMaximumLinkedListLength _gPcd_FixedAtBuild_PcdMaximumLinkedListLength
+//#define _PCD_SET_MODE_32_PcdMaximumLinkedListLength ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumAsciiStringLength 0U
+#define _PCD_SIZE_PcdMaximumAsciiStringLength 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumAsciiStringLength _PCD_SIZE_PcdMaximumAsciiStringLength
+#define _PCD_VALUE_PcdMaximumAsciiStringLength 1000000U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumAsciiStringLength = _PCD_VALUE_PcdMaximumAsciiStringLength;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumAsciiStringLength;
+#define _PCD_GET_MODE_32_PcdMaximumAsciiStringLength _gPcd_FixedAtBuild_PcdMaximumAsciiStringLength
+//#define _PCD_SET_MODE_32_PcdMaximumAsciiStringLength ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumUnicodeStringLength 0U
+#define _PCD_SIZE_PcdMaximumUnicodeStringLength 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumUnicodeStringLength _PCD_SIZE_PcdMaximumUnicodeStringLength
+#define _PCD_VALUE_PcdMaximumUnicodeStringLength 1000000U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength = _PCD_VALUE_PcdMaximumUnicodeStringLength;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength;
+#define _PCD_GET_MODE_32_PcdMaximumUnicodeStringLength _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength
+//#define _PCD_SET_MODE_32_PcdMaximumUnicodeStringLength ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdControlFlowEnforcementPropertyMask 0U
+#define _PCD_SIZE_PcdControlFlowEnforcementPropertyMask 4
+#define _PCD_GET_MODE_SIZE_PcdControlFlowEnforcementPropertyMask _PCD_SIZE_PcdControlFlowEnforcementPropertyMask
+#define _PCD_VALUE_PcdControlFlowEnforcementPropertyMask 0x0U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdControlFlowEnforcementPropertyMask = _PCD_VALUE_PcdControlFlowEnforcementPropertyMask;
+extern const UINT32 _gPcd_FixedAtBuild_PcdControlFlowEnforcementPropertyMask;
+#define _PCD_GET_MODE_32_PcdControlFlowEnforcementPropertyMask _gPcd_FixedAtBuild_PcdControlFlowEnforcementPropertyMask
+//#define _PCD_SET_MODE_32_PcdControlFlowEnforcementPropertyMask ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdSpeculationBarrierType 0U
+#define _PCD_SIZE_PcdSpeculationBarrierType 1
+#define _PCD_GET_MODE_SIZE_PcdSpeculationBarrierType _PCD_SIZE_PcdSpeculationBarrierType
+#define _PCD_VALUE_PcdSpeculationBarrierType 0x01U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdSpeculationBarrierType = _PCD_VALUE_PcdSpeculationBarrierType;
+extern const UINT8 _gPcd_FixedAtBuild_PcdSpeculationBarrierType;
+#define _PCD_GET_MODE_8_PcdSpeculationBarrierType _gPcd_FixedAtBuild_PcdSpeculationBarrierType
+//#define _PCD_SET_MODE_8_PcdSpeculationBarrierType ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugPrintErrorLevel 0U
+#define _PCD_SIZE_PcdDebugPrintErrorLevel 4
+#define _PCD_GET_MODE_SIZE_PcdDebugPrintErrorLevel _PCD_SIZE_PcdDebugPrintErrorLevel
+#define _PCD_VALUE_PcdDebugPrintErrorLevel 0x8000004FU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdDebugPrintErrorLevel = _PCD_VALUE_PcdDebugPrintErrorLevel;
+extern const UINT32 _gPcd_FixedAtBuild_PcdDebugPrintErrorLevel;
+#define _PCD_GET_MODE_32_PcdDebugPrintErrorLevel _gPcd_FixedAtBuild_PcdDebugPrintErrorLevel
+//#define _PCD_SET_MODE_32_PcdDebugPrintErrorLevel ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugIoPort 0U
+#define _PCD_SIZE_PcdDebugIoPort 2
+#define _PCD_GET_MODE_SIZE_PcdDebugIoPort _PCD_SIZE_PcdDebugIoPort
+#define _PCD_VALUE_PcdDebugIoPort 0x402U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT16 _gPcd_FixedAtBuild_PcdDebugIoPort = _PCD_VALUE_PcdDebugIoPort;
+extern const UINT16 _gPcd_FixedAtBuild_PcdDebugIoPort;
+#define _PCD_GET_MODE_16_PcdDebugIoPort _gPcd_FixedAtBuild_PcdDebugIoPort
+//#define _PCD_SET_MODE_16_PcdDebugIoPort ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugClearMemoryValue 0U
+#define _PCD_SIZE_PcdDebugClearMemoryValue 1
+#define _PCD_GET_MODE_SIZE_PcdDebugClearMemoryValue _PCD_SIZE_PcdDebugClearMemoryValue
+#define _PCD_VALUE_PcdDebugClearMemoryValue 0xAFU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdDebugClearMemoryValue = _PCD_VALUE_PcdDebugClearMemoryValue;
+extern const UINT8 _gPcd_FixedAtBuild_PcdDebugClearMemoryValue;
+#define _PCD_GET_MODE_8_PcdDebugClearMemoryValue _gPcd_FixedAtBuild_PcdDebugClearMemoryValue
+//#define _PCD_SET_MODE_8_PcdDebugClearMemoryValue ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugPropertyMask 0U
+#define _PCD_SIZE_PcdDebugPropertyMask 1
+#define _PCD_GET_MODE_SIZE_PcdDebugPropertyMask _PCD_SIZE_PcdDebugPropertyMask
+#define _PCD_VALUE_PcdDebugPropertyMask 0x2FU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdDebugPropertyMask = _PCD_VALUE_PcdDebugPropertyMask;
+extern const UINT8 _gPcd_FixedAtBuild_PcdDebugPropertyMask;
+#define _PCD_GET_MODE_8_PcdDebugPropertyMask _gPcd_FixedAtBuild_PcdDebugPropertyMask
+//#define _PCD_SET_MODE_8_PcdDebugPropertyMask ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdFixedDebugPrintErrorLevel 0U
+#define _PCD_SIZE_PcdFixedDebugPrintErrorLevel 4
+#define _PCD_GET_MODE_SIZE_PcdFixedDebugPrintErrorLevel _PCD_SIZE_PcdFixedDebugPrintErrorLevel
+#define _PCD_VALUE_PcdFixedDebugPrintErrorLevel 0xFFFFFFFFU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel = _PCD_VALUE_PcdFixedDebugPrintErrorLevel;
+extern const UINT32 _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel;
+#define _PCD_GET_MODE_32_PcdFixedDebugPrintErrorLevel _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel
+//#define _PCD_SET_MODE_32_PcdFixedDebugPrintErrorLevel ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumDevicePathNodeCount 0U
+#define _PCD_SIZE_PcdMaximumDevicePathNodeCount 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumDevicePathNodeCount _PCD_SIZE_PcdMaximumDevicePathNodeCount
+#define _PCD_VALUE_PcdMaximumDevicePathNodeCount 0U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumDevicePathNodeCount = _PCD_VALUE_PcdMaximumDevicePathNodeCount;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumDevicePathNodeCount;
+#define _PCD_GET_MODE_32_PcdMaximumDevicePathNodeCount _gPcd_FixedAtBuild_PcdMaximumDevicePathNodeCount
+//#define _PCD_SET_MODE_32_PcdMaximumDevicePathNodeCount ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDriverDiagnosticsDisable 0U
+#define _PCD_SIZE_PcdDriverDiagnosticsDisable 1
+#define _PCD_GET_MODE_SIZE_PcdDriverDiagnosticsDisable _PCD_SIZE_PcdDriverDiagnosticsDisable
+#define _PCD_VALUE_PcdDriverDiagnosticsDisable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnosticsDisable = _PCD_VALUE_PcdDriverDiagnosticsDisable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnosticsDisable;
+#define _PCD_GET_MODE_BOOL_PcdDriverDiagnosticsDisable _gPcd_FixedAtBuild_PcdDriverDiagnosticsDisable
+//#define _PCD_SET_MODE_BOOL_PcdDriverDiagnosticsDisable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdComponentNameDisable 0U
+#define _PCD_SIZE_PcdComponentNameDisable 1
+#define _PCD_GET_MODE_SIZE_PcdComponentNameDisable _PCD_SIZE_PcdComponentNameDisable
+#define _PCD_VALUE_PcdComponentNameDisable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdComponentNameDisable = _PCD_VALUE_PcdComponentNameDisable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdComponentNameDisable;
+#define _PCD_GET_MODE_BOOL_PcdComponentNameDisable _gPcd_FixedAtBuild_PcdComponentNameDisable
+//#define _PCD_SET_MODE_BOOL_PcdComponentNameDisable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDriverDiagnostics2Disable 0U
+#define _PCD_SIZE_PcdDriverDiagnostics2Disable 1
+#define _PCD_GET_MODE_SIZE_PcdDriverDiagnostics2Disable _PCD_SIZE_PcdDriverDiagnostics2Disable
+#define _PCD_VALUE_PcdDriverDiagnostics2Disable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnostics2Disable = _PCD_VALUE_PcdDriverDiagnostics2Disable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnostics2Disable;
+#define _PCD_GET_MODE_BOOL_PcdDriverDiagnostics2Disable _gPcd_FixedAtBuild_PcdDriverDiagnostics2Disable
+//#define _PCD_SET_MODE_BOOL_PcdDriverDiagnostics2Disable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdComponentName2Disable 0U
+#define _PCD_SIZE_PcdComponentName2Disable 1
+#define _PCD_GET_MODE_SIZE_PcdComponentName2Disable _PCD_SIZE_PcdComponentName2Disable
+#define _PCD_VALUE_PcdComponentName2Disable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdComponentName2Disable = _PCD_VALUE_PcdComponentName2Disable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdComponentName2Disable;
+#define _PCD_GET_MODE_BOOL_PcdComponentName2Disable _gPcd_FixedAtBuild_PcdComponentName2Disable
+//#define _PCD_SET_MODE_BOOL_PcdComponentName2Disable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdUgaConsumeSupport 0U
+#define _PCD_SIZE_PcdUgaConsumeSupport 1
+#define _PCD_GET_MODE_SIZE_PcdUgaConsumeSupport _PCD_SIZE_PcdUgaConsumeSupport
+#define _PCD_VALUE_PcdUgaConsumeSupport ((BOOLEAN)1U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdUgaConsumeSupport = _PCD_VALUE_PcdUgaConsumeSupport;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdUgaConsumeSupport;
+#define _PCD_GET_MODE_BOOL_PcdUgaConsumeSupport _gPcd_FixedAtBuild_PcdUgaConsumeSupport
+//#define _PCD_SET_MODE_BOOL_PcdUgaConsumeSupport ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdUefiLibMaxPrintBufferSize 0U
+#define _PCD_SIZE_PcdUefiLibMaxPrintBufferSize 4
+#define _PCD_GET_MODE_SIZE_PcdUefiLibMaxPrintBufferSize _PCD_SIZE_PcdUefiLibMaxPrintBufferSize
+#define _PCD_VALUE_PcdUefiLibMaxPrintBufferSize 320U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdUefiLibMaxPrintBufferSize = _PCD_VALUE_PcdUefiLibMaxPrintBufferSize;
+extern const UINT32 _gPcd_FixedAtBuild_PcdUefiLibMaxPrintBufferSize;
+#define _PCD_GET_MODE_32_PcdUefiLibMaxPrintBufferSize _gPcd_FixedAtBuild_PcdUefiLibMaxPrintBufferSize
+//#define _PCD_SET_MODE_32_PcdUefiLibMaxPrintBufferSize ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdPerformanceLibraryPropertyMask 0U
+#define _PCD_SIZE_PcdPerformanceLibraryPropertyMask 1
+#define _PCD_GET_MODE_SIZE_PcdPerformanceLibraryPropertyMask _PCD_SIZE_PcdPerformanceLibraryPropertyMask
+#define _PCD_VALUE_PcdPerformanceLibraryPropertyMask 0U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdPerformanceLibraryPropertyMask = _PCD_VALUE_PcdPerformanceLibraryPropertyMask;
+extern const UINT8 _gPcd_FixedAtBuild_PcdPerformanceLibraryPropertyMask;
+#define _PCD_GET_MODE_8_PcdPerformanceLibraryPropertyMask _gPcd_FixedAtBuild_PcdPerformanceLibraryPropertyMask
+//#define _PCD_SET_MODE_8_PcdPerformanceLibraryPropertyMask ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdReportStatusCodePropertyMask 0U
+#define _PCD_SIZE_PcdReportStatusCodePropertyMask 1
+#define _PCD_GET_MODE_SIZE_PcdReportStatusCodePropertyMask _PCD_SIZE_PcdReportStatusCodePropertyMask
+#define _PCD_VALUE_PcdReportStatusCodePropertyMask 0x07U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdReportStatusCodePropertyMask = _PCD_VALUE_PcdReportStatusCodePropertyMask;
+extern const UINT8 _gPcd_FixedAtBuild_PcdReportStatusCodePropertyMask;
+#define _PCD_GET_MODE_8_PcdReportStatusCodePropertyMask _gPcd_FixedAtBuild_PcdReportStatusCodePropertyMask
+//#define _PCD_SET_MODE_8_PcdReportStatusCodePropertyMask ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdResetOnMemoryTypeInformationChange 0U
+#define _PCD_SIZE_PcdResetOnMemoryTypeInformationChange 1
+#define _PCD_GET_MODE_SIZE_PcdResetOnMemoryTypeInformationChange _PCD_SIZE_PcdResetOnMemoryTypeInformationChange
+#define _PCD_VALUE_PcdResetOnMemoryTypeInformationChange 0U
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdResetOnMemoryTypeInformationChange = _PCD_VALUE_PcdResetOnMemoryTypeInformationChange;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdResetOnMemoryTypeInformationChange;
+#define _PCD_GET_MODE_BOOL_PcdResetOnMemoryTypeInformationChange _gPcd_FixedAtBuild_PcdResetOnMemoryTypeInformationChange
+//#define _PCD_SET_MODE_BOOL_PcdResetOnMemoryTypeInformationChange ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdProgressCodeOsLoaderLoad 0U
+#define _PCD_SIZE_PcdProgressCodeOsLoaderLoad 4
+#define _PCD_GET_MODE_SIZE_PcdProgressCodeOsLoaderLoad _PCD_SIZE_PcdProgressCodeOsLoaderLoad
+#define _PCD_VALUE_PcdProgressCodeOsLoaderLoad 0x03058000U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdProgressCodeOsLoaderLoad = _PCD_VALUE_PcdProgressCodeOsLoaderLoad;
+extern const UINT32 _gPcd_FixedAtBuild_PcdProgressCodeOsLoaderLoad;
+#define _PCD_GET_MODE_32_PcdProgressCodeOsLoaderLoad _gPcd_FixedAtBuild_PcdProgressCodeOsLoaderLoad
+//#define _PCD_SET_MODE_32_PcdProgressCodeOsLoaderLoad ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdProgressCodeOsLoaderStart 0U
+#define _PCD_SIZE_PcdProgressCodeOsLoaderStart 4
+#define _PCD_GET_MODE_SIZE_PcdProgressCodeOsLoaderStart _PCD_SIZE_PcdProgressCodeOsLoaderStart
+#define _PCD_VALUE_PcdProgressCodeOsLoaderStart 0x03058001U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdProgressCodeOsLoaderStart = _PCD_VALUE_PcdProgressCodeOsLoaderStart;
+extern const UINT32 _gPcd_FixedAtBuild_PcdProgressCodeOsLoaderStart;
+#define _PCD_GET_MODE_32_PcdProgressCodeOsLoaderStart _gPcd_FixedAtBuild_PcdProgressCodeOsLoaderStart
+//#define _PCD_SET_MODE_32_PcdProgressCodeOsLoaderStart ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdErrorCodeSetVariable 0U
+#define _PCD_SIZE_PcdErrorCodeSetVariable 4
+#define _PCD_GET_MODE_SIZE_PcdErrorCodeSetVariable _PCD_SIZE_PcdErrorCodeSetVariable
+#define _PCD_VALUE_PcdErrorCodeSetVariable 0x03058002U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdErrorCodeSetVariable = _PCD_VALUE_PcdErrorCodeSetVariable;
+extern const UINT32 _gPcd_FixedAtBuild_PcdErrorCodeSetVariable;
+#define _PCD_GET_MODE_32_PcdErrorCodeSetVariable _gPcd_FixedAtBuild_PcdErrorCodeSetVariable
+//#define _PCD_SET_MODE_32_PcdErrorCodeSetVariable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdBootManagerMenuFile 0U
+#define _PCD_VALUE_PcdBootManagerMenuFile (VOID *)_gPcd_FixedAtBuild_PcdBootManagerMenuFile
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdBootManagerMenuFile[16] = { 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 };
+extern const UINT8 _gPcd_FixedAtBuild_PcdBootManagerMenuFile[16];
+#define _PCD_GET_MODE_PTR_PcdBootManagerMenuFile (VOID *)_gPcd_FixedAtBuild_PcdBootManagerMenuFile
+#define _PCD_SIZE_PcdBootManagerMenuFile 16
+#define _PCD_GET_MODE_SIZE_PcdBootManagerMenuFile _PCD_SIZE_PcdBootManagerMenuFile
+GLOBAL_REMOVE_IF_UNREFERENCED const UINTN _gPcd_FixedAtBuild_Size_PcdBootManagerMenuFile = 16;
+//#define _PCD_SET_MODE_PTR_PcdBootManagerMenuFile ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDriverHealthConfigureForm 0U
+#define _PCD_VALUE_PcdDriverHealthConfigureForm (VOID *)_gPcd_FixedAtBuild_PcdDriverHealthConfigureForm
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdDriverHealthConfigureForm[16] = { 0xf4, 0xd9, 0x96, 0x42, 0xfc, 0xf6, 0xde, 0x4d, 0x86, 0x85, 0x8c, 0xe2, 0xd7, 0x9d, 0x90, 0xf0 };
+extern const UINT8 _gPcd_FixedAtBuild_PcdDriverHealthConfigureForm[16];
+#define _PCD_GET_MODE_PTR_PcdDriverHealthConfigureForm (VOID *)_gPcd_FixedAtBuild_PcdDriverHealthConfigureForm
+#define _PCD_SIZE_PcdDriverHealthConfigureForm 16
+#define _PCD_GET_MODE_SIZE_PcdDriverHealthConfigureForm _PCD_SIZE_PcdDriverHealthConfigureForm
+GLOBAL_REMOVE_IF_UNREFERENCED const UINTN _gPcd_FixedAtBuild_Size_PcdDriverHealthConfigureForm = 16;
+//#define _PCD_SET_MODE_PTR_PcdDriverHealthConfigureForm ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaxRepairCount 0U
+#define _PCD_SIZE_PcdMaxRepairCount 4
+#define _PCD_GET_MODE_SIZE_PcdMaxRepairCount _PCD_SIZE_PcdMaxRepairCount
+#define _PCD_VALUE_PcdMaxRepairCount 0x00U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaxRepairCount = _PCD_VALUE_PcdMaxRepairCount;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaxRepairCount;
+#define _PCD_GET_MODE_32_PcdMaxRepairCount _gPcd_FixedAtBuild_PcdMaxRepairCount
+//#define _PCD_SET_MODE_32_PcdMaxRepairCount ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdPlatformBootTimeOut 43U
+#define _PCD_GET_MODE_16_PcdPlatformBootTimeOut LibPcdGet16(_PCD_TOKEN_PcdPlatformBootTimeOut)
+#define _PCD_GET_MODE_SIZE_PcdPlatformBootTimeOut LibPcdGetSize(_PCD_TOKEN_PcdPlatformBootTimeOut)
+#define _PCD_SET_MODE_16_PcdPlatformBootTimeOut(Value) LibPcdSet16(_PCD_TOKEN_PcdPlatformBootTimeOut, (Value))
+#define _PCD_SET_MODE_16_S_PcdPlatformBootTimeOut(Value) LibPcdSet16S(_PCD_TOKEN_PcdPlatformBootTimeOut, (Value))
+
+
+RETURN_STATUS
+EFIAPI
+PlatformDebugLibIoPortConstructor (
+ VOID
+ );
+
+EFI_STATUS
+EFIAPI
+UefiBootServicesTableLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+UefiRuntimeServicesTableLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+DevicePathLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+UefiLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+HobLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+UefiHiiServicesLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+DxeServicesTableLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+FileExplorerLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+DeviceManagerUiLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+BootManagerUiLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+BootMaintenanceManagerUiLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+
+VOID
+EFIAPI
+ProcessLibraryConstructorList (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+{
+ EFI_STATUS Status;
+
+ Status = PlatformDebugLibIoPortConstructor ();
+ ASSERT_RETURN_ERROR (Status);
+
+ Status = UefiBootServicesTableLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = UefiRuntimeServicesTableLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = DevicePathLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = UefiLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = HobLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = UefiHiiServicesLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = DxeServicesTableLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = FileExplorerLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = DeviceManagerUiLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = BootManagerUiLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = BootMaintenanceManagerUiLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+}
+
+
+EFI_STATUS
+EFIAPI
+BootMaintenanceManagerUiLibDestructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+BootManagerUiLibDestructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+DeviceManagerUiLibDestructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+FileExplorerLibDestructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+
+VOID
+EFIAPI
+ProcessLibraryDestructorList (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+{
+ EFI_STATUS Status;
+
+ Status = BootMaintenanceManagerUiLibDestructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = BootManagerUiLibDestructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = DeviceManagerUiLibDestructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = FileExplorerLibDestructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+}
+
+const UINT32 _gUefiDriverRevision = 0x00000000U;
+
+
+EFI_STATUS
+EFIAPI
+ProcessModuleEntryPointList (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+
+{
+ return InitializeUserInterface (ImageHandle, SystemTable);
+}
+
+VOID
+EFIAPI
+ExitDriver (
+ IN EFI_STATUS Status
+ )
+{
+ if (EFI_ERROR (Status)) {
+ ProcessLibraryDestructorList (gImageHandle, gST);
+ }
+ gBS->Exit (gImageHandle, Status, 0, NULL);
+}
+
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gDriverUnloadImageCount = 0U;
+
+EFI_STATUS
+EFIAPI
+ProcessModuleUnloadList (
+ IN EFI_HANDLE ImageHandle
+ )
+{
+ return EFI_SUCCESS;
+}
+
+//
+//Unicode String Pack Definition
+//
+unsigned char UiAppStrings[] = {
+
+// STRGATHER_OUTPUT_HEADER
+ 0x26, 0x04, 0x00, 0x00,
+
+// PACKAGE HEADER
+
+ 0xB4, 0x01, 0x00, 0x04, 0x34, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x65, 0x6E,
+ 0x2D, 0x55, 0x53, 0x00,
+
+// PACKAGE DATA
+
+// 0x0001: $PRINTABLE_LANGUAGE_NAME:0x0001
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x73, 0x00, 0x68, 0x00, 0x00,
+ 0x00,
+// 0x0002: STR_FRONT_PAGE_TITLE:0x0002
+ 0x14, 0x46, 0x00, 0x72, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x20, 0x00, 0x50, 0x00, 0x61,
+ 0x00, 0x67, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0003: STR_FRONT_PAGE_COMPUTER_MODEL:0x0003
+ 0x14, 0x00, 0x00,
+// 0x0004: STR_FRONT_PAGE_CPU_MODEL:0x0004
+ 0x14, 0x00, 0x00,
+// 0x0005: STR_FRONT_PAGE_CPU_SPEED:0x0005
+ 0x14, 0x00, 0x00,
+// 0x0006: STR_FRONT_PAGE_MEMORY_SIZE:0x0006
+ 0x14, 0x00, 0x00,
+// 0x0007: STR_FRONT_PAGE_BIOS_VERSION:0x0007
+ 0x14, 0x00, 0x00,
+// 0x0008: STR_CONTINUE_PROMPT:0x0008
+ 0x14, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x75, 0x00, 0x65,
+ 0x00, 0x00, 0x00,
+// 0x0009: STR_LANGUAGE_SELECT:0x0009
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x20, 0x00, 0x4C,
+ 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x75, 0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00, 0x00,
+ 0x00,
+// 0x000A: STR_LANGUAGE_SELECT_HELP:0x000A
+ 0x14, 0x54, 0x00, 0x68, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x64, 0x00, 0x6A, 0x00, 0x75, 0x00, 0x73, 0x00, 0x74, 0x00, 0x73, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x6F, 0x00, 0x20, 0x00, 0x63, 0x00, 0x68, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6C, 0x00, 0x61, 0x00, 0x6E,
+ 0x00, 0x67, 0x00, 0x75, 0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00, 0x20, 0x00, 0x66, 0x00, 0x6F,
+ 0x00, 0x72, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x63, 0x00, 0x75,
+ 0x00, 0x72, 0x00, 0x72, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x20, 0x00, 0x73, 0x00, 0x79,
+ 0x00, 0x73, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x00, 0x00,
+// 0x000B: STR_MISSING_STRING:0x000B
+ 0x14, 0x4D, 0x00, 0x69, 0x00, 0x73, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x20,
+ 0x00, 0x53, 0x00, 0x74, 0x00, 0x72, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x00, 0x00,
+// 0x000C: STR_EMPTY_STRING:0x000C
+ 0x14, 0x00, 0x00,
+// 0x000D: STR_RESET_STRING:0x000D
+ 0x14, 0x52, 0x00, 0x65, 0x00, 0x73, 0x00, 0x65, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x000E: STR_CUSTOMIZE_BANNER_LINE4_LEFT:0x000E
+ 0x14, 0x00, 0x00,
+// 0x000F: STR_CUSTOMIZE_BANNER_LINE4_RIGHT:0x000F
+ 0x14, 0x00, 0x00,
+// 0x0010: STR_CUSTOMIZE_BANNER_LINE5_LEFT:0x0010
+ 0x14, 0x00, 0x00,
+// 0x0011: STR_CUSTOMIZE_BANNER_LINE5_RIGHT:0x0011
+ 0x14, 0x00, 0x00,
+// 0x0012: STR_TEST_KEY_USED:0x0012
+ 0x14, 0x57, 0x00, 0x41, 0x00, 0x52, 0x00, 0x4E, 0x00, 0x49, 0x00, 0x4E, 0x00, 0x47, 0x00, 0x3A,
+ 0x00, 0x20, 0x00, 0x54, 0x00, 0x65, 0x00, 0x73, 0x00, 0x74, 0x00, 0x20, 0x00, 0x6B, 0x00, 0x65,
+ 0x00, 0x79, 0x00, 0x20, 0x00, 0x64, 0x00, 0x65, 0x00, 0x74, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74,
+ 0x00, 0x65, 0x00, 0x64, 0x00, 0x2E, 0x00, 0x00, 0x00,
+// 0x0013: STR_NULL_STRING:0x0013
+ 0x14, 0x20, 0x00, 0x00, 0x00,
+ 0x00,
+// PACKAGE HEADER
+
+ 0xBC, 0x01, 0x00, 0x04, 0x34, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x66, 0x72,
+ 0x2D, 0x46, 0x52, 0x00,
+
+// PACKAGE DATA
+
+// 0x0001: $PRINTABLE_LANGUAGE_NAME:0x0001
+ 0x14, 0x46, 0x00, 0x72, 0x00, 0x61, 0x00, 0x6E, 0x00, 0xE7, 0x00, 0x61, 0x00, 0x69, 0x00, 0x73,
+ 0x00, 0x00, 0x00,
+// 0x0002: STR_FRONT_PAGE_TITLE:0x0002
+ 0x14, 0x46, 0x00, 0x72, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x20, 0x00, 0x50, 0x00, 0x61,
+ 0x00, 0x67, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0003: STR_FRONT_PAGE_COMPUTER_MODEL:0x0003
+ 0x14, 0x00, 0x00,
+// 0x0004: STR_FRONT_PAGE_CPU_MODEL:0x0004
+ 0x14, 0x00, 0x00,
+// 0x0005: STR_FRONT_PAGE_CPU_SPEED:0x0005
+ 0x14, 0x00, 0x00,
+// 0x0006: STR_FRONT_PAGE_MEMORY_SIZE:0x0006
+ 0x14, 0x00, 0x00,
+// 0x0007: STR_FRONT_PAGE_BIOS_VERSION:0x0007
+ 0x14, 0x00, 0x00,
+// 0x0008: STR_CONTINUE_PROMPT:0x0008
+ 0x14, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x75, 0x00, 0x65,
+ 0x00, 0x72, 0x00, 0x00, 0x00,
+// 0x0009: STR_LANGUAGE_SELECT:0x0009
+ 0x14, 0x43, 0x00, 0x68, 0x00, 0x6F, 0x00, 0x69, 0x00, 0x73, 0x00, 0x69, 0x00, 0x72, 0x00, 0x20,
+ 0x00, 0x6C, 0x00, 0x61, 0x00, 0x20, 0x00, 0x4C, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x75,
+ 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x000A: STR_LANGUAGE_SELECT_HELP:0x000A
+ 0x14, 0x43, 0x00, 0x65, 0x00, 0x63, 0x00, 0x69, 0x00, 0x20, 0x00, 0x65, 0x00, 0x73, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x6C, 0x00, 0x27, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F,
+ 0x00, 0x6E, 0x00, 0x20, 0x00, 0x71, 0x00, 0x75, 0x00, 0x27, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20,
+ 0x00, 0x61, 0x00, 0x6A, 0x00, 0x75, 0x00, 0x73, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x70,
+ 0x00, 0x6F, 0x00, 0x75, 0x00, 0x72, 0x00, 0x20, 0x00, 0x63, 0x00, 0x68, 0x00, 0x61, 0x00, 0x6E,
+ 0x00, 0x67, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x6C, 0x00, 0x61, 0x00, 0x20, 0x00, 0x6C,
+ 0x00, 0x61, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x75, 0x00, 0x65, 0x00, 0x20, 0x00, 0x70, 0x00, 0x6F,
+ 0x00, 0x75, 0x00, 0x72, 0x00, 0x20, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x20, 0x00, 0x73, 0x00, 0x79,
+ 0x00, 0x73, 0x00, 0x74, 0x00, 0xE8, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61, 0x00, 0x63,
+ 0x00, 0x74, 0x00, 0x75, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x00, 0x00,
+// 0x000B: STR_MISSING_STRING:0x000B
+ 0x14, 0x4D, 0x00, 0x69, 0x00, 0x73, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x20,
+ 0x00, 0x53, 0x00, 0x74, 0x00, 0x72, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x00, 0x00,
+// 0x000C: STR_EMPTY_STRING:0x000C
+ 0x14, 0x00, 0x00,
+// 0x000D: STR_RESET_STRING:0x000D
+ 0x14, 0x52, 0x00, 0x65, 0x00, 0x73, 0x00, 0x65, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x000E: STR_CUSTOMIZE_BANNER_LINE4_LEFT:0x000E
+ 0x14, 0x00, 0x00,
+// 0x000F: STR_CUSTOMIZE_BANNER_LINE4_RIGHT:0x000F
+ 0x14, 0x00, 0x00,
+// 0x0010: STR_CUSTOMIZE_BANNER_LINE5_LEFT:0x0010
+ 0x14, 0x00, 0x00,
+// 0x0011: STR_CUSTOMIZE_BANNER_LINE5_RIGHT:0x0011
+ 0x14, 0x00, 0x00,
+// 0x0012: STR_TEST_KEY_USED:0x0012
+ 0x14, 0x57, 0x00, 0x41, 0x00, 0x52, 0x00, 0x4E, 0x00, 0x49, 0x00, 0x4E, 0x00, 0x47, 0x00, 0x3A,
+ 0x00, 0x20, 0x00, 0x54, 0x00, 0x65, 0x00, 0x73, 0x00, 0x74, 0x00, 0x20, 0x00, 0x6B, 0x00, 0x65,
+ 0x00, 0x79, 0x00, 0x20, 0x00, 0x64, 0x00, 0x65, 0x00, 0x74, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74,
+ 0x00, 0x65, 0x00, 0x64, 0x00, 0x2E, 0x00, 0x00, 0x00,
+// 0x0013: STR_NULL_STRING:0x0013
+ 0x14, 0x20, 0x00, 0x00, 0x00,
+ 0x00,
+// PACKAGE HEADER
+
+ 0x58, 0x00, 0x00, 0x04, 0x31, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x65, 0x6E,
+ 0x00,
+
+// PACKAGE DATA
+
+// 0x0001: $PRINTABLE_LANGUAGE_NAME:0x0001
+ 0x14, 0x53, 0x00, 0x74, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x61, 0x00, 0x72, 0x00, 0x64,
+ 0x00, 0x20, 0x00, 0x45, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x73, 0x00, 0x68,
+ 0x00, 0x00, 0x00,
+ 0x21, 0x12, 0x00,
+ 0x00,
+// PACKAGE HEADER
+
+ 0x5A, 0x00, 0x00, 0x04, 0x31, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x66, 0x72,
+ 0x00,
+
+// PACKAGE DATA
+
+// 0x0001: $PRINTABLE_LANGUAGE_NAME:0x0001
+ 0x14, 0x53, 0x00, 0x74, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x61, 0x00, 0x72, 0x00, 0x64,
+ 0x00, 0x20, 0x00, 0x46, 0x00, 0x72, 0x00, 0x61, 0x00, 0x6E, 0x00, 0xE7, 0x00, 0x61, 0x00, 0x69,
+ 0x00, 0x73, 0x00, 0x00, 0x00,
+ 0x21, 0x12, 0x00,
+ 0x00,
+
+};
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/FrontPageVfr.c b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/FrontPageVfr.c
new file mode 100644
index 000000000000..1dc3d899a33f
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/FrontPageVfr.c
@@ -0,0 +1,39 @@
+//
+// DO NOT EDIT -- auto-generated file
+//
+// This file is generated by the vfrcompiler utility
+//
+
+unsigned char FrontPageVfrBin[] = {
+ // ARRAY LENGTH
+
+ 0x47, 0x01, 0x00, 0x00,
+
+ // PACKAGE HEADER
+
+ 0x43, 0x01, 0x00, 0x02,
+
+ // PACKAGE DATA
+
+ 0x0E, 0xA7, 0xBC, 0x30, 0x0C, 0x9E, 0x06, 0x3F, 0xA6, 0x4B, 0x82, 0x88, 0x09, 0x17, 0x9B, 0x85,
+ 0x5D, 0xBE, 0x02, 0x00, 0x0C, 0x00, 0x01, 0xBC, 0x30, 0x0C, 0x9E, 0x06, 0x3F, 0xA6, 0x4B, 0x82,
+ 0x88, 0x09, 0x17, 0x9B, 0x85, 0x5D, 0xBE, 0x5C, 0x06, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x06, 0x00,
+ 0x00, 0x01, 0x00, 0x01, 0x86, 0x00, 0x10, 0x02, 0x00, 0x5F, 0x18, 0x35, 0x17, 0x0B, 0x0F, 0xA0,
+ 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x01, 0x03, 0x00, 0x01, 0x00,
+ 0x00, 0x5F, 0x18, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38,
+ 0xAF, 0x48, 0xCE, 0x01, 0x04, 0x00, 0x02, 0x00, 0x00, 0x5F, 0x18, 0x35, 0x17, 0x0B, 0x0F, 0xA0,
+ 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x01, 0x05, 0x00, 0x02, 0x00,
+ 0x02, 0x5F, 0x18, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38,
+ 0xAF, 0x48, 0xCE, 0x01, 0x07, 0x00, 0x03, 0x00, 0x00, 0x5F, 0x18, 0x35, 0x17, 0x0B, 0x0F, 0xA0,
+ 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x01, 0x06, 0x00, 0x03, 0x00,
+ 0x02, 0x5F, 0x18, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38,
+ 0xAF, 0x48, 0xCE, 0x01, 0x0E, 0x00, 0x04, 0x00, 0x00, 0x5F, 0x18, 0x35, 0x17, 0x0B, 0x0F, 0xA0,
+ 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x01, 0x0F, 0x00, 0x04, 0x00,
+ 0x02, 0x5F, 0x18, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38,
+ 0xAF, 0x48, 0xCE, 0x01, 0x10, 0x00, 0x05, 0x00, 0x00, 0x5F, 0x18, 0x35, 0x17, 0x0B, 0x0F, 0xA0,
+ 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x01, 0x11, 0x00, 0x05, 0x00,
+ 0x02, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38,
+ 0xAF, 0x48, 0xCE, 0x00, 0x00, 0x10, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41,
+ 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0xFF, 0xFF, 0x29, 0x02, 0x29, 0x02
+
+};
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/AutoGen.c b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/AutoGen.c
new file mode 100644
index 000000000000..39ed1f42c72a
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/AutoGen.c
@@ -0,0 +1,480 @@
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ AutoGen.c
+ Abstract: Auto-generated AutoGen.c for building module or library.
+**/
+#include <Uefi.h>
+#include <Library/BaseLib.h>
+#include <Library/DebugLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+#include <Library/UefiDriverEntryPoint.h>
+
+GLOBAL_REMOVE_IF_UNREFERENCED GUID gEfiCallerIdGuid = {0xE4F61863, 0xFE2C, 0x4b56, {0xA8, 0xF4, 0x08, 0x51, 0x9B, 0xC4, 0x39, 0xDF}};
+
+GLOBAL_REMOVE_IF_UNREFERENCED GUID gEdkiiDscPlatformGuid = {0x5a9e7754, 0xd81b, 0x49ea, {0x85, 0xad, 0x69, 0xea, 0xa7, 0xb1, 0x53, 0x9b}};
+
+GLOBAL_REMOVE_IF_UNREFERENCED CHAR8 *gEfiCallerBaseName = "VlanConfigDxe";
+
+// Guids
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiIfrTianoGuid = { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gVlanConfigFormSetGuid = { 0xd79df6b0, 0xef44, 0x43bd, { 0x97, 0x97, 0x43, 0xe9, 0x3b, 0xcf, 0x5f, 0xa8 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiMdePkgTokenSpaceGuid = { 0x914AEBE7, 0x4635, 0x459b, { 0xAA, 0x1C, 0x11, 0xE2, 0x19, 0xB0, 0x3A, 0x10 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gUefiOvmfPkgTokenSpaceGuid = {0x93bb96af, 0xb9f2, 0x4eb8, {0x94, 0x62, 0xe0, 0xba, 0x74, 0x56, 0x42, 0x36}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiEventReadyToBootGuid = { 0x7CE88FB3, 0x4BD7, 0x4679, { 0x87, 0xA8, 0xA8, 0xD8, 0xDE, 0xE5, 0x0D, 0x2B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiEventLegacyBootGuid = { 0x2A571201, 0x4966, 0x47F6, { 0x8B, 0x86, 0xF3, 0x1E, 0x41, 0xF3, 0x2F, 0x10 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiGlobalVariableGuid = { 0x8BE4DF61, 0x93CA, 0x11D2, { 0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAcpi20TableGuid = { 0x8868E871, 0xE4F1, 0x11D3, { 0xBC, 0x22, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAcpi10TableGuid = { 0xEB9D2D30, 0x2D88, 0x11D3, { 0x9A, 0x16, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSmbiosTableGuid = { 0xEB9D2D31, 0x2D88, 0x11D3, { 0x9A, 0x16, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSmbios3TableGuid = { 0xF2FD1544, 0x9794, 0x4A2C, { 0x99, 0x2E, 0xE5, 0xBB, 0xCF, 0x20, 0xE3, 0x94 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAdapterInfoMediaStateGuid = { 0xD7C74207, 0xA831, 0x4A26, {0xB1, 0xF5, 0xD1, 0x93, 0x06, 0x5C, 0xE8, 0xB6 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEdkiiIfrBitVarstoreGuid = {0x82DDD68B, 0x9163, 0x4187, {0x9B, 0x27, 0x20, 0xA8, 0xFD, 0x60,0xA7, 0x1D}};
+
+// Protocols
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiConfigAccessProtocolGuid = {0x330d4706, 0xf2a0, 0x4e4f, {0xa3, 0x69, 0xb6, 0x6f, 0xa8, 0xd5, 0x43, 0x85}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiConfigRoutingProtocolGuid = {0x587e72d7, 0xcc50, 0x4f79, {0x82, 0x09, 0xca, 0x29, 0x1f, 0xc1, 0xa1, 0x0f}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiVlanConfigProtocolGuid = { 0x9e23d768, 0xd2f3, 0x4366, {0x9f, 0xc3, 0x3a, 0x7a, 0xba, 0x86, 0x43, 0x74 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gPcdProtocolGuid = { 0x11B34006, 0xD85B, 0x4D0A, { 0xA2, 0x90, 0xD5, 0xA5, 0x71, 0x31, 0x0E, 0xF7 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiPcdProtocolGuid = { 0x13a3f0f6, 0x264a, 0x3ef0, { 0xf2, 0xe0, 0xde, 0xc5, 0x12, 0x34, 0x2f, 0x34 } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gGetPcdInfoProtocolGuid = { 0x5be40f57, 0xfa68, 0x4610, { 0xbb, 0xbf, 0xe9, 0xc5, 0xfc, 0xda, 0xd3, 0x65 } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiGetPcdInfoProtocolGuid = { 0xfd0f4478, 0xefd, 0x461d, { 0xba, 0x2d, 0xe5, 0x8c, 0x45, 0xfd, 0x5f, 0x5e } };
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathProtocolGuid = { 0x09576E91, 0x6D3F, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathUtilitiesProtocolGuid = { 0x0379BE4E, 0xD706, 0x437D, { 0xB0, 0x37, 0xED, 0xB8, 0x2F, 0xB7, 0x72, 0xA4 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathToTextProtocolGuid = { 0x8B843E20, 0x8132, 0x4852, { 0x90, 0xCC, 0x55, 0x1A, 0x4E, 0x4A, 0x7F, 0x1C }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathFromTextProtocolGuid = { 0x05C99A21, 0xC70F, 0x4AD2, { 0x8A, 0x5F, 0x35, 0xDF, 0x33, 0x43, 0xF5, 0x1E }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverBindingProtocolGuid = { 0x18A031AB, 0xB443, 0x4D1A, { 0xA5, 0xC0, 0x0C, 0x09, 0x26, 0x1E, 0x9F, 0x71 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimpleTextOutProtocolGuid = { 0x387477C2, 0x69C7, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiGraphicsOutputProtocolGuid = { 0x9042A9DE, 0x23DC, 0x4A38, { 0x96, 0xFB, 0x7A, 0xDE, 0xD0, 0x80, 0x51, 0x6A }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiFontProtocolGuid = {0xe9ca4775, 0x8657, 0x47fc, {0x97, 0xe7, 0x7e, 0xd6, 0x5a, 0x08, 0x43, 0x24}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimpleFileSystemProtocolGuid = { 0x964E5B22, 0x6459, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiUgaDrawProtocolGuid = { 0x982C298B, 0xF4FA, 0x41CB, { 0xB8, 0x38, 0x77, 0xAA, 0x68, 0x8F, 0xB8, 0x39 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiComponentNameProtocolGuid = { 0x107A772C, 0xD5E1, 0x11D4, { 0x9A, 0x46, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiComponentName2ProtocolGuid = { 0x6A7A5CFF, 0xE8D9, 0x4F70, { 0xBA, 0xDA, 0x75, 0xAB, 0x30, 0x25, 0xCE, 0x14 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverConfigurationProtocolGuid = { 0x107A772B, 0xD5E1, 0x11D4, { 0x9A, 0x46, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverConfiguration2ProtocolGuid = { 0xBFD7DC1D, 0x24F1, 0x40D9, { 0x82, 0xE7, 0x2E, 0x09, 0xBB, 0x6B, 0x4E, 0xBE }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverDiagnosticsProtocolGuid = { 0x0784924F, 0xE296, 0x11D4, { 0x9A, 0x49, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverDiagnostics2ProtocolGuid = { 0x4D330321, 0x025F, 0x4AAC, { 0x90, 0xD8, 0x5E, 0xD9, 0x00, 0x17, 0x3B, 0x63 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiStringProtocolGuid = {0x0fd96974, 0x23aa, 0x4cdc, {0xb9, 0xcb, 0x98, 0xd1, 0x77, 0x50, 0x32, 0x2a}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiImageProtocolGuid = {0x31a6406a, 0x6bdf, 0x4e46, {0xb2, 0xa2, 0xeb, 0xaa, 0x89, 0xc4, 0x09, 0x20}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiDatabaseProtocolGuid = {0xef9fc172, 0xa1b2, 0x4693, {0xb3, 0x27, 0x6d, 0x32, 0xfc, 0x41, 0x60, 0x42}};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiLoadedImageProtocolGuid = { 0x5B1B31A1, 0x9562, 0x11D2, { 0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimpleNetworkProtocolGuid = { 0xA19832B9, 0xAC25, 0x11D3, { 0x9A, 0x2D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiManagedNetworkProtocolGuid = { 0x7ab33a91, 0xace5, 0x4326, { 0xb5, 0x72, 0xe7, 0xee, 0x33, 0xd3, 0x9f, 0x16 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiManagedNetworkServiceBindingProtocolGuid = { 0xF36FF770, 0xA7E1, 0x42CF, { 0x9E, 0xD2, 0x56, 0xF0, 0xF2, 0x71, 0xF4, 0x4C }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiIp4Config2ProtocolGuid = { 0x5b446ed1, 0xe30b, 0x4faa, {0x87, 0x1a, 0x36, 0x54, 0xec, 0xa3, 0x60, 0x80 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAdapterInformationProtocolGuid = { 0xE5DD1403, 0xD622, 0xC24E, {0x84, 0x88, 0xC7, 0x1B, 0x17, 0xF5, 0xE8, 0x02 }};
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiFormBrowser2ProtocolGuid = {0xb9d4c360, 0xbcfb, 0x4f9b, {0x92, 0x98, 0x53, 0xc1, 0x36, 0x98, 0x22, 0x58}};
+
+// Definition of SkuId Array
+GLOBAL_REMOVE_IF_UNREFERENCED UINT64 _gPcd_SkuId_Array[] = {0x0};
+
+// Definition of PCDs used in libraries
+
+#define _PCD_TOKEN_PcdVerifyNodeInList 0U
+#define _PCD_SIZE_PcdVerifyNodeInList 1
+#define _PCD_GET_MODE_SIZE_PcdVerifyNodeInList _PCD_SIZE_PcdVerifyNodeInList
+#define _PCD_VALUE_PcdVerifyNodeInList ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdVerifyNodeInList = _PCD_VALUE_PcdVerifyNodeInList;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdVerifyNodeInList;
+#define _PCD_GET_MODE_BOOL_PcdVerifyNodeInList _gPcd_FixedAtBuild_PcdVerifyNodeInList
+//#define _PCD_SET_MODE_BOOL_PcdVerifyNodeInList ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumLinkedListLength 0U
+#define _PCD_SIZE_PcdMaximumLinkedListLength 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumLinkedListLength _PCD_SIZE_PcdMaximumLinkedListLength
+#define _PCD_VALUE_PcdMaximumLinkedListLength 0U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumLinkedListLength = _PCD_VALUE_PcdMaximumLinkedListLength;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumLinkedListLength;
+#define _PCD_GET_MODE_32_PcdMaximumLinkedListLength _gPcd_FixedAtBuild_PcdMaximumLinkedListLength
+//#define _PCD_SET_MODE_32_PcdMaximumLinkedListLength ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumAsciiStringLength 0U
+#define _PCD_SIZE_PcdMaximumAsciiStringLength 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumAsciiStringLength _PCD_SIZE_PcdMaximumAsciiStringLength
+#define _PCD_VALUE_PcdMaximumAsciiStringLength 1000000U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumAsciiStringLength = _PCD_VALUE_PcdMaximumAsciiStringLength;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumAsciiStringLength;
+#define _PCD_GET_MODE_32_PcdMaximumAsciiStringLength _gPcd_FixedAtBuild_PcdMaximumAsciiStringLength
+//#define _PCD_SET_MODE_32_PcdMaximumAsciiStringLength ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumUnicodeStringLength 0U
+#define _PCD_SIZE_PcdMaximumUnicodeStringLength 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumUnicodeStringLength _PCD_SIZE_PcdMaximumUnicodeStringLength
+#define _PCD_VALUE_PcdMaximumUnicodeStringLength 1000000U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength = _PCD_VALUE_PcdMaximumUnicodeStringLength;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength;
+#define _PCD_GET_MODE_32_PcdMaximumUnicodeStringLength _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength
+//#define _PCD_SET_MODE_32_PcdMaximumUnicodeStringLength ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdControlFlowEnforcementPropertyMask 0U
+#define _PCD_SIZE_PcdControlFlowEnforcementPropertyMask 4
+#define _PCD_GET_MODE_SIZE_PcdControlFlowEnforcementPropertyMask _PCD_SIZE_PcdControlFlowEnforcementPropertyMask
+#define _PCD_VALUE_PcdControlFlowEnforcementPropertyMask 0x0U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdControlFlowEnforcementPropertyMask = _PCD_VALUE_PcdControlFlowEnforcementPropertyMask;
+extern const UINT32 _gPcd_FixedAtBuild_PcdControlFlowEnforcementPropertyMask;
+#define _PCD_GET_MODE_32_PcdControlFlowEnforcementPropertyMask _gPcd_FixedAtBuild_PcdControlFlowEnforcementPropertyMask
+//#define _PCD_SET_MODE_32_PcdControlFlowEnforcementPropertyMask ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdSpeculationBarrierType 0U
+#define _PCD_SIZE_PcdSpeculationBarrierType 1
+#define _PCD_GET_MODE_SIZE_PcdSpeculationBarrierType _PCD_SIZE_PcdSpeculationBarrierType
+#define _PCD_VALUE_PcdSpeculationBarrierType 0x01U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdSpeculationBarrierType = _PCD_VALUE_PcdSpeculationBarrierType;
+extern const UINT8 _gPcd_FixedAtBuild_PcdSpeculationBarrierType;
+#define _PCD_GET_MODE_8_PcdSpeculationBarrierType _gPcd_FixedAtBuild_PcdSpeculationBarrierType
+//#define _PCD_SET_MODE_8_PcdSpeculationBarrierType ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdOvmfWorkAreaBase 0U
+#define _PCD_SIZE_PcdOvmfWorkAreaBase 4
+#define _PCD_GET_MODE_SIZE_PcdOvmfWorkAreaBase _PCD_SIZE_PcdOvmfWorkAreaBase
+#define _PCD_VALUE_PcdOvmfWorkAreaBase 0x0080B000U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdOvmfWorkAreaBase = _PCD_VALUE_PcdOvmfWorkAreaBase;
+extern const UINT32 _gPcd_FixedAtBuild_PcdOvmfWorkAreaBase;
+#define _PCD_GET_MODE_32_PcdOvmfWorkAreaBase _gPcd_FixedAtBuild_PcdOvmfWorkAreaBase
+//#define _PCD_SET_MODE_32_PcdOvmfWorkAreaBase ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugPrintErrorLevel 0U
+#define _PCD_SIZE_PcdDebugPrintErrorLevel 4
+#define _PCD_GET_MODE_SIZE_PcdDebugPrintErrorLevel _PCD_SIZE_PcdDebugPrintErrorLevel
+#define _PCD_VALUE_PcdDebugPrintErrorLevel 0x8000004FU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdDebugPrintErrorLevel = _PCD_VALUE_PcdDebugPrintErrorLevel;
+extern const UINT32 _gPcd_FixedAtBuild_PcdDebugPrintErrorLevel;
+#define _PCD_GET_MODE_32_PcdDebugPrintErrorLevel _gPcd_FixedAtBuild_PcdDebugPrintErrorLevel
+//#define _PCD_SET_MODE_32_PcdDebugPrintErrorLevel ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugIoPort 0U
+#define _PCD_SIZE_PcdDebugIoPort 2
+#define _PCD_GET_MODE_SIZE_PcdDebugIoPort _PCD_SIZE_PcdDebugIoPort
+#define _PCD_VALUE_PcdDebugIoPort 0x402U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT16 _gPcd_FixedAtBuild_PcdDebugIoPort = _PCD_VALUE_PcdDebugIoPort;
+extern const UINT16 _gPcd_FixedAtBuild_PcdDebugIoPort;
+#define _PCD_GET_MODE_16_PcdDebugIoPort _gPcd_FixedAtBuild_PcdDebugIoPort
+//#define _PCD_SET_MODE_16_PcdDebugIoPort ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugClearMemoryValue 0U
+#define _PCD_SIZE_PcdDebugClearMemoryValue 1
+#define _PCD_GET_MODE_SIZE_PcdDebugClearMemoryValue _PCD_SIZE_PcdDebugClearMemoryValue
+#define _PCD_VALUE_PcdDebugClearMemoryValue 0xAFU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdDebugClearMemoryValue = _PCD_VALUE_PcdDebugClearMemoryValue;
+extern const UINT8 _gPcd_FixedAtBuild_PcdDebugClearMemoryValue;
+#define _PCD_GET_MODE_8_PcdDebugClearMemoryValue _gPcd_FixedAtBuild_PcdDebugClearMemoryValue
+//#define _PCD_SET_MODE_8_PcdDebugClearMemoryValue ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDebugPropertyMask 0U
+#define _PCD_SIZE_PcdDebugPropertyMask 1
+#define _PCD_GET_MODE_SIZE_PcdDebugPropertyMask _PCD_SIZE_PcdDebugPropertyMask
+#define _PCD_VALUE_PcdDebugPropertyMask 0x2FU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gPcd_FixedAtBuild_PcdDebugPropertyMask = _PCD_VALUE_PcdDebugPropertyMask;
+extern const UINT8 _gPcd_FixedAtBuild_PcdDebugPropertyMask;
+#define _PCD_GET_MODE_8_PcdDebugPropertyMask _gPcd_FixedAtBuild_PcdDebugPropertyMask
+//#define _PCD_SET_MODE_8_PcdDebugPropertyMask ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdFixedDebugPrintErrorLevel 0U
+#define _PCD_SIZE_PcdFixedDebugPrintErrorLevel 4
+#define _PCD_GET_MODE_SIZE_PcdFixedDebugPrintErrorLevel _PCD_SIZE_PcdFixedDebugPrintErrorLevel
+#define _PCD_VALUE_PcdFixedDebugPrintErrorLevel 0xFFFFFFFFU
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel = _PCD_VALUE_PcdFixedDebugPrintErrorLevel;
+extern const UINT32 _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel;
+#define _PCD_GET_MODE_32_PcdFixedDebugPrintErrorLevel _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel
+//#define _PCD_SET_MODE_32_PcdFixedDebugPrintErrorLevel ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdMaximumDevicePathNodeCount 0U
+#define _PCD_SIZE_PcdMaximumDevicePathNodeCount 4
+#define _PCD_GET_MODE_SIZE_PcdMaximumDevicePathNodeCount _PCD_SIZE_PcdMaximumDevicePathNodeCount
+#define _PCD_VALUE_PcdMaximumDevicePathNodeCount 0U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdMaximumDevicePathNodeCount = _PCD_VALUE_PcdMaximumDevicePathNodeCount;
+extern const UINT32 _gPcd_FixedAtBuild_PcdMaximumDevicePathNodeCount;
+#define _PCD_GET_MODE_32_PcdMaximumDevicePathNodeCount _gPcd_FixedAtBuild_PcdMaximumDevicePathNodeCount
+//#define _PCD_SET_MODE_32_PcdMaximumDevicePathNodeCount ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDriverDiagnosticsDisable 0U
+#define _PCD_SIZE_PcdDriverDiagnosticsDisable 1
+#define _PCD_GET_MODE_SIZE_PcdDriverDiagnosticsDisable _PCD_SIZE_PcdDriverDiagnosticsDisable
+#define _PCD_VALUE_PcdDriverDiagnosticsDisable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnosticsDisable = _PCD_VALUE_PcdDriverDiagnosticsDisable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnosticsDisable;
+#define _PCD_GET_MODE_BOOL_PcdDriverDiagnosticsDisable _gPcd_FixedAtBuild_PcdDriverDiagnosticsDisable
+//#define _PCD_SET_MODE_BOOL_PcdDriverDiagnosticsDisable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdComponentNameDisable 0U
+#define _PCD_SIZE_PcdComponentNameDisable 1
+#define _PCD_GET_MODE_SIZE_PcdComponentNameDisable _PCD_SIZE_PcdComponentNameDisable
+#define _PCD_VALUE_PcdComponentNameDisable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdComponentNameDisable = _PCD_VALUE_PcdComponentNameDisable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdComponentNameDisable;
+#define _PCD_GET_MODE_BOOL_PcdComponentNameDisable _gPcd_FixedAtBuild_PcdComponentNameDisable
+//#define _PCD_SET_MODE_BOOL_PcdComponentNameDisable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdDriverDiagnostics2Disable 0U
+#define _PCD_SIZE_PcdDriverDiagnostics2Disable 1
+#define _PCD_GET_MODE_SIZE_PcdDriverDiagnostics2Disable _PCD_SIZE_PcdDriverDiagnostics2Disable
+#define _PCD_VALUE_PcdDriverDiagnostics2Disable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnostics2Disable = _PCD_VALUE_PcdDriverDiagnostics2Disable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdDriverDiagnostics2Disable;
+#define _PCD_GET_MODE_BOOL_PcdDriverDiagnostics2Disable _gPcd_FixedAtBuild_PcdDriverDiagnostics2Disable
+//#define _PCD_SET_MODE_BOOL_PcdDriverDiagnostics2Disable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdComponentName2Disable 0U
+#define _PCD_SIZE_PcdComponentName2Disable 1
+#define _PCD_GET_MODE_SIZE_PcdComponentName2Disable _PCD_SIZE_PcdComponentName2Disable
+#define _PCD_VALUE_PcdComponentName2Disable ((BOOLEAN)0U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdComponentName2Disable = _PCD_VALUE_PcdComponentName2Disable;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdComponentName2Disable;
+#define _PCD_GET_MODE_BOOL_PcdComponentName2Disable _gPcd_FixedAtBuild_PcdComponentName2Disable
+//#define _PCD_SET_MODE_BOOL_PcdComponentName2Disable ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdUgaConsumeSupport 0U
+#define _PCD_SIZE_PcdUgaConsumeSupport 1
+#define _PCD_GET_MODE_SIZE_PcdUgaConsumeSupport _PCD_SIZE_PcdUgaConsumeSupport
+#define _PCD_VALUE_PcdUgaConsumeSupport ((BOOLEAN)1U)
+GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdUgaConsumeSupport = _PCD_VALUE_PcdUgaConsumeSupport;
+extern const BOOLEAN _gPcd_FixedAtBuild_PcdUgaConsumeSupport;
+#define _PCD_GET_MODE_BOOL_PcdUgaConsumeSupport _gPcd_FixedAtBuild_PcdUgaConsumeSupport
+//#define _PCD_SET_MODE_BOOL_PcdUgaConsumeSupport ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+#define _PCD_TOKEN_PcdUefiLibMaxPrintBufferSize 0U
+#define _PCD_SIZE_PcdUefiLibMaxPrintBufferSize 4
+#define _PCD_GET_MODE_SIZE_PcdUefiLibMaxPrintBufferSize _PCD_SIZE_PcdUefiLibMaxPrintBufferSize
+#define _PCD_VALUE_PcdUefiLibMaxPrintBufferSize 320U
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdUefiLibMaxPrintBufferSize = _PCD_VALUE_PcdUefiLibMaxPrintBufferSize;
+extern const UINT32 _gPcd_FixedAtBuild_PcdUefiLibMaxPrintBufferSize;
+#define _PCD_GET_MODE_32_PcdUefiLibMaxPrintBufferSize _gPcd_FixedAtBuild_PcdUefiLibMaxPrintBufferSize
+//#define _PCD_SET_MODE_32_PcdUefiLibMaxPrintBufferSize ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+
+RETURN_STATUS
+EFIAPI
+PlatformDebugLibIoPortConstructor (
+ VOID
+ );
+
+EFI_STATUS
+EFIAPI
+UefiBootServicesTableLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+UefiRuntimeServicesTableLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+DevicePathLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+UefiLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+EFI_STATUS
+EFIAPI
+UefiHiiServicesLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+
+VOID
+EFIAPI
+ProcessLibraryConstructorList (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+{
+ EFI_STATUS Status;
+
+ Status = PlatformDebugLibIoPortConstructor ();
+ ASSERT_RETURN_ERROR (Status);
+
+ Status = UefiBootServicesTableLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = UefiRuntimeServicesTableLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = DevicePathLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = UefiLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = UefiHiiServicesLibConstructor (ImageHandle, SystemTable);
+ ASSERT_EFI_ERROR (Status);
+
+}
+
+
+
+VOID
+EFIAPI
+ProcessLibraryDestructorList (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+{
+
+}
+
+const UINT32 _gUefiDriverRevision = 0x00000000U;
+const UINT32 _gDxeRevision = 0x00000000U;
+
+
+EFI_STATUS
+EFIAPI
+ProcessModuleEntryPointList (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+
+{
+ return VlanConfigDriverEntryPoint (ImageHandle, SystemTable);
+}
+
+VOID
+EFIAPI
+ExitDriver (
+ IN EFI_STATUS Status
+ )
+{
+ if (EFI_ERROR (Status)) {
+ ProcessLibraryDestructorList (gImageHandle, gST);
+ }
+ gBS->Exit (gImageHandle, Status, 0, NULL);
+}
+
+GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gDriverUnloadImageCount = 1U;
+
+
+EFI_STATUS
+EFIAPI
+ProcessModuleUnloadList (
+ IN EFI_HANDLE ImageHandle
+ )
+{
+ return NetLibDefaultUnload (ImageHandle);
+}
+
+
+//
+//Unicode String Pack Definition
+//
+unsigned char VlanConfigDxeStrings[] = {
+
+// STRGATHER_OUTPUT_HEADER
+ 0xE4, 0x03, 0x00, 0x00,
+
+// PACKAGE HEADER
+
+ 0xE0, 0x03, 0x00, 0x04, 0x34, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x65, 0x6E,
+ 0x2D, 0x55, 0x53, 0x00,
+
+// PACKAGE DATA
+
+// 0x0001: $PRINTABLE_LANGUAGE_NAME:0x0001
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x73, 0x00, 0x68, 0x00, 0x00,
+ 0x00,
+// 0x0002: STR_VLAN_FORM_SET_TITLE:0x0002
+ 0x14, 0x56, 0x00, 0x4C, 0x00, 0x41, 0x00, 0x4E, 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F, 0x00, 0x6E,
+ 0x00, 0x66, 0x00, 0x69, 0x00, 0x67, 0x00, 0x75, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x0003: STR_VLAN_FORM_SET_TITLE_HELP:0x0003
+ 0x14, 0x56, 0x00, 0x4C, 0x00, 0x41, 0x00, 0x4E, 0x00, 0x20, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x6E,
+ 0x00, 0x66, 0x00, 0x69, 0x00, 0x67, 0x00, 0x75, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x66, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x74, 0x00, 0x77,
+ 0x00, 0x6F, 0x00, 0x72, 0x00, 0x6B, 0x00, 0x20, 0x00, 0x64, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69,
+ 0x00, 0x63, 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x0004: STR_VLAN_FORM_TITLE:0x0004
+ 0x14, 0x56, 0x00, 0x4C, 0x00, 0x41, 0x00, 0x4E, 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F, 0x00, 0x6E,
+ 0x00, 0x66, 0x00, 0x69, 0x00, 0x67, 0x00, 0x75, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x00,
+// 0x0005: STR_VLAN_FORM_HELP:0x0005
+ 0x14, 0x56, 0x00, 0x4C, 0x00, 0x41, 0x00, 0x4E, 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F, 0x00, 0x6E,
+ 0x00, 0x66, 0x00, 0x69, 0x00, 0x67, 0x00, 0x75, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x48, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x70, 0x00, 0x00,
+ 0x00,
+// 0x0006: STR_VLAN_CREATE_VLAN:0x0006
+ 0x14, 0x43, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6E,
+ 0x00, 0x65, 0x00, 0x77, 0x00, 0x20, 0x00, 0x56, 0x00, 0x4C, 0x00, 0x41, 0x00, 0x4E, 0x00, 0x00,
+ 0x00,
+// 0x0007: STR_VLAN_VID_PROMPT:0x0007
+ 0x14, 0x20, 0x00, 0x20, 0x00, 0x56, 0x00, 0x4C, 0x00, 0x41, 0x00, 0x4E, 0x00, 0x20, 0x00, 0x49,
+ 0x00, 0x44, 0x00, 0x00, 0x00,
+// 0x0008: STR_VLAN_VID_HELP:0x0008
+ 0x14, 0x56, 0x00, 0x4C, 0x00, 0x41, 0x00, 0x4E, 0x00, 0x20, 0x00, 0x49, 0x00, 0x44, 0x00, 0x20,
+ 0x00, 0x6F, 0x00, 0x66, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x20, 0x00, 0x56,
+ 0x00, 0x4C, 0x00, 0x41, 0x00, 0x4E, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x65,
+ 0x00, 0x78, 0x00, 0x69, 0x00, 0x73, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x20,
+ 0x00, 0x56, 0x00, 0x4C, 0x00, 0x41, 0x00, 0x4E, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x76, 0x00, 0x61,
+ 0x00, 0x6C, 0x00, 0x69, 0x00, 0x64, 0x00, 0x20, 0x00, 0x76, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x75,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x30, 0x00, 0x7E, 0x00, 0x34,
+ 0x00, 0x30, 0x00, 0x39, 0x00, 0x34, 0x00, 0x00, 0x00,
+// 0x0009: STR_VLAN_PRIORITY_PROMPT:0x0009
+ 0x14, 0x20, 0x00, 0x20, 0x00, 0x50, 0x00, 0x72, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x69,
+ 0x00, 0x74, 0x00, 0x79, 0x00, 0x00, 0x00,
+// 0x000A: STR_VLAN_PRIORITY_HELP:0x000A
+ 0x14, 0x38, 0x00, 0x30, 0x00, 0x32, 0x00, 0x2E, 0x00, 0x31, 0x00, 0x51, 0x00, 0x20, 0x00, 0x50,
+ 0x00, 0x72, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x69, 0x00, 0x74, 0x00, 0x79, 0x00, 0x2C,
+ 0x00, 0x20, 0x00, 0x76, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x64, 0x00, 0x20, 0x00, 0x76,
+ 0x00, 0x61, 0x00, 0x6C, 0x00, 0x75, 0x00, 0x65, 0x00, 0x20, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x30, 0x00, 0x7E, 0x00, 0x37, 0x00, 0x00, 0x00,
+// 0x000B: STR_VLAN_ADD_VLAN_PROMPT:0x000B
+ 0x14, 0x41, 0x00, 0x64, 0x00, 0x64, 0x00, 0x20, 0x00, 0x56, 0x00, 0x4C, 0x00, 0x41, 0x00, 0x4E,
+ 0x00, 0x00, 0x00,
+// 0x000C: STR_VLAN_ADD_VLAN_HELP:0x000C
+ 0x14, 0x43, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x20, 0x00, 0x6E, 0x00, 0x65, 0x00, 0x77, 0x00, 0x20, 0x00, 0x56, 0x00, 0x4C, 0x00, 0x41,
+ 0x00, 0x4E, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x75, 0x00, 0x70, 0x00, 0x64,
+ 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x65, 0x00, 0x78, 0x00, 0x69, 0x00, 0x73,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x20, 0x00, 0x56, 0x00, 0x4C, 0x00, 0x41,
+ 0x00, 0x4E, 0x00, 0x00, 0x00,
+// 0x000D: STR_VLAN_VLAN_LIST:0x000D
+ 0x14, 0x43, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x66, 0x00, 0x69, 0x00, 0x67, 0x00, 0x75, 0x00, 0x72,
+ 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x56, 0x00, 0x4C, 0x00, 0x41, 0x00, 0x4E, 0x00, 0x20,
+ 0x00, 0x4C, 0x00, 0x69, 0x00, 0x73, 0x00, 0x74, 0x00, 0x00, 0x00,
+// 0x000E: STR_VLAN_VLAN_LIST_HELP:0x000E
+ 0x14, 0x53, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x20, 0x00, 0x66,
+ 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x72, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x6F, 0x00, 0x76,
+ 0x00, 0x65, 0x00, 0x00, 0x00,
+// 0x000F: STR_VLAN_REMOVE_VLAN_PROMPT:0x000F
+ 0x14, 0x52, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x6F, 0x00, 0x76, 0x00, 0x65, 0x00, 0x20, 0x00, 0x56,
+ 0x00, 0x4C, 0x00, 0x41, 0x00, 0x4E, 0x00, 0x00, 0x00,
+// 0x0010: STR_VLAN_REMOVE_VLAN_HELP:0x0010
+ 0x14, 0x52, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x6F, 0x00, 0x76, 0x00, 0x65, 0x00, 0x20, 0x00, 0x73,
+ 0x00, 0x65, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x56, 0x00, 0x4C, 0x00, 0x41, 0x00, 0x4E, 0x00, 0x73, 0x00, 0x00, 0x00,
+// 0x0011: STR_VLAN_NULL_STRING:0x0011
+ 0x14, 0x00, 0x00,
+// 0x0012: STR_GET_CURRENT_SETTING:0x0012
+ 0x14, 0x45, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F,
+ 0x00, 0x6E, 0x00, 0x66, 0x00, 0x69, 0x00, 0x67, 0x00, 0x75, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74,
+ 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x75,
+ 0x00, 0x00, 0x00,
+// 0x0013: STR_GET_CURRENT_SETTING_HELP:0x0013
+ 0x14, 0x50, 0x00, 0x72, 0x00, 0x65, 0x00, 0x73, 0x00, 0x73, 0x00, 0x20, 0x00, 0x45, 0x00, 0x4E,
+ 0x00, 0x54, 0x00, 0x45, 0x00, 0x52, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6F, 0x00, 0x20, 0x00, 0x65,
+ 0x00, 0x6E, 0x00, 0x74, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x6E,
+ 0x00, 0x66, 0x00, 0x69, 0x00, 0x67, 0x00, 0x75, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x75, 0x00, 0x20,
+ 0x00, 0x66, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x56, 0x00, 0x4C, 0x00, 0x41, 0x00, 0x4E,
+ 0x00, 0x20, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x66, 0x00, 0x69, 0x00, 0x67, 0x00, 0x75,
+ 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x2E, 0x00, 0x00,
+ 0x00,
+ 0x00,
+
+};
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfig.c b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfig.c
new file mode 100644
index 000000000000..6ad52ce4dc4f
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfig.c
@@ -0,0 +1,36 @@
+//
+// DO NOT EDIT -- auto-generated file
+//
+// This file is generated by the vfrcompiler utility
+//
+
+unsigned char VlanConfigBin[] = {
+ // ARRAY LENGTH
+
+ 0x0D, 0x01, 0x00, 0x00,
+
+ // PACKAGE HEADER
+
+ 0x09, 0x01, 0x00, 0x02,
+
+ // PACKAGE DATA
+
+ 0x0E, 0xA7, 0xB0, 0xF6, 0x9D, 0xD7, 0x44, 0xEF, 0xBD, 0x43, 0x97, 0x97, 0x43, 0xE9, 0x3B, 0xCF,
+ 0x5F, 0xA8, 0x02, 0x00, 0x03, 0x00, 0x01, 0x71, 0x99, 0x03, 0x93, 0x45, 0x85, 0x04, 0x4B, 0xB4,
+ 0x5E, 0x32, 0xEB, 0x83, 0x26, 0x04, 0x0E, 0x5C, 0x06, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x06, 0x00,
+ 0x00, 0x01, 0x00, 0x24, 0x21, 0xB0, 0xF6, 0x9D, 0xD7, 0x44, 0xEF, 0xBD, 0x43, 0x97, 0x97, 0x43,
+ 0xE9, 0x3B, 0xCF, 0x5F, 0xA8, 0x01, 0x00, 0x68, 0x00, 0x56, 0x6C, 0x61, 0x6E, 0x4E, 0x76, 0x44,
+ 0x61, 0x74, 0x61, 0x00, 0x01, 0x86, 0x02, 0x00, 0x04, 0x00, 0x0F, 0x0F, 0x12, 0x00, 0x13, 0x00,
+ 0x00, 0x30, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x01, 0x00, 0x29, 0x02, 0x01, 0x86, 0x01, 0x00, 0x04,
+ 0x00, 0x02, 0x87, 0x06, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x07, 0x94, 0x07, 0x00, 0x08, 0x00,
+ 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0x29, 0x02,
+ 0x07, 0x91, 0x09, 0x00, 0x0A, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x10, 0x00, 0x07,
+ 0x00, 0x29, 0x02, 0x0C, 0x8F, 0x0B, 0x00, 0x0C, 0x00, 0x00, 0x10, 0x00, 0x00, 0xFF, 0xFF, 0x04,
+ 0x00, 0x00, 0x29, 0x02, 0x02, 0x87, 0x11, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x02, 0x87, 0x0D,
+ 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x5F, 0x15, 0x35, 0x17, 0x0B, 0x0F, 0xA0, 0x87, 0x93, 0x41,
+ 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0x01, 0x00, 0x5F, 0x15, 0x35, 0x17, 0x0B,
+ 0x0F, 0xA0, 0x87, 0x93, 0x41, 0xB2, 0x66, 0x53, 0x8C, 0x38, 0xAF, 0x48, 0xCE, 0x00, 0xFF, 0xFF,
+ 0x0C, 0x8F, 0x0F, 0x00, 0x10, 0x00, 0x00, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x29,
+ 0x02, 0x29, 0x02, 0x29, 0x02
+
+};
diff --git a/BaseTools/Source/Python/tests/pytest_vfrcompiler.ini b/BaseTools/Source/Python/tests/pytest_vfrcompiler.ini
new file mode 100644
index 000000000000..d020ad3a14f0
--- /dev/null
+++ b/BaseTools/Source/Python/tests/pytest_vfrcompiler.ini
@@ -0,0 +1,21 @@
+[pytest]
+addopts =
+ -v
+ -s
+ -p no:warnings
+
+python_files =
+ test_Vfrcompiler.py
+
+[target_folder]
+target_test_folders =
+ IScsiDxe,
+ VlanConfigDxe,
+ Platform,
+ BootMaintenanceManagerUiLib,
+ BootManagerUiLib,
+ DeviceManagerUiLib,
+ FileExplorerLib,
+ Ip4Dxe,
+ UiApp,
+ RamDiskDxe
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/AutoGenTimeStamp b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/AutoGenTimeStamp
new file mode 100644
index 000000000000..1f48d0184c94
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/AutoGenTimeStamp
@@ -0,0 +1,18 @@
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerStrings.uni
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootOption.c
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerCustomizedUi.h
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\DEBUG\BootMaintenanceManagerUiLibStrDefs.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\UpdatePage.c
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerCustomizedUiSupport.c
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManager.vfr
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerCustomizedUi.c
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerCustomizedUiSupport.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\Data.c
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenance.c
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\ConsoleOption.c
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\DEBUG\AutoGen.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\Variable.c
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BmLib.c
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\FormGuid.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManager.h
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.makefile b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.makefile
new file mode 100644
index 000000000000..fc008701b8f4
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.makefile
@@ -0,0 +1 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\Makefile
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManager.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManager.lst
new file mode 100644
index 000000000000..0d80f32fb2f2
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManager.lst
@@ -0,0 +1,1117 @@
+//
+// VFR compiler version 2.01 (UEFI 2.4) Developer Build based on Revision: Unknown
+//
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Library\\BootMaintenanceManagerUiLib\\BootMaintenanceManager.vfr"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\BootMaintenanceManagerUiLib\\BootMaintenanceManagerUiLib\\DEBUG\\BootMaintenanceManagerUiLibStrDefs.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern unsigned char BootMaintenanceManagerUiLibStrings[];
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 176 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\BootMaintenanceManagerUiLib\\BootMaintenanceManagerUiLib\\DEBUG\\BootMaintenanceManagerUiLibStrDefs.h"
+
+#line 178 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\BootMaintenanceManagerUiLib\\BootMaintenanceManagerUiLib\\DEBUG\\BootMaintenanceManagerUiLibStrDefs.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Library\\BootMaintenanceManagerUiLib\\BootMaintenanceManager.vfr"
+
+
+
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\mdemodulepkg\\library\\bootmaintenancemanageruilib\\FormGuid.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct {
+
+
+
+
+ UINT16 BootTimeOut;
+ UINT32 BootNext;
+
+
+
+
+ UINT8 COM1BaudRate;
+ UINT8 COM1DataRate;
+ UINT8 COM1StopBits;
+ UINT8 COM1Parity;
+ UINT8 COM1TerminalType;
+
+
+
+
+ UINT8 COM2BaudRate;
+ UINT8 COM2DataRate;
+ UINT8 COM2StopBits;
+ UINT8 COM2Parity;
+ UINT8 COM2TerminalType;
+
+
+
+
+ UINT16 DriverAddHandleDesc[100];
+ UINT16 DriverAddHandleOptionalData[100];
+ UINT8 DriverAddActive;
+ UINT8 DriverAddForceReconnect;
+
+
+
+
+ UINT8 ConsoleInputCOM1;
+ UINT8 ConsoleInputCOM2;
+ UINT8 ConsoleOutputCOM1;
+ UINT8 ConsoleOutputCOM2;
+ UINT8 ConsoleErrorCOM1;
+ UINT8 ConsoleErrorCOM2;
+
+
+
+
+ UINT8 ConsoleCheck[100];
+
+
+
+
+ UINT8 ConsoleInCheck[100];
+ UINT8 ConsoleOutCheck[100];
+ UINT8 ConsoleErrCheck[100];
+
+
+
+
+
+
+ UINT32 BootOptionOrder[100];
+ UINT32 DriverOptionOrder[100];
+
+
+
+ BOOLEAN BootOptionDel[100];
+ BOOLEAN DriverOptionDel[100];
+ BOOLEAN BootOptionDelMark[100];
+ BOOLEAN DriverOptionDelMark[100];
+
+
+
+
+ UINT8 COMBaudRate[100];
+ UINT8 COMDataRate[100];
+ UINT8 COMStopBits[100];
+ UINT8 COMParity[100];
+ UINT8 COMTerminalType[100];
+ UINT8 COMFlowControl[100];
+
+
+
+
+
+
+
+ UINT8 DisableMap[32];
+
+
+
+
+ UINT16 ConsoleOutMode;
+
+
+
+
+
+ UINT16 BootDescriptionData[100];
+ UINT16 BootOptionalData[127];
+ UINT16 DriverDescriptionData[100];
+ UINT16 DriverOptionalData[127];
+ BOOLEAN BootOptionChanged;
+ BOOLEAN DriverOptionChanged;
+ UINT8 Active;
+ UINT8 ForceReconnect;
+} BMM_FAKE_NV_DATA;
+
+#line 205 "c:\\users\\mliang2x\\workspace\\edk2\\mdemodulepkg\\library\\bootmaintenancemanageruilib\\FormGuid.h"
+#line 10 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Library\\BootMaintenanceManagerUiLib\\BootMaintenanceManager.vfr"
+
+formset
+>00000000: 0E A7 C7 37 22 64 D4 35 2D 47 83 65 12 E0 CC F2 7A 22 05 00 07 00 01 F8 09 88 E5 C1 FB E2 48 88 3A A3 0F DC 4B 44 1E
+>00000027: 5C 06 00 00 00 00
+>0000002D: 5C 06 00 00 01 00
+ guid = { 0x642237c7, 0x35d4, 0x472d, {0x83, 0x65, 0x12, 0xe0, 0xcc, 0xf2, 0x7a, 0x22} },
+ title = STRING_TOKEN(0x0005),
+ help = STRING_TOKEN(0x0007),
+ classguid = { 0xe58809f8, 0xfbc1, 0x48e2, { 0x88, 0x3a, 0xa3, 0x0f, 0xdc, 0x4b, 0x44, 0x1e } },
+
+ varstore BMM_FAKE_NV_DATA,
+>00000033: 24 1E C7 37 22 64 D4 35 2D 47 83 65 12 E0 CC F2 7A 22 00 10 F8 0D 42 6D 6D 44 61 74 61 00
+ varid = 0x1000,
+ name = BmmData,
+ guid = { 0x642237c7, 0x35d4, 0x472d, {0x83, 0x65, 0x12, 0xe0, 0xcc, 0xf2, 0x7a, 0x22} };
+
+ form formid = 0x1001,
+>00000051: 01 86 01 10 05 00
+ title = STRING_TOKEN(0x0005);
+
+
+
+
+ suppressif TRUE;
+>00000057: 0A 82
+>00000059: 46 02
+ text
+ help = STRING_TOKEN(0x0003),
+ text = STRING_TOKEN(0x0003),
+ flags = INTERACTIVE,
+>0000005B: 0C 8F 03 00 03 00 17 11 00 00 FF FF 04 00 00
+ key = 0x1117;
+>0000006A: 29 02
+ endif;
+>0000006C: 29 02
+
+ label 0xfffc;
+>0000006E: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FC FF
+
+
+
+
+ label 0xfffd;
+>00000083: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FD FF
+
+ endform;
+>00000098: 29 02
+
+ form formid = 0x1014,
+>0000009A: 01 86 14 10 06 00
+ title = STRING_TOKEN(0x0006);
+
+ goto 0x1001,
+>000000A0: 0F 0F 5D 00 5D 00 01 00 00 00 FF FF 00 01 10
+ prompt = STRING_TOKEN(0x005D),
+ help = STRING_TOKEN(0x005D);
+
+
+
+ goto 0x1014,
+>000000AF: 0F 0F 0B 00 0C 00 02 10 00 00 FF FF 04 14 10
+ prompt = STRING_TOKEN(0x000B),
+ help = STRING_TOKEN(0x000C),
+ flags = INTERACTIVE,
+ key = 0x1002;
+
+ goto 0x1003,
+>000000BE: 0F 0F 0D 00 0E 00 03 10 00 00 FF FF 04 03 10
+ prompt = STRING_TOKEN(0x000D),
+ help = STRING_TOKEN(0x000E),
+ flags = INTERACTIVE,
+ key = 0x1003;
+
+ goto 0x1004,
+>000000CD: 0F 0F 0F 00 0E 00 04 10 00 00 FF FF 04 04 10
+ prompt = STRING_TOKEN(0x000F),
+ help = STRING_TOKEN(0x000E),
+ flags = INTERACTIVE,
+ key = 0x1004;
+ endform;
+>000000DC: 29 02
+
+ form formid = 0x1015,
+>000000DE: 01 86 15 10 09 00
+ title = STRING_TOKEN(0x0009);
+
+ goto 0x1001,
+>000000E4: 0F 0F 5D 00 5D 00 02 00 00 00 FF FF 00 01 10
+ prompt = STRING_TOKEN(0x005D),
+ help = STRING_TOKEN(0x005D);
+
+
+
+
+ goto 0x1005,
+>000000F3: 0F 0F 10 00 11 00 05 10 00 00 FF FF 04 05 10
+ prompt = STRING_TOKEN(0x0010),
+ help = STRING_TOKEN(0x0011),
+ flags = INTERACTIVE,
+ key = 0x1005;
+
+ goto 0x1006,
+>00000102: 0F 0F 12 00 14 00 06 10 00 00 FF FF 04 06 10
+ prompt = STRING_TOKEN(0x0012),
+ help = STRING_TOKEN(0x0014),
+ flags = INTERACTIVE,
+ key = 0x1006;
+
+ goto 0x1007,
+>00000111: 0F 0F 13 00 14 00 07 10 00 00 FF FF 04 07 10
+ prompt = STRING_TOKEN(0x0013),
+ help = STRING_TOKEN(0x0014),
+ flags = INTERACTIVE,
+ key = 0x1007;
+ endform;
+>00000120: 29 02
+
+ form formid = 0x1002,
+>00000122: 01 86 02 10 23 00
+ title = STRING_TOKEN(0x0023);
+
+ label 0x1002;
+>00000128: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 02 10
+ label 0xffff;
+>0000013D: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+
+ subtitle text = STRING_TOKEN(0x0002);
+>00000152: 02 87 02 00 00 00 00
+>00000159: 29 02
+
+ string varid = BmmData.BootDescriptionData,
+>0000015B: 1C 90 29 00 02 00 0F 11 00 10 66 0A 04 06 4B 00
+ questionid = 0x110F,
+ prompt = STRING_TOKEN(0x0029),
+ help = STRING_TOKEN(0x0002),
+ flags = INTERACTIVE,
+ minsize = 6,
+ maxsize = 75,
+ endstring;
+>0000016B: 29 02
+
+ string varid = BmmData.BootOptionalData,
+>0000016D: 1C 90 60 00 02 00 10 11 00 10 2E 0B 04 00 78 00
+ questionid = 0x1110,
+ prompt = STRING_TOKEN(0x0060),
+ help = STRING_TOKEN(0x0002),
+ flags = INTERACTIVE,
+ minsize = 0,
+ maxsize = 120,
+ endstring;
+>0000017D: 29 02
+
+ subtitle text = STRING_TOKEN(0x0002);
+>0000017F: 02 87 02 00 00 00 00
+>00000186: 29 02
+
+ text
+ help = STRING_TOKEN(0x002B),
+ text = STRING_TOKEN(0x002B),
+ flags = INTERACTIVE,
+>00000188: 0C 8F 2B 00 2B 00 13 11 00 00 FF FF 04 00 00
+ key = 0x1113;
+>00000197: 29 02
+
+ text
+ help = STRING_TOKEN(0x002C),
+ text = STRING_TOKEN(0x002C),
+ flags = INTERACTIVE,
+>00000199: 0C 8F 2C 00 2C 00 14 11 00 00 FF FF 04 00 00
+ key = 0x1114;
+>000001A8: 29 02
+
+ endform;
+>000001AA: 29 02
+
+ form formid = 0x1003,
+>000001AC: 01 86 03 10 0D 00
+ title = STRING_TOKEN(0x000D);
+
+ label 0x1003;
+>000001B2: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 03 10
+ label 0xffff;
+>000001C7: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+ endform;
+>000001DC: 29 02
+
+ form formid = 0x1004,
+>000001DE: 01 86 04 10 0F 00
+ title = STRING_TOKEN(0x000F);
+
+ label 0x1004;
+>000001E4: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 04 10
+ label 0xffff;
+>000001F9: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+
+ endform;
+>0000020E: 29 02
+
+ form formid = 0x1005,
+>00000210: 01 86 05 10 10 00
+ title = STRING_TOKEN(0x0010);
+
+ goto 0x1001,
+>00000216: 0F 0F 5D 00 5D 00 03 00 00 00 FF FF 00 01 10
+ prompt = STRING_TOKEN(0x005D),
+ help = STRING_TOKEN(0x005D);
+
+
+
+ goto 0x1015,
+>00000225: 0F 0F 21 00 21 00 0E 10 00 00 FF FF 04 15 10
+ prompt = STRING_TOKEN(0x0021),
+ help = STRING_TOKEN(0x0021),
+ flags = INTERACTIVE,
+ key = 0x100E;
+
+ endform;
+>00000234: 29 02
+
+ form formid = 0x100E,
+>00000236: 01 86 0E 10 24 00
+ title = STRING_TOKEN(0x0024);
+
+ label 0x100E;
+>0000023C: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 0E 10
+ label 0xffff;
+>00000251: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+
+ subtitle text = STRING_TOKEN(0x0002);
+>00000266: 02 87 02 00 00 00 00
+>0000026D: 29 02
+
+ string varid = BmmData.DriverDescriptionData,
+>0000026F: 1C 90 29 00 02 00 11 11 00 10 2C 0C 04 06 4B 00
+ questionid = 0x1111,
+ prompt = STRING_TOKEN(0x0029),
+ help = STRING_TOKEN(0x0002),
+ flags = INTERACTIVE,
+ minsize = 6,
+ maxsize = 75,
+ endstring;
+>0000027F: 29 02
+
+ string varid = BmmData.DriverOptionalData,
+>00000281: 1C 90 60 00 02 00 12 11 00 10 F4 0C 04 00 78 00
+ questionid = 0x1112,
+ prompt = STRING_TOKEN(0x0060),
+ help = STRING_TOKEN(0x0002),
+ flags = INTERACTIVE,
+ minsize = 0,
+ maxsize = 120,
+ endstring;
+>00000291: 29 02
+
+ checkbox varid = BmmData.ForceReconnect,
+>00000293: 06 8E 2A 00 2A 00 04 00 00 10 F5 0D 00 01
+ prompt = STRING_TOKEN(0x002A),
+ help = STRING_TOKEN(0x002A),
+ flags = CHECKBOX_DEFAULT,
+ key = 0,
+ endcheckbox;
+>000002A1: 29 02
+
+ subtitle text = STRING_TOKEN(0x0002);
+>000002A3: 02 87 02 00 00 00 00
+>000002AA: 29 02
+
+ text
+ help = STRING_TOKEN(0x002B),
+ text = STRING_TOKEN(0x002B),
+ flags = INTERACTIVE,
+>000002AC: 0C 8F 2B 00 2B 00 15 11 00 00 FF FF 04 00 00
+ key = 0x1115;
+>000002BB: 29 02
+
+ text
+ help = STRING_TOKEN(0x002C),
+ text = STRING_TOKEN(0x002C),
+ flags = INTERACTIVE,
+>000002BD: 0C 8F 2C 00 2C 00 16 11 00 00 FF FF 04 00 00
+ key = 0x1116;
+>000002CC: 29 02
+ endform;
+>000002CE: 29 02
+
+ form formid = 0x1006,
+>000002D0: 01 86 06 10 12 00
+ title = STRING_TOKEN(0x0012);
+
+ label 0x1006;
+>000002D6: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 06 10
+ label 0xffff;
+>000002EB: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+
+ endform;
+>00000300: 29 02
+
+ form formid = 0x1007,
+>00000302: 01 86 07 10 13 00
+ title = STRING_TOKEN(0x0013);
+
+ label 0x1007;
+>00000308: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 07 10
+ label 0xffff;
+>0000031D: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+
+ endform;
+>00000332: 29 02
+
+ form formid = 0x1008,
+>00000334: 01 86 08 10 15 00
+ title = STRING_TOKEN(0x0015);
+
+ goto 0x1001,
+>0000033A: 0F 0F 5D 00 5D 00 05 00 00 00 FF FF 00 01 10
+ prompt = STRING_TOKEN(0x005D),
+ help = STRING_TOKEN(0x005D);
+
+
+
+ goto 0x1009,
+>00000349: 0F 0F 17 00 18 00 09 10 00 00 FF FF 04 09 10
+ prompt = STRING_TOKEN(0x0017),
+ help = STRING_TOKEN(0x0018),
+ flags = INTERACTIVE,
+ key = 0x1009;
+
+ goto 0x100A,
+>00000358: 0F 0F 19 00 1A 00 0A 10 00 00 FF FF 04 0A 10
+ prompt = STRING_TOKEN(0x0019),
+ help = STRING_TOKEN(0x001A),
+ flags = INTERACTIVE,
+ key = 0x100A;
+
+ goto 0x100B,
+>00000367: 0F 0F 1B 00 1C 00 0B 10 00 00 FF FF 04 0B 10
+ prompt = STRING_TOKEN(0x001B),
+ help = STRING_TOKEN(0x001C),
+ flags = INTERACTIVE,
+ key = 0x100B;
+
+ goto 0x1021,
+>00000376: 0F 0F 1D 00 1E 00 21 10 00 00 FF FF 04 21 10
+ prompt = STRING_TOKEN(0x001D),
+ help = STRING_TOKEN(0x001E),
+ flags = INTERACTIVE,
+ key = 0x1021;
+
+ goto 0x1017,
+>00000385: 0F 0F 1F 00 20 00 17 10 00 00 FF FF 04 17 10
+ prompt = STRING_TOKEN(0x001F),
+ help = STRING_TOKEN(0x0020),
+ flags = INTERACTIVE,
+ key = 0x1017;
+ endform;
+>00000394: 29 02
+
+ form formid = 0x1021,
+>00000396: 01 86 21 10 1D 00
+ title = STRING_TOKEN(0x001D);
+
+ label 0x1021;
+>0000039C: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 21 10
+ label 0xffff;
+>000003B1: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+ endform;
+>000003C6: 29 02
+
+ form formid = 0x1017,
+>000003C8: 01 86 17 10 1F 00
+ title = STRING_TOKEN(0x001F);
+
+ label 0x1017;
+>000003CE: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 17 10
+ label 0xffff;
+>000003E3: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+ endform;
+>000003F8: 29 02
+
+ form formid = 0x1018,
+>000003FA: 01 86 18 10 2E 00
+ title = STRING_TOKEN(0x002E);
+
+ label 0x1018;
+>00000400: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 18 10
+ label 0xffff;
+>00000415: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+ endform;
+>0000042A: 29 02
+
+ form formid = 0x100C,
+>0000042C: 01 86 0C 10 0B 00
+ title = STRING_TOKEN(0x000B);
+
+ label 0x100C;
+>00000432: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 0C 10
+ label 0xffff;
+>00000447: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+ endform;
+>0000045C: 29 02
+
+ form formid = 0x100D,
+>0000045E: 01 86 0D 10 0B 00
+ title = STRING_TOKEN(0x000B);
+
+ label 0x100D;
+>00000464: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 0D 10
+ label 0xffff;
+>00000479: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+ endform;
+>0000048E: 29 02
+
+ form formid = 0x100F,
+>00000490: 01 86 0F 10 22 00
+ title = STRING_TOKEN(0x0022);
+
+ label 0x100F;
+>00000496: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 0F 10
+ label 0xffff;
+>000004AB: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+ endform;
+>000004C0: 29 02
+
+ form formid = 0x1010,
+>000004C2: 01 86 10 10 24 00
+ title = STRING_TOKEN(0x0024);
+
+ label 0x1010;
+>000004C8: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 10 10
+ label 0xffff;
+>000004DD: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+
+ endform;
+>000004F2: 29 02
+
+ form formid = 0x1009,
+>000004F4: 01 86 09 10 17 00
+ title = STRING_TOKEN(0x0017);
+
+ label 0x1009;
+>000004FA: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 09 10
+ label 0xffff;
+>0000050F: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+
+ endform;
+>00000524: 29 02
+
+ form formid = 0x100A,
+>00000526: 01 86 0A 10 19 00
+ title = STRING_TOKEN(0x0019);
+
+ label 0x100A;
+>0000052C: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 0A 10
+ label 0xffff;
+>00000541: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+
+ endform;
+>00000556: 29 02
+
+ form formid = 0x100B,
+>00000558: 01 86 0B 10 1B 00
+ title = STRING_TOKEN(0x001B);
+
+ label 0x100B;
+>0000055E: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 0B 10
+ label 0xffff;
+>00000573: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+
+ endform;
+>00000588: 29 02
+
+endformset;
+>0000058A: 29 02
+
+//
+// All Opcode Record List
+//
+>00000000: 0E A7 C7 37 22 64 D4 35 2D 47 83 65 12 E0 CC F2 7A 22 05 00 07 00 01 F8 09 88 E5 C1 FB E2 48 88 3A A3 0F DC 4B 44 1E
+>00000027: 5C 06 00 00 00 00
+>0000002D: 5C 06 00 00 01 00
+>00000033: 24 1E C7 37 22 64 D4 35 2D 47 83 65 12 E0 CC F2 7A 22 00 10 F8 0D 42 6D 6D 44 61 74 61 00
+>00000051: 01 86 01 10 05 00
+>00000057: 0A 82
+>00000059: 46 02
+>0000005B: 0C 8F 03 00 03 00 17 11 00 00 FF FF 04 00 00
+>0000006A: 29 02
+>0000006C: 29 02
+>0000006E: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FC FF
+>00000083: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FD FF
+>00000098: 29 02
+>0000009A: 01 86 14 10 06 00
+>000000A0: 0F 0F 5D 00 5D 00 01 00 00 00 FF FF 00 01 10
+>000000AF: 0F 0F 0B 00 0C 00 02 10 00 00 FF FF 04 14 10
+>000000BE: 0F 0F 0D 00 0E 00 03 10 00 00 FF FF 04 03 10
+>000000CD: 0F 0F 0F 00 0E 00 04 10 00 00 FF FF 04 04 10
+>000000DC: 29 02
+>000000DE: 01 86 15 10 09 00
+>000000E4: 0F 0F 5D 00 5D 00 02 00 00 00 FF FF 00 01 10
+>000000F3: 0F 0F 10 00 11 00 05 10 00 00 FF FF 04 05 10
+>00000102: 0F 0F 12 00 14 00 06 10 00 00 FF FF 04 06 10
+>00000111: 0F 0F 13 00 14 00 07 10 00 00 FF FF 04 07 10
+>00000120: 29 02
+>00000122: 01 86 02 10 23 00
+>00000128: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 02 10
+>0000013D: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>00000152: 02 87 02 00 00 00 00
+>00000159: 29 02
+>0000015B: 1C 90 29 00 02 00 0F 11 00 10 66 0A 04 06 4B 00
+>0000016B: 29 02
+>0000016D: 1C 90 60 00 02 00 10 11 00 10 2E 0B 04 00 78 00
+>0000017D: 29 02
+>0000017F: 02 87 02 00 00 00 00
+>00000186: 29 02
+>00000188: 0C 8F 2B 00 2B 00 13 11 00 00 FF FF 04 00 00
+>00000197: 29 02
+>00000199: 0C 8F 2C 00 2C 00 14 11 00 00 FF FF 04 00 00
+>000001A8: 29 02
+>000001AA: 29 02
+>000001AC: 01 86 03 10 0D 00
+>000001B2: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 03 10
+>000001C7: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>000001DC: 29 02
+>000001DE: 01 86 04 10 0F 00
+>000001E4: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 04 10
+>000001F9: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>0000020E: 29 02
+>00000210: 01 86 05 10 10 00
+>00000216: 0F 0F 5D 00 5D 00 03 00 00 00 FF FF 00 01 10
+>00000225: 0F 0F 21 00 21 00 0E 10 00 00 FF FF 04 15 10
+>00000234: 29 02
+>00000236: 01 86 0E 10 24 00
+>0000023C: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 0E 10
+>00000251: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>00000266: 02 87 02 00 00 00 00
+>0000026D: 29 02
+>0000026F: 1C 90 29 00 02 00 11 11 00 10 2C 0C 04 06 4B 00
+>0000027F: 29 02
+>00000281: 1C 90 60 00 02 00 12 11 00 10 F4 0C 04 00 78 00
+>00000291: 29 02
+>00000293: 06 8E 2A 00 2A 00 04 00 00 10 F5 0D 00 01
+>000002A1: 29 02
+>000002A3: 02 87 02 00 00 00 00
+>000002AA: 29 02
+>000002AC: 0C 8F 2B 00 2B 00 15 11 00 00 FF FF 04 00 00
+>000002BB: 29 02
+>000002BD: 0C 8F 2C 00 2C 00 16 11 00 00 FF FF 04 00 00
+>000002CC: 29 02
+>000002CE: 29 02
+>000002D0: 01 86 06 10 12 00
+>000002D6: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 06 10
+>000002EB: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>00000300: 29 02
+>00000302: 01 86 07 10 13 00
+>00000308: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 07 10
+>0000031D: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>00000332: 29 02
+>00000334: 01 86 08 10 15 00
+>0000033A: 0F 0F 5D 00 5D 00 05 00 00 00 FF FF 00 01 10
+>00000349: 0F 0F 17 00 18 00 09 10 00 00 FF FF 04 09 10
+>00000358: 0F 0F 19 00 1A 00 0A 10 00 00 FF FF 04 0A 10
+>00000367: 0F 0F 1B 00 1C 00 0B 10 00 00 FF FF 04 0B 10
+>00000376: 0F 0F 1D 00 1E 00 21 10 00 00 FF FF 04 21 10
+>00000385: 0F 0F 1F 00 20 00 17 10 00 00 FF FF 04 17 10
+>00000394: 29 02
+>00000396: 01 86 21 10 1D 00
+>0000039C: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 21 10
+>000003B1: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>000003C6: 29 02
+>000003C8: 01 86 17 10 1F 00
+>000003CE: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 17 10
+>000003E3: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>000003F8: 29 02
+>000003FA: 01 86 18 10 2E 00
+>00000400: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 18 10
+>00000415: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>0000042A: 29 02
+>0000042C: 01 86 0C 10 0B 00
+>00000432: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 0C 10
+>00000447: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>0000045C: 29 02
+>0000045E: 01 86 0D 10 0B 00
+>00000464: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 0D 10
+>00000479: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>0000048E: 29 02
+>00000490: 01 86 0F 10 22 00
+>00000496: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 0F 10
+>000004AB: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>000004C0: 29 02
+>000004C2: 01 86 10 10 24 00
+>000004C8: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 10 10
+>000004DD: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>000004F2: 29 02
+>000004F4: 01 86 09 10 17 00
+>000004FA: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 09 10
+>0000050F: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>00000524: 29 02
+>00000526: 01 86 0A 10 19 00
+>0000052C: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 0A 10
+>00000541: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>00000556: 29 02
+>00000558: 01 86 0B 10 1B 00
+>0000055E: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 0B 10
+>00000573: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>00000588: 29 02
+>0000058A: 29 02
+
+Total Size of all record is 0x0000058C
+
+
+***************************************************************
+ mPackAlign = 8
+ struct BMM_FAKE_NV_DATA : mAlign [4] mTotalSize [0xdf8]
+
+ struct BMM_FAKE_NV_DATA {
+ +00000000[00000000] BootTimeOut <UINT16>
+ +00000004[00000004] BootNext <UINT32>
+ +00000008[00000008] COM1BaudRate <UINT8>
+ +00000009[00000009] COM1DataRate <UINT8>
+ +00000010[0000000a] COM1StopBits <UINT8>
+ +00000011[0000000b] COM1Parity <UINT8>
+ +00000012[0000000c] COM1TerminalType <UINT8>
+ +00000013[0000000d] COM2BaudRate <UINT8>
+ +00000014[0000000e] COM2DataRate <UINT8>
+ +00000015[0000000f] COM2StopBits <UINT8>
+ +00000016[00000010] COM2Parity <UINT8>
+ +00000017[00000011] COM2TerminalType <UINT8>
+ +00000018[00000012] DriverAddHandleDesc[100] <UINT16>
+ +00000218[000000da] DriverAddHandleOptionalData[100] <UINT16>
+ +00000418[000001a2] DriverAddActive <UINT8>
+ +00000419[000001a3] DriverAddForceReconnect <UINT8>
+ +00000420[000001a4] ConsoleInputCOM1 <UINT8>
+ +00000421[000001a5] ConsoleInputCOM2 <UINT8>
+ +00000422[000001a6] ConsoleOutputCOM1 <UINT8>
+ +00000423[000001a7] ConsoleOutputCOM2 <UINT8>
+ +00000424[000001a8] ConsoleErrorCOM1 <UINT8>
+ +00000425[000001a9] ConsoleErrorCOM2 <UINT8>
+ +00000426[000001aa] ConsoleCheck[100] <UINT8>
+ +00000526[0000020e] ConsoleInCheck[100] <UINT8>
+ +00000626[00000272] ConsoleOutCheck[100] <UINT8>
+ +00000726[000002d6] ConsoleErrCheck[100] <UINT8>
+ +00000828[0000033c] BootOptionOrder[100] <UINT32>
+ +00001228[000004cc] DriverOptionOrder[100] <UINT32>
+ +00001628[0000065c] BootOptionDel[100] <BOOLEAN>
+ +00001728[000006c0] DriverOptionDel[100] <BOOLEAN>
+ +00001828[00000724] BootOptionDelMark[100] <BOOLEAN>
+ +00001928[00000788] DriverOptionDelMark[100] <BOOLEAN>
+ +00002028[000007ec] COMBaudRate[100] <UINT8>
+ +00002128[00000850] COMDataRate[100] <UINT8>
+ +00002228[000008b4] COMStopBits[100] <UINT8>
+ +00002328[00000918] COMParity[100] <UINT8>
+ +00002428[0000097c] COMTerminalType[100] <UINT8>
+ +00002528[000009e0] COMFlowControl[100] <UINT8>
+ +00002628[00000a44] DisableMap[32] <UINT8>
+ +00002660[00000a64] ConsoleOutMode <UINT16>
+ +00002662[00000a66] BootDescriptionData[100] <UINT16>
+ +00002862[00000b2e] BootOptionalData[127] <UINT16>
+ +00003116[00000c2c] DriverDescriptionData[100] <UINT16>
+ +00003316[00000cf4] DriverOptionalData[127] <UINT16>
+ +00003570[00000df2] BootOptionChanged <BOOLEAN>
+ +00003571[00000df3] DriverOptionChanged <BOOLEAN>
+ +00003572[00000df4] Active <UINT8>
+ +00003573[00000df5] ForceReconnect <UINT8>
+ };
+---------------------------------------------------------------
+ struct EFI_HII_REF : mAlign [16] mTotalSize [0x16]
+
+ struct EFI_HII_REF {
+ +00000000[00000000] QuestionId <UINT16>
+ +00000002[00000002] FormId <UINT16>
+ +00000004[00000004] FormSetGuid <(null)>
+ +00000020[00000014] DevicePath <EFI_STRING_ID>
+ };
+---------------------------------------------------------------
+ struct EFI_HII_TIME : mAlign [1] mTotalSize [0x3]
+
+ struct EFI_HII_TIME {
+ +00000000[00000000] Hours <UINT8>
+ +00000001[00000001] Minutes <UINT8>
+ +00000002[00000002] Seconds <UINT8>
+ };
+---------------------------------------------------------------
+ struct EFI_STRING_ID : mAlign [2] mTotalSize [0x2]
+
+ struct EFI_STRING_ID {
+ };
+---------------------------------------------------------------
+ struct EFI_HII_DATE : mAlign [2] mTotalSize [0x4]
+
+ struct EFI_HII_DATE {
+ +00000000[00000000] Year <UINT16>
+ +00000002[00000002] Month <UINT8>
+ +00000003[00000003] Day <UINT8>
+ };
+---------------------------------------------------------------
+ struct BOOLEAN : mAlign [1] mTotalSize [0x1]
+
+ struct BOOLEAN {
+ };
+---------------------------------------------------------------
+ struct UINT8 : mAlign [1] mTotalSize [0x1]
+
+ struct UINT8 {
+ };
+---------------------------------------------------------------
+ struct UINT16 : mAlign [2] mTotalSize [0x2]
+
+ struct UINT16 {
+ };
+---------------------------------------------------------------
+ struct UINT32 : mAlign [4] mTotalSize [0x4]
+
+ struct UINT32 {
+ };
+---------------------------------------------------------------
+ struct UINT64 : mAlign [8] mTotalSize [0x8]
+
+ struct UINT64 {
+ };
+---------------------------------------------------------------
+***************************************************************
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManager.vfr.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManager.vfr.deps
new file mode 100644
index 000000000000..c95ea2f65748
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManager.vfr.deps
@@ -0,0 +1,3 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\DEBUG\BootMaintenanceManager.c: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\DEBUG\BootMaintenanceManagerUiLibStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\FormGuid.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManagerCompiled.yml b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManagerCompiled.yml
new file mode 100644
index 000000000000..1437a70923e9
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManagerCompiled.yml
@@ -0,0 +1,423 @@
+## DO NOT REMOVE -- YAML Mode
+include:
+- FormGuid.h
+
+formset:
+ guid: '{0x642237c7, 0x35d4, 0x472d, { 0x83, 0x65, 0x12, 0xe0, 0xcc, 0xf2, 0x7a, 0x22 }}'
+ help: 'This selection will take you to the Boot Maintenance Manager'
+ title: 'Boot Maintenance Manager'
+ classguid1: '{0xe58809f8, 0xfbc1, 0x48e2, { 0x88, 0x3a, 0xa3, 0xf, 0xdc, 0x4b, 0x44, 0x1e }}'
+ component:
+ - varstore:
+ guid: '{0x642237c7, 0x35d4, 0x472d, { 0x83, 0x65, 0x12, 0xe0, 0xcc, 0xf2, 0x7a, 0x22 }}'
+ varid: 0x1000 # Optional Input
+ size: 3576 # Need to Compute
+ name: BmmData
+ - form:
+ formid: 4097
+ title: 'Boot Maintenance Manager'
+ component:
+ - text:
+ condition: 'suppressif TRUE'
+ help: 'NONE'
+ prompt: 'NONE'
+ flags: 4 # Optional Input, Question Flags
+ key: 0x1117 # Optional Input, Question QuestionId
+ - label:
+ number: 0xfffc # Number
+ - label:
+ number: 0xfffd # Number
+ - form:
+ formid: 4116
+ title: 'Boot Options'
+ component:
+ - goto:
+ questionid: 1
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 0 # Optional Input
+ prompt: 'Go Back To Main Page'
+ help: 'Go Back To Main Page'
+ formid: 0x1001
+ question: 0x0001 # Optional Input
+ - goto:
+ questionid: 4098
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Add Boot Option'
+ help: 'Add EFI Application or Removable Fs as Boot Option'
+ formid: 0x1014
+ question: 0x1002 # Optional Input
+ - goto:
+ questionid: 4099
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Delete Boot Option'
+ help: 'Will be valid immediately'
+ formid: 0x1003
+ question: 0x1003 # Optional Input
+ - goto:
+ questionid: 4100
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Change Boot Order'
+ help: 'Will be valid immediately'
+ formid: 0x1004
+ question: 0x1004 # Optional Input
+ - form:
+ formid: 4117
+ title: 'Driver Options'
+ component:
+ - goto:
+ questionid: 2
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 0 # Optional Input
+ prompt: 'Go Back To Main Page'
+ help: 'Go Back To Main Page'
+ formid: 0x1001
+ question: 0x0002 # Optional Input
+ - goto:
+ questionid: 4101
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Add Driver Option'
+ help: 'Add .EFI Driver as Driver Option'
+ formid: 0x1005
+ question: 0x1005 # Optional Input
+ - goto:
+ questionid: 4102
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Delete Driver Option'
+ help: 'Will be valid on next boot'
+ formid: 0x1006
+ question: 0x1006 # Optional Input
+ - goto:
+ questionid: 4103
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Change Driver Order'
+ help: 'Will be valid on next boot'
+ formid: 0x1007
+ question: 0x1007 # Optional Input
+ - form:
+ formid: 4098
+ title: 'Modify Boot Option Description'
+ component:
+ - label:
+ number: 0x1002 # Number
+ - label:
+ number: 0xffff # Number
+ - subtitle:
+ prompt: ' '
+ flags: 0 # Optional Input
+ - string:
+ position: 'BOOT_MAINT_FORMSET_GUID.FORM_BOOT_ADD_ID.BmmData.BootDescriptionData' # for reference
+ questionid: 4367
+ varstoreid: 4096 # Optional Input
+ varname: 2662 # Question VarName
+ varoffset: 2662 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Input the description'
+ help: ' '
+ opcodeflags: 0x0 # optional input
+ minsize: 6
+ maxsize: 75
+ - string:
+ position: 'BOOT_MAINT_FORMSET_GUID.FORM_BOOT_ADD_ID.BmmData.BootOptionalData' # for reference
+ questionid: 4368
+ varstoreid: 4096 # Optional Input
+ varname: 2862 # Question VarName
+ varoffset: 2862 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Input Optional Data'
+ help: ' '
+ opcodeflags: 0x0 # optional input
+ minsize: 0
+ maxsize: 120
+ - subtitle:
+ prompt: ' '
+ flags: 0 # Optional Input
+ - text:
+ help: 'Commit Changes and Exit'
+ prompt: 'Commit Changes and Exit'
+ flags: 4 # Optional Input, Question Flags
+ key: 0x1113 # Optional Input, Question QuestionId
+ - text:
+ help: 'Discard Changes and Exit'
+ prompt: 'Discard Changes and Exit'
+ flags: 4 # Optional Input, Question Flags
+ key: 0x1114 # Optional Input, Question QuestionId
+ - form:
+ formid: 4099
+ title: 'Delete Boot Option'
+ component:
+ - label:
+ number: 0x1003 # Number
+ - label:
+ number: 0xffff # Number
+ - form:
+ formid: 4100
+ title: 'Change Boot Order'
+ component:
+ - label:
+ number: 0x1004 # Number
+ - label:
+ number: 0xffff # Number
+ - form:
+ formid: 4101
+ title: 'Add Driver Option'
+ component:
+ - goto:
+ questionid: 3
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 0 # Optional Input
+ prompt: 'Go Back To Main Page'
+ help: 'Go Back To Main Page'
+ formid: 0x1001
+ question: 0x0003 # Optional Input
+ - goto:
+ questionid: 4110
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Add Driver Option Using File'
+ help: 'Add Driver Option Using File'
+ formid: 0x1015
+ question: 0x100e # Optional Input
+ - form:
+ formid: 4110
+ title: 'Modify Driver Option Description'
+ component:
+ - label:
+ number: 0x100e # Number
+ - label:
+ number: 0xffff # Number
+ - subtitle:
+ prompt: ' '
+ flags: 0 # Optional Input
+ - string:
+ position: 'BOOT_MAINT_FORMSET_GUID.FORM_DRV_ADD_FILE_ID.BmmData.DriverDescriptionData' # for reference
+ questionid: 4369
+ varstoreid: 4096 # Optional Input
+ varname: 3116 # Question VarName
+ varoffset: 3116 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Input the description'
+ help: ' '
+ opcodeflags: 0x0 # optional input
+ minsize: 6
+ maxsize: 75
+ - string:
+ position: 'BOOT_MAINT_FORMSET_GUID.FORM_DRV_ADD_FILE_ID.BmmData.DriverOptionalData' # for reference
+ questionid: 4370
+ varstoreid: 4096 # Optional Input
+ varname: 3316 # Question VarName
+ varoffset: 3316 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Input Optional Data'
+ help: ' '
+ opcodeflags: 0x0 # optional input
+ minsize: 0
+ maxsize: 120
+ - checkbox:
+ position: 'BOOT_MAINT_FORMSET_GUID.FORM_DRV_ADD_FILE_ID.BmmData.ForceReconnect' # for reference
+ questionid: 4
+ varstoreid: 4096 # Optional Input
+ varname: 3573 # Question VarName
+ varoffset: 3573 # Question VarOffset
+ questionflags: 0 # Optional Input
+ prompt: 'Load Option Reconnect'
+ help: 'Load Option Reconnect'
+ opcodeflags: 0x1 # optional input
+ - subtitle:
+ prompt: ' '
+ flags: 0 # Optional Input
+ - text:
+ help: 'Commit Changes and Exit'
+ prompt: 'Commit Changes and Exit'
+ flags: 4 # Optional Input, Question Flags
+ key: 0x1115 # Optional Input, Question QuestionId
+ - text:
+ help: 'Discard Changes and Exit'
+ prompt: 'Discard Changes and Exit'
+ flags: 4 # Optional Input, Question Flags
+ key: 0x1116 # Optional Input, Question QuestionId
+ - form:
+ formid: 4102
+ title: 'Delete Driver Option'
+ component:
+ - label:
+ number: 0x1006 # Number
+ - label:
+ number: 0xffff # Number
+ - form:
+ formid: 4103
+ title: 'Change Driver Order'
+ component:
+ - label:
+ number: 0x1007 # Number
+ - label:
+ number: 0xffff # Number
+ - form:
+ formid: 4104
+ title: 'Console Options'
+ component:
+ - goto:
+ questionid: 5
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 0 # Optional Input
+ prompt: 'Go Back To Main Page'
+ help: 'Go Back To Main Page'
+ formid: 0x1001
+ question: 0x0005 # Optional Input
+ - goto:
+ questionid: 4105
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Console Input Device Select'
+ help: 'Enable console device as ConIn'
+ formid: 0x1009
+ question: 0x1009 # Optional Input
+ - goto:
+ questionid: 4106
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Console Output Device Select'
+ help: 'Enable console device as ConOut'
+ formid: 0x100a
+ question: 0x100a # Optional Input
+ - goto:
+ questionid: 4107
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Console Standard Error Device Select'
+ help: 'Enable console device as StdErr'
+ formid: 0x100b
+ question: 0x100b # Optional Input
+ - goto:
+ questionid: 4129
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Console Output Mode Select'
+ help: 'Select Console Output Mode: 80x25, 100x31, etc.'
+ formid: 0x1021
+ question: 0x1021 # Optional Input
+ - goto:
+ questionid: 4119
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'COM Attribute Setup Page'
+ help: 'Setup ComPort BaudRate, DataBits, StopBits, Parity and TerminalType'
+ formid: 0x1017
+ question: 0x1017 # Optional Input
+ - form:
+ formid: 4129
+ title: 'Console Output Mode Select'
+ component:
+ - label:
+ number: 0x1021 # Number
+ - label:
+ number: 0xffff # Number
+ - form:
+ formid: 4119
+ title: 'COM Attribute Setup Page'
+ component:
+ - label:
+ number: 0x1017 # Number
+ - label:
+ number: 0xffff # Number
+ - form:
+ formid: 4120
+ title: 'Set COM Attributes'
+ component:
+ - label:
+ number: 0x1018 # Number
+ - label:
+ number: 0xffff # Number
+ - form:
+ formid: 4108
+ title: 'Add Boot Option'
+ component:
+ - label:
+ number: 0x100c # Number
+ - label:
+ number: 0xffff # Number
+ - form:
+ formid: 4109
+ title: 'Add Boot Option'
+ component:
+ - label:
+ number: 0x100d # Number
+ - label:
+ number: 0xffff # Number
+ - form:
+ formid: 4111
+ title: 'Add Driver Option Using Handle'
+ component:
+ - label:
+ number: 0x100f # Number
+ - label:
+ number: 0xffff # Number
+ - form:
+ formid: 4112
+ title: 'Modify Driver Option Description'
+ component:
+ - label:
+ number: 0x1010 # Number
+ - label:
+ number: 0xffff # Number
+ - form:
+ formid: 4105
+ title: 'Console Input Device Select'
+ component:
+ - label:
+ number: 0x1009 # Number
+ - label:
+ number: 0xffff # Number
+ - form:
+ formid: 4106
+ title: 'Console Output Device Select'
+ component:
+ - label:
+ number: 0x100a # Number
+ - label:
+ number: 0xffff # Number
+ - form:
+ formid: 4107
+ title: 'Console Standard Error Device Select'
+ component:
+ - label:
+ number: 0x100b # Number
+ - label:
+ number: 0xffff # Number
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManagerProcessed.yml b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManagerProcessed.yml
new file mode 100644
index 000000000000..7a3a163f98b5
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/DEBUG/BootMaintenanceManagerProcessed.yml
@@ -0,0 +1,326 @@
+formset:
+ classguid: '{0xe58809f8, 0xfbc1, 0x48e2, {0x88, 0x3a, 0xa3, 0xf, 0xdc, 0x4b, 0x44, 0x1e}}'
+ component:
+ - varstore:
+ guid: '{0x642237c7, 0x35d4, 0x472d, {0x83, 0x65, 0x12, 0xe0, 0xcc, 0xf2, 0x7a, 0x22}}'
+ name: BmmData
+ type: BMM_FAKE_NV_DATA
+ varid: 4096
+ - form:
+ component:
+ - suppressif:
+ component:
+ - text:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0003)
+ key: 4375
+ prompt: STRING_TOKEN(0x0003)
+ expression: 'TRUE'
+ - label:
+ number: 65532
+ - label:
+ number: 65533
+ formid: 4097
+ title: STRING_TOKEN(0x0005)
+ - form:
+ component:
+ - goto:
+ formid: 4097
+ help: STRING_TOKEN(0x005D)
+ prompt: STRING_TOKEN(0x005D)
+ - goto:
+ flags: INTERACTIVE
+ formid: 4116
+ help: STRING_TOKEN(0x000C)
+ key: 4098
+ prompt: STRING_TOKEN(0x000B)
+ - goto:
+ flags: INTERACTIVE
+ formid: 4099
+ help: STRING_TOKEN(0x000E)
+ key: 4099
+ prompt: STRING_TOKEN(0x000D)
+ - goto:
+ flags: INTERACTIVE
+ formid: 4100
+ help: STRING_TOKEN(0x000E)
+ key: 4100
+ prompt: STRING_TOKEN(0x000F)
+ formid: 4116
+ title: STRING_TOKEN(0x0006)
+ - form:
+ component:
+ - goto:
+ formid: 4097
+ help: STRING_TOKEN(0x005D)
+ prompt: STRING_TOKEN(0x005D)
+ - goto:
+ flags: INTERACTIVE
+ formid: 4101
+ help: STRING_TOKEN(0x0011)
+ key: 4101
+ prompt: STRING_TOKEN(0x0010)
+ - goto:
+ flags: INTERACTIVE
+ formid: 4102
+ help: STRING_TOKEN(0x0014)
+ key: 4102
+ prompt: STRING_TOKEN(0x0012)
+ - goto:
+ flags: INTERACTIVE
+ formid: 4103
+ help: STRING_TOKEN(0x0014)
+ key: 4103
+ prompt: STRING_TOKEN(0x0013)
+ formid: 4117
+ title: STRING_TOKEN(0x0009)
+ - form:
+ component:
+ - label:
+ number: 4098
+ - label:
+ number: 65535
+ - subtitle:
+ text: STRING_TOKEN(0x0002)
+ - string:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0002)
+ maxsize: 75
+ minsize: 6
+ prompt: STRING_TOKEN(0x0029)
+ questionid: 4367
+ varid: BmmData.BootDescriptionData
+ - string:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0002)
+ maxsize: 120
+ minsize: 0
+ prompt: STRING_TOKEN(0x0060)
+ questionid: 4368
+ varid: BmmData.BootOptionalData
+ - subtitle:
+ text: STRING_TOKEN(0x0002)
+ - text:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x002B)
+ key: 4371
+ prompt: STRING_TOKEN(0x002B)
+ - text:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x002C)
+ key: 4372
+ prompt: STRING_TOKEN(0x002C)
+ formid: 4098
+ title: STRING_TOKEN(0x0023)
+ - form:
+ component:
+ - label:
+ number: 4099
+ - label:
+ number: 65535
+ formid: 4099
+ title: STRING_TOKEN(0x000D)
+ - form:
+ component:
+ - label:
+ number: 4100
+ - label:
+ number: 65535
+ formid: 4100
+ title: STRING_TOKEN(0x000F)
+ - form:
+ component:
+ - goto:
+ formid: 4097
+ help: STRING_TOKEN(0x005D)
+ prompt: STRING_TOKEN(0x005D)
+ - goto:
+ flags: INTERACTIVE
+ formid: 4117
+ help: STRING_TOKEN(0x0021)
+ key: 4110
+ prompt: STRING_TOKEN(0x0021)
+ formid: 4101
+ title: STRING_TOKEN(0x0010)
+ - form:
+ component:
+ - label:
+ number: 4110
+ - label:
+ number: 65535
+ - subtitle:
+ text: STRING_TOKEN(0x0002)
+ - string:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0002)
+ maxsize: 75
+ minsize: 6
+ prompt: STRING_TOKEN(0x0029)
+ questionid: 4369
+ varid: BmmData.DriverDescriptionData
+ - string:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0002)
+ maxsize: 120
+ minsize: 0
+ prompt: STRING_TOKEN(0x0060)
+ questionid: 4370
+ varid: BmmData.DriverOptionalData
+ - checkbox:
+ flags: CHECKBOX_DEFAULT
+ help: STRING_TOKEN(0x002A)
+ prompt: STRING_TOKEN(0x002A)
+ varid: BmmData.ForceReconnect
+ - subtitle:
+ text: STRING_TOKEN(0x0002)
+ - text:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x002B)
+ key: 4373
+ prompt: STRING_TOKEN(0x002B)
+ - text:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x002C)
+ key: 4374
+ prompt: STRING_TOKEN(0x002C)
+ formid: 4110
+ title: STRING_TOKEN(0x0024)
+ - form:
+ component:
+ - label:
+ number: 4102
+ - label:
+ number: 65535
+ formid: 4102
+ title: STRING_TOKEN(0x0012)
+ - form:
+ component:
+ - label:
+ number: 4103
+ - label:
+ number: 65535
+ formid: 4103
+ title: STRING_TOKEN(0x0013)
+ - form:
+ component:
+ - goto:
+ formid: 4097
+ help: STRING_TOKEN(0x005D)
+ prompt: STRING_TOKEN(0x005D)
+ - goto:
+ flags: INTERACTIVE
+ formid: 4105
+ help: STRING_TOKEN(0x0018)
+ key: 4105
+ prompt: STRING_TOKEN(0x0017)
+ - goto:
+ flags: INTERACTIVE
+ formid: 4106
+ help: STRING_TOKEN(0x001A)
+ key: 4106
+ prompt: STRING_TOKEN(0x0019)
+ - goto:
+ flags: INTERACTIVE
+ formid: 4107
+ help: STRING_TOKEN(0x001C)
+ key: 4107
+ prompt: STRING_TOKEN(0x001B)
+ - goto:
+ flags: INTERACTIVE
+ formid: 4129
+ help: STRING_TOKEN(0x001E)
+ key: 4129
+ prompt: STRING_TOKEN(0x001D)
+ - goto:
+ flags: INTERACTIVE
+ formid: 4119
+ help: STRING_TOKEN(0x0020)
+ key: 4119
+ prompt: STRING_TOKEN(0x001F)
+ formid: 4104
+ title: STRING_TOKEN(0x0015)
+ - form:
+ component:
+ - label:
+ number: 4129
+ - label:
+ number: 65535
+ formid: 4129
+ title: STRING_TOKEN(0x001D)
+ - form:
+ component:
+ - label:
+ number: 4119
+ - label:
+ number: 65535
+ formid: 4119
+ title: STRING_TOKEN(0x001F)
+ - form:
+ component:
+ - label:
+ number: 4120
+ - label:
+ number: 65535
+ formid: 4120
+ title: STRING_TOKEN(0x002E)
+ - form:
+ component:
+ - label:
+ number: 4108
+ - label:
+ number: 65535
+ formid: 4108
+ title: STRING_TOKEN(0x000B)
+ - form:
+ component:
+ - label:
+ number: 4109
+ - label:
+ number: 65535
+ formid: 4109
+ title: STRING_TOKEN(0x000B)
+ - form:
+ component:
+ - label:
+ number: 4111
+ - label:
+ number: 65535
+ formid: 4111
+ title: STRING_TOKEN(0x0022)
+ - form:
+ component:
+ - label:
+ number: 4112
+ - label:
+ number: 65535
+ formid: 4112
+ title: STRING_TOKEN(0x0024)
+ - form:
+ component:
+ - label:
+ number: 4105
+ - label:
+ number: 65535
+ formid: 4105
+ title: STRING_TOKEN(0x0017)
+ - form:
+ component:
+ - label:
+ number: 4106
+ - label:
+ number: 65535
+ formid: 4106
+ title: STRING_TOKEN(0x0019)
+ - form:
+ component:
+ - label:
+ number: 4107
+ - label:
+ number: 65535
+ formid: 4107
+ title: STRING_TOKEN(0x001B)
+ guid: '{0x642237c7, 0x35d4, 0x472d, {0x83, 0x65, 0x12, 0xe0, 0xcc, 0xf2, 0x7a, 0x22}}'
+ help: STRING_TOKEN(0x0007)
+ title: STRING_TOKEN(0x0005)
+include:
+- FormGuid.h
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/Makefile b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/Makefile
new file mode 100644
index 000000000000..334036a25d84
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/Makefile
@@ -0,0 +1,356 @@
+#
+# DO NOT EDIT
+# This file is auto-generated by build utility
+#
+# Module Name:
+#
+# Makefile
+#
+# Abstract:
+#
+# Auto-generated makefile for building modules, libraries or platform
+#
+
+
+#
+# Platform Macro Definition
+#
+PLATFORM_NAME = Ovmf
+PLATFORM_GUID = 5a9e7754-d81b-49ea-85ad-69eaa7b1539b
+PLATFORM_VERSION = 0.1
+PLATFORM_RELATIVE_DIR = OvmfPkg
+PLATFORM_DIR = c:\users\mliang2x\workspace\edk2\OvmfPkg
+PLATFORM_OUTPUT_DIR = Build\Ovmf3264
+
+#
+# Module Macro Definition
+#
+MODULE_NAME = BootMaintenanceManagerUiLib
+MODULE_GUID = CA9E4824-4198-4715-AA22-E2935E703A07
+MODULE_NAME_GUID = BootMaintenanceManagerUiLib
+MODULE_VERSION = 1.0
+MODULE_TYPE = DXE_DRIVER
+MODULE_FILE = BootMaintenanceManagerUiLib.inf
+MODULE_FILE_BASE_NAME = BootMaintenanceManagerUiLib
+BASE_NAME = $(MODULE_NAME)
+MODULE_RELATIVE_DIR = MdeModulePkg\Library\BootMaintenanceManagerUiLib
+PACKAGE_RELATIVE_DIR = Library\BootMaintenanceManagerUiLib
+MODULE_DIR = c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib
+FFS_OUTPUT_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\FV\Ffs\CA9E4824-4198-4715-AA22-E2935E703A07BootMaintenanceManagerUiLib
+
+MODULE_ENTRY_POINT = _ModuleEntryPoint
+ARCH_ENTRY_POINT = _ModuleEntryPoint
+IMAGE_ENTRY_POINT = _ModuleEntryPoint
+
+INF_VERSION = 0x00010005
+BASE_NAME = BootMaintenanceManagerUiLib
+MODULE_UNI_FILE = BootMaintenanceManagerUiLib.uni
+FILE_GUID = CA9E4824-4198-4715-AA22-E2935E703A07
+MODULE_TYPE = DXE_DRIVER
+VERSION_STRING = 1.0
+
+#
+# Build Configuration Macro Definition
+#
+ARCH = X64
+TOOLCHAIN = VS2015x86
+TOOLCHAIN_TAG = VS2015x86
+TARGET = DEBUG
+
+#
+# Build Directory Macro Definition
+#
+# PLATFORM_BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86
+BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86
+BIN_DIR = $(BUILD_DIR)\X64
+LIB_DIR = $(BIN_DIR)
+MODULE_BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib
+OUTPUT_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT
+DEBUG_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\DEBUG
+DEST_DIR_OUTPUT = $(OUTPUT_DIR)
+DEST_DIR_DEBUG = $(DEBUG_DIR)
+
+#
+# Shell Command Macro
+#
+CP = copy /y
+MV = move /y
+RM = del /f /q
+MD = mkdir
+RD = rmdir /s /q
+
+
+#
+# Tools definitions specific to this module
+#
+APP_FLAGS = /nologo /E /TC
+APP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASL_FLAGS =
+ASL_OUTFLAGS = -p
+ASL = C:\ASL\iasl.exe
+
+ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable
+ASLCC = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE
+ASLDLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\link.exe
+
+ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h
+ASLPP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+ASM = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\ml64.exe
+
+ASM16 = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\ml.exe
+
+ASMLINK_FLAGS = /nologo /tiny
+ASMLINK = C:\WINDDK\3790.1830\bin\bin16\link16.exe
+
+BROTLI_GUID = 3D532050-5CDA-4FD0-879E-0F7F630D5AFB
+BROTLI = BrotliCompress
+
+CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /D DISABLE_NEW_DEPRECATED_INTERFACES /D ENABLE_MD5_DEPRECATED_INTERFACES
+CC = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+CRC32_GUID = FC1BCDB0-7D31-49AA-936A-A4600D9DD083
+CRC32 = GenCrc32
+
+DEPS_FLAGS = /showIncludes
+
+DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+DLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\link.exe
+
+DLINK2_FLAGS =
+
+DTC_FLAGS = -H epapr
+DTC = dtc
+
+DTCPP = cpp
+
+GENFW_FLAGS =
+GENFW = GenFw
+
+LZMA_GUID = EE4E5898-3914-4259-9D6E-DC7BD79403CF
+LZMA = LzmaCompress
+
+LZMAF86_GUID = D42AE6BD-1352-4bfb-909A-CA72A6EAE889
+LZMAF86 = LzmaF86Compress
+
+MAKE = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\nmake.exe
+
+NASM_FLAGS = -Ox -f win64 -g
+NASM = C:\nasm\nasm
+
+NASMB_FLAGS = -f bin
+
+OBJCOPY_ADDDEBUGFLAG = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_NAME).debug
+OBJCOPY_FLAGS = objcopy not needed for
+OBJCOPY = echo
+OBJCOPY_STRIPFLAG = --strip-unneeded -R .eh_frame
+
+OPTROM_FLAGS = -e
+OPTROM = EfiRom
+
+PKCS7SIGN_GUID = 4AAFD29D-68DF-49EE-8AA9-347D375665A7
+PKCS7SIGN = Pkcs7Sign
+
+PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+PP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+PYVFR = PyVfrCompile
+
+RC = c:\Program Files (x86)\Windows Kits\8.1\bin\x64\rc.exe
+
+RSA2048SHA256SIGN_GUID = A7717414-C616-4977-9420-844712A735BF
+RSA2048SHA256SIGN = Rsa2048Sha256Sign
+
+SLINK_FLAGS = /NOLOGO /LTCG
+SLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\lib.exe
+
+SYMRENAME_FLAGS = Symbol renaming not needed for
+SYMRENAME = echo
+
+TIANO_GUID = A31280AD-481E-41B6-95E8-127F4C984779
+TIANO = TianoCompress
+
+VFR_FLAGS = -l -n
+VFR = VfrCompile
+
+VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+VFRPP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+VPDTOOL_GUID = 8C3D856A-9BE6-468E-850A-24F7A8D38E08
+VPDTOOL = BPDG
+
+cc_resp_10 = @c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\cc_resp_10.txt
+
+MAKE_FILE = $(MODULE_BUILD_DIR)\Makefile
+
+#
+# Build Macro
+#
+OBJECT_FILES = \
+ $(OUTPUT_DIR)\AutoGen.obj \
+ $(OUTPUT_DIR)\BmLib.obj \
+ $(OUTPUT_DIR)\BootMaintenance.obj \
+ $(OUTPUT_DIR)\BootMaintenanceManager.obj \
+ $(OUTPUT_DIR)\BootMaintenanceManagerCustomizedUi.obj \
+ $(OUTPUT_DIR)\BootMaintenanceManagerCustomizedUiSupport.obj \
+ $(OUTPUT_DIR)\BootOption.obj \
+ $(OUTPUT_DIR)\ConsoleOption.obj \
+ $(OUTPUT_DIR)\Data.obj \
+ $(OUTPUT_DIR)\UpdatePage.obj \
+ $(OUTPUT_DIR)\Variable.obj
+
+INC = \
+ /I$(WORKSPACE)\MdeModulePkg\Library\BootMaintenanceManagerUiLib \
+ /I$(DEBUG_DIR) \
+ /I$(WORKSPACE)\MdePkg \
+ /I$(WORKSPACE)\MdePkg\Include \
+ /I$(WORKSPACE)\MdePkg\Test\UnitTest\Include \
+ /I$(WORKSPACE)\MdePkg\Include\X64 \
+ /I$(WORKSPACE)\MdeModulePkg \
+ /I$(WORKSPACE)\MdeModulePkg\Include \
+ /I$(WORKSPACE)\MdeModulePkg\Library\BrotliCustomDecompressLib\brotli\c\include
+
+OBJECT_FILES_LIST = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\object_files.lst
+OBJLIST_0 = $(OUTPUT_DIR)\ConsoleOption.obj $(OUTPUT_DIR)\UpdatePage.obj $(OUTPUT_DIR)\AutoGen.obj $(OUTPUT_DIR)\Variable.obj $(OUTPUT_DIR)\BootOption.obj $(OUTPUT_DIR)\Data.obj $(OUTPUT_DIR)\BootMaintenanceManagerCustomizedUiSupport.obj $(OUTPUT_DIR)\BmLib.obj $(OUTPUT_DIR)\BootMaintenanceManager.obj $(OUTPUT_DIR)\BootMaintenance.obj $(OUTPUT_DIR)\BootMaintenanceManagerCustomizedUi.obj
+
+
+#
+# Overridable Target Macro Definitions
+#
+FORCE_REBUILD = force_build
+INIT_TARGET = init
+PCH_TARGET =
+BC_TARGET =
+CODA_TARGET = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\BootMaintenanceManagerUiLib.lib \
+
+
+#
+# Default target, which will build dependent libraries in addition to source files
+#
+
+all: mbuild
+
+
+#
+# Target used when called from platform makefile, which will bypass the build of dependent libraries
+#
+
+pbuild: $(INIT_TARGET) $(BC_TARGET) $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# ModuleTarget
+#
+
+mbuild: $(INIT_TARGET) $(BC_TARGET) gen_libs $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# Build Target used in multi-thread build mode, which will bypass the init and gen_libs targets
+#
+
+tbuild: $(BC_TARGET) $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# Phony target which is used to force executing commands for a target
+#
+force_build:
+ -@
+
+#
+# Target to update the FD
+#
+
+fds: mbuild gen_fds
+
+#
+# Initialization target: print build information and create necessary directories
+#
+init: info dirs
+
+info:
+ -@echo Building ... $(MODULE_DIR)\$(MODULE_FILE) [$(ARCH)]
+
+dirs:
+ -@if not exist $(DEBUG_DIR) $(MD) $(DEBUG_DIR)
+ -@if not exist $(OUTPUT_DIR) $(MD) $(OUTPUT_DIR)
+
+
+strdefs:
+ -@$(CP) $(DEBUG_DIR)\AutoGen.h $(DEBUG_DIR)\$(MODULE_NAME)StrDefs.h
+
+#
+# GenLibsTarget
+#
+gen_libs:
+ @cd $(MODULE_BUILD_DIR)
+
+#
+# Build Flash Device Image
+#
+gen_fds:
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BUILD_DIR)\Makefile fds
+ @cd $(MODULE_BUILD_DIR)
+
+!INCLUDE $(MODULE_BUILD_DIR)\dependency
+!INCLUDE $(MODULE_BUILD_DIR)\deps_target
+
+#
+# Individual Object Build Targets
+#
+$(DEBUG_DIR)\BootMaintenanceManager.c : $(MAKE_FILE)
+$(DEBUG_DIR)\BootMaintenanceManager.c : $(DEBUG_DIR)\AutoGen.h
+$(DEBUG_DIR)\BootMaintenanceManager.c : $(DEBUG_DIR)\BootMaintenanceManagerUiLibStrDefs.h
+$(DEBUG_DIR)\BootMaintenanceManager.c : $(WORKSPACE)\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManager.vfr
+ "$(VFRPP)" $(DEPS_FLAGS) $(VFRPP_FLAGS) $(INC) c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManager.vfr > $(OUTPUT_DIR)\BootMaintenanceManager.i
+ "$(VFR)" $(VFR_FLAGS) --string-db $(OUTPUT_DIR)\$(MODULE_NAME)StrDefs.hpk --output-directory c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\DEBUG\. $(OUTPUT_DIR)\BootMaintenanceManager.i
+ "$(PYVFR)" c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManager.vfr -i $(INC) -m $(MODULE_NAME) -o $(OUTPUT_DIR) --vfr
+
+$(OBJLIST_0): \
+ $(MAKE_FILE) \
+ $(WORKSPACE)\MdeModulePkg\Library\BootMaintenanceManagerUiLib\UpdatePage.c \
+ $(DEBUG_DIR)\AutoGen.h \
+ $(DEBUG_DIR)\BootMaintenanceManagerUiLibStrDefs.h \
+ $(WORKSPACE)\MdeModulePkg\Library\BootMaintenanceManagerUiLib\Variable.c \
+ $(DEBUG_DIR)\BootMaintenanceManager.c \
+ $(WORKSPACE)\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootOption.c \
+ $(WORKSPACE)\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerCustomizedUi.c \
+ $(WORKSPACE)\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenance.c \
+ $(DEBUG_DIR)\AutoGen.c \
+ $(WORKSPACE)\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BmLib.c \
+ $(WORKSPACE)\MdeModulePkg\Library\BootMaintenanceManagerUiLib\ConsoleOption.c \
+ $(WORKSPACE)\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerCustomizedUiSupport.c \
+ $(WORKSPACE)\MdeModulePkg\Library\BootMaintenanceManagerUiLib\Data.c
+ "$(CC)" /Foc:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\.\ $(DEPS_FLAGS) $(CC_FLAGS) $(INC) $(cc_resp_10)
+
+$(OUTPUT_DIR)\BootMaintenanceManagerUiLib.lib : $(OBJECT_FILES)
+$(OUTPUT_DIR)\BootMaintenanceManagerUiLib.lib : $(OBJECT_FILES_LIST)
+ "$(SLINK)" $(SLINK_FLAGS) /OUT:c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\BootMaintenanceManagerUiLib.lib @$(OBJECT_FILES_LIST)
+
+
+
+#
+# clean all intermediate files
+#
+clean:
+ if exist $(OUTPUT_DIR) $(RD) $(OUTPUT_DIR)
+ $(RM) AutoGenTimeStamp
+
+#
+# clean all generated files
+#
+cleanall:
+ if exist $(DEBUG_DIR) $(RD) $(DEBUG_DIR)
+ if exist $(OUTPUT_DIR) $(RD) $(OUTPUT_DIR)
+ $(RM) *.pdb *.idb > NUL 2>&1
+ $(RM) $(BIN_DIR)\$(MODULE_NAME).efi
+ $(RM) AutoGenTimeStamp
+
+#
+# clean all dependent libraries built
+#
+cleanlib:
+ @cd $(MODULE_BUILD_DIR)
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/AutoGen.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/AutoGen.c.deps
new file mode 100644
index 000000000000..d596cbb12286
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/AutoGen.c.deps
@@ -0,0 +1,40 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\AutoGen.c: \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmaintenancemanageruilib\bootmaintenancemanageruilib\debug\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmaintenancemanageruilib\bootmaintenancemanageruilib\debug\BootMaintenanceManagerUiLibStrDefs.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BmLib.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BmLib.c.deps
new file mode 100644
index 000000000000..5f680bf59f67
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BmLib.c.deps
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\BmLib.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmaintenancemanageruilib\bootmaintenancemanageruilib\debug\BootMaintenanceManagerUiLibStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManager.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\FormGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/TtyTerm.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/FileSystemVolumeLabelInfo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/GlobalVariable.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/HiiBootMaintenanceFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/LoadFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SerialIo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePathToText.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx2.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiBootManagerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverHealth.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/SortLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/FileExplorerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FileExplorer.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManagerCustomizedUi.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenance.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenance.c.deps
new file mode 100644
index 000000000000..3b65f173c582
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenance.c.deps
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\BootMaintenance.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmaintenancemanageruilib\bootmaintenancemanageruilib\debug\BootMaintenanceManagerUiLibStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManager.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\FormGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/TtyTerm.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/FileSystemVolumeLabelInfo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/GlobalVariable.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/HiiBootMaintenanceFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/LoadFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SerialIo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePathToText.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx2.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiBootManagerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverHealth.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/SortLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/FileExplorerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FileExplorer.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManagerCustomizedUi.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManager.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManager.c.deps
new file mode 100644
index 000000000000..ae2245b78afb
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManager.c.deps
@@ -0,0 +1,40 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\BootMaintenanceManager.obj: \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmaintenancemanageruilib\bootmaintenancemanageruilib\debug\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmaintenancemanageruilib\bootmaintenancemanageruilib\debug\BootMaintenanceManagerUiLibStrDefs.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManager.i b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManager.i
new file mode 100644
index 000000000000..31aafa40d287
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManager.i
@@ -0,0 +1,739 @@
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Library\\BootMaintenanceManagerUiLib\\BootMaintenanceManager.vfr"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\BootMaintenanceManagerUiLib\\BootMaintenanceManagerUiLib\\DEBUG\\BootMaintenanceManagerUiLibStrDefs.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern unsigned char BootMaintenanceManagerUiLibStrings[];
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 176 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\BootMaintenanceManagerUiLib\\BootMaintenanceManagerUiLib\\DEBUG\\BootMaintenanceManagerUiLibStrDefs.h"
+
+#line 178 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\BootMaintenanceManagerUiLib\\BootMaintenanceManagerUiLib\\DEBUG\\BootMaintenanceManagerUiLibStrDefs.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Library\\BootMaintenanceManagerUiLib\\BootMaintenanceManager.vfr"
+
+
+
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\mdemodulepkg\\library\\bootmaintenancemanageruilib\\FormGuid.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct {
+
+
+
+
+ UINT16 BootTimeOut;
+ UINT32 BootNext;
+
+
+
+
+ UINT8 COM1BaudRate;
+ UINT8 COM1DataRate;
+ UINT8 COM1StopBits;
+ UINT8 COM1Parity;
+ UINT8 COM1TerminalType;
+
+
+
+
+ UINT8 COM2BaudRate;
+ UINT8 COM2DataRate;
+ UINT8 COM2StopBits;
+ UINT8 COM2Parity;
+ UINT8 COM2TerminalType;
+
+
+
+
+ UINT16 DriverAddHandleDesc[100];
+ UINT16 DriverAddHandleOptionalData[100];
+ UINT8 DriverAddActive;
+ UINT8 DriverAddForceReconnect;
+
+
+
+
+ UINT8 ConsoleInputCOM1;
+ UINT8 ConsoleInputCOM2;
+ UINT8 ConsoleOutputCOM1;
+ UINT8 ConsoleOutputCOM2;
+ UINT8 ConsoleErrorCOM1;
+ UINT8 ConsoleErrorCOM2;
+
+
+
+
+ UINT8 ConsoleCheck[100];
+
+
+
+
+ UINT8 ConsoleInCheck[100];
+ UINT8 ConsoleOutCheck[100];
+ UINT8 ConsoleErrCheck[100];
+
+
+
+
+
+
+ UINT32 BootOptionOrder[100];
+ UINT32 DriverOptionOrder[100];
+
+
+
+ BOOLEAN BootOptionDel[100];
+ BOOLEAN DriverOptionDel[100];
+ BOOLEAN BootOptionDelMark[100];
+ BOOLEAN DriverOptionDelMark[100];
+
+
+
+
+ UINT8 COMBaudRate[100];
+ UINT8 COMDataRate[100];
+ UINT8 COMStopBits[100];
+ UINT8 COMParity[100];
+ UINT8 COMTerminalType[100];
+ UINT8 COMFlowControl[100];
+
+
+
+
+
+
+
+ UINT8 DisableMap[32];
+
+
+
+
+ UINT16 ConsoleOutMode;
+
+
+
+
+
+ UINT16 BootDescriptionData[100];
+ UINT16 BootOptionalData[127];
+ UINT16 DriverDescriptionData[100];
+ UINT16 DriverOptionalData[127];
+ BOOLEAN BootOptionChanged;
+ BOOLEAN DriverOptionChanged;
+ UINT8 Active;
+ UINT8 ForceReconnect;
+} BMM_FAKE_NV_DATA;
+
+#line 205 "c:\\users\\mliang2x\\workspace\\edk2\\mdemodulepkg\\library\\bootmaintenancemanageruilib\\FormGuid.h"
+#line 10 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Library\\BootMaintenanceManagerUiLib\\BootMaintenanceManager.vfr"
+
+formset
+ guid = { 0x642237c7, 0x35d4, 0x472d, {0x83, 0x65, 0x12, 0xe0, 0xcc, 0xf2, 0x7a, 0x22} },
+ title = STRING_TOKEN(0x0005),
+ help = STRING_TOKEN(0x0007),
+ classguid = { 0xe58809f8, 0xfbc1, 0x48e2, { 0x88, 0x3a, 0xa3, 0x0f, 0xdc, 0x4b, 0x44, 0x1e } },
+
+ varstore BMM_FAKE_NV_DATA,
+ varid = 0x1000,
+ name = BmmData,
+ guid = { 0x642237c7, 0x35d4, 0x472d, {0x83, 0x65, 0x12, 0xe0, 0xcc, 0xf2, 0x7a, 0x22} };
+
+ form formid = 0x1001,
+ title = STRING_TOKEN(0x0005);
+
+
+
+
+ suppressif TRUE;
+ text
+ help = STRING_TOKEN(0x0003),
+ text = STRING_TOKEN(0x0003),
+ flags = INTERACTIVE,
+ key = 0x1117;
+ endif;
+
+ label 0xfffc;
+
+
+
+
+ label 0xfffd;
+
+ endform;
+
+ form formid = 0x1014,
+ title = STRING_TOKEN(0x0006);
+
+ goto 0x1001,
+ prompt = STRING_TOKEN(0x005D),
+ help = STRING_TOKEN(0x005D);
+
+
+
+ goto 0x1014,
+ prompt = STRING_TOKEN(0x000B),
+ help = STRING_TOKEN(0x000C),
+ flags = INTERACTIVE,
+ key = 0x1002;
+
+ goto 0x1003,
+ prompt = STRING_TOKEN(0x000D),
+ help = STRING_TOKEN(0x000E),
+ flags = INTERACTIVE,
+ key = 0x1003;
+
+ goto 0x1004,
+ prompt = STRING_TOKEN(0x000F),
+ help = STRING_TOKEN(0x000E),
+ flags = INTERACTIVE,
+ key = 0x1004;
+ endform;
+
+ form formid = 0x1015,
+ title = STRING_TOKEN(0x0009);
+
+ goto 0x1001,
+ prompt = STRING_TOKEN(0x005D),
+ help = STRING_TOKEN(0x005D);
+
+
+
+
+ goto 0x1005,
+ prompt = STRING_TOKEN(0x0010),
+ help = STRING_TOKEN(0x0011),
+ flags = INTERACTIVE,
+ key = 0x1005;
+
+ goto 0x1006,
+ prompt = STRING_TOKEN(0x0012),
+ help = STRING_TOKEN(0x0014),
+ flags = INTERACTIVE,
+ key = 0x1006;
+
+ goto 0x1007,
+ prompt = STRING_TOKEN(0x0013),
+ help = STRING_TOKEN(0x0014),
+ flags = INTERACTIVE,
+ key = 0x1007;
+ endform;
+
+ form formid = 0x1002,
+ title = STRING_TOKEN(0x0023);
+
+ label 0x1002;
+ label 0xffff;
+
+ subtitle text = STRING_TOKEN(0x0002);
+
+ string varid = BmmData.BootDescriptionData,
+ questionid = 0x110F,
+ prompt = STRING_TOKEN(0x0029),
+ help = STRING_TOKEN(0x0002),
+ flags = INTERACTIVE,
+ minsize = 6,
+ maxsize = 75,
+ endstring;
+
+ string varid = BmmData.BootOptionalData,
+ questionid = 0x1110,
+ prompt = STRING_TOKEN(0x0060),
+ help = STRING_TOKEN(0x0002),
+ flags = INTERACTIVE,
+ minsize = 0,
+ maxsize = 120,
+ endstring;
+
+ subtitle text = STRING_TOKEN(0x0002);
+
+ text
+ help = STRING_TOKEN(0x002B),
+ text = STRING_TOKEN(0x002B),
+ flags = INTERACTIVE,
+ key = 0x1113;
+
+ text
+ help = STRING_TOKEN(0x002C),
+ text = STRING_TOKEN(0x002C),
+ flags = INTERACTIVE,
+ key = 0x1114;
+
+ endform;
+
+ form formid = 0x1003,
+ title = STRING_TOKEN(0x000D);
+
+ label 0x1003;
+ label 0xffff;
+ endform;
+
+ form formid = 0x1004,
+ title = STRING_TOKEN(0x000F);
+
+ label 0x1004;
+ label 0xffff;
+
+ endform;
+
+ form formid = 0x1005,
+ title = STRING_TOKEN(0x0010);
+
+ goto 0x1001,
+ prompt = STRING_TOKEN(0x005D),
+ help = STRING_TOKEN(0x005D);
+
+
+
+ goto 0x1015,
+ prompt = STRING_TOKEN(0x0021),
+ help = STRING_TOKEN(0x0021),
+ flags = INTERACTIVE,
+ key = 0x100E;
+
+ endform;
+
+ form formid = 0x100E,
+ title = STRING_TOKEN(0x0024);
+
+ label 0x100E;
+ label 0xffff;
+
+ subtitle text = STRING_TOKEN(0x0002);
+
+ string varid = BmmData.DriverDescriptionData,
+ questionid = 0x1111,
+ prompt = STRING_TOKEN(0x0029),
+ help = STRING_TOKEN(0x0002),
+ flags = INTERACTIVE,
+ minsize = 6,
+ maxsize = 75,
+ endstring;
+
+ string varid = BmmData.DriverOptionalData,
+ questionid = 0x1112,
+ prompt = STRING_TOKEN(0x0060),
+ help = STRING_TOKEN(0x0002),
+ flags = INTERACTIVE,
+ minsize = 0,
+ maxsize = 120,
+ endstring;
+
+ checkbox varid = BmmData.ForceReconnect,
+ prompt = STRING_TOKEN(0x002A),
+ help = STRING_TOKEN(0x002A),
+ flags = CHECKBOX_DEFAULT,
+ key = 0,
+ endcheckbox;
+
+ subtitle text = STRING_TOKEN(0x0002);
+
+ text
+ help = STRING_TOKEN(0x002B),
+ text = STRING_TOKEN(0x002B),
+ flags = INTERACTIVE,
+ key = 0x1115;
+
+ text
+ help = STRING_TOKEN(0x002C),
+ text = STRING_TOKEN(0x002C),
+ flags = INTERACTIVE,
+ key = 0x1116;
+ endform;
+
+ form formid = 0x1006,
+ title = STRING_TOKEN(0x0012);
+
+ label 0x1006;
+ label 0xffff;
+
+ endform;
+
+ form formid = 0x1007,
+ title = STRING_TOKEN(0x0013);
+
+ label 0x1007;
+ label 0xffff;
+
+ endform;
+
+ form formid = 0x1008,
+ title = STRING_TOKEN(0x0015);
+
+ goto 0x1001,
+ prompt = STRING_TOKEN(0x005D),
+ help = STRING_TOKEN(0x005D);
+
+
+
+ goto 0x1009,
+ prompt = STRING_TOKEN(0x0017),
+ help = STRING_TOKEN(0x0018),
+ flags = INTERACTIVE,
+ key = 0x1009;
+
+ goto 0x100A,
+ prompt = STRING_TOKEN(0x0019),
+ help = STRING_TOKEN(0x001A),
+ flags = INTERACTIVE,
+ key = 0x100A;
+
+ goto 0x100B,
+ prompt = STRING_TOKEN(0x001B),
+ help = STRING_TOKEN(0x001C),
+ flags = INTERACTIVE,
+ key = 0x100B;
+
+ goto 0x1021,
+ prompt = STRING_TOKEN(0x001D),
+ help = STRING_TOKEN(0x001E),
+ flags = INTERACTIVE,
+ key = 0x1021;
+
+ goto 0x1017,
+ prompt = STRING_TOKEN(0x001F),
+ help = STRING_TOKEN(0x0020),
+ flags = INTERACTIVE,
+ key = 0x1017;
+ endform;
+
+ form formid = 0x1021,
+ title = STRING_TOKEN(0x001D);
+
+ label 0x1021;
+ label 0xffff;
+ endform;
+
+ form formid = 0x1017,
+ title = STRING_TOKEN(0x001F);
+
+ label 0x1017;
+ label 0xffff;
+ endform;
+
+ form formid = 0x1018,
+ title = STRING_TOKEN(0x002E);
+
+ label 0x1018;
+ label 0xffff;
+ endform;
+
+ form formid = 0x100C,
+ title = STRING_TOKEN(0x000B);
+
+ label 0x100C;
+ label 0xffff;
+ endform;
+
+ form formid = 0x100D,
+ title = STRING_TOKEN(0x000B);
+
+ label 0x100D;
+ label 0xffff;
+ endform;
+
+ form formid = 0x100F,
+ title = STRING_TOKEN(0x0022);
+
+ label 0x100F;
+ label 0xffff;
+ endform;
+
+ form formid = 0x1010,
+ title = STRING_TOKEN(0x0024);
+
+ label 0x1010;
+ label 0xffff;
+
+ endform;
+
+ form formid = 0x1009,
+ title = STRING_TOKEN(0x0017);
+
+ label 0x1009;
+ label 0xffff;
+
+ endform;
+
+ form formid = 0x100A,
+ title = STRING_TOKEN(0x0019);
+
+ label 0x100A;
+ label 0xffff;
+
+ endform;
+
+ form formid = 0x100B,
+ title = STRING_TOKEN(0x001B);
+
+ label 0x100B;
+ label 0xffff;
+
+ endform;
+
+endformset;
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManagerCustomizedUi.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManagerCustomizedUi.c.deps
new file mode 100644
index 000000000000..a2990aea2ca3
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManagerCustomizedUi.c.deps
@@ -0,0 +1,45 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\BootMaintenanceManagerCustomizedUi.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmaintenancemanageruilib\bootmaintenancemanageruilib\debug\BootMaintenanceManagerUiLibStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManagerCustomizedUiSupport.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManagerCustomizedUiSupport.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManagerCustomizedUiSupport.c.deps
new file mode 100644
index 000000000000..d8a37e0247ee
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManagerCustomizedUiSupport.c.deps
@@ -0,0 +1,92 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\BootMaintenanceManagerCustomizedUiSupport.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmaintenancemanageruilib\bootmaintenancemanageruilib\debug\BootMaintenanceManagerUiLibStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManager.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\FormGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/TtyTerm.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/FileSystemVolumeLabelInfo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/GlobalVariable.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/HiiBootMaintenanceFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/LoadFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SerialIo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePathToText.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx2.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiBootManagerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverHealth.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/SortLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/FileExplorerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FileExplorer.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManagerCustomizedUi.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManagerCustomizedUiSupport.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManagerUiLib.lib b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManagerUiLib.lib
new file mode 100644
index 0000000000000000000000000000000000000000..21a2976a11f2413d61c786b2e37644a3648f4b7a
GIT binary patch
literal 506454
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	Gd?@%l3_sd)%FUTu@QkdW
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
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManagerUiLibStrDefs.hpk b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManagerUiLibStrDefs.hpk
new file mode 100644
index 0000000000000000000000000000000000000000..30d1f8ab4f4a537d847ce37329cabfcb7a5f7167
GIT binary patch
literal 7098
zcmeH~+fEx-6oyx&-u8|Mm<K3P93UjUBLTNaU`N=b=@s%ZK?Q8thJ<&mdfV6N_pd$M
zduA9MBBfF<CdiY0Sf{-X|K97bpX|q7Gt=*D|9-H^&GvcEwvOz^KH8OC+R{G3wUz19
zv95LONW)X#TJjZPW<6WkBA>DS#%BDj*f_O;FRyF@>44veQCQdfBeR7hCYG+vVZB7a
z4eHtIV}mTo_)V~Cf{aLz*=P2y_{&%u*q<)_9_CwLnfdpVuO<~ww(1l?V-!s7-qqh@
zf{t>{Y{*_X<g9A(p*!Oa!Ucp64pf$!<cv#f52PMo${2a+97V}EDiR!7+m0bTz^=K6
zafEA<%VuuYnV(~3ckB(_tr>iB^T5B4syT#FQII1xSo8ZjFheJl9;K9yaES-6S(R^P
znFQV|)^CZmvP5}Nmc4*D&y{%2$K70T#xpWDxT8!S4q0BS__KV_jihC}tE2_nH+e-F
zpYfa67krX3%>5F|VU`D~XsH)TIj5F*GiB<CJXI}4<_DSewnA_W`J4)p5pu#EVG4EI
zV-_nAvjh|=d#ZXAu*4c19#ly|?Wv^mKh@mzW7X&ugemjJd=;;Zyjk!Uisd_dLCVIt
zf*M<bk<kw!w5o@S_lwiaszIz5@(W^K*>f`Nh3(nT%v#Je-(jS=3VUSFLVUU)xPWBE
zp8$U7?u)jpn9bRLhtE{897Q(8Wm$C1rd+60dIQ-l=RV_q)x5MF`gp+JC2LDxlXsM(
z#Wksr0V_x15U9-hNLipm_mI$~&+a@J@^z5N>>P#h3Trb`W^;ybW&I7^N}Qa%T#EHD
z8tQ6^qjjis;i0|EUWJlGx<SN&M@e^I(%wgpAa@(rs>;x$I0UFwRy^k?zi0N6%-ACz
z_82c=33WZrqa!*A60dHH8|V4VT+vZXi~L2(NE2N?g;N)#E^SBuWNn9~0D|uke1*jx
znY28FH{8CrZli3E&xEvBL^=*E*ojpoa^<l=sx}TM$RDs>zQ8lGH+n=!t)~c*L#itg
zmFUIWAY7<Q4<X7Ir-0#*fz(E@c>+r)t)~_`IugTUW$af+m8@D+DzkN2Rf*dKXT~Ee
znkAUfJyWATmcLvW0HB5_;(<~(AVLjM5e#a!BYu=*w1BrgKu=%?&z|j*r}<<DNZgH+
zmc347uM^RJTHSRBbvZkU;6;)V)Hp#a(YBI=g6iA`S(h{H_-lPj7W>LRTW+$?eEd=i
z`}(}nr-RRxjSP>ta`o0`*d^)48tA>dpv)NdD1ZTZ=d|6(6b1tNkf;a5Q>b>u%NM3T
z0iJ2_j?}(@s>4-utcCaF#zlUGRHhdo{|OM=OLXT@xABLI?Asr(_9==pE*X|i5ZQs@
zgC-x=I~VNxaf7aPoO;;O73r_o7A}_&XH>Ro9^d$-+bID|+w)ZK_yX{!?eYU^x+WgL
zFeNbs^%;5uU&Ut*<`hAu_)L>G(|reFvE&1MMVXT5U6Ep-$B2+~5n`4?ZGV4LZ#P|R
zx6f=#2N!hz!&eZ5A(=i+cL&HVf$yff^X!%*itmSFDw8go`k1D>Q|~7C6?<MGbkp6f
z-(TOkqYB+m)7>@Q9k*I2wWhlRanzPK-5qb9N|)VqcO*x6k~ZBP@0q5%Yq~q?;eXWK
F{R=?;c4+_r
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManagerUiLibUni.json b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManagerUiLibUni.json
new file mode 100644
index 000000000000..48ec0f1e86b8
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManagerUiLibUni.json
@@ -0,0 +1,156 @@
+{
+ "LanguageDef": [
+ [
+ "en-US",
+ "English"
+ ],
+ [
+ "fr-FR",
+ "Fran\u00e7ais"
+ ]
+ ],
+ "UniString": {
+ "en-US": {
+ "$LANGUAGE_NAME": "en-US",
+ "$PRINTABLE_LANGUAGE_NAME": "English",
+ "STR_NULL_STRING": " ",
+ "STR_NONE": "NONE",
+ "STR_MISSING_STRING": "Missing String",
+ "STR_FORM_MAIN_TITLE": "Boot Maintenance Manager",
+ "STR_FORM_BOOT_SETUP_TITLE": "Boot Options",
+ "STR_BOOT_MAINT_MANAGER_HELP": "This selection will take you to the Boot Maintenance Manager",
+ "STR_FORM_BOOT_SETUP_HELP": "Modify system boot options",
+ "STR_FORM_DRIVER_SETUP_TITLE": "Driver Options",
+ "STR_FORM_DRIVER_SETUP_HELP": "Modify boot driver options",
+ "STR_FORM_BOOT_ADD_TITLE": "Add Boot Option",
+ "STR_FORM_BOOT_ADD_HELP": "Add EFI Application or Removable Fs as Boot Option",
+ "STR_FORM_BOOT_DEL_TITLE": "Delete Boot Option",
+ "STR_FORM_BOOT_IMMEDIATE_HELP": "Will be valid immediately",
+ "STR_FORM_BOOT_CHG_TITLE": "Change Boot Order",
+ "STR_FORM_DRV_ADD_TITLE": "Add Driver Option",
+ "STR_FORM_DRV_ADD_HELP": "Add .EFI Driver as Driver Option",
+ "STR_FORM_DRV_DEL_TITLE": "Delete Driver Option",
+ "STR_FORM_DRV_CHG_TITLE": "Change Driver Order",
+ "STR_FORM_NEXT_BOOT_HELP": "Will be valid on next boot",
+ "STR_FORM_BOOT_NEXT_TITLE": "Set Boot Next Value",
+ "STR_FORM_BOOT_NEXT_HELP": "Modify next boot behavior",
+ "STR_FORM_TIME_OUT_TITLE": "Set Time Out Value",
+ "STR_FORM_TIME_OUT_HELP": "Modify automatic boot time-out value",
+ "STR_FORM_MEMORY_CHECK_TITLE": "Set Memory Check Type",
+ "STR_FORM_MEMORY_CHECK_HELP": "Modify the type of memory checking",
+ "STR_FORM_UEFI_OPTIMIZED_BOOT_TITLE": "UEFI Optimized Boot",
+ "STR_FORM_UEFI_OPTIMIZED_BOOT_HELP": "Modify the UEFI Optimized Boot setting",
+ "UEFI_OPTIMIZED_BOOT_DESCRIPTION": "UEFI Optimized Boot",
+ "UEFI_OPTIMIZED_BOOT_HELP": "Check to enable UEFI Optimized Boot",
+ "STR_FORM_CON_MAIN_TITLE": "Console Options",
+ "STR_FORM_CON_MAIN_HELP": "Modify system console options",
+ "STR_FORM_CON_IN_TITLE": "Console Input Device Select",
+ "STR_FORM_CON_IN_HELP": "Enable console device as ConIn",
+ "STR_FORM_SET_FD_ORDER_TITLE": "Set Legacy Floppy Drive Order",
+ "STR_FORM_SET_HD_ORDER_TITLE": "Set Legacy HardDisk Drive Order",
+ "STR_FORM_SET_CD_ORDER_TITLE": "Set Legacy CD-ROM Drive Order",
+ "STR_FORM_SET_NET_ORDER_TITLE": "Set Legacy NET Drive Order",
+ "STR_FORM_SET_BEV_ORDER_TITLE": "Set Legacy BEV Drive Order",
+ "STR_FORM_GOTO_SETTING": "Go Back To Setting Page",
+ "STR_COM1": "COM1",
+ "STR_COM2": "COM2",
+ "STR_COM_AS_CONSOLE_OPTION": "Select this COM port as Console",
+ "STR_FORM_CON_OUT_TITLE": "Console Output Device Select",
+ "STR_FORM_CON_OUT_HELP": "Enable console device as ConOut",
+ "STR_FORM_STD_ERR_TITLE": "Console Standard Error Device Select",
+ "STR_FORM_STD_ERR_HELP": "Enable console device as StdErr",
+ "STR_FORM_MODE_TITLE": "Console Output Mode Select",
+ "STR_FORM_MODE_HELP": "Select Console Output Mode: 80x25, 100x31, etc.",
+ "STR_FORM_COM_TITLE": "COM Attribute Setup Page",
+ "STR_FORM_COM_HELP": "Setup ComPort BaudRate, DataBits, StopBits, Parity and TerminalType",
+ "STR_FORM_DRV_ADD_FILE_TITLE": "Add Driver Option Using File",
+ "STR_FORM_DRV_ADD_HANDLE_TITLE": "Add Driver Option Using Handle",
+ "STR_FORM_BOOT_ADD_DESC_TITLE": "Modify Boot Option Description",
+ "STR_FORM_DRV_ADD_DESC_TITLE": "Modify Driver Option Description",
+ "STR_NUM_AUTO_BOOT": "Auto Boot Time-out",
+ "STR_HLP_AUTO_BOOT": "Range: 0 to 65535 seconds, 0 means no wait, 65535 means waiting for key",
+ "STR_BOOT_NEXT": "Boot Next Value",
+ "STR_BOOT_NEXT_HELP": "Next boot use this boot option",
+ "STR_LOAD_OPTION_DEVPATH": "This is the devicepath",
+ "STR_LOAD_OPTION_DESC": "Input the description",
+ "STR_LOAD_OPTION_ACTIVE": "Load Option Active",
+ "STR_LOAD_OPTION_FORCE_RECON": "Load Option Reconnect",
+ "STR_SAVE_AND_EXIT": "Commit Changes and Exit",
+ "STR_NO_SAVE_AND_EXIT": "Discard Changes and Exit",
+ "STR_CON_IN_SETUP": "Set Console Input Device",
+ "STR_CON_OUT_SETUP": "Set Console Output Device",
+ "STR_CON_ERR_SETUP": "Set Error Output Device",
+ "STR_CON_MODE_SETUP": "Set Console Output Mode",
+ "STR_CON_COM_SETUP": "Set COM Attributes",
+ "STR_COM_TERMI_TYPE": "Set COM Terminal Type",
+ "STR_COM_FLOW_CONTROL": "Set COM Flow Control",
+ "STR_COM_BAUD_RATE": "Set COM Baud Rate",
+ "STR_COM_DATA_BITS": "Set COM Data Bits",
+ "STR_COM_PARITY": "Set COM Parity",
+ "STR_COM_STOP_BITS": "Set COM Stop Bits",
+ "STR_COM_BAUD_RATE_0": "115200",
+ "STR_COM_BAUD_RATE_1": "57600",
+ "STR_COM_BAUD_RATE_2": "38400",
+ "STR_COM_BAUD_RATE_3": "19200",
+ "STR_COM_BAUD_RATE_4": "9600",
+ "STR_COM_BAUD_RATE_5": "7200",
+ "STR_COM_BAUD_RATE_6": "4800",
+ "STR_COM_BAUD_RATE_7": "3600",
+ "STR_COM_BAUD_RATE_8": "2400",
+ "STR_COM_BAUD_RATE_9": "2000",
+ "STR_COM_BAUD_RATE_10": "1800",
+ "STR_COM_BAUD_RATE_11": "1200",
+ "STR_COM_BAUD_RATE_12": "600",
+ "STR_COM_BAUD_RATE_13": "300",
+ "STR_COM_BAUD_RATE_14": "150",
+ "STR_COM_BAUD_RATE_15": "134",
+ "STR_COM_BAUD_RATE_16": "110",
+ "STR_COM_BAUD_RATE_17": "75",
+ "STR_COM_BAUD_RATE_18": "50",
+ "STR_COM_DATA_BITS_0": "5",
+ "STR_COM_DATA_BITS_1": "6",
+ "STR_COM_DATA_BITS_2": "7",
+ "STR_COM_DATA_BITS_3": "8",
+ "STR_COM_PAR_0": "None",
+ "STR_COM_PAR_1": "Even",
+ "STR_COM_PAR_2": "Odd",
+ "STR_COM_PAR_3": "Mark",
+ "STR_COM_PAR_4": "Space",
+ "STR_COM_STOP_BITS_0": "One",
+ "STR_COM_STOP_BITS_1": "One And A Half",
+ "STR_COM_STOP_BITS_2": "Two",
+ "STR_COM_TYPE_0": "PC_ANSI",
+ "STR_COM_TYPE_1": "VT_100",
+ "STR_COM_TYPE_2": "VT_100_PLUS",
+ "STR_COM_TYPE_3": "VT_UTF8",
+ "STR_COM_TYPE_4": "TTY_TERM",
+ "STR_COM_TYPE_5": "LINUX",
+ "STR_COM_TYPE_6": "XTERM_R6",
+ "STR_COM_TYPE_7": "VT_400",
+ "STR_COM_TYPE_8": "SCO",
+ "STR_RESET": "Reset System",
+ "STR_FORM_GOTO_MAIN": "Go Back To Main Page",
+ "STR_BOOT_FROM_FILE": "Boot From File",
+ "STR_BOOT_FROM_FILE_HELP": "Boot system from a file or device",
+ "STR_OPTIONAL_DATA": "Input Optional Data",
+ "STR_CHANGE_ORDER": "Change the order",
+ "STR_BOOT_LEGACY": "Boot Legacy System",
+ "STR_BOOT_LEGACY_HELP": "Supports boot from legacy FD, HD, CD, PCMCIA, USB, and Network",
+ "STR_BOOT_LEGACY_FLOPPY": "Boot From Floppy",
+ "STR_BOOT_LEGACY_HARDDRIVE": "Boot From Hard Drive",
+ "STR_BOOT_LEGACY_CDROM": "Boot From CD Rom",
+ "STR_BOOT_LEGACY_PCMCIA": "Boot From PCMCIA",
+ "STR_BOOT_LEGACY_USB": "Boot From USB Device",
+ "STR_BOOT_LEGACY_NETWORK": "Boot From Network",
+ "STR_DISABLE_LEGACY_DEVICE": "Disabled",
+ "STR_FILE_EXPLORER_TITLE": "File Explorer"
+ },
+ "fr-FR": {
+ "$LANGUAGE_NAME": "fr-FR",
+ "$PRINTABLE_LANGUAGE_NAME": "Fran\u00e7ais",
+ "STR_OUT_OF_BAND_PORT": "Out-Of-Band Mgmt Port",
+ "STR_HARDWARE_FLOW_CONTROL": "Hardware",
+ "STR_NONE_FLOW_CONTROL": "None"
+ }
+ }
+}
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootOption.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootOption.c.deps
new file mode 100644
index 000000000000..fdb91049b399
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/BootOption.c.deps
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\BootOption.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmaintenancemanageruilib\bootmaintenancemanageruilib\debug\BootMaintenanceManagerUiLibStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManager.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\FormGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/TtyTerm.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/FileSystemVolumeLabelInfo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/GlobalVariable.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/HiiBootMaintenanceFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/LoadFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SerialIo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePathToText.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx2.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiBootManagerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverHealth.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/SortLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/FileExplorerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FileExplorer.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManagerCustomizedUi.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/ConsoleOption.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/ConsoleOption.c.deps
new file mode 100644
index 000000000000..b3ee6a66bf15
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/ConsoleOption.c.deps
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\ConsoleOption.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmaintenancemanageruilib\bootmaintenancemanageruilib\debug\BootMaintenanceManagerUiLibStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManager.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\FormGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/TtyTerm.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/FileSystemVolumeLabelInfo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/GlobalVariable.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/HiiBootMaintenanceFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/LoadFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SerialIo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePathToText.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx2.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiBootManagerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverHealth.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/SortLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/FileExplorerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FileExplorer.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManagerCustomizedUi.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/Data.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/Data.c.deps
new file mode 100644
index 000000000000..1f74eb423078
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/Data.c.deps
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\Data.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmaintenancemanageruilib\bootmaintenancemanageruilib\debug\BootMaintenanceManagerUiLibStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManager.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\FormGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/TtyTerm.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/FileSystemVolumeLabelInfo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/GlobalVariable.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/HiiBootMaintenanceFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/LoadFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SerialIo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePathToText.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx2.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiBootManagerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverHealth.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/SortLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/FileExplorerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FileExplorer.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManagerCustomizedUi.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/UpdatePage.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/UpdatePage.c.deps
new file mode 100644
index 000000000000..17fec6a09b34
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/UpdatePage.c.deps
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\UpdatePage.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmaintenancemanageruilib\bootmaintenancemanageruilib\debug\BootMaintenanceManagerUiLibStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManager.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\FormGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/TtyTerm.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/FileSystemVolumeLabelInfo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/GlobalVariable.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/HiiBootMaintenanceFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/LoadFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SerialIo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePathToText.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx2.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiBootManagerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverHealth.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/SortLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/FileExplorerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FileExplorer.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManagerCustomizedUi.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/Variable.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/Variable.c.deps
new file mode 100644
index 000000000000..69a5be58b092
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/Variable.c.deps
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\Variable.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmaintenancemanageruilib\bootmaintenancemanageruilib\debug\BootMaintenanceManagerUiLibStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManager.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\FormGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/TtyTerm.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/FileSystemVolumeLabelInfo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/GlobalVariable.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/HiiBootMaintenanceFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/LoadFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SerialIo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePathToText.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx2.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiBootManagerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverHealth.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/SortLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/FileExplorerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FileExplorer.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManagerCustomizedUi.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/cc_resp_10.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/cc_resp_10.txt
new file mode 100644
index 000000000000..1e39785de265
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/cc_resp_10.txt
@@ -0,0 +1 @@
+ c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\UpdatePage.c c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\Variable.c c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\DEBUG\BootMaintenanceManager.c c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootOption.c c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerCustomizedUi.c c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenance.c c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\DEBUG\AutoGen.c c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BmLib.c c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\ConsoleOption.c c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerCustomizedUiSupport.c c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\Data.c
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/object_files.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/object_files.lst
new file mode 100644
index 000000000000..ac92d0bf8a0c
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/OUTPUT/object_files.lst
@@ -0,0 +1,11 @@
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManager.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenance.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib/OUTPUT/BootOption.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib/OUTPUT/ConsoleOption.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib/OUTPUT/Data.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib/OUTPUT/Variable.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib/OUTPUT/UpdatePage.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib/OUTPUT/BmLib.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManagerCustomizedUi.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManagerCustomizedUiSupport.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib/OUTPUT/AutoGen.obj
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/dependency b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/dependency
new file mode 100644
index 000000000000..143c6d5a5b69
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/dependency
@@ -0,0 +1,51 @@
+
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\DEBUG\BootMaintenanceManager.vfr.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\DEBUG\BootMaintenanceManager.vfr.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\AutoGen.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\AutoGen.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\BmLib.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\BmLib.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\BootMaintenance.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\BootMaintenance.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\BootMaintenanceManager.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\BootMaintenanceManager.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\BootMaintenanceManagerCustomizedUi.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\BootMaintenanceManagerCustomizedUi.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\BootMaintenanceManagerCustomizedUiSupport.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\BootMaintenanceManagerCustomizedUiSupport.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\BootOption.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\BootOption.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\ConsoleOption.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\ConsoleOption.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\Data.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\Data.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\UpdatePage.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\UpdatePage.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\Variable.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\Variable.c.deps
+!ENDIF
+
+
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/deps.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/deps.txt
new file mode 100644
index 000000000000..426e9d2d3c4b
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/deps.txt
@@ -0,0 +1,94 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\DEBUG\AutoGen.h
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\DEBUG\BootMaintenanceManagerUiLibStrDefs.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/HiiBootMaintenanceFormset.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/TtyTerm.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/FileExplorerLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/SortLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiBootManagerLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FileExplorer.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/FileSystemVolumeLabelInfo.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/GlobalVariable.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePathToText.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverHealth.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/LoadFile.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SerialIo.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmaintenancemanageruilib\bootmaintenancemanageruilib\debug\AutoGen.h
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmaintenancemanageruilib\bootmaintenancemanageruilib\debug\BootMaintenanceManagerUiLibStrDefs.h
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManager.h
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManagerCustomizedUi.h
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManagerCustomizedUiSupport.h
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\FormGuid.h
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/deps_target b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/deps_target
new file mode 100644
index 000000000000..c7b98bf430a1
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootMaintenanceManagerUiLib/deps_target
@@ -0,0 +1,94 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\DEBUG\AutoGen.h:
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\DEBUG\BootMaintenanceManagerUiLibStrDefs.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/HiiBootMaintenanceFormset.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/TtyTerm.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/FileExplorerLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/SortLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiBootManagerLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FileExplorer.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/FileSystemVolumeLabelInfo.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/GlobalVariable.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePathToText.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverHealth.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/LoadFile.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SerialIo.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h:
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmaintenancemanageruilib\bootmaintenancemanageruilib\debug\AutoGen.h:
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmaintenancemanageruilib\bootmaintenancemanageruilib\debug\BootMaintenanceManagerUiLibStrDefs.h:
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManager.h:
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManagerCustomizedUi.h:
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\BootMaintenanceManagerCustomizedUiSupport.h:
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmaintenancemanageruilib\FormGuid.h:
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/AutoGenTimeStamp b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/AutoGenTimeStamp
new file mode 100644
index 000000000000..f4d160a3f190
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/AutoGenTimeStamp
@@ -0,0 +1,7 @@
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib.inf
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\DEBUG\AutoGen.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootManagerUiLib\BootManager.c
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\DEBUG\BootManagerUiLibStrDefs.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootManagerUiLib\BootManagerVfr.Vfr
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootManagerUiLib\BootManager.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootManagerUiLib\BootManagerStrings.uni
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/BootManagerUiLib.makefile b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/BootManagerUiLib.makefile
new file mode 100644
index 000000000000..53f02f28b1e9
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/BootManagerUiLib.makefile
@@ -0,0 +1 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\Makefile
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerVfr.Vfr.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerVfr.Vfr.deps
new file mode 100644
index 000000000000..47bc6d04f4ad
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerVfr.Vfr.deps
@@ -0,0 +1,2 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\DEBUG\BootManagerVfr.c: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\DEBUG\BootManagerUiLibStrDefs.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerVfr.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerVfr.lst
new file mode 100644
index 000000000000..6a486a7d4875
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerVfr.lst
@@ -0,0 +1,214 @@
+//
+// VFR compiler version 2.01 (UEFI 2.4) Developer Build based on Revision: Unknown
+//
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Library\\BootManagerUiLib\\BootManagerVfr.Vfr"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\BootManagerUiLib\\BootManagerUiLib\\DEBUG\\BootManagerUiLibStrDefs.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern unsigned char BootManagerUiLibStrings[];
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 44 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\BootManagerUiLib\\BootManagerUiLib\\DEBUG\\BootManagerUiLibStrDefs.h"
+
+#line 46 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\BootManagerUiLib\\BootManagerUiLib\\DEBUG\\BootManagerUiLibStrDefs.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Library\\BootManagerUiLib\\BootManagerVfr.Vfr"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+formset
+>00000000: 0E A7 FE C3 7B 84 74 B9 6D 44 94 49 5A D5 41 2E 99 3B 02 00 03 00 01 F8 09 88 E5 C1 FB E2 48 88 3A A3 0F DC 4B 44 1E
+>00000027: 5C 06 00 00 00 00
+>0000002D: 5C 06 00 00 01 00
+ guid = { 0x847bc3fe, 0xb974, 0x446d, 0x94, 0x49, 0x5a, 0xd5, 0x41, 0x2e, 0x99, 0x3b },
+ title = STRING_TOKEN(0x0002),
+ help = STRING_TOKEN(0x0003),
+ classguid = { 0xe58809f8, 0xfbc1, 0x48e2, { 0x88, 0x3a, 0xa3, 0x0f, 0xdc, 0x4b, 0x44, 0x1e } },
+
+ form formid = 0x1000,
+>00000033: 01 86 00 10 02 00
+ title = STRING_TOKEN(0x0002);
+
+ subtitle text = STRING_TOKEN(0x0007);
+>00000039: 02 87 07 00 00 00 00
+>00000040: 29 02
+ subtitle text = STRING_TOKEN(0x0005);
+>00000042: 02 87 05 00 00 00 00
+>00000049: 29 02
+ subtitle text = STRING_TOKEN(0x0007);
+>0000004B: 02 87 07 00 00 00 00
+>00000052: 29 02
+
+
+
+
+ suppressif TRUE;
+>00000054: 0A 82
+>00000056: 46 02
+ text
+ help = STRING_TOKEN(0x0007 ),
+ text = STRING_TOKEN(0x0007 ),
+ flags = INTERACTIVE,
+>00000058: 0C 8F 07 00 07 00 12 12 00 00 FF FF 04 00 00
+ key = 0x1212;
+>00000067: 29 02
+ endif;
+>00000069: 29 02
+
+
+
+
+ label 0x00;
+>0000006B: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 00 00
+ label 0x01;
+>00000080: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 01 00
+
+ subtitle text = STRING_TOKEN(0x0007);
+>00000095: 02 87 07 00 00 00 00
+>0000009C: 29 02
+ subtitle text = STRING_TOKEN(0x0004);
+>0000009E: 02 87 04 00 00 00 00
+>000000A5: 29 02
+
+ endform;
+>000000A7: 29 02
+
+endformset;
+>000000A9: 29 02
+
+//
+// All Opcode Record List
+//
+>00000000: 0E A7 FE C3 7B 84 74 B9 6D 44 94 49 5A D5 41 2E 99 3B 02 00 03 00 01 F8 09 88 E5 C1 FB E2 48 88 3A A3 0F DC 4B 44 1E
+>00000027: 5C 06 00 00 00 00
+>0000002D: 5C 06 00 00 01 00
+>00000033: 01 86 00 10 02 00
+>00000039: 02 87 07 00 00 00 00
+>00000040: 29 02
+>00000042: 02 87 05 00 00 00 00
+>00000049: 29 02
+>0000004B: 02 87 07 00 00 00 00
+>00000052: 29 02
+>00000054: 0A 82
+>00000056: 46 02
+>00000058: 0C 8F 07 00 07 00 12 12 00 00 FF FF 04 00 00
+>00000067: 29 02
+>00000069: 29 02
+>0000006B: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 00 00
+>00000080: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 01 00
+>00000095: 02 87 07 00 00 00 00
+>0000009C: 29 02
+>0000009E: 02 87 04 00 00 00 00
+>000000A5: 29 02
+>000000A7: 29 02
+>000000A9: 29 02
+
+Total Size of all record is 0x000000AB
+
+
+***************************************************************
+ mPackAlign = 8
+ struct EFI_HII_REF : mAlign [16] mTotalSize [0x16]
+
+ struct EFI_HII_REF {
+ +00000000[00000000] QuestionId <UINT16>
+ +00000002[00000002] FormId <UINT16>
+ +00000004[00000004] FormSetGuid <(null)>
+ +00000020[00000014] DevicePath <EFI_STRING_ID>
+ };
+---------------------------------------------------------------
+ struct EFI_HII_TIME : mAlign [1] mTotalSize [0x3]
+
+ struct EFI_HII_TIME {
+ +00000000[00000000] Hours <UINT8>
+ +00000001[00000001] Minutes <UINT8>
+ +00000002[00000002] Seconds <UINT8>
+ };
+---------------------------------------------------------------
+ struct EFI_STRING_ID : mAlign [2] mTotalSize [0x2]
+
+ struct EFI_STRING_ID {
+ };
+---------------------------------------------------------------
+ struct EFI_HII_DATE : mAlign [2] mTotalSize [0x4]
+
+ struct EFI_HII_DATE {
+ +00000000[00000000] Year <UINT16>
+ +00000002[00000002] Month <UINT8>
+ +00000003[00000003] Day <UINT8>
+ };
+---------------------------------------------------------------
+ struct BOOLEAN : mAlign [1] mTotalSize [0x1]
+
+ struct BOOLEAN {
+ };
+---------------------------------------------------------------
+ struct UINT8 : mAlign [1] mTotalSize [0x1]
+
+ struct UINT8 {
+ };
+---------------------------------------------------------------
+ struct UINT16 : mAlign [2] mTotalSize [0x2]
+
+ struct UINT16 {
+ };
+---------------------------------------------------------------
+ struct UINT32 : mAlign [4] mTotalSize [0x4]
+
+ struct UINT32 {
+ };
+---------------------------------------------------------------
+ struct UINT64 : mAlign [8] mTotalSize [0x8]
+
+ struct UINT64 {
+ };
+---------------------------------------------------------------
+***************************************************************
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerVfrCompiled.yml b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerVfrCompiled.yml
new file mode 100644
index 000000000000..f66f8dc015c4
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerVfrCompiled.yml
@@ -0,0 +1,36 @@
+## DO NOT REMOVE -- YAML Mode
+formset:
+ guid: '{0x847bc3fe, 0xb974, 0x446d, { 0x94, 0x49, 0x5a, 0xd5, 0x41, 0x2e, 0x99, 0x3b }}'
+ help: 'This selection will take you to the Boot Manager'
+ title: 'Boot Manager'
+ classguid1: '{0xe58809f8, 0xfbc1, 0x48e2, { 0x88, 0x3a, 0xa3, 0xf, 0xdc, 0x4b, 0x44, 0x1e }}'
+ component:
+ - form:
+ formid: 4096
+ title: 'Boot Manager'
+ component:
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - subtitle:
+ prompt: 'Boot Manager Menu'
+ flags: 0 # Optional Input
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - text:
+ condition: 'suppressif TRUE'
+ help: ''
+ prompt: ''
+ flags: 4 # Optional Input, Question Flags
+ key: 0x1212 # Optional Input, Question QuestionId
+ - label:
+ number: 0x0 # Number
+ - label:
+ number: 0x1 # Number
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - subtitle:
+ prompt: 'Use the <â> and <â> keys to choose a boot option, the <Enter> key to select a boot option, and the <Esc> key to exit the Boot Manager Menu.'
+ flags: 0 # Optional Input
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerVfrProcessed.yml b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerVfrProcessed.yml
new file mode 100644
index 000000000000..146ad487dedd
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/DEBUG/BootManagerVfrProcessed.yml
@@ -0,0 +1,37 @@
+defines:
+ BOOT_MANAGER_FORM_ID: 4096
+ FORMSET_GUID: '{0x847bc3fe, 0xb974, 0x446d, {0x94, 0x49, 0x5a, 0xd5, 0x41, 0x2e, 0x99, 0x3b}}'
+ LABEL_BOOT_OPTION: 0
+ LABEL_BOOT_OPTION_END: 1
+formset:
+ classguid: '{0xe58809f8, 0xfbc1, 0x48e2, {0x88, 0x3a, 0xa3, 0xf, 0xdc, 0x4b, 0x44, 0x1e}}'
+ component:
+ - form:
+ component:
+ - subtitle:
+ text: STRING_TOKEN(0x0007)
+ - subtitle:
+ text: STRING_TOKEN(0x0005)
+ - subtitle:
+ text: STRING_TOKEN(0x0007)
+ - suppressif:
+ component:
+ - text:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0007)
+ key: 4626
+ prompt: STRING_TOKEN(0x0007)
+ expression: 'TRUE'
+ - label:
+ number: 0
+ - label:
+ number: 1
+ - subtitle:
+ text: STRING_TOKEN(0x0007)
+ - subtitle:
+ text: STRING_TOKEN(0x0004)
+ formid: 4096
+ title: STRING_TOKEN(0x0002)
+ guid: '{0x847bc3fe, 0xb974, 0x446d, {0x94, 0x49, 0x5a, 0xd5, 0x41, 0x2e, 0x99, 0x3b}}'
+ help: STRING_TOKEN(0x0003)
+ title: STRING_TOKEN(0x0002)
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/Makefile b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/Makefile
new file mode 100644
index 000000000000..0e002243f8bc
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/Makefile
@@ -0,0 +1,340 @@
+#
+# DO NOT EDIT
+# This file is auto-generated by build utility
+#
+# Module Name:
+#
+# Makefile
+#
+# Abstract:
+#
+# Auto-generated makefile for building modules, libraries or platform
+#
+
+
+#
+# Platform Macro Definition
+#
+PLATFORM_NAME = Ovmf
+PLATFORM_GUID = 5a9e7754-d81b-49ea-85ad-69eaa7b1539b
+PLATFORM_VERSION = 0.1
+PLATFORM_RELATIVE_DIR = OvmfPkg
+PLATFORM_DIR = c:\users\mliang2x\workspace\edk2\OvmfPkg
+PLATFORM_OUTPUT_DIR = Build\Ovmf3264
+
+#
+# Module Macro Definition
+#
+MODULE_NAME = BootManagerUiLib
+MODULE_GUID = CCB2DCE1-4FC8-41CB-88C5-D349E134C9FC
+MODULE_NAME_GUID = BootManagerUiLib
+MODULE_VERSION = 1.0
+MODULE_TYPE = DXE_DRIVER
+MODULE_FILE = BootManagerUiLib.inf
+MODULE_FILE_BASE_NAME = BootManagerUiLib
+BASE_NAME = $(MODULE_NAME)
+MODULE_RELATIVE_DIR = MdeModulePkg\Library\BootManagerUiLib
+PACKAGE_RELATIVE_DIR = Library\BootManagerUiLib
+MODULE_DIR = c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootManagerUiLib
+FFS_OUTPUT_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\FV\Ffs\CCB2DCE1-4FC8-41CB-88C5-D349E134C9FCBootManagerUiLib
+
+MODULE_ENTRY_POINT = _ModuleEntryPoint
+ARCH_ENTRY_POINT = _ModuleEntryPoint
+IMAGE_ENTRY_POINT = _ModuleEntryPoint
+
+INF_VERSION = 0x00010005
+BASE_NAME = BootManagerUiLib
+MODULE_UNI_FILE = BootManagerUiLib.uni
+FILE_GUID = CCB2DCE1-4FC8-41CB-88C5-D349E134C9FC
+MODULE_TYPE = DXE_DRIVER
+VERSION_STRING = 1.0
+
+#
+# Build Configuration Macro Definition
+#
+ARCH = X64
+TOOLCHAIN = VS2015x86
+TOOLCHAIN_TAG = VS2015x86
+TARGET = DEBUG
+
+#
+# Build Directory Macro Definition
+#
+# PLATFORM_BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86
+BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86
+BIN_DIR = $(BUILD_DIR)\X64
+LIB_DIR = $(BIN_DIR)
+MODULE_BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib
+OUTPUT_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\OUTPUT
+DEBUG_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\DEBUG
+DEST_DIR_OUTPUT = $(OUTPUT_DIR)
+DEST_DIR_DEBUG = $(DEBUG_DIR)
+
+#
+# Shell Command Macro
+#
+CP = copy /y
+MV = move /y
+RM = del /f /q
+MD = mkdir
+RD = rmdir /s /q
+
+
+#
+# Tools definitions specific to this module
+#
+APP_FLAGS = /nologo /E /TC
+APP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASL_FLAGS =
+ASL_OUTFLAGS = -p
+ASL = C:\ASL\iasl.exe
+
+ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable
+ASLCC = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE
+ASLDLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\link.exe
+
+ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h
+ASLPP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+ASM = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\ml64.exe
+
+ASM16 = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\ml.exe
+
+ASMLINK_FLAGS = /nologo /tiny
+ASMLINK = C:\WINDDK\3790.1830\bin\bin16\link16.exe
+
+BROTLI_GUID = 3D532050-5CDA-4FD0-879E-0F7F630D5AFB
+BROTLI = BrotliCompress
+
+CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /D DISABLE_NEW_DEPRECATED_INTERFACES /D ENABLE_MD5_DEPRECATED_INTERFACES
+CC = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+CRC32_GUID = FC1BCDB0-7D31-49AA-936A-A4600D9DD083
+CRC32 = GenCrc32
+
+DEPS_FLAGS = /showIncludes
+
+DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+DLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\link.exe
+
+DLINK2_FLAGS =
+
+DTC_FLAGS = -H epapr
+DTC = dtc
+
+DTCPP = cpp
+
+GENFW_FLAGS =
+GENFW = GenFw
+
+LZMA_GUID = EE4E5898-3914-4259-9D6E-DC7BD79403CF
+LZMA = LzmaCompress
+
+LZMAF86_GUID = D42AE6BD-1352-4bfb-909A-CA72A6EAE889
+LZMAF86 = LzmaF86Compress
+
+MAKE = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\nmake.exe
+
+NASM_FLAGS = -Ox -f win64 -g
+NASM = C:\nasm\nasm
+
+NASMB_FLAGS = -f bin
+
+OBJCOPY_ADDDEBUGFLAG = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_NAME).debug
+OBJCOPY_FLAGS = objcopy not needed for
+OBJCOPY = echo
+OBJCOPY_STRIPFLAG = --strip-unneeded -R .eh_frame
+
+OPTROM_FLAGS = -e
+OPTROM = EfiRom
+
+PKCS7SIGN_GUID = 4AAFD29D-68DF-49EE-8AA9-347D375665A7
+PKCS7SIGN = Pkcs7Sign
+
+PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+PP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+PYVFR = PyVfrCompile
+
+RC = c:\Program Files (x86)\Windows Kits\8.1\bin\x64\rc.exe
+
+RSA2048SHA256SIGN_GUID = A7717414-C616-4977-9420-844712A735BF
+RSA2048SHA256SIGN = Rsa2048Sha256Sign
+
+SLINK_FLAGS = /NOLOGO /LTCG
+SLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\lib.exe
+
+SYMRENAME_FLAGS = Symbol renaming not needed for
+SYMRENAME = echo
+
+TIANO_GUID = A31280AD-481E-41B6-95E8-127F4C984779
+TIANO = TianoCompress
+
+VFR_FLAGS = -l -n
+VFR = VfrCompile
+
+VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+VFRPP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+VPDTOOL_GUID = 8C3D856A-9BE6-468E-850A-24F7A8D38E08
+VPDTOOL = BPDG
+
+cc_resp_2 = @c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\OUTPUT\cc_resp_2.txt
+
+MAKE_FILE = $(MODULE_BUILD_DIR)\Makefile
+
+#
+# Build Macro
+#
+OBJECT_FILES = \
+ $(OUTPUT_DIR)\AutoGen.obj \
+ $(OUTPUT_DIR)\BootManager.obj \
+ $(OUTPUT_DIR)\BootManagerVfr.obj
+
+INC = \
+ /I$(WORKSPACE)\MdeModulePkg\Library\BootManagerUiLib \
+ /I$(DEBUG_DIR) \
+ /I$(WORKSPACE)\MdePkg \
+ /I$(WORKSPACE)\MdePkg\Include \
+ /I$(WORKSPACE)\MdePkg\Test\UnitTest\Include \
+ /I$(WORKSPACE)\MdePkg\Include\X64 \
+ /I$(WORKSPACE)\MdeModulePkg \
+ /I$(WORKSPACE)\MdeModulePkg\Include \
+ /I$(WORKSPACE)\MdeModulePkg\Library\BrotliCustomDecompressLib\brotli\c\include
+
+OBJECT_FILES_LIST = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\OUTPUT\object_files.lst
+OBJLIST_0 = $(OUTPUT_DIR)\BootManager.obj $(OUTPUT_DIR)\AutoGen.obj $(OUTPUT_DIR)\BootManagerVfr.obj
+
+
+#
+# Overridable Target Macro Definitions
+#
+FORCE_REBUILD = force_build
+INIT_TARGET = init
+PCH_TARGET =
+BC_TARGET =
+CODA_TARGET = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\OUTPUT\BootManagerUiLib.lib \
+
+
+#
+# Default target, which will build dependent libraries in addition to source files
+#
+
+all: mbuild
+
+
+#
+# Target used when called from platform makefile, which will bypass the build of dependent libraries
+#
+
+pbuild: $(INIT_TARGET) $(BC_TARGET) $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# ModuleTarget
+#
+
+mbuild: $(INIT_TARGET) $(BC_TARGET) gen_libs $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# Build Target used in multi-thread build mode, which will bypass the init and gen_libs targets
+#
+
+tbuild: $(BC_TARGET) $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# Phony target which is used to force executing commands for a target
+#
+force_build:
+ -@
+
+#
+# Target to update the FD
+#
+
+fds: mbuild gen_fds
+
+#
+# Initialization target: print build information and create necessary directories
+#
+init: info dirs
+
+info:
+ -@echo Building ... $(MODULE_DIR)\$(MODULE_FILE) [$(ARCH)]
+
+dirs:
+ -@if not exist $(DEBUG_DIR) $(MD) $(DEBUG_DIR)
+ -@if not exist $(OUTPUT_DIR) $(MD) $(OUTPUT_DIR)
+
+
+strdefs:
+ -@$(CP) $(DEBUG_DIR)\AutoGen.h $(DEBUG_DIR)\$(MODULE_NAME)StrDefs.h
+
+#
+# GenLibsTarget
+#
+gen_libs:
+ @cd $(MODULE_BUILD_DIR)
+
+#
+# Build Flash Device Image
+#
+gen_fds:
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BUILD_DIR)\Makefile fds
+ @cd $(MODULE_BUILD_DIR)
+
+!INCLUDE $(MODULE_BUILD_DIR)\dependency
+!INCLUDE $(MODULE_BUILD_DIR)\deps_target
+
+#
+# Individual Object Build Targets
+#
+$(DEBUG_DIR)\BootManagerVfr.c : $(MAKE_FILE)
+$(DEBUG_DIR)\BootManagerVfr.c : $(DEBUG_DIR)\AutoGen.h
+$(DEBUG_DIR)\BootManagerVfr.c : $(DEBUG_DIR)\BootManagerUiLibStrDefs.h
+$(DEBUG_DIR)\BootManagerVfr.c : $(WORKSPACE)\MdeModulePkg\Library\BootManagerUiLib\BootManagerVfr.Vfr
+ "$(VFRPP)" $(DEPS_FLAGS) $(VFRPP_FLAGS) $(INC) c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootManagerUiLib\BootManagerVfr.Vfr > $(OUTPUT_DIR)\BootManagerVfr.i
+ "$(VFR)" $(VFR_FLAGS) --string-db $(OUTPUT_DIR)\$(MODULE_NAME)StrDefs.hpk --output-directory c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\DEBUG\. $(OUTPUT_DIR)\BootManagerVfr.i
+ "$(PYVFR)" c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootManagerUiLib\BootManagerVfr.Vfr -i $(INC) -m $(MODULE_NAME) -o $(OUTPUT_DIR) --vfr
+
+$(OBJLIST_0): \
+ $(MAKE_FILE) \
+ $(WORKSPACE)\MdeModulePkg\Library\BootManagerUiLib\BootManager.c \
+ $(DEBUG_DIR)\AutoGen.h \
+ $(DEBUG_DIR)\BootManagerUiLibStrDefs.h \
+ $(DEBUG_DIR)\BootManagerVfr.c \
+ $(DEBUG_DIR)\AutoGen.c
+ "$(CC)" /Foc:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\OUTPUT\.\ $(DEPS_FLAGS) $(CC_FLAGS) $(INC) $(cc_resp_2)
+
+$(OUTPUT_DIR)\BootManagerUiLib.lib : $(OBJECT_FILES)
+$(OUTPUT_DIR)\BootManagerUiLib.lib : $(OBJECT_FILES_LIST)
+ "$(SLINK)" $(SLINK_FLAGS) /OUT:c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\OUTPUT\BootManagerUiLib.lib @$(OBJECT_FILES_LIST)
+
+
+
+#
+# clean all intermediate files
+#
+clean:
+ if exist $(OUTPUT_DIR) $(RD) $(OUTPUT_DIR)
+ $(RM) AutoGenTimeStamp
+
+#
+# clean all generated files
+#
+cleanall:
+ if exist $(DEBUG_DIR) $(RD) $(DEBUG_DIR)
+ if exist $(OUTPUT_DIR) $(RD) $(OUTPUT_DIR)
+ $(RM) *.pdb *.idb > NUL 2>&1
+ $(RM) $(BIN_DIR)\$(MODULE_NAME).efi
+ $(RM) AutoGenTimeStamp
+
+#
+# clean all dependent libraries built
+#
+cleanlib:
+ @cd $(MODULE_BUILD_DIR)
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/AutoGen.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/AutoGen.c.deps
new file mode 100644
index 000000000000..f67020916df4
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/AutoGen.c.deps
@@ -0,0 +1,40 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\OUTPUT\AutoGen.c: \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmanageruilib\bootmanageruilib\debug\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmanageruilib\bootmanageruilib\debug\BootManagerUiLibStrDefs.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/BootManager.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/BootManager.c.deps
new file mode 100644
index 000000000000..bdb801e01c8b
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/BootManager.c.deps
@@ -0,0 +1,76 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\OUTPUT\BootManager.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmanageruilib\bootmanageruilib\debug\BootManagerUiLibStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmanageruilib\BootManager.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/GlobalVariable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePathToText.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx2.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiBootManagerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverHealth.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/SortLib.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/BootManagerUiLib.lib b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/BootManagerUiLib.lib
new file mode 100644
index 0000000000000000000000000000000000000000..5d3e0e6d419c83de6b3b04059fbf083af11ac0af
GIT binary patch
literal 91470
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
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/BootManagerUiLibStrDefs.hpk b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/BootManagerUiLibStrDefs.hpk
new file mode 100644
index 0000000000000000000000000000000000000000..91b23cd8456ad40e1939430ca7dd1231afd710ff
GIT binary patch
literal 1072
zcmc&zNlwE+5Ue1ckOvH>TnHzQ5n@qtV^Nj|m}I~f!8VR9$TJX+<jNDMYGdpq!iW<Y
z*%S9tT|HfMx`+K^0D6A=b>QRvY=Z6(G48QMgcU+&b<dG-<#4z}KxaU=M<&;l5sGts
zJaate42&2a)Ar1NOD;!SfCqXV*7Ox-N$ee(wWY+&paoHe4)A(#!c;L?a3A2!z6HNF
zDmhCy5(&8{U)cdIxAv_*5~SZW5BXhVtNENr8C0XhlwXL=7FE9uv0~RmUXjx-s>chD
zNvx{apAJLk@5!&gQQKJRFb?R3op>_Wh{S2leY2}MdsEMmA$wwLF_q6p=P&xX%le}+
zx+9iUsdv7mjel2ArI?hR79>||Mj8>-QqPW3?d@n|fFZ6h#hClp=2t39twn}b5JA%3
zR+Ta*xUihM_KI<towwZ}-I;n~j*{--x*<<l6d_UMTwdpS#(<Q)MCOW_65)}S5?SF-
R^y)&E@OAa=X=fYr{sd5Ct8D-P
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/BootManagerUiLibUni.json b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/BootManagerUiLibUni.json
new file mode 100644
index 000000000000..b1cdce097f38
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/BootManagerUiLibUni.json
@@ -0,0 +1,29 @@
+{
+ "LanguageDef": [
+ [
+ "en-US",
+ "English"
+ ],
+ [
+ "fr-FR",
+ "Fran\u00e7ais"
+ ]
+ ],
+ "UniString": {
+ "en-US": {
+ "$LANGUAGE_NAME": "en-US",
+ "$PRINTABLE_LANGUAGE_NAME": "English",
+ "STR_BM_BANNER": "Boot Manager",
+ "STR_BOOT_MANAGER_HELP": "This selection will take you to the Boot Manager",
+ "STR_HELP_FOOTER": "Use the <\u2191> and <\u2193> keys to choose a boot option, the <Enter> key to select a boot option, and the <Esc> key to exit the Boot Manager Menu.",
+ "STR_AND": " and ",
+ "STR_BOOT_OPTION_BANNER": "Boot Manager Menu",
+ "STR_ANY_KEY_CONTINUE": "Press any key to continue...",
+ "STR_LAST_STRING": ""
+ },
+ "fr-FR": {
+ "$LANGUAGE_NAME": "fr-FR",
+ "$PRINTABLE_LANGUAGE_NAME": "Fran\u00e7ais"
+ }
+ }
+}
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/BootManagerVfr.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/BootManagerVfr.c.deps
new file mode 100644
index 000000000000..595a8a9f7553
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/BootManagerVfr.c.deps
@@ -0,0 +1,40 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\OUTPUT\BootManagerVfr.obj: \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmanageruilib\bootmanageruilib\debug\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmanageruilib\bootmanageruilib\debug\BootManagerUiLibStrDefs.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/BootManagerVfr.i b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/BootManagerVfr.i
new file mode 100644
index 000000000000..92bacdcdcdde
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/BootManagerVfr.i
@@ -0,0 +1,99 @@
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Library\\BootManagerUiLib\\BootManagerVfr.Vfr"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\BootManagerUiLib\\BootManagerUiLib\\DEBUG\\BootManagerUiLibStrDefs.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern unsigned char BootManagerUiLibStrings[];
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 44 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\BootManagerUiLib\\BootManagerUiLib\\DEBUG\\BootManagerUiLibStrDefs.h"
+
+#line 46 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\BootManagerUiLib\\BootManagerUiLib\\DEBUG\\BootManagerUiLibStrDefs.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Library\\BootManagerUiLib\\BootManagerVfr.Vfr"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+formset
+ guid = { 0x847bc3fe, 0xb974, 0x446d, 0x94, 0x49, 0x5a, 0xd5, 0x41, 0x2e, 0x99, 0x3b },
+ title = STRING_TOKEN(0x0002),
+ help = STRING_TOKEN(0x0003),
+ classguid = { 0xe58809f8, 0xfbc1, 0x48e2, { 0x88, 0x3a, 0xa3, 0x0f, 0xdc, 0x4b, 0x44, 0x1e } },
+
+ form formid = 0x1000,
+ title = STRING_TOKEN(0x0002);
+
+ subtitle text = STRING_TOKEN(0x0007);
+ subtitle text = STRING_TOKEN(0x0005);
+ subtitle text = STRING_TOKEN(0x0007);
+
+
+
+
+ suppressif TRUE;
+ text
+ help = STRING_TOKEN(0x0007 ),
+ text = STRING_TOKEN(0x0007 ),
+ flags = INTERACTIVE,
+ key = 0x1212;
+ endif;
+
+
+
+
+ label 0x00;
+ label 0x01;
+
+ subtitle text = STRING_TOKEN(0x0007);
+ subtitle text = STRING_TOKEN(0x0004);
+
+ endform;
+
+endformset;
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/cc_resp_2.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/cc_resp_2.txt
new file mode 100644
index 000000000000..235df8477383
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/cc_resp_2.txt
@@ -0,0 +1 @@
+ c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootManagerUiLib\BootManager.c c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\DEBUG\BootManagerVfr.c c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\DEBUG\AutoGen.c
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/object_files.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/object_files.lst
new file mode 100644
index 000000000000..ab3cfc8d518d
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/OUTPUT/object_files.lst
@@ -0,0 +1,3 @@
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib/OUTPUT/BootManagerVfr.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib/OUTPUT/BootManager.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib/OUTPUT/AutoGen.obj
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/dependency b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/dependency
new file mode 100644
index 000000000000..5a14bad6768a
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/dependency
@@ -0,0 +1,19 @@
+
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\DEBUG\BootManagerVfr.Vfr.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\DEBUG\BootManagerVfr.Vfr.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\OUTPUT\AutoGen.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\OUTPUT\AutoGen.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\OUTPUT\BootManager.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\OUTPUT\BootManager.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\OUTPUT\BootManagerVfr.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\OUTPUT\BootManagerVfr.c.deps
+!ENDIF
+
+
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/deps.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/deps.txt
new file mode 100644
index 000000000000..ef100d572dac
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/deps.txt
@@ -0,0 +1,77 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\DEBUG\AutoGen.h
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\DEBUG\BootManagerUiLibStrDefs.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/SortLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiBootManagerLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/GlobalVariable.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePathToText.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverHealth.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmanageruilib\bootmanageruilib\debug\AutoGen.h
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmanageruilib\bootmanageruilib\debug\BootManagerUiLibStrDefs.h
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmanageruilib\BootManager.h
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/deps_target b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/deps_target
new file mode 100644
index 000000000000..5f04cfe6a1c9
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/BootManagerUiLib/deps_target
@@ -0,0 +1,77 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\DEBUG\AutoGen.h:
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\DEBUG\BootManagerUiLibStrDefs.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/SortLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiBootManagerLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FormBrowserEx2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/GlobalVariable.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePathToText.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverHealth.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h:
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmanageruilib\bootmanageruilib\debug\AutoGen.h:
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\bootmanageruilib\bootmanageruilib\debug\BootManagerUiLibStrDefs.h:
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\bootmanageruilib\BootManager.h:
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/AutoGenTimeStamp b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/AutoGenTimeStamp
new file mode 100644
index 000000000000..841e9116f708
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/AutoGenTimeStamp
@@ -0,0 +1,7 @@
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManager.c
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\DEBUG\DeviceManagerUiLibStrDefs.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerStrings.uni
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\DEBUG\AutoGen.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManager.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerVfr.Vfr
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib.inf
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerVfr.Vfr.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerVfr.Vfr.deps
new file mode 100644
index 000000000000..590dd946bdb3
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerVfr.Vfr.deps
@@ -0,0 +1,2 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\DEBUG\DeviceManagerVfr.c: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\DEBUG\DeviceManagerUiLibStrDefs.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerVfr.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerVfr.lst
new file mode 100644
index 000000000000..9c8c3460f02c
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerVfr.lst
@@ -0,0 +1,255 @@
+//
+// VFR compiler version 2.01 (UEFI 2.4) Developer Build based on Revision: Unknown
+//
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Library\\DeviceManagerUiLib\\DeviceManagerVfr.Vfr"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\DeviceManagerUiLib\\DeviceManagerUiLib\\DEBUG\\DeviceManagerUiLibStrDefs.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern unsigned char DeviceManagerUiLibStrings[];
+
+
+
+
+
+
+
+
+
+#line 50 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\DeviceManagerUiLib\\DeviceManagerUiLib\\DEBUG\\DeviceManagerUiLibStrDefs.h"
+
+#line 52 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\DeviceManagerUiLib\\DeviceManagerUiLib\\DEBUG\\DeviceManagerUiLibStrDefs.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Library\\DeviceManagerUiLib\\DeviceManagerVfr.Vfr"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+formset
+>00000000: 0E A7 E6 A8 BF 3E 1D 51 5B 4B A9 5F FB 38 26 0F 1C 27 02 00 03 00 01 F8 09 88 E5 C1 FB E2 48 88 3A A3 0F DC 4B 44 1E
+>00000027: 5C 06 00 00 00 00
+>0000002D: 5C 06 00 00 01 00
+ guid = { 0x3ebfa8e6, 0x511d, 0x4b5b, 0xa9, 0x5f, 0xfb, 0x38, 0x26, 0xf, 0x1c, 0x27 },
+ title = STRING_TOKEN(0x0002),
+ help = STRING_TOKEN(0x0003),
+ classguid = { 0xe58809f8, 0xfbc1, 0x48e2, { 0x88, 0x3a, 0xa3, 0x0f, 0xdc, 0x4b, 0x44, 0x1e } },
+
+ form formid = 0x1000,
+>00000033: 01 86 00 10 02 00
+ title = STRING_TOKEN(0x0002);
+ subtitle text = STRING_TOKEN(0x0004);
+>00000039: 02 87 04 00 00 00 00
+>00000040: 29 02
+
+ label 0x1100;
+>00000042: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 00 11
+ label 0xffff;
+>00000057: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+
+ subtitle text = STRING_TOKEN(0x0006);
+>0000006C: 02 87 06 00 00 00 00
+>00000073: 29 02
+ subtitle text = STRING_TOKEN(0x0006);
+>00000075: 02 87 06 00 00 00 00
+>0000007C: 29 02
+ subtitle text = STRING_TOKEN(0x0007);
+>0000007E: 02 87 07 00 00 00 00
+>00000085: 29 02
+ endform;
+>00000087: 29 02
+
+ form formid = 0x1001,
+>00000089: 01 86 01 10 0C 00
+ title = STRING_TOKEN(0x000C);
+ subtitle text = STRING_TOKEN(0x000D);
+>0000008F: 02 87 0D 00 00 00 00
+>00000096: 29 02
+
+ label 0x1101;
+>00000098: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 01 11
+ label 0xffff;
+>000000AD: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+
+ subtitle text = STRING_TOKEN(0x0006);
+>000000C2: 02 87 06 00 00 00 00
+>000000C9: 29 02
+ subtitle text = STRING_TOKEN(0x0007);
+>000000CB: 02 87 07 00 00 00 00
+>000000D2: 29 02
+ endform;
+>000000D4: 29 02
+
+ form formid = 0x1002,
+>000000D6: 01 86 02 10 09 00
+ title = STRING_TOKEN(0x0009);
+ subtitle text = STRING_TOKEN(0x000A);
+>000000DC: 02 87 0A 00 00 00 00
+>000000E3: 29 02
+
+ label 0x1102;
+>000000E5: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 02 11
+ label 0xffff;
+>000000FA: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+
+ subtitle text = STRING_TOKEN(0x0006);
+>0000010F: 02 87 06 00 00 00 00
+>00000116: 29 02
+ subtitle text = STRING_TOKEN(0x0007);
+>00000118: 02 87 07 00 00 00 00
+>0000011F: 29 02
+ endform;
+>00000121: 29 02
+endformset;
+>00000123: 29 02
+
+//
+// All Opcode Record List
+//
+>00000000: 0E A7 E6 A8 BF 3E 1D 51 5B 4B A9 5F FB 38 26 0F 1C 27 02 00 03 00 01 F8 09 88 E5 C1 FB E2 48 88 3A A3 0F DC 4B 44 1E
+>00000027: 5C 06 00 00 00 00
+>0000002D: 5C 06 00 00 01 00
+>00000033: 01 86 00 10 02 00
+>00000039: 02 87 04 00 00 00 00
+>00000040: 29 02
+>00000042: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 00 11
+>00000057: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>0000006C: 02 87 06 00 00 00 00
+>00000073: 29 02
+>00000075: 02 87 06 00 00 00 00
+>0000007C: 29 02
+>0000007E: 02 87 07 00 00 00 00
+>00000085: 29 02
+>00000087: 29 02
+>00000089: 01 86 01 10 0C 00
+>0000008F: 02 87 0D 00 00 00 00
+>00000096: 29 02
+>00000098: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 01 11
+>000000AD: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>000000C2: 02 87 06 00 00 00 00
+>000000C9: 29 02
+>000000CB: 02 87 07 00 00 00 00
+>000000D2: 29 02
+>000000D4: 29 02
+>000000D6: 01 86 02 10 09 00
+>000000DC: 02 87 0A 00 00 00 00
+>000000E3: 29 02
+>000000E5: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 02 11
+>000000FA: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>0000010F: 02 87 06 00 00 00 00
+>00000116: 29 02
+>00000118: 02 87 07 00 00 00 00
+>0000011F: 29 02
+>00000121: 29 02
+>00000123: 29 02
+
+Total Size of all record is 0x00000125
+
+
+***************************************************************
+ mPackAlign = 8
+ struct EFI_HII_REF : mAlign [16] mTotalSize [0x16]
+
+ struct EFI_HII_REF {
+ +00000000[00000000] QuestionId <UINT16>
+ +00000002[00000002] FormId <UINT16>
+ +00000004[00000004] FormSetGuid <(null)>
+ +00000020[00000014] DevicePath <EFI_STRING_ID>
+ };
+---------------------------------------------------------------
+ struct EFI_HII_TIME : mAlign [1] mTotalSize [0x3]
+
+ struct EFI_HII_TIME {
+ +00000000[00000000] Hours <UINT8>
+ +00000001[00000001] Minutes <UINT8>
+ +00000002[00000002] Seconds <UINT8>
+ };
+---------------------------------------------------------------
+ struct EFI_STRING_ID : mAlign [2] mTotalSize [0x2]
+
+ struct EFI_STRING_ID {
+ };
+---------------------------------------------------------------
+ struct EFI_HII_DATE : mAlign [2] mTotalSize [0x4]
+
+ struct EFI_HII_DATE {
+ +00000000[00000000] Year <UINT16>
+ +00000002[00000002] Month <UINT8>
+ +00000003[00000003] Day <UINT8>
+ };
+---------------------------------------------------------------
+ struct BOOLEAN : mAlign [1] mTotalSize [0x1]
+
+ struct BOOLEAN {
+ };
+---------------------------------------------------------------
+ struct UINT8 : mAlign [1] mTotalSize [0x1]
+
+ struct UINT8 {
+ };
+---------------------------------------------------------------
+ struct UINT16 : mAlign [2] mTotalSize [0x2]
+
+ struct UINT16 {
+ };
+---------------------------------------------------------------
+ struct UINT32 : mAlign [4] mTotalSize [0x4]
+
+ struct UINT32 {
+ };
+---------------------------------------------------------------
+ struct UINT64 : mAlign [8] mTotalSize [0x8]
+
+ struct UINT64 {
+ };
+---------------------------------------------------------------
+***************************************************************
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerVfrCompiled.yml b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerVfrCompiled.yml
new file mode 100644
index 000000000000..bb5c2ebafde2
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerVfrCompiled.yml
@@ -0,0 +1,61 @@
+## DO NOT REMOVE -- YAML Mode
+formset:
+ guid: '{0x3ebfa8e6, 0x511d, 0x4b5b, { 0xa9, 0x5f, 0xfb, 0x38, 0x26, 0xf, 0x1c, 0x27 }}'
+ help: 'This selection will take you to the Device Manager'
+ title: 'Device Manager'
+ classguid1: '{0xe58809f8, 0xfbc1, 0x48e2, { 0x88, 0x3a, 0xa3, 0xf, 0xdc, 0x4b, 0x44, 0x1e }}'
+ component:
+ - form:
+ formid: 4096
+ title: 'Device Manager'
+ component:
+ - subtitle:
+ prompt: 'Devices List'
+ flags: 0 # Optional Input
+ - label:
+ number: 0x1100 # Number
+ - label:
+ number: 0xffff # Number
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - subtitle:
+ prompt: 'Press ESC to exit.'
+ flags: 0 # Optional Input
+ - form:
+ formid: 4097
+ title: 'Network Device List'
+ component:
+ - subtitle:
+ prompt: 'Network Device List'
+ flags: 0 # Optional Input
+ - label:
+ number: 0x1101 # Number
+ - label:
+ number: 0xffff # Number
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - subtitle:
+ prompt: 'Press ESC to exit.'
+ flags: 0 # Optional Input
+ - form:
+ formid: 4098
+ title: 'Network Device'
+ component:
+ - subtitle:
+ prompt: 'Network Device'
+ flags: 0 # Optional Input
+ - label:
+ number: 0x1102 # Number
+ - label:
+ number: 0xffff # Number
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - subtitle:
+ prompt: 'Press ESC to exit.'
+ flags: 0 # Optional Input
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerVfrProcessed.yml b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerVfrProcessed.yml
new file mode 100644
index 000000000000..e1d676b68696
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DEBUG/DeviceManagerVfrProcessed.yml
@@ -0,0 +1,59 @@
+defines:
+ DEVICE_MANAGER_FORM_ID: 4096
+ FORMSET_GUID: '{0x3ebfa8e6, 0x511d, 0x4b5b, {0xa9, 0x5f, 0xfb, 0x38, 0x26, 0xf, 0x1c, 0x27}}'
+ LABEL_DEVICES_LIST: 4352
+ LABEL_END: 65535
+ LABEL_NETWORK_DEVICE_ID: 4354
+ LABEL_NETWORK_DEVICE_LIST_ID: 4353
+ NETWORK_DEVICE_FORM_ID: 4098
+ NETWORK_DEVICE_LIST_FORM_ID: 4097
+formset:
+ classguid: '{0xe58809f8, 0xfbc1, 0x48e2, {0x88, 0x3a, 0xa3, 0xf, 0xdc, 0x4b, 0x44, 0x1e}}'
+ component:
+ - form:
+ component:
+ - subtitle:
+ text: STRING_TOKEN(0x0004)
+ - label:
+ number: 4352
+ - label:
+ number: 65535
+ - subtitle:
+ text: STRING_TOKEN(0x0006)
+ - subtitle:
+ text: STRING_TOKEN(0x0006)
+ - subtitle:
+ text: STRING_TOKEN(0x0007)
+ formid: 4096
+ title: STRING_TOKEN(0x0002)
+ - form:
+ component:
+ - subtitle:
+ text: STRING_TOKEN(0x000D)
+ - label:
+ number: 4353
+ - label:
+ number: 65535
+ - subtitle:
+ text: STRING_TOKEN(0x0006)
+ - subtitle:
+ text: STRING_TOKEN(0x0007)
+ formid: 4097
+ title: STRING_TOKEN(0x000C)
+ - form:
+ component:
+ - subtitle:
+ text: STRING_TOKEN(0x000A)
+ - label:
+ number: 4354
+ - label:
+ number: 65535
+ - subtitle:
+ text: STRING_TOKEN(0x0006)
+ - subtitle:
+ text: STRING_TOKEN(0x0007)
+ formid: 4098
+ title: STRING_TOKEN(0x0009)
+ guid: '{0x3ebfa8e6, 0x511d, 0x4b5b, {0xa9, 0x5f, 0xfb, 0x38, 0x26, 0xf, 0x1c, 0x27}}'
+ help: STRING_TOKEN(0x0003)
+ title: STRING_TOKEN(0x0002)
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DeviceManagerUiLib.makefile b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DeviceManagerUiLib.makefile
new file mode 100644
index 000000000000..59e9670b66b8
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/DeviceManagerUiLib.makefile
@@ -0,0 +1 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\Makefile
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/Makefile b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/Makefile
new file mode 100644
index 000000000000..013d6f545207
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/Makefile
@@ -0,0 +1,340 @@
+#
+# DO NOT EDIT
+# This file is auto-generated by build utility
+#
+# Module Name:
+#
+# Makefile
+#
+# Abstract:
+#
+# Auto-generated makefile for building modules, libraries or platform
+#
+
+
+#
+# Platform Macro Definition
+#
+PLATFORM_NAME = Ovmf
+PLATFORM_GUID = 5a9e7754-d81b-49ea-85ad-69eaa7b1539b
+PLATFORM_VERSION = 0.1
+PLATFORM_RELATIVE_DIR = OvmfPkg
+PLATFORM_DIR = c:\users\mliang2x\workspace\edk2\OvmfPkg
+PLATFORM_OUTPUT_DIR = Build\Ovmf3264
+
+#
+# Module Macro Definition
+#
+MODULE_NAME = DeviceManagerUiLib
+MODULE_GUID = 75EBDC2E-5323-4F31-A41D-FD1A7A9FC65E
+MODULE_NAME_GUID = DeviceManagerUiLib
+MODULE_VERSION = 1.0
+MODULE_TYPE = DXE_DRIVER
+MODULE_FILE = DeviceManagerUiLib.inf
+MODULE_FILE_BASE_NAME = DeviceManagerUiLib
+BASE_NAME = $(MODULE_NAME)
+MODULE_RELATIVE_DIR = MdeModulePkg\Library\DeviceManagerUiLib
+PACKAGE_RELATIVE_DIR = Library\DeviceManagerUiLib
+MODULE_DIR = c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\DeviceManagerUiLib
+FFS_OUTPUT_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\FV\Ffs\75EBDC2E-5323-4F31-A41D-FD1A7A9FC65EDeviceManagerUiLib
+
+MODULE_ENTRY_POINT = _ModuleEntryPoint
+ARCH_ENTRY_POINT = _ModuleEntryPoint
+IMAGE_ENTRY_POINT = _ModuleEntryPoint
+
+INF_VERSION = 0x00010005
+BASE_NAME = DeviceManagerUiLib
+MODULE_UNI_FILE = DeviceManagerUiLib.uni
+FILE_GUID = 75EBDC2E-5323-4F31-A41D-FD1A7A9FC65E
+MODULE_TYPE = DXE_DRIVER
+VERSION_STRING = 1.0
+
+#
+# Build Configuration Macro Definition
+#
+ARCH = X64
+TOOLCHAIN = VS2015x86
+TOOLCHAIN_TAG = VS2015x86
+TARGET = DEBUG
+
+#
+# Build Directory Macro Definition
+#
+# PLATFORM_BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86
+BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86
+BIN_DIR = $(BUILD_DIR)\X64
+LIB_DIR = $(BIN_DIR)
+MODULE_BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib
+OUTPUT_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\OUTPUT
+DEBUG_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\DEBUG
+DEST_DIR_OUTPUT = $(OUTPUT_DIR)
+DEST_DIR_DEBUG = $(DEBUG_DIR)
+
+#
+# Shell Command Macro
+#
+CP = copy /y
+MV = move /y
+RM = del /f /q
+MD = mkdir
+RD = rmdir /s /q
+
+
+#
+# Tools definitions specific to this module
+#
+APP_FLAGS = /nologo /E /TC
+APP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASL_FLAGS =
+ASL_OUTFLAGS = -p
+ASL = C:\ASL\iasl.exe
+
+ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable
+ASLCC = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE
+ASLDLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\link.exe
+
+ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h
+ASLPP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+ASM = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\ml64.exe
+
+ASM16 = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\ml.exe
+
+ASMLINK_FLAGS = /nologo /tiny
+ASMLINK = C:\WINDDK\3790.1830\bin\bin16\link16.exe
+
+BROTLI_GUID = 3D532050-5CDA-4FD0-879E-0F7F630D5AFB
+BROTLI = BrotliCompress
+
+CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /D DISABLE_NEW_DEPRECATED_INTERFACES /D ENABLE_MD5_DEPRECATED_INTERFACES
+CC = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+CRC32_GUID = FC1BCDB0-7D31-49AA-936A-A4600D9DD083
+CRC32 = GenCrc32
+
+DEPS_FLAGS = /showIncludes
+
+DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+DLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\link.exe
+
+DLINK2_FLAGS =
+
+DTC_FLAGS = -H epapr
+DTC = dtc
+
+DTCPP = cpp
+
+GENFW_FLAGS =
+GENFW = GenFw
+
+LZMA_GUID = EE4E5898-3914-4259-9D6E-DC7BD79403CF
+LZMA = LzmaCompress
+
+LZMAF86_GUID = D42AE6BD-1352-4bfb-909A-CA72A6EAE889
+LZMAF86 = LzmaF86Compress
+
+MAKE = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\nmake.exe
+
+NASM_FLAGS = -Ox -f win64 -g
+NASM = C:\nasm\nasm
+
+NASMB_FLAGS = -f bin
+
+OBJCOPY_ADDDEBUGFLAG = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_NAME).debug
+OBJCOPY_FLAGS = objcopy not needed for
+OBJCOPY = echo
+OBJCOPY_STRIPFLAG = --strip-unneeded -R .eh_frame
+
+OPTROM_FLAGS = -e
+OPTROM = EfiRom
+
+PKCS7SIGN_GUID = 4AAFD29D-68DF-49EE-8AA9-347D375665A7
+PKCS7SIGN = Pkcs7Sign
+
+PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+PP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+PYVFR = PyVfrCompile
+
+RC = c:\Program Files (x86)\Windows Kits\8.1\bin\x64\rc.exe
+
+RSA2048SHA256SIGN_GUID = A7717414-C616-4977-9420-844712A735BF
+RSA2048SHA256SIGN = Rsa2048Sha256Sign
+
+SLINK_FLAGS = /NOLOGO /LTCG
+SLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\lib.exe
+
+SYMRENAME_FLAGS = Symbol renaming not needed for
+SYMRENAME = echo
+
+TIANO_GUID = A31280AD-481E-41B6-95E8-127F4C984779
+TIANO = TianoCompress
+
+VFR_FLAGS = -l -n
+VFR = VfrCompile
+
+VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+VFRPP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+VPDTOOL_GUID = 8C3D856A-9BE6-468E-850A-24F7A8D38E08
+VPDTOOL = BPDG
+
+cc_resp_2 = @c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\OUTPUT\cc_resp_2.txt
+
+MAKE_FILE = $(MODULE_BUILD_DIR)\Makefile
+
+#
+# Build Macro
+#
+OBJECT_FILES = \
+ $(OUTPUT_DIR)\AutoGen.obj \
+ $(OUTPUT_DIR)\DeviceManager.obj \
+ $(OUTPUT_DIR)\DeviceManagerVfr.obj
+
+INC = \
+ /I$(WORKSPACE)\MdeModulePkg\Library\DeviceManagerUiLib \
+ /I$(DEBUG_DIR) \
+ /I$(WORKSPACE)\MdePkg \
+ /I$(WORKSPACE)\MdePkg\Include \
+ /I$(WORKSPACE)\MdePkg\Test\UnitTest\Include \
+ /I$(WORKSPACE)\MdePkg\Include\X64 \
+ /I$(WORKSPACE)\MdeModulePkg \
+ /I$(WORKSPACE)\MdeModulePkg\Include \
+ /I$(WORKSPACE)\MdeModulePkg\Library\BrotliCustomDecompressLib\brotli\c\include
+
+OBJECT_FILES_LIST = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\OUTPUT\object_files.lst
+OBJLIST_0 = $(OUTPUT_DIR)\DeviceManagerVfr.obj $(OUTPUT_DIR)\DeviceManager.obj $(OUTPUT_DIR)\AutoGen.obj
+
+
+#
+# Overridable Target Macro Definitions
+#
+FORCE_REBUILD = force_build
+INIT_TARGET = init
+PCH_TARGET =
+BC_TARGET =
+CODA_TARGET = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\OUTPUT\DeviceManagerUiLib.lib \
+
+
+#
+# Default target, which will build dependent libraries in addition to source files
+#
+
+all: mbuild
+
+
+#
+# Target used when called from platform makefile, which will bypass the build of dependent libraries
+#
+
+pbuild: $(INIT_TARGET) $(BC_TARGET) $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# ModuleTarget
+#
+
+mbuild: $(INIT_TARGET) $(BC_TARGET) gen_libs $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# Build Target used in multi-thread build mode, which will bypass the init and gen_libs targets
+#
+
+tbuild: $(BC_TARGET) $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# Phony target which is used to force executing commands for a target
+#
+force_build:
+ -@
+
+#
+# Target to update the FD
+#
+
+fds: mbuild gen_fds
+
+#
+# Initialization target: print build information and create necessary directories
+#
+init: info dirs
+
+info:
+ -@echo Building ... $(MODULE_DIR)\$(MODULE_FILE) [$(ARCH)]
+
+dirs:
+ -@if not exist $(DEBUG_DIR) $(MD) $(DEBUG_DIR)
+ -@if not exist $(OUTPUT_DIR) $(MD) $(OUTPUT_DIR)
+
+
+strdefs:
+ -@$(CP) $(DEBUG_DIR)\AutoGen.h $(DEBUG_DIR)\$(MODULE_NAME)StrDefs.h
+
+#
+# GenLibsTarget
+#
+gen_libs:
+ @cd $(MODULE_BUILD_DIR)
+
+#
+# Build Flash Device Image
+#
+gen_fds:
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BUILD_DIR)\Makefile fds
+ @cd $(MODULE_BUILD_DIR)
+
+!INCLUDE $(MODULE_BUILD_DIR)\dependency
+!INCLUDE $(MODULE_BUILD_DIR)\deps_target
+
+#
+# Individual Object Build Targets
+#
+$(DEBUG_DIR)\DeviceManagerVfr.c : $(MAKE_FILE)
+$(DEBUG_DIR)\DeviceManagerVfr.c : $(DEBUG_DIR)\AutoGen.h
+$(DEBUG_DIR)\DeviceManagerVfr.c : $(DEBUG_DIR)\DeviceManagerUiLibStrDefs.h
+$(DEBUG_DIR)\DeviceManagerVfr.c : $(WORKSPACE)\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerVfr.Vfr
+ "$(VFRPP)" $(DEPS_FLAGS) $(VFRPP_FLAGS) $(INC) c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerVfr.Vfr > $(OUTPUT_DIR)\DeviceManagerVfr.i
+ "$(VFR)" $(VFR_FLAGS) --string-db $(OUTPUT_DIR)\$(MODULE_NAME)StrDefs.hpk --output-directory c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\DEBUG\. $(OUTPUT_DIR)\DeviceManagerVfr.i
+ "$(PYVFR)" c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerVfr.Vfr -i $(INC) -m $(MODULE_NAME) -o $(OUTPUT_DIR) --vfr
+
+$(OBJLIST_0): \
+ $(MAKE_FILE) \
+ $(DEBUG_DIR)\AutoGen.c \
+ $(DEBUG_DIR)\AutoGen.h \
+ $(DEBUG_DIR)\DeviceManagerUiLibStrDefs.h \
+ $(DEBUG_DIR)\DeviceManagerVfr.c \
+ $(WORKSPACE)\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManager.c
+ "$(CC)" /Foc:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\OUTPUT\.\ $(DEPS_FLAGS) $(CC_FLAGS) $(INC) $(cc_resp_2)
+
+$(OUTPUT_DIR)\DeviceManagerUiLib.lib : $(OBJECT_FILES)
+$(OUTPUT_DIR)\DeviceManagerUiLib.lib : $(OBJECT_FILES_LIST)
+ "$(SLINK)" $(SLINK_FLAGS) /OUT:c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\OUTPUT\DeviceManagerUiLib.lib @$(OBJECT_FILES_LIST)
+
+
+
+#
+# clean all intermediate files
+#
+clean:
+ if exist $(OUTPUT_DIR) $(RD) $(OUTPUT_DIR)
+ $(RM) AutoGenTimeStamp
+
+#
+# clean all generated files
+#
+cleanall:
+ if exist $(DEBUG_DIR) $(RD) $(DEBUG_DIR)
+ if exist $(OUTPUT_DIR) $(RD) $(OUTPUT_DIR)
+ $(RM) *.pdb *.idb > NUL 2>&1
+ $(RM) $(BIN_DIR)\$(MODULE_NAME).efi
+ $(RM) AutoGenTimeStamp
+
+#
+# clean all dependent libraries built
+#
+cleanlib:
+ @cd $(MODULE_BUILD_DIR)
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/AutoGen.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/AutoGen.c.deps
new file mode 100644
index 000000000000..19f5bbce2746
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/AutoGen.c.deps
@@ -0,0 +1,39 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\OUTPUT\AutoGen.c: \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\devicemanageruilib\devicemanageruilib\debug\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\devicemanageruilib\devicemanageruilib\debug\DeviceManagerUiLibStrDefs.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/DeviceManager.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/DeviceManager.c.deps
new file mode 100644
index 000000000000..19f7a571730c
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/DeviceManager.c.deps
@@ -0,0 +1,63 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\OUTPUT\DeviceManager.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\devicemanageruilib\devicemanageruilib\debug\DeviceManagerUiLibStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\devicemanageruilib\DeviceManager.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/PciIo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiBootManagerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverHealth.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/SortLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/DeviceManagerUiLib.lib b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/DeviceManagerUiLib.lib
new file mode 100644
index 0000000000000000000000000000000000000000..e8c957b4866963d939f9f7a8e65d4a4a32bd5a76
GIT binary patch
literal 80758
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
FUInMcPk#Ua
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/DeviceManagerUiLibStrDefs.hpk b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/DeviceManagerUiLibStrDefs.hpk
new file mode 100644
index 0000000000000000000000000000000000000000..f31784fa15c45cd472462900286ddff7d075b62c
GIT binary patch
literal 1204
zcmds#O-{o=42542N5}z&1C$jPK+vuTLIe&lYK9iIN~ARWotSIz*^oAL(SW*ZCNqic
z=XuYT=O;S7kYs!487Woc$3odemF8OMS!*rG%C434iaFyOlq&*=K$02@KY%i9U?=ht
zz!pypEa;8D6)WJ2TKW|q#9rJ}`?+xM08Kw^WH(OQnu6Sa*PNz2sDP{au?X|tVJGxi
z;)M8>^BQ~7JIGe&cF`?ni{u*kl3<_n;Bdj^U3aV--&I#TlqL4I*^yq(Tu!;EuFK4I
z>2*YvtggNRnZNqBuiQTa>0AD<F?(vp(|cu8B-<o?a@zPHyx;Dl9<;O3p|f_p!}JAS
CSi^k)
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/DeviceManagerUiLibUni.json b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/DeviceManagerUiLibUni.json
new file mode 100644
index 000000000000..0dd8b1d6cc14
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/DeviceManagerUiLibUni.json
@@ -0,0 +1,42 @@
+{
+ "LanguageDef": [
+ [
+ "en-US",
+ "English"
+ ],
+ [
+ "fr-FR",
+ "Fran\u00e7ais"
+ ]
+ ],
+ "UniString": {
+ "en-US": {
+ "$LANGUAGE_NAME": "en-US",
+ "$PRINTABLE_LANGUAGE_NAME": "English",
+ "STR_EDKII_MENU_TITLE": "Device Manager",
+ "STR_EDKII_MENU_HELP": "This selection will take you to the Device Manager",
+ "STR_DEVICES_LIST": "Devices List",
+ "STR_DISK_DEVICE": "Disk Devices",
+ "STR_VIDEO_DEVICE": "Video Devices",
+ "STR_NETWORK_DEVICE": "Network Devices",
+ "STR_INPUT_DEVICE": "Input Devices",
+ "STR_ON_BOARD_DEVICE": "Motherboard Devices",
+ "STR_OTHER_DEVICE": "Other Devices",
+ "STR_MISSING_STRING": "Missing String",
+ "STR_EMPTY_STRING": "",
+ "STR_EXIT_STRING": "Press ESC to exit.",
+ "STR_FORM_NETWORK_DEVICE_TITLE_HEAD": "Network Device",
+ "STR_FORM_NETWORK_DEVICE_TITLE": "Network Device",
+ "STR_FORM_NETWORK_DEVICE_HELP": "Network Device Help...",
+ "STR_NETWORK_DEVICE_STRING": "Network Device",
+ "STR_FORM_NETWORK_DEVICE_LIST_HELP": "Select the network device according the MAC address",
+ "STR_FORM_NETWORK_DEVICE_LIST_TITLE": "Network Device List",
+ "STR_NETWORK_DEVICE_LIST_STRING": "Network Device List",
+ "STR_NETWORK_DEVICE_HELP": "Network Device"
+ },
+ "fr-FR": {
+ "$LANGUAGE_NAME": "fr-FR",
+ "$PRINTABLE_LANGUAGE_NAME": "Fran\u00e7ais"
+ }
+ }
+}
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/DeviceManagerVfr.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/DeviceManagerVfr.c.deps
new file mode 100644
index 000000000000..2a1472633004
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/DeviceManagerVfr.c.deps
@@ -0,0 +1,39 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\OUTPUT\DeviceManagerVfr.obj: \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\devicemanageruilib\devicemanageruilib\debug\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\devicemanageruilib\devicemanageruilib\debug\DeviceManagerUiLibStrDefs.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/DeviceManagerVfr.i b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/DeviceManagerVfr.i
new file mode 100644
index 000000000000..53c8cfaae454
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/DeviceManagerVfr.i
@@ -0,0 +1,114 @@
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Library\\DeviceManagerUiLib\\DeviceManagerVfr.Vfr"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\DeviceManagerUiLib\\DeviceManagerUiLib\\DEBUG\\DeviceManagerUiLibStrDefs.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern unsigned char DeviceManagerUiLibStrings[];
+
+
+
+
+
+
+
+
+
+#line 50 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\DeviceManagerUiLib\\DeviceManagerUiLib\\DEBUG\\DeviceManagerUiLibStrDefs.h"
+
+#line 52 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\DeviceManagerUiLib\\DeviceManagerUiLib\\DEBUG\\DeviceManagerUiLibStrDefs.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Library\\DeviceManagerUiLib\\DeviceManagerVfr.Vfr"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+formset
+ guid = { 0x3ebfa8e6, 0x511d, 0x4b5b, 0xa9, 0x5f, 0xfb, 0x38, 0x26, 0xf, 0x1c, 0x27 },
+ title = STRING_TOKEN(0x0002),
+ help = STRING_TOKEN(0x0003),
+ classguid = { 0xe58809f8, 0xfbc1, 0x48e2, { 0x88, 0x3a, 0xa3, 0x0f, 0xdc, 0x4b, 0x44, 0x1e } },
+
+ form formid = 0x1000,
+ title = STRING_TOKEN(0x0002);
+ subtitle text = STRING_TOKEN(0x0004);
+
+ label 0x1100;
+ label 0xffff;
+
+ subtitle text = STRING_TOKEN(0x0006);
+ subtitle text = STRING_TOKEN(0x0006);
+ subtitle text = STRING_TOKEN(0x0007);
+ endform;
+
+ form formid = 0x1001,
+ title = STRING_TOKEN(0x000C);
+ subtitle text = STRING_TOKEN(0x000D);
+
+ label 0x1101;
+ label 0xffff;
+
+ subtitle text = STRING_TOKEN(0x0006);
+ subtitle text = STRING_TOKEN(0x0007);
+ endform;
+
+ form formid = 0x1002,
+ title = STRING_TOKEN(0x0009);
+ subtitle text = STRING_TOKEN(0x000A);
+
+ label 0x1102;
+ label 0xffff;
+
+ subtitle text = STRING_TOKEN(0x0006);
+ subtitle text = STRING_TOKEN(0x0007);
+ endform;
+endformset;
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/cc_resp_2.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/cc_resp_2.txt
new file mode 100644
index 000000000000..532269a60333
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/cc_resp_2.txt
@@ -0,0 +1 @@
+ c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\DEBUG\AutoGen.c c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\DEBUG\DeviceManagerVfr.c c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManager.c
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/object_files.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/object_files.lst
new file mode 100644
index 000000000000..c4f3567adf6c
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/OUTPUT/object_files.lst
@@ -0,0 +1,3 @@
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib/OUTPUT/DeviceManagerVfr.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib/OUTPUT/DeviceManager.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib/OUTPUT/AutoGen.obj
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/dependency b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/dependency
new file mode 100644
index 000000000000..fd3bfaf4236c
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/dependency
@@ -0,0 +1,19 @@
+
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\DEBUG\DeviceManagerVfr.Vfr.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\DEBUG\DeviceManagerVfr.Vfr.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\OUTPUT\AutoGen.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\OUTPUT\AutoGen.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\OUTPUT\DeviceManager.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\OUTPUT\DeviceManager.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\OUTPUT\DeviceManagerVfr.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\OUTPUT\DeviceManagerVfr.c.deps
+!ENDIF
+
+
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/deps.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/deps.txt
new file mode 100644
index 000000000000..c59bf03ba3e5
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/deps.txt
@@ -0,0 +1,64 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\DEBUG\AutoGen.h
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\DEBUG\DeviceManagerUiLibStrDefs.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/SortLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiBootManagerLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverHealth.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/PciIo.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\devicemanageruilib\devicemanageruilib\debug\AutoGen.h
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\devicemanageruilib\devicemanageruilib\debug\DeviceManagerUiLibStrDefs.h
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\devicemanageruilib\DeviceManager.h
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/deps_target b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/deps_target
new file mode 100644
index 000000000000..6533eb26e489
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/DeviceManagerUiLib/deps_target
@@ -0,0 +1,64 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\DEBUG\AutoGen.h:
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\DEBUG\DeviceManagerUiLibStrDefs.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/SortLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiBootManagerLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverHealth.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/PciIo.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h:
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\devicemanageruilib\devicemanageruilib\debug\AutoGen.h:
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\devicemanageruilib\devicemanageruilib\debug\DeviceManagerUiLibStrDefs.h:
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\devicemanageruilib\DeviceManager.h:
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/AutoGenTimeStamp b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/AutoGenTimeStamp
new file mode 100644
index 000000000000..68dde9629068
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/AutoGenTimeStamp
@@ -0,0 +1,8 @@
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\FileExplorerLib\FormGuid.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\FileExplorerLib\FileExplorerString.uni
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\DEBUG\AutoGen.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\FileExplorerLib\FileExplorer.c
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\FileExplorerLib\FileExplorerVfr.vfr
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\FileExplorerLib\FileExplorer.h
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\DEBUG\FileExplorerLibStrDefs.h
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerVfr.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerVfr.lst
new file mode 100644
index 000000000000..9cdec64392ad
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerVfr.lst
@@ -0,0 +1,286 @@
+//
+// VFR compiler version 2.01 (UEFI 2.4) Developer Build based on Revision: Unknown
+//
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Library\\FileExplorerLib\\FileExplorerVfr.vfr"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\FileExplorerLib\\FileExplorerLib\\DEBUG\\FileExplorerLibStrDefs.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern unsigned char FileExplorerLibStrings[];
+
+
+
+
+
+
+
+
+
+
+
+#line 48 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\FileExplorerLib\\FileExplorerLib\\DEBUG\\FileExplorerLibStrDefs.h"
+
+#line 50 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\FileExplorerLib\\FileExplorerLib\\DEBUG\\FileExplorerLibStrDefs.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Library\\FileExplorerLib\\FileExplorerVfr.vfr"
+
+
+
+
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\mdemodulepkg\\library\\fileexplorerlib\\FormGuid.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 30 "c:\\users\\mliang2x\\workspace\\edk2\\mdemodulepkg\\library\\fileexplorerlib\\FormGuid.h"
+#line 11 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Library\\FileExplorerLib\\FileExplorerVfr.vfr"
+
+formset
+>00000000: 0E A7 96 15 56 FE BF E6 A6 41 83 76 C7 2B 71 98 74 D0 03 00 02 00 01 96 15 56 FE BF E6 A6 41 83 76 C7 2B 71 98 74 D0
+>00000027: 5C 06 00 00 00 00
+>0000002D: 5C 06 00 00 01 00
+ guid = { 0xfe561596, 0xe6bf, 0x41a6, {0x83, 0x76, 0xc7, 0x2b, 0x71, 0x98, 0x74, 0xd0} },
+ title = STRING_TOKEN(0x0003),
+ help = STRING_TOKEN(0x0002),
+ classguid = { 0xfe561596, 0xe6bf, 0x41a6, {0x83, 0x76, 0xc7, 0x2b, 0x71, 0x98, 0x74, 0xd0} },
+
+ form formid = 0x1000,
+>00000033: 01 86 00 10 03 00
+ title = STRING_TOKEN(0x0003);
+
+ label 0x1000;
+>00000039: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 00 10
+ label 0xffff;
+>0000004E: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+ endform;
+>00000063: 29 02
+
+ form formid = 0x2000,
+>00000065: 01 86 00 20 06 00
+ title = STRING_TOKEN(0x0006);
+
+ string
+>0000006B: 1C 90 08 00 09 00 01 20 00 00 FF FF 04 02 14 00
+ prompt = STRING_TOKEN(0x0008),
+ help = STRING_TOKEN(0x0009),
+ flags = INTERACTIVE,
+ key = 0x2001,
+ minsize = 2,
+ maxsize = 20,
+ endstring;
+>0000007B: 29 02
+
+ subtitle text = STRING_TOKEN(0x0002);
+>0000007D: 02 87 02 00 00 00 00
+>00000084: 29 02
+
+ text
+ help = STRING_TOKEN(0x000A),
+ text = STRING_TOKEN(0x000A),
+ flags = INTERACTIVE,
+>00000086: 0C 8F 0A 00 0A 00 02 20 00 00 FF FF 04 00 00
+ key = 0x2002;
+>00000095: 29 02
+
+ text
+ help = STRING_TOKEN(0x000B),
+ text = STRING_TOKEN(0x000B),
+ flags = INTERACTIVE,
+>00000097: 0C 8F 0B 00 0B 00 03 20 00 00 FF FF 04 00 00
+ key = 0x2003;
+>000000A6: 29 02
+ endform;
+>000000A8: 29 02
+
+ form formid = 0x3000,
+>000000AA: 01 86 00 30 07 00
+ title = STRING_TOKEN(0x0007);
+
+ string
+>000000B0: 1C 90 0E 00 0F 00 01 30 00 00 FF FF 04 02 14 00
+ prompt = STRING_TOKEN(0x000E),
+ help = STRING_TOKEN(0x000F),
+ flags = INTERACTIVE,
+ key = 0x3001,
+ minsize = 2,
+ maxsize = 20,
+ endstring;
+>000000C0: 29 02
+
+ subtitle text = STRING_TOKEN(0x0002);
+>000000C2: 02 87 02 00 00 00 00
+>000000C9: 29 02
+
+ text
+ help = STRING_TOKEN(0x0010),
+ text = STRING_TOKEN(0x0010),
+ flags = INTERACTIVE,
+>000000CB: 0C 8F 10 00 10 00 02 30 00 00 FF FF 04 00 00
+ key = 0x3002;
+>000000DA: 29 02
+
+ text
+ help = STRING_TOKEN(0x0011),
+ text = STRING_TOKEN(0x0011),
+ flags = INTERACTIVE,
+>000000DC: 0C 8F 11 00 11 00 03 30 00 00 FF FF 04 00 00
+ key = 0x3003;
+>000000EB: 29 02
+ endform;
+>000000ED: 29 02
+
+endformset;
+>000000EF: 29 02
+
+//
+// All Opcode Record List
+//
+>00000000: 0E A7 96 15 56 FE BF E6 A6 41 83 76 C7 2B 71 98 74 D0 03 00 02 00 01 96 15 56 FE BF E6 A6 41 83 76 C7 2B 71 98 74 D0
+>00000027: 5C 06 00 00 00 00
+>0000002D: 5C 06 00 00 01 00
+>00000033: 01 86 00 10 03 00
+>00000039: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 00 10
+>0000004E: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>00000063: 29 02
+>00000065: 01 86 00 20 06 00
+>0000006B: 1C 90 08 00 09 00 01 20 00 00 FF FF 04 02 14 00
+>0000007B: 29 02
+>0000007D: 02 87 02 00 00 00 00
+>00000084: 29 02
+>00000086: 0C 8F 0A 00 0A 00 02 20 00 00 FF FF 04 00 00
+>00000095: 29 02
+>00000097: 0C 8F 0B 00 0B 00 03 20 00 00 FF FF 04 00 00
+>000000A6: 29 02
+>000000A8: 29 02
+>000000AA: 01 86 00 30 07 00
+>000000B0: 1C 90 0E 00 0F 00 01 30 00 00 FF FF 04 02 14 00
+>000000C0: 29 02
+>000000C2: 02 87 02 00 00 00 00
+>000000C9: 29 02
+>000000CB: 0C 8F 10 00 10 00 02 30 00 00 FF FF 04 00 00
+>000000DA: 29 02
+>000000DC: 0C 8F 11 00 11 00 03 30 00 00 FF FF 04 00 00
+>000000EB: 29 02
+>000000ED: 29 02
+>000000EF: 29 02
+
+Total Size of all record is 0x000000F1
+
+
+***************************************************************
+ mPackAlign = 8
+ struct EFI_HII_REF : mAlign [16] mTotalSize [0x16]
+
+ struct EFI_HII_REF {
+ +00000000[00000000] QuestionId <UINT16>
+ +00000002[00000002] FormId <UINT16>
+ +00000004[00000004] FormSetGuid <(null)>
+ +00000020[00000014] DevicePath <EFI_STRING_ID>
+ };
+---------------------------------------------------------------
+ struct EFI_HII_TIME : mAlign [1] mTotalSize [0x3]
+
+ struct EFI_HII_TIME {
+ +00000000[00000000] Hours <UINT8>
+ +00000001[00000001] Minutes <UINT8>
+ +00000002[00000002] Seconds <UINT8>
+ };
+---------------------------------------------------------------
+ struct EFI_STRING_ID : mAlign [2] mTotalSize [0x2]
+
+ struct EFI_STRING_ID {
+ };
+---------------------------------------------------------------
+ struct EFI_HII_DATE : mAlign [2] mTotalSize [0x4]
+
+ struct EFI_HII_DATE {
+ +00000000[00000000] Year <UINT16>
+ +00000002[00000002] Month <UINT8>
+ +00000003[00000003] Day <UINT8>
+ };
+---------------------------------------------------------------
+ struct BOOLEAN : mAlign [1] mTotalSize [0x1]
+
+ struct BOOLEAN {
+ };
+---------------------------------------------------------------
+ struct UINT8 : mAlign [1] mTotalSize [0x1]
+
+ struct UINT8 {
+ };
+---------------------------------------------------------------
+ struct UINT16 : mAlign [2] mTotalSize [0x2]
+
+ struct UINT16 {
+ };
+---------------------------------------------------------------
+ struct UINT32 : mAlign [4] mTotalSize [0x4]
+
+ struct UINT32 {
+ };
+---------------------------------------------------------------
+ struct UINT64 : mAlign [8] mTotalSize [0x8]
+
+ struct UINT64 {
+ };
+---------------------------------------------------------------
+***************************************************************
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerVfr.vfr.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerVfr.vfr.deps
new file mode 100644
index 000000000000..3e437554381f
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerVfr.vfr.deps
@@ -0,0 +1,3 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\DEBUG\FileExplorerVfr.c: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\DEBUG\FileExplorerLibStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\fileexplorerlib\FormGuid.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerVfrCompiled.yml b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerVfrCompiled.yml
new file mode 100644
index 000000000000..af79a606f50b
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerVfrCompiled.yml
@@ -0,0 +1,74 @@
+## DO NOT REMOVE -- YAML Mode
+include:
+- FormGuid.h
+
+formset:
+ guid: '{0xfe561596, 0xe6bf, 0x41a6, { 0x83, 0x76, 0xc7, 0x2b, 0x71, 0x98, 0x74, 0xd0 }}'
+ help: ' '
+ title: 'File Explorer'
+ classguid1: '{0xfe561596, 0xe6bf, 0x41a6, { 0x83, 0x76, 0xc7, 0x2b, 0x71, 0x98, 0x74, 0xd0 }}'
+ component:
+ - form:
+ formid: 4096
+ title: 'File Explorer'
+ component:
+ - label:
+ number: 0x1000 # Number
+ - label:
+ number: 0xffff # Number
+ - form:
+ formid: 8192
+ title: 'Create a new file'
+ component:
+ - string:
+ questionid: 8193
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'File Name'
+ help: 'Please input a name for the new file'
+ opcodeflags: 0x0 # optional input
+ minsize: 2
+ maxsize: 20
+ - subtitle:
+ prompt: ' '
+ flags: 0 # Optional Input
+ - text:
+ help: 'Create File and Exit'
+ prompt: 'Create File and Exit'
+ flags: 4 # Optional Input, Question Flags
+ key: 0x2002 # Optional Input, Question QuestionId
+ - text:
+ help: 'Discard Create and Exit'
+ prompt: 'Discard Create and Exit'
+ flags: 4 # Optional Input, Question Flags
+ key: 0x2003 # Optional Input, Question QuestionId
+ - form:
+ formid: 12288
+ title: 'Create a new folder'
+ component:
+ - string:
+ questionid: 12289
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Folder Name'
+ help: 'Please input a name for the new folder'
+ opcodeflags: 0x0 # optional input
+ minsize: 2
+ maxsize: 20
+ - subtitle:
+ prompt: ' '
+ flags: 0 # Optional Input
+ - text:
+ help: 'Create Folder and Exit'
+ prompt: 'Create Folder and Exit'
+ flags: 4 # Optional Input, Question Flags
+ key: 0x3002 # Optional Input, Question QuestionId
+ - text:
+ help: 'Discard Create and Exit'
+ prompt: 'Discard Create and Exit'
+ flags: 4 # Optional Input, Question Flags
+ key: 0x3003 # Optional Input, Question QuestionId
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerVfrProcessed.yml b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerVfrProcessed.yml
new file mode 100644
index 000000000000..337e4aee1574
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/DEBUG/FileExplorerVfrProcessed.yml
@@ -0,0 +1,62 @@
+formset:
+ classguid: '{0xfe561596, 0xe6bf, 0x41a6, {0x83, 0x76, 0xc7, 0x2b, 0x71, 0x98, 0x74, 0xd0}}'
+ component:
+ - form:
+ component:
+ - label:
+ number: 4096
+ - label:
+ number: 65535
+ formid: 4096
+ title: STRING_TOKEN(0x0003)
+ - form:
+ component:
+ - string:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0009)
+ key: 8193
+ maxsize: 20
+ minsize: 2
+ prompt: STRING_TOKEN(0x0008)
+ - subtitle:
+ text: STRING_TOKEN(0x0002)
+ - text:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x000A)
+ key: 8194
+ prompt: STRING_TOKEN(0x000A)
+ - text:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x000B)
+ key: 8195
+ prompt: STRING_TOKEN(0x000B)
+ formid: 8192
+ title: STRING_TOKEN(0x0006)
+ - form:
+ component:
+ - string:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x000F)
+ key: 12289
+ maxsize: 20
+ minsize: 2
+ prompt: STRING_TOKEN(0x000E)
+ - subtitle:
+ text: STRING_TOKEN(0x0002)
+ - text:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0010)
+ key: 12290
+ prompt: STRING_TOKEN(0x0010)
+ - text:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0011)
+ key: 12291
+ prompt: STRING_TOKEN(0x0011)
+ formid: 12288
+ title: STRING_TOKEN(0x0007)
+ guid: '{0xfe561596, 0xe6bf, 0x41a6, {0x83, 0x76, 0xc7, 0x2b, 0x71, 0x98, 0x74, 0xd0}}'
+ help: STRING_TOKEN(0x0002)
+ title: STRING_TOKEN(0x0003)
+include:
+- FormGuid.h
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/FileExplorerLib.makefile b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/FileExplorerLib.makefile
new file mode 100644
index 000000000000..ced4e64eeaf3
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/FileExplorerLib.makefile
@@ -0,0 +1 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\Makefile
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/Makefile b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/Makefile
new file mode 100644
index 000000000000..da6c7ab5e601
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/Makefile
@@ -0,0 +1,340 @@
+#
+# DO NOT EDIT
+# This file is auto-generated by build utility
+#
+# Module Name:
+#
+# Makefile
+#
+# Abstract:
+#
+# Auto-generated makefile for building modules, libraries or platform
+#
+
+
+#
+# Platform Macro Definition
+#
+PLATFORM_NAME = Ovmf
+PLATFORM_GUID = 5a9e7754-d81b-49ea-85ad-69eaa7b1539b
+PLATFORM_VERSION = 0.1
+PLATFORM_RELATIVE_DIR = OvmfPkg
+PLATFORM_DIR = c:\users\mliang2x\workspace\edk2\OvmfPkg
+PLATFORM_OUTPUT_DIR = Build\Ovmf3264
+
+#
+# Module Macro Definition
+#
+MODULE_NAME = FileExplorerLib
+MODULE_GUID = 4FC9C630-0F90-4053-8F13-264CBD22FC58
+MODULE_NAME_GUID = FileExplorerLib
+MODULE_VERSION = 1.0
+MODULE_TYPE = DXE_DRIVER
+MODULE_FILE = FileExplorerLib.inf
+MODULE_FILE_BASE_NAME = FileExplorerLib
+BASE_NAME = $(MODULE_NAME)
+MODULE_RELATIVE_DIR = MdeModulePkg\Library\FileExplorerLib
+PACKAGE_RELATIVE_DIR = Library\FileExplorerLib
+MODULE_DIR = c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\FileExplorerLib
+FFS_OUTPUT_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\FV\Ffs\4FC9C630-0F90-4053-8F13-264CBD22FC58FileExplorerLib
+
+MODULE_ENTRY_POINT = _ModuleEntryPoint
+ARCH_ENTRY_POINT = _ModuleEntryPoint
+IMAGE_ENTRY_POINT = _ModuleEntryPoint
+
+INF_VERSION = 0x00010005
+BASE_NAME = FileExplorerLib
+MODULE_UNI_FILE = FileExplorerLib.uni
+FILE_GUID = 4FC9C630-0F90-4053-8F13-264CBD22FC58
+MODULE_TYPE = DXE_DRIVER
+VERSION_STRING = 1.0
+
+#
+# Build Configuration Macro Definition
+#
+ARCH = X64
+TOOLCHAIN = VS2015x86
+TOOLCHAIN_TAG = VS2015x86
+TARGET = DEBUG
+
+#
+# Build Directory Macro Definition
+#
+# PLATFORM_BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86
+BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86
+BIN_DIR = $(BUILD_DIR)\X64
+LIB_DIR = $(BIN_DIR)
+MODULE_BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib
+OUTPUT_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\OUTPUT
+DEBUG_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\DEBUG
+DEST_DIR_OUTPUT = $(OUTPUT_DIR)
+DEST_DIR_DEBUG = $(DEBUG_DIR)
+
+#
+# Shell Command Macro
+#
+CP = copy /y
+MV = move /y
+RM = del /f /q
+MD = mkdir
+RD = rmdir /s /q
+
+
+#
+# Tools definitions specific to this module
+#
+APP_FLAGS = /nologo /E /TC
+APP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASL_FLAGS =
+ASL_OUTFLAGS = -p
+ASL = C:\ASL\iasl.exe
+
+ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable
+ASLCC = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE
+ASLDLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\link.exe
+
+ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h
+ASLPP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+ASM = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\ml64.exe
+
+ASM16 = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\ml.exe
+
+ASMLINK_FLAGS = /nologo /tiny
+ASMLINK = C:\WINDDK\3790.1830\bin\bin16\link16.exe
+
+BROTLI_GUID = 3D532050-5CDA-4FD0-879E-0F7F630D5AFB
+BROTLI = BrotliCompress
+
+CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /D DISABLE_NEW_DEPRECATED_INTERFACES /D ENABLE_MD5_DEPRECATED_INTERFACES
+CC = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+CRC32_GUID = FC1BCDB0-7D31-49AA-936A-A4600D9DD083
+CRC32 = GenCrc32
+
+DEPS_FLAGS = /showIncludes
+
+DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+DLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\link.exe
+
+DLINK2_FLAGS =
+
+DTC_FLAGS = -H epapr
+DTC = dtc
+
+DTCPP = cpp
+
+GENFW_FLAGS =
+GENFW = GenFw
+
+LZMA_GUID = EE4E5898-3914-4259-9D6E-DC7BD79403CF
+LZMA = LzmaCompress
+
+LZMAF86_GUID = D42AE6BD-1352-4bfb-909A-CA72A6EAE889
+LZMAF86 = LzmaF86Compress
+
+MAKE = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\nmake.exe
+
+NASM_FLAGS = -Ox -f win64 -g
+NASM = C:\nasm\nasm
+
+NASMB_FLAGS = -f bin
+
+OBJCOPY_ADDDEBUGFLAG = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_NAME).debug
+OBJCOPY_FLAGS = objcopy not needed for
+OBJCOPY = echo
+OBJCOPY_STRIPFLAG = --strip-unneeded -R .eh_frame
+
+OPTROM_FLAGS = -e
+OPTROM = EfiRom
+
+PKCS7SIGN_GUID = 4AAFD29D-68DF-49EE-8AA9-347D375665A7
+PKCS7SIGN = Pkcs7Sign
+
+PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+PP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+PYVFR = PyVfrCompile
+
+RC = c:\Program Files (x86)\Windows Kits\8.1\bin\x64\rc.exe
+
+RSA2048SHA256SIGN_GUID = A7717414-C616-4977-9420-844712A735BF
+RSA2048SHA256SIGN = Rsa2048Sha256Sign
+
+SLINK_FLAGS = /NOLOGO /LTCG
+SLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\lib.exe
+
+SYMRENAME_FLAGS = Symbol renaming not needed for
+SYMRENAME = echo
+
+TIANO_GUID = A31280AD-481E-41B6-95E8-127F4C984779
+TIANO = TianoCompress
+
+VFR_FLAGS = -l -n
+VFR = VfrCompile
+
+VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+VFRPP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+VPDTOOL_GUID = 8C3D856A-9BE6-468E-850A-24F7A8D38E08
+VPDTOOL = BPDG
+
+cc_resp_2 = @c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\OUTPUT\cc_resp_2.txt
+
+MAKE_FILE = $(MODULE_BUILD_DIR)\Makefile
+
+#
+# Build Macro
+#
+OBJECT_FILES = \
+ $(OUTPUT_DIR)\AutoGen.obj \
+ $(OUTPUT_DIR)\FileExplorer.obj \
+ $(OUTPUT_DIR)\FileExplorerVfr.obj
+
+INC = \
+ /I$(WORKSPACE)\MdeModulePkg\Library\FileExplorerLib \
+ /I$(DEBUG_DIR) \
+ /I$(WORKSPACE)\MdePkg \
+ /I$(WORKSPACE)\MdePkg\Include \
+ /I$(WORKSPACE)\MdePkg\Test\UnitTest\Include \
+ /I$(WORKSPACE)\MdePkg\Include\X64 \
+ /I$(WORKSPACE)\MdeModulePkg \
+ /I$(WORKSPACE)\MdeModulePkg\Include \
+ /I$(WORKSPACE)\MdeModulePkg\Library\BrotliCustomDecompressLib\brotli\c\include
+
+OBJECT_FILES_LIST = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\OUTPUT\object_files.lst
+OBJLIST_0 = $(OUTPUT_DIR)\FileExplorer.obj $(OUTPUT_DIR)\AutoGen.obj $(OUTPUT_DIR)\FileExplorerVfr.obj
+
+
+#
+# Overridable Target Macro Definitions
+#
+FORCE_REBUILD = force_build
+INIT_TARGET = init
+PCH_TARGET =
+BC_TARGET =
+CODA_TARGET = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\OUTPUT\FileExplorerLib.lib \
+
+
+#
+# Default target, which will build dependent libraries in addition to source files
+#
+
+all: mbuild
+
+
+#
+# Target used when called from platform makefile, which will bypass the build of dependent libraries
+#
+
+pbuild: $(INIT_TARGET) $(BC_TARGET) $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# ModuleTarget
+#
+
+mbuild: $(INIT_TARGET) $(BC_TARGET) gen_libs $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# Build Target used in multi-thread build mode, which will bypass the init and gen_libs targets
+#
+
+tbuild: $(BC_TARGET) $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# Phony target which is used to force executing commands for a target
+#
+force_build:
+ -@
+
+#
+# Target to update the FD
+#
+
+fds: mbuild gen_fds
+
+#
+# Initialization target: print build information and create necessary directories
+#
+init: info dirs
+
+info:
+ -@echo Building ... $(MODULE_DIR)\$(MODULE_FILE) [$(ARCH)]
+
+dirs:
+ -@if not exist $(DEBUG_DIR) $(MD) $(DEBUG_DIR)
+ -@if not exist $(OUTPUT_DIR) $(MD) $(OUTPUT_DIR)
+
+
+strdefs:
+ -@$(CP) $(DEBUG_DIR)\AutoGen.h $(DEBUG_DIR)\$(MODULE_NAME)StrDefs.h
+
+#
+# GenLibsTarget
+#
+gen_libs:
+ @cd $(MODULE_BUILD_DIR)
+
+#
+# Build Flash Device Image
+#
+gen_fds:
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BUILD_DIR)\Makefile fds
+ @cd $(MODULE_BUILD_DIR)
+
+!INCLUDE $(MODULE_BUILD_DIR)\dependency
+!INCLUDE $(MODULE_BUILD_DIR)\deps_target
+
+#
+# Individual Object Build Targets
+#
+$(DEBUG_DIR)\FileExplorerVfr.c : $(MAKE_FILE)
+$(DEBUG_DIR)\FileExplorerVfr.c : $(DEBUG_DIR)\AutoGen.h
+$(DEBUG_DIR)\FileExplorerVfr.c : $(DEBUG_DIR)\FileExplorerLibStrDefs.h
+$(DEBUG_DIR)\FileExplorerVfr.c : $(WORKSPACE)\MdeModulePkg\Library\FileExplorerLib\FileExplorerVfr.vfr
+ "$(VFRPP)" $(DEPS_FLAGS) $(VFRPP_FLAGS) $(INC) c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\FileExplorerLib\FileExplorerVfr.vfr > $(OUTPUT_DIR)\FileExplorerVfr.i
+ "$(VFR)" $(VFR_FLAGS) --string-db $(OUTPUT_DIR)\$(MODULE_NAME)StrDefs.hpk --output-directory c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\DEBUG\. $(OUTPUT_DIR)\FileExplorerVfr.i
+ "$(PYVFR)" c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\FileExplorerLib\FileExplorerVfr.vfr -i $(INC) -m $(MODULE_NAME) -o $(OUTPUT_DIR) --vfr
+
+$(OBJLIST_0): \
+ $(MAKE_FILE) \
+ $(DEBUG_DIR)\FileExplorerVfr.c \
+ $(DEBUG_DIR)\AutoGen.c \
+ $(DEBUG_DIR)\AutoGen.h \
+ $(DEBUG_DIR)\FileExplorerLibStrDefs.h \
+ $(WORKSPACE)\MdeModulePkg\Library\FileExplorerLib\FileExplorer.c
+ "$(CC)" /Foc:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\OUTPUT\.\ $(DEPS_FLAGS) $(CC_FLAGS) $(INC) $(cc_resp_2)
+
+$(OUTPUT_DIR)\FileExplorerLib.lib : $(OBJECT_FILES)
+$(OUTPUT_DIR)\FileExplorerLib.lib : $(OBJECT_FILES_LIST)
+ "$(SLINK)" $(SLINK_FLAGS) /OUT:c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\OUTPUT\FileExplorerLib.lib @$(OBJECT_FILES_LIST)
+
+
+
+#
+# clean all intermediate files
+#
+clean:
+ if exist $(OUTPUT_DIR) $(RD) $(OUTPUT_DIR)
+ $(RM) AutoGenTimeStamp
+
+#
+# clean all generated files
+#
+cleanall:
+ if exist $(DEBUG_DIR) $(RD) $(DEBUG_DIR)
+ if exist $(OUTPUT_DIR) $(RD) $(OUTPUT_DIR)
+ $(RM) *.pdb *.idb > NUL 2>&1
+ $(RM) $(BIN_DIR)\$(MODULE_NAME).efi
+ $(RM) AutoGenTimeStamp
+
+#
+# clean all dependent libraries built
+#
+cleanlib:
+ @cd $(MODULE_BUILD_DIR)
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/AutoGen.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/AutoGen.c.deps
new file mode 100644
index 000000000000..2a13d1e79501
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/AutoGen.c.deps
@@ -0,0 +1,39 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\OUTPUT\AutoGen.c: \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\fileexplorerlib\fileexplorerlib\debug\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\fileexplorerlib\fileexplorerlib\debug\FileExplorerLibStrDefs.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/FileExplorer.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/FileExplorer.c.deps
new file mode 100644
index 000000000000..49c4912b6179
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/FileExplorer.c.deps
@@ -0,0 +1,73 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\OUTPUT\FileExplorer.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\fileexplorerlib\fileexplorerlib\debug\FileExplorerLibStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\fileexplorerlib\FileExplorer.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/FileSystemVolumeLabelInfo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/FileInfo.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePathToText.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/FileExplorerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FileExplorer.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\fileexplorerlib\FormGuid.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/FileExplorerLib.lib b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/FileExplorerLib.lib
new file mode 100644
index 0000000000000000000000000000000000000000..bb8c22719b34f419f3060732d4d1dfafec2c4700
GIT binary patch
literal 104308
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%0DoQsksuf`R_$wyy^#^!FVECAIRR*Q
z5Zapk@aHf%R^ZrTLyWzHadN%KbAt!(`2g&Fz`T<%ubYZLmjH7SX;X52ODP<IBtLau
zV^bI&Wn5_*H=4#TA;)i-bjAz8v>0hny^E-pAAmnetSWH@1KI#x@=od8AC%^e+Sjvo
zU(ogZ(lkCXJ)VeX>~0YnEj8F&qRd>q5tT<Fh`a{6cN5)`a{MWvky{12VxJ$E7;qlR
zHS7+1JyYsk959NijXkQ3ShewR2oiXONoIg!)|*C)X`Eyl=io-Gh%qhVnGx~Kig;#&
zgF~1DScn*~->b^65!H;m3`XuDMix}!&sB&CA&4i&Hsr>2ypvT^xC<11P88yY;!ocg
z{5cS!_=+wm@f=s`xrJj2l=Enn@kEvJbd~X3mFLwe<F~}GXY9o?N^wllFQe6zCu2z8
zOO$^b!Jkuh$DfS?-1(phSP>K&BF5NlE<Fzjjr}+9bsu5hG#`Ji0j*Rs`0|dGMuR6p
ztr<FnLZQk#OycfQaQ8UV&VDzncGq8_kNc^QQ;)!(^AOq*y2Pl9OFTcW_FP)+d92#A
zCG0yh?Asdlo)h+teU9m6y$zOM6YHe;0MUFljz719X6hbDEyg@sZM;?OJt1UV7cx>|
z(!iE*{+VIpys-C&VdF<(V|UYd911y}RhrdFzoi)yx_FR!*ti&f&KxhqDh!p~5bxkw
z=P?~9;xN;5NW|C{F`fg>6PYGl$>9K+;e$Z#AtHAbc9T*=cwZ}A$jHNhgPAvleUjqX
zYS)_pwUufi-y?+F{&oEE(bVx5Nb4(h3|ub;E(^RnNWtw7<FUJ2gv>Abn-leny(a6G
zKF*gX>;CG{-{aKZP&@uyPBYH!<Wu`RKf$=L#JIG?xU9suS%qNl$5XsA1h-QZ_A~@Y
zq?&4@B`g^#*c|qqLOgj-G>w#LbVfZrVCBXvRva&Dc5?CraniB^e_r2Ph<@-<3_id_
z_6z`Z){@)jZ4P^RHjw=pg<|R6bR94rO|%{vN|^H_jq_R)we`^$s5U~{LUCZVIlr+n
z9&Mc;YKYWvLlYW&ACwAAB4*#(I9$Vrh$&LjVas2FDc`$OL?pR%XnAM=S6m0h2HHYG
z`x3PO3hjmBtSQuMO)aih)zme|X^h3Wx8g5T!~EJ><^t8tT)k;8st(oFHPThB)~3+B
zDEar1-1yKwEJ7ky+c2-SHX_92LeZaBR~yHx>>CoXB>+4YJr|0v?@54>=%QMaXe8#h
zHpLnfjb>vVK&k;^h%>`EUyHmMuK_kjrSSeIFJ?uMYOn>6dI5#S%uSRPT3Zhm=_T{A
z1X`AG%M*;_>^{-hnusn=v^L-hAi$1du*3w?3$y2dMe{9)7lq<SOg|Q_Z2<MUI!grm
zN*_RvW=d1{;&=JSYwMe!XzoeAJj+4?=%55;-omlQBk>7<){vQ~ZNzJnrxc1$r8ufH
zv$3J3c3yKVMD48!x|#?QtC_?d4B3b``8&z4L7O2?2@mrMbELK&V`6HXNQqP-Kp|kg
zty+h9&R`3k<>IEkxh_#lqG>o=2jm@VnXTV5iiU`{HbFkiWa}8@2uYPq*4$9n7=jO_
zjzg30;gG<Ex^}!DJC67D<9%G@>eXod5p3~KxU#RdTHw{}F)WT&;cEr$EAh^5yar4;
z{4~(`1W<+I3R@`FP?Un_3EcbAyk`170c-m{c4cyZi$!v{LU9TYfSOp;cK#EI!BzXx
zD6C8NScC8z;4HN-;q<Ur^Dwj<$jRy(8{q7?+}vt5HaC!4uIK(wWH7U_X$ifa4AmRB
zI+Qoixh~m?+X&zVKj-eFi!h$xtclth8dMtrhY<nOB16z${owb|pF~zImR79+KVaq+
zrVy{4*AS{}WkR5^iF-OW&zv8MRS3~%h>J_aa@^ZdyR1Kfj}`P<)Nm&O`v_6<J;pkh
zO9_IIFDDn9y)q0v447}T2Aab4(T3*M#wO{`sYP%i-xE~`PCBWM4=v>vx^M9KI1#)a
zxF-SEw;~{FadC2BFxuTWxK`-)^FiTcw0p$)h!oEEpksCF@lF+!MQSso@)U~eSg+EK
zmWM*<Q&{L`b_g{zIS|H|#1qka3ldyoBrR&JYp#z1>r}?t@5?-*YinX?Zk-<uMK~aT
zj~gqPBsovW#P$AoYYd}33TxAt1&Pxcs)e;Za}I~e1328~CfAuaubHB0igmuNRD`;^
zdg<-;O})Kcma=Q0kRPzJpUI=>>VCuBb!aujkCdu1-vPfFJ4zf?r{FbsFYO&(i+3pw
z_O^q1>Qx}}YwtYpoh|m@p^2)tp{5aRZDDcF<X#g^2;uP40)}*lvDR4hh~_A6EfQ0F
zSmS9a%-+7WE=i7u>Ca$EUX;FyuJlxRCi*hO=5X$J?9=Sv9Yted6!Wx%NA#?6A%?Ij
zh94c3?C+JIX|WvXYY^}(^yc%G%DIx`OI>nRvMbs{clvZ#pb0Rxl|bKe`aLw2;rG7-
z+}SLEkP2&z)we2Llv{oU&3y*ILUF#W)mqF$jSHiQL8)_Df`>{hKO-k-tqX;tG)X?m
zm_ap`w?C~sRzf~O{*{BwtxN{@t-wPYqGp0TH4$s9lS#(;%*c-zM#jBHo~JM1`b9jr
zqKj)2t>MPT1QM7S&FU2Pe+U5Ivkp~-+UdIl8OnMAlKhC3^)`25)=`e*4oug}mR#Ij
z$Xu+lRd{5qHW5Yd7g6su+<T~_!<rE&HqpE>5zX7U+qq1fC*=gZ6S)HAF97*5QFyva
zG~nYvcA#p&9Api;+rj+Bpkjzka7kzQRbQ16n<)Y>mJ#?eBG?%=`oqTBu(3XjtZ#~I
zoS4WX!Xa~EIeNc>fd8oSH#z6gY(~5viC%w#UVYD$3fd3h(W9rja`^L=%+m7{IE34*
z>rtIEm=}s0GnClMbK_OS$GU)!Gb?|5hoZ5if*+#4t67l~tduc=+z@<T3)DjK#|c@<
zPi+I<J?tC^X@+cPOXSFs>SbDXCqo^R2S=-mhA>F{n2*{2tedO!8$F)|SB2tF6F4Dt
zq+P@GyvX(e3T$R`EZ!JvZEB3ystN0EbZv;s<)mn9RDL;XM7?5}%k#30WU21^u;V?f
zy3gb=uNgT|oX#QEF&Pw!@8!8Zqr|cI%a$Et(HfZHURGOR3Y&puB{>o4$w_BqfZPLG
z^Zi(k88yeazBi&L_6NcE{ml6JtT=l;AVb3g+~X;>KT+<ZW{U^W=DRLL$(mZ+_V#yM
zNz<P}`5~tKfXs$C8aP<|1(WWzNyjkvf^{11+j}9bM-(F~co>j|?@?#+k(GHo!YnMD
zNbVCuj)sMpGqT}jweYT&nM1V_ibq2+bG~*znl%eW2?LPqL;y^B81DycM)}<<7|ak`
z<yyz_{&IVn^B5EYQYSDg(r}qszmKVou{z@<b5ST(D{n&#ao70_^emgpgwBwU$Sjfv
zc>%Y!=gItcyzd0Ik4)_7+h`dv`}bgKbAb5Tj}5V1rz#W+r2CDKXF)#=pj#-u%d)C0
zOfPNrXS+Ar<J3e5h_%Kc3s0B3u>^C�s+G2!^kF(MF4!LUE1TaqJLRC_ZM|F-!rC
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
IA1+J(7okEpO#lD@
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/FileExplorerLibStrDefs.hpk b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/FileExplorerLibStrDefs.hpk
new file mode 100644
index 0000000000000000000000000000000000000000..4097ad0008387529b2fc95d302ffc7b4b6815360
GIT binary patch
literal 2070
zcmeH{&rZTX5XL_fPR1h-uxBGT-#}<$V$h(*bHm>nSV*xEpV-&%H(PPj_CPSz6Ogtu
zyR+Xn`^{v|JL+6Zvggq6OjF-`epGiLuep}WwAF%BU1zTZf2paQ2HI(Zy;hE&+vcV0
zKV<8LfJC>t!!B3ZegenPoK~FhDzFOtsU}!&AUTZ#T8d{JDUZi`=R5mh&RDa^f>`7B
zL_09D;Ee-Pt`A+Y`byM_Joos9whQqa(C2}rWcK)$mqjkZx6aHJZVsk*AZU$Z6VQWR
zQOw~tIj0|jzG=|KaVJmqMaZ~RW1r<LD1St@ku3$(B)1Y~K*QR{*rI7lX0}zoXyZV=
z*7wx958|l3dPl8F9salGksWyw#NHRq(cxtgTB%k92Cgc5m9>Sc>EftKFw1+%$S$9A
zVXsf#)+OZW>=hg8Gz*ZXIjR~3tp-&pAH{67yUJ<ZNF=hg&{d7Of0_j}!*3>cr6c}&
G7JLCb^iHS%
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/FileExplorerLibUni.json b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/FileExplorerLibUni.json
new file mode 100644
index 000000000000..77582d28dee0
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/FileExplorerLibUni.json
@@ -0,0 +1,38 @@
+{
+ "LanguageDef": [
+ [
+ "en-US",
+ "English"
+ ],
+ [
+ "fr-FR",
+ "Fran\u00e7ais"
+ ]
+ ],
+ "UniString": {
+ "en-US": {
+ "$LANGUAGE_NAME": "en-US",
+ "$PRINTABLE_LANGUAGE_NAME": "English",
+ "STR_NULL_STRING": " ",
+ "STR_FILE_EXPLORER_TITLE": "File Explorer",
+ "STR_NEW_FILE": "***NEW FILE***",
+ "STR_NEW_FILE_HELP": "This menu used to create a new file in current directory, jump to next page to name the new file",
+ "STR_ADD_NEW_FILE_TITLE": "Create a new file",
+ "STR_ADD_NEW_FOLDER_TITLE": "Create a new folder",
+ "STR_NEW_FILE_NAME_PROMPT": "File Name",
+ "STR_NEW_FILE_NAME_HELP": "Please input a name for the new file",
+ "STR_CREATE_FILE_AND_EXIT": "Create File and Exit",
+ "STR_NO_CREATE_FILE_AND_EXIT": "Discard Create and Exit",
+ "STR_NEW_FOLDER": "***NEW FOLDER***",
+ "STR_NEW_FOLDER_HELP": "This menu used to create a new folder in current directory, jump to next page to name the new folder",
+ "STR_NEW_FOLDER_NAME_PROMPT": "Folder Name",
+ "STR_NEW_FOLDER_NAME_HELP": "Please input a name for the new folder",
+ "STR_CREATE_FOLDER_AND_EXIT": "Create Folder and Exit",
+ "STR_NO_CREATE_FOLDER_AND_EXIT": "Discard Create and Exit"
+ },
+ "fr-FR": {
+ "$LANGUAGE_NAME": "fr-FR",
+ "$PRINTABLE_LANGUAGE_NAME": "Fran\u00e7ais"
+ }
+ }
+}
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/FileExplorerVfr.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/FileExplorerVfr.c.deps
new file mode 100644
index 000000000000..553c16134e67
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/FileExplorerVfr.c.deps
@@ -0,0 +1,39 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\OUTPUT\FileExplorerVfr.obj: \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\fileexplorerlib\fileexplorerlib\debug\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\fileexplorerlib\fileexplorerlib\debug\FileExplorerLibStrDefs.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/FileExplorerVfr.i b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/FileExplorerVfr.i
new file mode 100644
index 000000000000..ab09bdbe62a6
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/FileExplorerVfr.i
@@ -0,0 +1,161 @@
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Library\\FileExplorerLib\\FileExplorerVfr.vfr"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\FileExplorerLib\\FileExplorerLib\\DEBUG\\FileExplorerLibStrDefs.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern unsigned char FileExplorerLibStrings[];
+
+
+
+
+
+
+
+
+
+
+
+#line 48 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\FileExplorerLib\\FileExplorerLib\\DEBUG\\FileExplorerLibStrDefs.h"
+
+#line 50 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Library\\FileExplorerLib\\FileExplorerLib\\DEBUG\\FileExplorerLibStrDefs.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Library\\FileExplorerLib\\FileExplorerVfr.vfr"
+
+
+
+
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\mdemodulepkg\\library\\fileexplorerlib\\FormGuid.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 30 "c:\\users\\mliang2x\\workspace\\edk2\\mdemodulepkg\\library\\fileexplorerlib\\FormGuid.h"
+#line 11 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Library\\FileExplorerLib\\FileExplorerVfr.vfr"
+
+formset
+ guid = { 0xfe561596, 0xe6bf, 0x41a6, {0x83, 0x76, 0xc7, 0x2b, 0x71, 0x98, 0x74, 0xd0} },
+ title = STRING_TOKEN(0x0003),
+ help = STRING_TOKEN(0x0002),
+ classguid = { 0xfe561596, 0xe6bf, 0x41a6, {0x83, 0x76, 0xc7, 0x2b, 0x71, 0x98, 0x74, 0xd0} },
+
+ form formid = 0x1000,
+ title = STRING_TOKEN(0x0003);
+
+ label 0x1000;
+ label 0xffff;
+ endform;
+
+ form formid = 0x2000,
+ title = STRING_TOKEN(0x0006);
+
+ string
+ prompt = STRING_TOKEN(0x0008),
+ help = STRING_TOKEN(0x0009),
+ flags = INTERACTIVE,
+ key = 0x2001,
+ minsize = 2,
+ maxsize = 20,
+ endstring;
+
+ subtitle text = STRING_TOKEN(0x0002);
+
+ text
+ help = STRING_TOKEN(0x000A),
+ text = STRING_TOKEN(0x000A),
+ flags = INTERACTIVE,
+ key = 0x2002;
+
+ text
+ help = STRING_TOKEN(0x000B),
+ text = STRING_TOKEN(0x000B),
+ flags = INTERACTIVE,
+ key = 0x2003;
+ endform;
+
+ form formid = 0x3000,
+ title = STRING_TOKEN(0x0007);
+
+ string
+ prompt = STRING_TOKEN(0x000E),
+ help = STRING_TOKEN(0x000F),
+ flags = INTERACTIVE,
+ key = 0x3001,
+ minsize = 2,
+ maxsize = 20,
+ endstring;
+
+ subtitle text = STRING_TOKEN(0x0002);
+
+ text
+ help = STRING_TOKEN(0x0010),
+ text = STRING_TOKEN(0x0010),
+ flags = INTERACTIVE,
+ key = 0x3002;
+
+ text
+ help = STRING_TOKEN(0x0011),
+ text = STRING_TOKEN(0x0011),
+ flags = INTERACTIVE,
+ key = 0x3003;
+ endform;
+
+endformset;
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/cc_resp_2.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/cc_resp_2.txt
new file mode 100644
index 000000000000..bfcdb93e9969
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/cc_resp_2.txt
@@ -0,0 +1 @@
+ c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\DEBUG\FileExplorerVfr.c c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\DEBUG\AutoGen.c c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\FileExplorerLib\FileExplorer.c
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/object_files.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/object_files.lst
new file mode 100644
index 000000000000..56bfc9456438
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/OUTPUT/object_files.lst
@@ -0,0 +1,3 @@
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/FileExplorerLib/FileExplorerLib/OUTPUT/FileExplorerVfr.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/FileExplorerLib/FileExplorerLib/OUTPUT/FileExplorer.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/FileExplorerLib/FileExplorerLib/OUTPUT/AutoGen.obj
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/dependency b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/dependency
new file mode 100644
index 000000000000..6c8f1f29652a
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/dependency
@@ -0,0 +1,19 @@
+
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\DEBUG\FileExplorerVfr.vfr.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\DEBUG\FileExplorerVfr.vfr.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\OUTPUT\AutoGen.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\OUTPUT\AutoGen.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\OUTPUT\FileExplorer.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\OUTPUT\FileExplorer.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\OUTPUT\FileExplorerVfr.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\OUTPUT\FileExplorerVfr.c.deps
+!ENDIF
+
+
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/deps.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/deps.txt
new file mode 100644
index 000000000000..0362d621d3f3
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/deps.txt
@@ -0,0 +1,74 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\DEBUG\AutoGen.h
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\DEBUG\FileExplorerLibStrDefs.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/FileExplorerLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FileExplorer.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/FileInfo.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/FileSystemVolumeLabelInfo.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePathToText.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\fileexplorerlib\fileexplorerlib\debug\AutoGen.h
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\fileexplorerlib\fileexplorerlib\debug\FileExplorerLibStrDefs.h
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\fileexplorerlib\FileExplorer.h
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\fileexplorerlib\FormGuid.h
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/deps_target b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/deps_target
new file mode 100644
index 000000000000..781365bc70ab
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/FileExplorerLib/deps_target
@@ -0,0 +1,74 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\DEBUG\AutoGen.h:
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\DEBUG\FileExplorerLibStrDefs.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/FileExplorerLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FileExplorer.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/FileInfo.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/FileSystemVolumeLabelInfo.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePathToText.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h:
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\fileexplorerlib\fileexplorerlib\debug\AutoGen.h:
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\library\fileexplorerlib\fileexplorerlib\debug\FileExplorerLibStrDefs.h:
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\fileexplorerlib\FileExplorer.h:
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\library\fileexplorerlib\FormGuid.h:
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/AutoGenTimeStamp b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/AutoGenTimeStamp
new file mode 100644
index 000000000000..2fde75ffd1be
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/AutoGenTimeStamp
@@ -0,0 +1,59 @@
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiDns.c
+c:\users\mliang2x\workspace\edk2\OvmfPkg\Library\DxePciLibI440FxQ35\DxePciLibI440FxQ35.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiDhcp6.c
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BasePrintLib\BasePrintLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\ComponentName.c
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiDns.h
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiConfigVfr.vfr
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Library\DxeTcpIoLib\DxeTcpIoLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiDriver.h
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiMisc.c
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiImpl.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiConfigStrings.uni
+c:\users\mliang2x\workspace\edk2\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiIbft.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\DxeHobLib\DxeHobLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiMisc.h
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiCHAP.c
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiDxe.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\DxePcdLib\DxePcdLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BasePciExpressLib\BasePciExpressLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiProto.c
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiConfigNVDataStruc.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiIbft.c
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiConfig.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseRngLibTimerLib\BaseRngLibTimerLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiDhcp.c
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiDriver.c
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiConfig.c
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiInitiatorName.c
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiLib\UefiLib.inf
+c:\users\mliang2x\workspace\edk2\CryptoPkg\Library\IntrinsicLib\IntrinsicLib.inf
+c:\users\mliang2x\workspace\edk2\OvmfPkg\Library\CcProbeLib\CcProbeLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BasePciCf8Lib\BasePciCf8Lib.inf
+c:\users\mliang2x\workspace\edk2\CryptoPkg\Library\BaseCryptLib\BaseCryptLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiAuthenticationInfo.c
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseLib\BaseLib.inf
+c:\users\mliang2x\workspace\edk2\CryptoPkg\Library\OpensslLib\OpensslLibCrypto.inf
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\IScsiDxeStrDefs.h
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiProto.h
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiDhcp6.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseSafeIntLib\BaseSafeIntLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\TdxLib\TdxLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol.inf
+c:\users\mliang2x\workspace\edk2\OvmfPkg\Library\AcpiTimerLib\DxeAcpiTimerLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Library\DxeNetLib\DxeNetLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiDhcp.h
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiCHAP.h
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\AutoGen.h
+c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiExtScsiPassThru.c
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiConfigVfr.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiConfigVfr.lst
new file mode 100644
index 000000000000..2fe5f5d2c453
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiConfigVfr.lst
@@ -0,0 +1,1301 @@
+//
+// VFR compiler version 2.01 (UEFI 2.4) Developer Build based on Revision: Unknown
+//
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\IScsiDxe\\IScsiConfigVfr.vfr"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\NetworkPkg\\IScsiDxe\\IScsiDxe\\DEBUG\\IScsiDxeStrDefs.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern unsigned char IScsiDxeStrings[];
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 146 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\NetworkPkg\\IScsiDxe\\IScsiDxe\\DEBUG\\IScsiDxeStrDefs.h"
+
+#line 148 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\NetworkPkg\\IScsiDxe\\IScsiDxe\\DEBUG\\IScsiDxeStrDefs.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\IScsiDxe\\IScsiConfigVfr.vfr"
+
+
+
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\networkpkg\\iscsidxe\\IScsiConfigNVDataStruc.h"
+
+
+
+
+
+
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\Include\\Guid/IScsiConfigHii.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern EFI_GUID { 0x4b47d616, 0xa8d6, 0x4552, { 0x9d, 0x44, 0xcc, 0xad, 0x2e, 0xf, 0x4c, 0xf9}};
+
+#line 21 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\Include\\Guid/IScsiConfigHii.h"
+#line 13 "c:\\users\\mliang2x\\workspace\\edk2\\networkpkg\\iscsidxe\\IScsiConfigNVDataStruc.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(1)
+
+
+
+
+typedef struct {
+ CHAR16 ISCSIIsId[13];
+ CHAR16 ISCSIInitiatorIpAddress[16];
+ CHAR16 ISCSIInitiatorNetmask[16];
+ CHAR16 ISCSIInitiatorGateway[16];
+ CHAR16 ISCSITargetName[224];
+ CHAR16 ISCSITargetIpAddress[255];
+ CHAR16 ISCSILun[21];
+ CHAR16 ISCSIChapUsername[127];
+ CHAR16 ISCSIChapSecret[17];
+ CHAR16 ISCSIReverseChapUsername[127];
+ CHAR16 ISCSIReverseChapSecret[17];
+} KEYWORD_STR;
+
+typedef struct _ISCSI_CONFIG_IFR_NVDATA {
+ CHAR16 InitiatorName[224];
+ CHAR16 AttemptName[12];
+ UINT8 Enabled;
+ UINT8 IpMode;
+
+ UINT8 ConnectRetryCount;
+ UINT8 Padding1;
+ UINT16 ConnectTimeout;
+
+ UINT8 InitiatorInfoFromDhcp;
+ UINT8 TargetInfoFromDhcp;
+ CHAR16 LocalIp[16];
+ CHAR16 SubnetMask[16];
+ CHAR16 Gateway[16];
+
+ CHAR16 TargetName[224];
+ CHAR16 TargetIp[255];
+ UINT16 TargetPort;
+ CHAR16 BootLun[21];
+
+ UINT8 AuthenticationType;
+
+ UINT8 CHAPType;
+ CHAR16 CHAPName[127];
+ CHAR16 CHAPSecret[17];
+ CHAR16 ReverseCHAPName[127];
+ CHAR16 ReverseCHAPSecret[17];
+
+ BOOLEAN MutualRequired;
+ UINT8 Padding2;
+ CHAR16 KerberosUserName[96];
+ CHAR16 KerberosUserSecret[17];
+ CHAR16 KerberosKDCName[96];
+ CHAR16 KerberosKDCRealm[96];
+ CHAR16 KerberosKDCIp[40];
+ UINT16 KerberosKDCPort;
+
+ UINT8 DynamicOrderedList[0x08];
+ UINT8 DeleteAttemptList[0x08];
+ UINT8 AddAttemptList[0x08];
+ CHAR16 IsId[13];
+
+
+
+
+ CHAR16 ISCSIMacAddr[96];
+ CHAR16 ISCSIAttemptOrder[96];
+ CHAR16 ISCSIAddAttemptList[96];
+ CHAR16 ISCSIDeleteAttemptList[96];
+ CHAR16 ISCSIDisplayAttemptList[96];
+ CHAR16 ISCSIAttemptName[96];
+ UINT8 ISCSIBootEnableList[0x08];
+ UINT8 ISCSIIpAddressTypeList[0x08];
+ UINT8 ISCSIConnectRetry[0x08];
+ UINT16 ISCSIConnectTimeout[0x08];
+ UINT8 ISCSIInitiatorInfoViaDHCP[0x08];
+ UINT8 ISCSITargetInfoViaDHCP[0x08];
+ UINT16 ISCSITargetTcpPort[0x08];
+ UINT8 ISCSIAuthenticationMethod[0x08];
+ UINT8 ISCSIChapType[0x08];
+ KEYWORD_STR Keyword[0x08];
+} ISCSI_CONFIG_IFR_NVDATA;
+#pragma pack()
+
+#line 233 "c:\\users\\mliang2x\\workspace\\edk2\\networkpkg\\iscsidxe\\IScsiConfigNVDataStruc.h"
+#line 10 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\IScsiDxe\\IScsiConfigVfr.vfr"
+
+
+
+formset
+>00000000: 0E A7 16 D6 47 4B D6 A8 52 45 9D 44 CC AD 2E 0F 4C F9 02 00 03 00 01 71 99 03 93 45 85 04 4B B4 5E 32 EB 83 26 04 0E
+>00000027: 5C 06 00 00 00 00
+>0000002D: 5C 06 00 00 01 00
+ guid = { 0x4b47d616, 0xa8d6, 0x4552, { 0x9d, 0x44, 0xcc, 0xad, 0x2e, 0xf, 0x4c, 0xf9 } },
+ title = STRING_TOKEN(0x0002),
+ help = STRING_TOKEN(0x0003),
+
+ varstore ISCSI_CONFIG_IFR_NVDATA,
+>00000033: 24 2E 16 D6 47 4B D6 A8 52 45 9D 44 CC AD 2E 0F 4C F9 66 66 3C 45 49 53 43 53 49 5F 43 4F 4E 46 49 47 5F 49 46 52 5F 4E 56 44 41 54 41 00
+ varid = 0x6666,
+ name = ISCSI_CONFIG_IFR_NVDATA,
+ guid = { 0x4b47d616, 0xa8d6, 0x4552, { 0x9d, 0x44, 0xcc, 0xad, 0x2e, 0xf, 0x4c, 0xf9 } };
+
+ form formid = 1,
+>00000061: 01 86 01 00 04 00
+ title = STRING_TOKEN(0x0004);
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.InitiatorName,
+>00000067: 1C 90 06 00 07 00 01 01 66 66 00 00 04 04 DF 00
+ prompt = STRING_TOKEN(0x0006),
+ help = STRING_TOKEN(0x0007),
+ flags = INTERACTIVE,
+ key = 0x101,
+ minsize = 4,
+ maxsize = 223,
+ endstring;
+>00000077: 29 02
+
+ subtitle text = STRING_TOKEN(0x003A);
+>00000079: 02 87 3A 00 00 00 00
+>00000080: 29 02
+
+ goto 2,
+>00000082: 0F 0F 0E 00 0E 00 0E 01 00 00 FF FF 04 02 00
+ prompt = STRING_TOKEN(0x000E),
+ help = STRING_TOKEN(0x000E),
+ flags = INTERACTIVE,
+ key = 0x10e;
+
+ label 0x9000;
+>00000091: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 00 90
+ label 0xffff;
+>000000A6: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+
+ subtitle text = STRING_TOKEN(0x003A);
+>000000BB: 02 87 3A 00 00 00 00
+>000000C2: 29 02
+
+ goto 5,
+>000000C4: 0F 0F 10 00 11 00 16 01 00 00 FF FF 04 05 00
+ prompt = STRING_TOKEN (0x0010),
+ help = STRING_TOKEN (0x0011),
+ flags = INTERACTIVE,
+ key = 0x116;
+
+ subtitle text = STRING_TOKEN(0x003A);
+>000000D3: 02 87 3A 00 00 00 00
+>000000DA: 29 02
+
+ goto 4,
+>000000DC: 0F 0F 12 00 12 00 10 01 00 00 FF FF 04 04 00
+ prompt = STRING_TOKEN (0x0012),
+ help = STRING_TOKEN (0x0012),
+ flags = INTERACTIVE,
+ key = 0x110;
+
+ subtitle text = STRING_TOKEN(0x003A);
+>000000EB: 02 87 3A 00 00 00 00
+>000000F2: 29 02
+
+ endform;
+>000000F4: 29 02
+
+ form formid = 2,
+>000000F6: 01 86 02 00 05 00
+ title = STRING_TOKEN(0x0005);
+
+ label 0x3000;
+>000000FC: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 00 30
+ label 0xffff;
+>00000111: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+
+ endform;
+>00000126: 29 02
+
+ form formid = 4,
+>00000128: 01 86 04 00 12 00
+ title = STRING_TOKEN(0x0012);
+
+ label 0x4000;
+>0000012E: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 00 40
+ label 0xffff;
+>00000143: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+
+ text
+ help = STRING_TOKEN (0x003B),
+ text = STRING_TOKEN (0x003B),
+ flags = INTERACTIVE,
+>00000158: 0C 8F 3B 00 3B 00 11 01 00 00 FF FF 04 00 00
+ key = 0x111;
+>00000167: 29 02
+
+ text
+ help = STRING_TOKEN (0x003C),
+ text = STRING_TOKEN (0x003C),
+ flags = INTERACTIVE,
+>00000169: 0C 8F 3C 00 3C 00 12 01 00 00 FF FF 04 00 00
+ key = 0x112;
+>00000178: 29 02
+ endform;
+>0000017A: 29 02
+
+ form formid = 5,
+>0000017C: 01 86 05 00 10 00
+ title = STRING_TOKEN(0x0010);
+
+ label 0x5000;
+>00000182: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 00 50
+ label 0xffff;
+>00000197: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+
+ text
+ help = STRING_TOKEN (0x003B),
+ text = STRING_TOKEN (0x003B),
+ flags = INTERACTIVE,
+>000001AC: 0C 8F 3B 00 3B 00 14 01 00 00 FF FF 04 00 00
+ key = 0x114;
+>000001BB: 29 02
+
+ text
+ help = STRING_TOKEN (0x003C),
+ text = STRING_TOKEN (0x003C),
+ flags = INTERACTIVE,
+>000001BD: 0C 8F 3C 00 3C 00 15 01 00 00 FF FF 04 00 00
+ key = 0x115;
+>000001CC: 29 02
+ endform;
+>000001CE: 29 02
+
+ form formid = 3,
+>000001D0: 01 86 03 00 0F 00
+ title = STRING_TOKEN(0x000F);
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.AttemptName,
+>000001D6: 1C 90 08 00 09 00 01 00 66 66 C0 01 01 00 0C 00
+ prompt = STRING_TOKEN(0x0008),
+ help = STRING_TOKEN(0x0009),
+ flags = READ_ONLY,
+ key = 0x113,
+ minsize = 0,
+ maxsize = 12,
+ endstring;
+>000001E6: 29 02
+
+ subtitle text = STRING_TOKEN(0x003A);
+>000001E8: 02 87 3A 00 00 00 00
+>000001EF: 29 02
+
+ oneof varid = ISCSI_CONFIG_IFR_NVDATA.Enabled,
+>000001F1: 05 91 13 00 14 00 02 00 66 66 D8 01 00 10 00 02 00
+ prompt = STRING_TOKEN(0x0013),
+ help = STRING_TOKEN(0x0014),
+ option text = STRING_TOKEN(0x0015), value = 0, flags = DEFAULT;
+>00000202: 09 07 15 00 10 00 00
+ option text = STRING_TOKEN(0x0016), value = 1, flags = 0;
+>00000209: 09 07 16 00 00 00 01
+ option text = STRING_TOKEN(0x0017), value = 2, flags = 0;
+>00000210: 09 07 17 00 00 00 02
+ endoneof;
+>00000217: 29 02
+
+ subtitle text = STRING_TOKEN(0x003A);
+>00000219: 02 87 3A 00 00 00 00
+>00000220: 29 02
+
+ oneof varid = ISCSI_CONFIG_IFR_NVDATA.IpMode,
+>00000222: 05 91 18 00 19 00 1C 01 66 66 D9 01 04 10 00 02 00
+ questionid = 0x11c,
+ prompt = STRING_TOKEN(0x0018),
+ help = STRING_TOKEN(0x0019),
+ option text = STRING_TOKEN(0x001A), value = 0, flags = INTERACTIVE;
+>00000233: 09 07 1A 00 00 00 00
+ option text = STRING_TOKEN(0x001B), value = 1, flags = INTERACTIVE;
+>0000023A: 09 07 1B 00 00 00 01
+ option text = STRING_TOKEN(0x001C), value = 2, flags = INTERACTIVE;
+>00000241: 09 07 1C 00 00 00 02
+ endoneof;
+>00000248: 29 02
+
+ subtitle text = STRING_TOKEN(0x003A);
+>0000024A: 02 87 3A 00 00 00 00
+>00000251: 29 02
+
+ numeric varid = ISCSI_CONFIG_IFR_NVDATA.ConnectRetryCount,
+>00000253: 07 91 0A 00 0B 00 03 00 66 66 DA 01 00 10 00 10 00
+ prompt = STRING_TOKEN(0x000A),
+ help = STRING_TOKEN(0x000B),
+ flags = 0,
+ minimum = 0,
+ maximum = 16,
+ step = 0,
+ endnumeric;
+>00000264: 29 02
+
+ numeric varid = ISCSI_CONFIG_IFR_NVDATA.ConnectTimeout,
+>00000266: 07 94 0C 00 0D 00 04 00 66 66 DC 01 00 11 64 00 20 4E 00 00
+ prompt = STRING_TOKEN(0x000C),
+ help = STRING_TOKEN(0x000D),
+ flags = 0,
+ minimum = 100,
+ maximum = 20000,
+ step = 0,
+ default = 1000,
+>0000027A: 5B 07 00 00 01 E8 03
+ endnumeric;
+>00000281: 29 02
+
+ subtitle text = STRING_TOKEN(0x003A);
+>00000283: 02 87 3A 00 00 00 00
+>0000028A: 29 02
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.IsId,
+>0000028C: 1C 90 3D 00 3E 00 1E 01 66 66 3A 0B 04 06 0C 00
+ prompt = STRING_TOKEN(0x003D),
+ help = STRING_TOKEN(0x003E),
+ flags = INTERACTIVE,
+ key = 0x11e,
+ minsize = 6,
+ maxsize = 12,
+ endstring;
+>0000029C: 29 02
+
+ subtitle text = STRING_TOKEN(0x003A);
+>0000029E: 02 87 3A 00 00 00 00
+>000002A5: 29 02
+
+ suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == 2;
+>000002A7: 0A 82
+>000002A9: 12 06 1C 01 02 00
+ checkbox varid = ISCSI_CONFIG_IFR_NVDATA.InitiatorInfoFromDhcp,
+>000002AF: 06 8E 2C 00 2C 00 02 01 66 66 DE 01 04 00
+ prompt = STRING_TOKEN(0x002C),
+ help = STRING_TOKEN(0x002C),
+ flags = INTERACTIVE,
+ key = 0x102,
+ endcheckbox;
+>000002BD: 29 02
+ endif;
+>000002BF: 29 02
+
+ suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == 1 OR
+>000002C1: 0A 82
+>000002C3: 12 86 1C 01 01 00
+>000002CF: 16 02
+>000002D1: 29 02
+ ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == 2;
+>000002C9: 12 06 1C 01 02 00
+
+ grayoutif ideqval ISCSI_CONFIG_IFR_NVDATA.InitiatorInfoFromDhcp == 0x01;
+>000002D3: 19 82
+>000002D5: 12 06 02 01 01 00
+ string varid = ISCSI_CONFIG_IFR_NVDATA.LocalIp,
+>000002DB: 1C 90 21 00 24 00 03 01 66 66 E0 01 04 07 0F 00
+ prompt = STRING_TOKEN(0x0021),
+ help = STRING_TOKEN(0x0024),
+ flags = INTERACTIVE,
+ key = 0x103,
+ minsize = 7,
+ maxsize = 15,
+ endstring;
+>000002EB: 29 02
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.SubnetMask,
+>000002ED: 1C 90 22 00 24 00 04 01 66 66 00 02 04 07 0F 00
+ prompt = STRING_TOKEN(0x0022),
+ help = STRING_TOKEN(0x0024),
+ flags = INTERACTIVE,
+ key = 0x104,
+ minsize = 7,
+ maxsize = 15,
+ endstring;
+>000002FD: 29 02
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.Gateway,
+>000002FF: 1C 90 23 00 24 00 05 01 66 66 20 02 04 07 0F 00
+ prompt = STRING_TOKEN(0x0023),
+ help = STRING_TOKEN(0x0024),
+ flags = INTERACTIVE,
+ key = 0x105,
+ minsize = 7,
+ maxsize = 15,
+ endstring;
+>0000030F: 29 02
+ endif;
+>00000311: 29 02
+
+ endif;
+>00000313: 29 02
+
+ suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == 2;
+>00000315: 0A 82
+>00000317: 12 06 1C 01 02 00
+ subtitle text = STRING_TOKEN(0x003A);
+>0000031D: 02 87 3A 00 00 00 00
+>00000324: 29 02
+ endif;
+>00000326: 29 02
+
+ suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == 2 OR
+>00000328: 0A 82
+>0000032A: 12 86 1C 01 02 00
+>00000336: 16 02
+>00000338: 29 02
+ ideqval ISCSI_CONFIG_IFR_NVDATA.InitiatorInfoFromDhcp == 0x00;
+>00000330: 12 06 02 01 00 00
+ checkbox varid = ISCSI_CONFIG_IFR_NVDATA.TargetInfoFromDhcp,
+>0000033A: 06 8E 2D 00 2D 00 05 00 66 66 DF 01 00 00
+ prompt = STRING_TOKEN(0x002D),
+ help = STRING_TOKEN(0x002D),
+ flags = 0,
+ endcheckbox;
+>00000348: 29 02
+ endif;
+>0000034A: 29 02
+
+ suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == 2 OR
+>0000034C: 0A 82
+>0000034E: 12 86 1C 01 02 00
+>0000035A: 16 02
+>0000035C: 29 02
+ ideqval ISCSI_CONFIG_IFR_NVDATA.TargetInfoFromDhcp == 0x01;
+>00000354: 12 06 05 00 01 00
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.TargetName,
+>0000035E: 1C 90 25 00 26 00 0C 01 66 66 40 02 04 04 DF 00
+ prompt = STRING_TOKEN(0x0025),
+ help = STRING_TOKEN(0x0026),
+ flags = INTERACTIVE,
+ key = 0x10c,
+ minsize = 4,
+ maxsize = 223,
+ endstring;
+>0000036E: 29 02
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.TargetIp,
+>00000370: 1C 90 27 00 28 00 06 01 66 66 00 04 04 00 FF 00
+ prompt = STRING_TOKEN(0x0027),
+ help = STRING_TOKEN(0x0028),
+ flags = INTERACTIVE,
+ key = 0x106,
+ minsize = 0,
+ maxsize = 255,
+ endstring;
+>00000380: 29 02
+
+ numeric varid = ISCSI_CONFIG_IFR_NVDATA.TargetPort,
+>00000382: 07 94 29 00 29 00 06 00 66 66 FE 05 00 11 00 00 FF FF 00 00
+ prompt = STRING_TOKEN(0x0029),
+ help = STRING_TOKEN(0x0029),
+ flags = 0,
+ minimum = 0,
+ maximum = 65535,
+ step = 0,
+ endnumeric;
+>00000396: 29 02
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.BootLun,
+>00000398: 1C 90 2A 00 2B 00 0D 01 66 66 00 06 04 01 14 00
+ prompt = STRING_TOKEN(0x002A),
+ help = STRING_TOKEN(0x002B),
+ flags = INTERACTIVE,
+ key = 0x10d,
+ minsize = 1,
+ maxsize = 20,
+ endstring;
+>000003A8: 29 02
+
+ endif;
+>000003AA: 29 02
+
+ suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == 2;
+>000003AC: 0A 82
+>000003AE: 12 06 1C 01 02 00
+ subtitle text = STRING_TOKEN(0x003A);
+>000003B4: 02 87 3A 00 00 00 00
+>000003BB: 29 02
+ endif;
+>000003BD: 29 02
+
+ oneof varid = ISCSI_CONFIG_IFR_NVDATA.AuthenticationType,
+>000003BF: 05 91 1D 00 1E 00 1D 01 66 66 2A 06 00 10 00 01 00
+ questionid = 0x11d,
+ prompt = STRING_TOKEN(0x001D),
+ help = STRING_TOKEN(0x001E),
+ option text = STRING_TOKEN(0x001F), value = 1, flags = 0;
+>000003D0: 09 07 1F 00 00 00 01
+ option text = STRING_TOKEN(0x0020), value = 0, flags = DEFAULT;
+>000003D7: 09 07 20 00 10 00 00
+ endoneof;
+>000003DE: 29 02
+
+ suppressif NOT ideqval ISCSI_CONFIG_IFR_NVDATA.AuthenticationType == 1;
+>000003E0: 0A 82
+>000003E2: 12 86 1D 01 01 00
+>000003E8: 17 02
+>000003EA: 29 02
+ oneof varid = ISCSI_CONFIG_IFR_NVDATA.CHAPType,
+>000003EC: 05 91 2E 00 2F 00 07 00 66 66 2B 06 00 10 00 01 00
+ prompt = STRING_TOKEN(0x002E),
+ help = STRING_TOKEN(0x002F),
+ option text = STRING_TOKEN(0x0030), value = 0, flags = 0;
+>000003FD: 09 07 30 00 00 00 00
+ option text = STRING_TOKEN(0x0031), value = 1, flags = DEFAULT;
+>00000404: 09 07 31 00 10 00 01
+ endoneof;
+>0000040B: 29 02
+ endif;
+>0000040D: 29 02
+
+ suppressif NOT ideqval ISCSI_CONFIG_IFR_NVDATA.AuthenticationType == 1;
+>0000040F: 0A 82
+>00000411: 12 86 1D 01 01 00
+>00000417: 17 02
+>00000419: 29 02
+ string varid = ISCSI_CONFIG_IFR_NVDATA.CHAPName,
+>0000041B: 1C 90 32 00 32 00 07 01 66 66 2C 06 04 00 7E 00
+ prompt = STRING_TOKEN(0x0032),
+ help = STRING_TOKEN(0x0032),
+ flags = INTERACTIVE,
+ key = 0x107,
+ minsize = 0,
+ maxsize = 126,
+ endstring;
+>0000042B: 29 02
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.CHAPSecret,
+>0000042D: 1C 90 33 00 34 00 08 01 66 66 2A 07 04 0C 10 00
+ prompt = STRING_TOKEN(0x0033),
+ help = STRING_TOKEN(0x0034),
+ flags = INTERACTIVE,
+ key = 0x108,
+ minsize = 12,
+ maxsize = 16,
+ endstring;
+>0000043D: 29 02
+
+ endif;
+>0000043F: 29 02
+
+ suppressif NOT ideqval ISCSI_CONFIG_IFR_NVDATA.AuthenticationType == 1 OR
+>00000441: 0A 82
+>00000443: 12 86 1D 01 01 00
+>00000449: 17 02
+>00000453: 16 02
+>00000455: 29 02
+ NOT ideqval ISCSI_CONFIG_IFR_NVDATA.CHAPType == 1;
+>0000044B: 12 06 07 00 01 00
+>00000451: 17 02
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.ReverseCHAPName,
+>00000457: 1C 90 35 00 35 00 09 01 66 66 4C 07 04 00 7E 00
+ prompt = STRING_TOKEN(0x0035),
+ help = STRING_TOKEN(0x0035),
+ flags = INTERACTIVE,
+ key = 0x109,
+ minsize = 0,
+ maxsize = 126,
+ endstring;
+>00000467: 29 02
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.ReverseCHAPSecret,
+>00000469: 1C 90 36 00 34 00 0A 01 66 66 4A 08 04 0C 10 00
+ prompt = STRING_TOKEN(0x0036),
+ help = STRING_TOKEN(0x0034),
+ flags = INTERACTIVE,
+ key = 0x10a,
+ minsize = 12,
+ maxsize = 16,
+ endstring;
+>00000479: 29 02
+
+ endif;
+>0000047B: 29 02
+
+ suppressif TRUE;
+>0000047D: 0A 82
+>0000047F: 46 02
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.ISCSIMacAddr,
+>00000481: 1C 90 3F 00 3F 00 08 00 66 66 54 0B 00 00 60 00
+ prompt = STRING_TOKEN(0x003F),
+ help = STRING_TOKEN(0x003F),
+ minsize = 0,
+ maxsize = 96,
+ endstring;
+>00000491: 29 02
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.ISCSIAttemptOrder,
+>00000493: 1C 90 43 00 43 00 09 00 66 66 14 0C 00 00 60 00
+ prompt = STRING_TOKEN(0x0043),
+ help = STRING_TOKEN(0x0043),
+ minsize = 0,
+ maxsize = 96,
+ endstring;
+>000004A3: 29 02
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.ISCSIAddAttemptList,
+>000004A5: 1C 90 40 00 40 00 0A 00 66 66 D4 0C 00 00 60 00
+ prompt = STRING_TOKEN(0x0040),
+ help = STRING_TOKEN(0x0040),
+ minsize = 0,
+ maxsize = 96,
+ endstring;
+>000004B5: 29 02
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.ISCSIDeleteAttemptList,
+>000004B7: 1C 90 41 00 41 00 0B 00 66 66 94 0D 00 00 60 00
+ prompt = STRING_TOKEN(0x0041),
+ help = STRING_TOKEN(0x0041),
+ minsize = 0,
+ maxsize = 96,
+ endstring;
+>000004C7: 29 02
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.ISCSIDisplayAttemptList,
+>000004C9: 1C 90 42 00 42 00 0C 00 66 66 54 0E 01 00 60 00
+ prompt = STRING_TOKEN(0x0042),
+ help = STRING_TOKEN(0x0042),
+ flags = READ_ONLY,
+ minsize = 0,
+ maxsize = 96,
+ endstring;
+>000004D9: 29 02
+
+ label 0x6000;
+>000004DB: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 00 60
+ label 0xffff;
+>000004F0: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+ endif;
+>00000505: 29 02
+
+ subtitle text = STRING_TOKEN(0x003A);
+>00000507: 02 87 3A 00 00 00 00
+>0000050E: 29 02
+
+ text
+ help = STRING_TOKEN (0x0039),
+ text = STRING_TOKEN (0x0038),
+ flags = INTERACTIVE,
+>00000510: 0C 8F 38 00 39 00 0F 01 00 00 FF FF 04 00 00
+ key = 0x10f;
+>0000051F: 29 02
+
+ goto 1,
+>00000521: 0F 0F 37 00 37 00 0D 00 00 00 FF FF 00 01 00
+ prompt = STRING_TOKEN (0x0037),
+ help = STRING_TOKEN (0x0037),
+ flags = 0;
+
+ endform;
+>00000530: 29 02
+
+endformset;
+>00000532: 29 02
+
+
+//
+// All Opcode Record List
+//
+>00000000: 0E A7 16 D6 47 4B D6 A8 52 45 9D 44 CC AD 2E 0F 4C F9 02 00 03 00 01 71 99 03 93 45 85 04 4B B4 5E 32 EB 83 26 04 0E
+>00000027: 5C 06 00 00 00 00
+>0000002D: 5C 06 00 00 01 00
+>00000033: 24 2E 16 D6 47 4B D6 A8 52 45 9D 44 CC AD 2E 0F 4C F9 66 66 3C 45 49 53 43 53 49 5F 43 4F 4E 46 49 47 5F 49 46 52 5F 4E 56 44 41 54 41 00
+>00000061: 01 86 01 00 04 00
+>00000067: 1C 90 06 00 07 00 01 01 66 66 00 00 04 04 DF 00
+>00000077: 29 02
+>00000079: 02 87 3A 00 00 00 00
+>00000080: 29 02
+>00000082: 0F 0F 0E 00 0E 00 0E 01 00 00 FF FF 04 02 00
+>00000091: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 00 90
+>000000A6: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>000000BB: 02 87 3A 00 00 00 00
+>000000C2: 29 02
+>000000C4: 0F 0F 10 00 11 00 16 01 00 00 FF FF 04 05 00
+>000000D3: 02 87 3A 00 00 00 00
+>000000DA: 29 02
+>000000DC: 0F 0F 12 00 12 00 10 01 00 00 FF FF 04 04 00
+>000000EB: 02 87 3A 00 00 00 00
+>000000F2: 29 02
+>000000F4: 29 02
+>000000F6: 01 86 02 00 05 00
+>000000FC: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 00 30
+>00000111: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>00000126: 29 02
+>00000128: 01 86 04 00 12 00
+>0000012E: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 00 40
+>00000143: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>00000158: 0C 8F 3B 00 3B 00 11 01 00 00 FF FF 04 00 00
+>00000167: 29 02
+>00000169: 0C 8F 3C 00 3C 00 12 01 00 00 FF FF 04 00 00
+>00000178: 29 02
+>0000017A: 29 02
+>0000017C: 01 86 05 00 10 00
+>00000182: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 00 50
+>00000197: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>000001AC: 0C 8F 3B 00 3B 00 14 01 00 00 FF FF 04 00 00
+>000001BB: 29 02
+>000001BD: 0C 8F 3C 00 3C 00 15 01 00 00 FF FF 04 00 00
+>000001CC: 29 02
+>000001CE: 29 02
+>000001D0: 01 86 03 00 0F 00
+>000001D6: 1C 90 08 00 09 00 01 00 66 66 C0 01 01 00 0C 00
+>000001E6: 29 02
+>000001E8: 02 87 3A 00 00 00 00
+>000001EF: 29 02
+>000001F1: 05 91 13 00 14 00 02 00 66 66 D8 01 00 10 00 02 00
+>00000202: 09 07 15 00 10 00 00
+>00000209: 09 07 16 00 00 00 01
+>00000210: 09 07 17 00 00 00 02
+>00000217: 29 02
+>00000219: 02 87 3A 00 00 00 00
+>00000220: 29 02
+>00000222: 05 91 18 00 19 00 1C 01 66 66 D9 01 04 10 00 02 00
+>00000233: 09 07 1A 00 00 00 00
+>0000023A: 09 07 1B 00 00 00 01
+>00000241: 09 07 1C 00 00 00 02
+>00000248: 29 02
+>0000024A: 02 87 3A 00 00 00 00
+>00000251: 29 02
+>00000253: 07 91 0A 00 0B 00 03 00 66 66 DA 01 00 10 00 10 00
+>00000264: 29 02
+>00000266: 07 94 0C 00 0D 00 04 00 66 66 DC 01 00 11 64 00 20 4E 00 00
+>0000027A: 5B 07 00 00 01 E8 03
+>00000281: 29 02
+>00000283: 02 87 3A 00 00 00 00
+>0000028A: 29 02
+>0000028C: 1C 90 3D 00 3E 00 1E 01 66 66 3A 0B 04 06 0C 00
+>0000029C: 29 02
+>0000029E: 02 87 3A 00 00 00 00
+>000002A5: 29 02
+>000002A7: 0A 82
+>000002A9: 12 06 1C 01 02 00
+>000002AF: 06 8E 2C 00 2C 00 02 01 66 66 DE 01 04 00
+>000002BD: 29 02
+>000002BF: 29 02
+>000002C1: 0A 82
+>000002C3: 12 86 1C 01 01 00
+>000002C9: 12 06 1C 01 02 00
+>000002CF: 16 02
+>000002D1: 29 02
+>000002D3: 19 82
+>000002D5: 12 06 02 01 01 00
+>000002DB: 1C 90 21 00 24 00 03 01 66 66 E0 01 04 07 0F 00
+>000002EB: 29 02
+>000002ED: 1C 90 22 00 24 00 04 01 66 66 00 02 04 07 0F 00
+>000002FD: 29 02
+>000002FF: 1C 90 23 00 24 00 05 01 66 66 20 02 04 07 0F 00
+>0000030F: 29 02
+>00000311: 29 02
+>00000313: 29 02
+>00000315: 0A 82
+>00000317: 12 06 1C 01 02 00
+>0000031D: 02 87 3A 00 00 00 00
+>00000324: 29 02
+>00000326: 29 02
+>00000328: 0A 82
+>0000032A: 12 86 1C 01 02 00
+>00000330: 12 06 02 01 00 00
+>00000336: 16 02
+>00000338: 29 02
+>0000033A: 06 8E 2D 00 2D 00 05 00 66 66 DF 01 00 00
+>00000348: 29 02
+>0000034A: 29 02
+>0000034C: 0A 82
+>0000034E: 12 86 1C 01 02 00
+>00000354: 12 06 05 00 01 00
+>0000035A: 16 02
+>0000035C: 29 02
+>0000035E: 1C 90 25 00 26 00 0C 01 66 66 40 02 04 04 DF 00
+>0000036E: 29 02
+>00000370: 1C 90 27 00 28 00 06 01 66 66 00 04 04 00 FF 00
+>00000380: 29 02
+>00000382: 07 94 29 00 29 00 06 00 66 66 FE 05 00 11 00 00 FF FF 00 00
+>00000396: 29 02
+>00000398: 1C 90 2A 00 2B 00 0D 01 66 66 00 06 04 01 14 00
+>000003A8: 29 02
+>000003AA: 29 02
+>000003AC: 0A 82
+>000003AE: 12 06 1C 01 02 00
+>000003B4: 02 87 3A 00 00 00 00
+>000003BB: 29 02
+>000003BD: 29 02
+>000003BF: 05 91 1D 00 1E 00 1D 01 66 66 2A 06 00 10 00 01 00
+>000003D0: 09 07 1F 00 00 00 01
+>000003D7: 09 07 20 00 10 00 00
+>000003DE: 29 02
+>000003E0: 0A 82
+>000003E2: 12 86 1D 01 01 00
+>000003E8: 17 02
+>000003EA: 29 02
+>000003EC: 05 91 2E 00 2F 00 07 00 66 66 2B 06 00 10 00 01 00
+>000003FD: 09 07 30 00 00 00 00
+>00000404: 09 07 31 00 10 00 01
+>0000040B: 29 02
+>0000040D: 29 02
+>0000040F: 0A 82
+>00000411: 12 86 1D 01 01 00
+>00000417: 17 02
+>00000419: 29 02
+>0000041B: 1C 90 32 00 32 00 07 01 66 66 2C 06 04 00 7E 00
+>0000042B: 29 02
+>0000042D: 1C 90 33 00 34 00 08 01 66 66 2A 07 04 0C 10 00
+>0000043D: 29 02
+>0000043F: 29 02
+>00000441: 0A 82
+>00000443: 12 86 1D 01 01 00
+>00000449: 17 02
+>0000044B: 12 06 07 00 01 00
+>00000451: 17 02
+>00000453: 16 02
+>00000455: 29 02
+>00000457: 1C 90 35 00 35 00 09 01 66 66 4C 07 04 00 7E 00
+>00000467: 29 02
+>00000469: 1C 90 36 00 34 00 0A 01 66 66 4A 08 04 0C 10 00
+>00000479: 29 02
+>0000047B: 29 02
+>0000047D: 0A 82
+>0000047F: 46 02
+>00000481: 1C 90 3F 00 3F 00 08 00 66 66 54 0B 00 00 60 00
+>00000491: 29 02
+>00000493: 1C 90 43 00 43 00 09 00 66 66 14 0C 00 00 60 00
+>000004A3: 29 02
+>000004A5: 1C 90 40 00 40 00 0A 00 66 66 D4 0C 00 00 60 00
+>000004B5: 29 02
+>000004B7: 1C 90 41 00 41 00 0B 00 66 66 94 0D 00 00 60 00
+>000004C7: 29 02
+>000004C9: 1C 90 42 00 42 00 0C 00 66 66 54 0E 01 00 60 00
+>000004D9: 29 02
+>000004DB: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 00 60
+>000004F0: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>00000505: 29 02
+>00000507: 02 87 3A 00 00 00 00
+>0000050E: 29 02
+>00000510: 0C 8F 38 00 39 00 0F 01 00 00 FF FF 04 00 00
+>0000051F: 29 02
+>00000521: 0F 0F 37 00 37 00 0D 00 00 00 FF FF 00 01 00
+>00000530: 29 02
+>00000532: 29 02
+
+Total Size of all record is 0x00000534
+
+
+***************************************************************
+ mPackAlign = 1
+ struct ISCSI_CONFIG_IFR_NVDATA : mAlign [1] mTotalSize [0x453c]
+
+ struct ISCSI_CONFIG_IFR_NVDATA {
+ +00000000[00000000] InitiatorName[224] <UINT16>
+ +00000448[000001c0] AttemptName[12] <UINT16>
+ +00000472[000001d8] Enabled <UINT8>
+ +00000473[000001d9] IpMode <UINT8>
+ +00000474[000001da] ConnectRetryCount <UINT8>
+ +00000475[000001db] Padding1 <UINT8>
+ +00000476[000001dc] ConnectTimeout <UINT16>
+ +00000478[000001de] InitiatorInfoFromDhcp <UINT8>
+ +00000479[000001df] TargetInfoFromDhcp <UINT8>
+ +00000480[000001e0] LocalIp[16] <UINT16>
+ +00000512[00000200] SubnetMask[16] <UINT16>
+ +00000544[00000220] Gateway[16] <UINT16>
+ +00000576[00000240] TargetName[224] <UINT16>
+ +00001024[00000400] TargetIp[255] <UINT16>
+ +00001534[000005fe] TargetPort <UINT16>
+ +00001536[00000600] BootLun[21] <UINT16>
+ +00001578[0000062a] AuthenticationType <UINT8>
+ +00001579[0000062b] CHAPType <UINT8>
+ +00001580[0000062c] CHAPName[127] <UINT16>
+ +00001834[0000072a] CHAPSecret[17] <UINT16>
+ +00001868[0000074c] ReverseCHAPName[127] <UINT16>
+ +00002122[0000084a] ReverseCHAPSecret[17] <UINT16>
+ +00002156[0000086c] MutualRequired <BOOLEAN>
+ +00002157[0000086d] Padding2 <UINT8>
+ +00002158[0000086e] KerberosUserName[96] <UINT16>
+ +00002350[0000092e] KerberosUserSecret[17] <UINT16>
+ +00002384[00000950] KerberosKDCName[96] <UINT16>
+ +00002576[00000a10] KerberosKDCRealm[96] <UINT16>
+ +00002768[00000ad0] KerberosKDCIp[40] <UINT16>
+ +00002848[00000b20] KerberosKDCPort <UINT16>
+ +00002850[00000b22] DynamicOrderedList[8] <UINT8>
+ +00002858[00000b2a] DeleteAttemptList[8] <UINT8>
+ +00002866[00000b32] AddAttemptList[8] <UINT8>
+ +00002874[00000b3a] IsId[13] <UINT16>
+ +00002900[00000b54] ISCSIMacAddr[96] <UINT16>
+ +00003092[00000c14] ISCSIAttemptOrder[96] <UINT16>
+ +00003284[00000cd4] ISCSIAddAttemptList[96] <UINT16>
+ +00003476[00000d94] ISCSIDeleteAttemptList[96] <UINT16>
+ +00003668[00000e54] ISCSIDisplayAttemptList[96] <UINT16>
+ +00003860[00000f14] ISCSIAttemptName[96] <UINT16>
+ +00004052[00000fd4] ISCSIBootEnableList[8] <UINT8>
+ +00004060[00000fdc] ISCSIIpAddressTypeList[8] <UINT8>
+ +00004068[00000fe4] ISCSIConnectRetry[8] <UINT8>
+ +00004076[00000fec] ISCSIConnectTimeout[8] <UINT16>
+ +00004092[00000ffc] ISCSIInitiatorInfoViaDHCP[8] <UINT8>
+ +00004100[00001004] ISCSITargetInfoViaDHCP[8] <UINT8>
+ +00004108[0000100c] ISCSITargetTcpPort[8] <UINT16>
+ +00004124[0000101c] ISCSIAuthenticationMethod[8] <UINT8>
+ +00004132[00001024] ISCSIChapType[8] <UINT8>
+ +00004140[0000102c] Keyword[8] <KEYWORD_STR>
+ };
+---------------------------------------------------------------
+ struct KEYWORD_STR : mAlign [1] mTotalSize [0x6a2]
+
+ struct KEYWORD_STR {
+ +00000000[00000000] ISCSIIsId[13] <UINT16>
+ +00000026[0000001a] ISCSIInitiatorIpAddress[16] <UINT16>
+ +00000058[0000003a] ISCSIInitiatorNetmask[16] <UINT16>
+ +00000090[0000005a] ISCSIInitiatorGateway[16] <UINT16>
+ +00000122[0000007a] ISCSITargetName[224] <UINT16>
+ +00000570[0000023a] ISCSITargetIpAddress[255] <UINT16>
+ +00001080[00000438] ISCSILun[21] <UINT16>
+ +00001122[00000462] ISCSIChapUsername[127] <UINT16>
+ +00001376[00000560] ISCSIChapSecret[17] <UINT16>
+ +00001410[00000582] ISCSIReverseChapUsername[127] <UINT16>
+ +00001664[00000680] ISCSIReverseChapSecret[17] <UINT16>
+ };
+---------------------------------------------------------------
+ struct EFI_HII_REF : mAlign [16] mTotalSize [0x16]
+
+ struct EFI_HII_REF {
+ +00000000[00000000] QuestionId <UINT16>
+ +00000002[00000002] FormId <UINT16>
+ +00000004[00000004] FormSetGuid <(null)>
+ +00000020[00000014] DevicePath <EFI_STRING_ID>
+ };
+---------------------------------------------------------------
+ struct EFI_HII_TIME : mAlign [1] mTotalSize [0x3]
+
+ struct EFI_HII_TIME {
+ +00000000[00000000] Hours <UINT8>
+ +00000001[00000001] Minutes <UINT8>
+ +00000002[00000002] Seconds <UINT8>
+ };
+---------------------------------------------------------------
+ struct EFI_STRING_ID : mAlign [2] mTotalSize [0x2]
+
+ struct EFI_STRING_ID {
+ };
+---------------------------------------------------------------
+ struct EFI_HII_DATE : mAlign [2] mTotalSize [0x4]
+
+ struct EFI_HII_DATE {
+ +00000000[00000000] Year <UINT16>
+ +00000002[00000002] Month <UINT8>
+ +00000003[00000003] Day <UINT8>
+ };
+---------------------------------------------------------------
+ struct BOOLEAN : mAlign [1] mTotalSize [0x1]
+
+ struct BOOLEAN {
+ };
+---------------------------------------------------------------
+ struct UINT8 : mAlign [1] mTotalSize [0x1]
+
+ struct UINT8 {
+ };
+---------------------------------------------------------------
+ struct UINT16 : mAlign [2] mTotalSize [0x2]
+
+ struct UINT16 {
+ };
+---------------------------------------------------------------
+ struct UINT32 : mAlign [4] mTotalSize [0x4]
+
+ struct UINT32 {
+ };
+---------------------------------------------------------------
+ struct UINT64 : mAlign [8] mTotalSize [0x8]
+
+ struct UINT64 {
+ };
+---------------------------------------------------------------
+***************************************************************
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiConfigVfr.vfr.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiConfigVfr.vfr.deps
new file mode 100644
index 000000000000..926996e3a7c7
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiConfigVfr.vfr.deps
@@ -0,0 +1,4 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\IScsiConfigVfr.c: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\IScsiDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfigNVDataStruc.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/IScsiConfigHii.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiConfigVfrCompiled.yml b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiConfigVfrCompiled.yml
new file mode 100644
index 000000000000..2f8074fa6d3b
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiConfigVfrCompiled.yml
@@ -0,0 +1,574 @@
+## DO NOT REMOVE -- YAML Mode
+include:
+- IScsiConfigNVDataStruc.h
+
+formset:
+ guid: '{0x4b47d616, 0xa8d6, 0x4552, { 0x9d, 0x44, 0xcc, 0xad, 0x2e, 0xf, 0x4c, 0xf9 }}'
+ help: 'Configure the iSCSI parameters.'
+ title: 'iSCSI Configuration'
+ component:
+ - varstore:
+ guid: '{0x4b47d616, 0xa8d6, 0x4552, { 0x9d, 0x44, 0xcc, 0xad, 0x2e, 0xf, 0x4c, 0xf9 }}'
+ varid: 0x6666 # Optional Input
+ size: 17724 # Need to Compute
+ name: ISCSI_CONFIG_IFR_NVDATA
+ - form:
+ formid: 1
+ title: 'iSCSI Configuration'
+ component:
+ - string:
+ position: 'ISCSI_CONFIG_GUID.FORMID_MAIN_FORM.ISCSI_CONFIG_IFR_NVDATA.InitiatorName' # for reference
+ questionid: 257
+ varstoreid: 26214 # Optional Input
+ varname: 0 # Question VarName
+ varoffset: 0 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'iSCSI Initiator Name'
+ help: 'The worldwide unique name of iSCSI Initiator. Only IQN format is accepted.'
+ opcodeflags: 0x0 # optional input
+ minsize: 4
+ maxsize: 223
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - goto:
+ questionid: 270
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Add an Attempt'
+ help: 'Add an Attempt'
+ formid: 0x2
+ question: 0x010e # Optional Input
+ - label:
+ number: 0x9000 # Number
+ - label:
+ number: 0xffff # Number
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - goto:
+ questionid: 278
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Delete Attempts'
+ help: 'Delete one or more attempts'
+ formid: 0x5
+ question: 0x0116 # Optional Input
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - goto:
+ questionid: 272
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Change Attempt Order'
+ help: 'Change Attempt Order'
+ formid: 0x4
+ question: 0x0110 # Optional Input
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - form:
+ formid: 2
+ title: 'MAC Selection'
+ component:
+ - label:
+ number: 0x3000 # Number
+ - label:
+ number: 0xffff # Number
+ - form:
+ formid: 4
+ title: 'Change Attempt Order'
+ component:
+ - label:
+ number: 0x4000 # Number
+ - label:
+ number: 0xffff # Number
+ - text:
+ help: 'Commit Changes and Exit'
+ prompt: 'Commit Changes and Exit'
+ flags: 4 # Optional Input, Question Flags
+ key: 0x0111 # Optional Input, Question QuestionId
+ - text:
+ help: 'Discard Changes and Exit'
+ prompt: 'Discard Changes and Exit'
+ flags: 4 # Optional Input, Question Flags
+ key: 0x0112 # Optional Input, Question QuestionId
+ - form:
+ formid: 5
+ title: 'Delete Attempts'
+ component:
+ - label:
+ number: 0x5000 # Number
+ - label:
+ number: 0xffff # Number
+ - text:
+ help: 'Commit Changes and Exit'
+ prompt: 'Commit Changes and Exit'
+ flags: 4 # Optional Input, Question Flags
+ key: 0x0114 # Optional Input, Question QuestionId
+ - text:
+ help: 'Discard Changes and Exit'
+ prompt: 'Discard Changes and Exit'
+ flags: 4 # Optional Input, Question Flags
+ key: 0x0115 # Optional Input, Question QuestionId
+ - form:
+ formid: 3
+ title: 'Attempt Configuration'
+ component:
+ - string:
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.AttemptName' # for reference
+ questionid: 1
+ varstoreid: 26214 # Optional Input
+ varname: 448 # Question VarName
+ varoffset: 448 # Question VarOffset
+ questionflags: 1 # Optional Input
+ prompt: 'iSCSI Attempt Name'
+ help: 'The human name defined for this attempt.'
+ opcodeflags: 0x0 # optional input
+ minsize: 0
+ maxsize: 12
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - oneof:
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.Enabled' # for reference
+ questionid: 2
+ varstoreid: 26214 # Optional Input
+ varname: 472 # Question VarName
+ varoffset: 472 # Question VarOffset
+ questionflags: 0 # Optional Input
+ prompt: 'iSCSI Mode'
+ help: 'Disabled, Enabled, Enabled for MPIO'
+ opcodeflags: 0x10 # optional input
+ maximum: 2 # Optional Input
+ minimum: 0 # Optional Input
+ step: 0x0 # Optional Input
+ component:
+ - option:
+ text: 'Disabled'
+ flags: 16 # Optional Input
+ type: 0x0000 # Optional Input
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.Enabled.Option0' # for reference
+ value: <VfrCompiler.IfrCtypes.c_ubyte_Array_1 object at 0x000001D6C509F740>
+ - option:
+ text: 'Enabled'
+ flags: 0 # Optional Input
+ type: 0x0000 # Optional Input
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.Enabled.Option1' # for reference
+ value: <VfrCompiler.IfrCtypes.c_ubyte_Array_1 object at 0x000001D6C509F740>
+ - option:
+ text: 'Enabled for MPIO'
+ flags: 0 # Optional Input
+ type: 0x0000 # Optional Input
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.Enabled.Option2' # for reference
+ value: <VfrCompiler.IfrCtypes.c_ubyte_Array_1 object at 0x000001D6C509F740>
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - oneof:
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.IpMode' # for reference
+ questionid: 284
+ varstoreid: 26214 # Optional Input
+ varname: 473 # Question VarName
+ varoffset: 473 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Internet Protocol'
+ help: 'Initiator IP address is system assigned in IP6 mode. In Autoconfigure mode, iSCSI driver will attempt to connect iSCSI target via IPv4 stack, if failed then attempt IPv6 stack.'
+ opcodeflags: 0x10 # optional input
+ maximum: 2 # Optional Input
+ minimum: 0 # Optional Input
+ step: 0x0 # Optional Input
+ component:
+ - option:
+ text: 'IP4'
+ flags: 0 # Optional Input
+ type: 0x0000 # Optional Input
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.IpMode.Option0' # for reference
+ value: <VfrCompiler.IfrCtypes.c_ubyte_Array_1 object at 0x000001D6C509F740>
+ - option:
+ text: 'IP6'
+ flags: 0 # Optional Input
+ type: 0x0000 # Optional Input
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.IpMode.Option1' # for reference
+ value: <VfrCompiler.IfrCtypes.c_ubyte_Array_1 object at 0x000001D6C509F740>
+ - option:
+ text: 'Autoconfigure'
+ flags: 0 # Optional Input
+ type: 0x0000 # Optional Input
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.IpMode.Option2' # for reference
+ value: <VfrCompiler.IfrCtypes.c_ubyte_Array_1 object at 0x000001D6C509F740>
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - numeric:
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.ConnectRetryCount' # for reference
+ questionid: 3
+ varstoreid: 26214 # Optional Input
+ varname: 474 # Question VarName
+ varoffset: 474 # Question VarOffset
+ questionflags: 0 # Optional Input
+ prompt: 'Connection Retry Count'
+ help: 'The minimum value is 0 and the maximum is 16. 0 means no retry.'
+ opcodeflags: 0x10 # optional input
+ maximum: 16 # Optional Input
+ minimum: 0 # Optional Input
+ step: 0 # Optional Input
+ - numeric:
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.ConnectTimeout' # for reference
+ questionid: 4
+ varstoreid: 26214 # Optional Input
+ varname: 476 # Question VarName
+ varoffset: 476 # Question VarOffset
+ questionflags: 0 # Optional Input
+ prompt: 'Connection Establishing Timeout'
+ help: 'The timeout value in milliseconds. The minimum value is 100 milliseconds and the maximum is 20 seconds.'
+ opcodeflags: 0x11 # optional input
+ maximum: 20000 # Optional Input
+ minimum: 0 # Optional Input
+ step: 0 # Optional Input
+ component:
+ - default:
+ defaultId: 0
+ type: 1
+ value: 1000
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - string:
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.IsId' # for reference
+ questionid: 286
+ varstoreid: 26214 # Optional Input
+ varname: 2874 # Question VarName
+ varoffset: 2874 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'ISID'
+ help: 'OUI-format ISID in 6 bytes, default value are derived from MAC address. Only last 3 bytes are configurable. Example: update 0ABBCCDDEEFF to 0ABBCCF07901 by input F07901.'
+ opcodeflags: 0x0 # optional input
+ minsize: 6
+ maxsize: 12
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - checkbox:
+ condition: 'suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_AUTOCONFIG'
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.InitiatorInfoFromDhcp' # for reference
+ questionid: 5
+ varstoreid: 26214 # Optional Input
+ varname: 478 # Question VarName
+ varoffset: 478 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Enable DHCP'
+ help: 'Enable DHCP'
+ opcodeflags: 0x0 # optional input
+ - string:
+ condition: 'suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_IP6 OR ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_AUTOCONFIG | grayoutif ideqval ISCSI_CONFIG_IFR_NVDATA.InitiatorInfoFromDhcp == 0x01'
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.LocalIp' # for reference
+ questionid: 259
+ varstoreid: 26214 # Optional Input
+ varname: 480 # Question VarName
+ varoffset: 480 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: ' Initiator IP Address'
+ help: 'Enter IP address in dotted-decimal notation.'
+ opcodeflags: 0x0 # optional input
+ minsize: 7
+ maxsize: 15
+ - string:
+ condition: 'suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_IP6 OR ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_AUTOCONFIG | grayoutif ideqval ISCSI_CONFIG_IFR_NVDATA.InitiatorInfoFromDhcp == 0x01'
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.SubnetMask' # for reference
+ questionid: 260
+ varstoreid: 26214 # Optional Input
+ varname: 512 # Question VarName
+ varoffset: 512 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: ' Initiator Subnet Mask'
+ help: 'Enter IP address in dotted-decimal notation.'
+ opcodeflags: 0x0 # optional input
+ minsize: 7
+ maxsize: 15
+ - string:
+ condition: 'suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_IP6 OR ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_AUTOCONFIG | grayoutif ideqval ISCSI_CONFIG_IFR_NVDATA.InitiatorInfoFromDhcp == 0x01'
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.Gateway' # for reference
+ questionid: 261
+ varstoreid: 26214 # Optional Input
+ varname: 544 # Question VarName
+ varoffset: 544 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: ' Gateway'
+ help: 'Enter IP address in dotted-decimal notation.'
+ opcodeflags: 0x0 # optional input
+ minsize: 7
+ maxsize: 15
+ - subtitle:
+ condition: 'suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_AUTOCONFIG'
+ prompt: ''
+ flags: 0 # Optional Input
+ - checkbox:
+ condition: 'suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_AUTOCONFIG OR ideqval ISCSI_CONFIG_IFR_NVDATA.InitiatorInfoFromDhcp == 0x00'
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.TargetInfoFromDhcp' # for reference
+ questionid: 6
+ varstoreid: 26214 # Optional Input
+ varname: 479 # Question VarName
+ varoffset: 479 # Question VarOffset
+ questionflags: 0 # Optional Input
+ prompt: 'Get target info via DHCP'
+ help: 'Get target info via DHCP'
+ opcodeflags: 0x0 # optional input
+ - string:
+ condition: 'suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_AUTOCONFIG OR ideqval ISCSI_CONFIG_IFR_NVDATA.TargetInfoFromDhcp == 0x01'
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.TargetName' # for reference
+ questionid: 268
+ varstoreid: 26214 # Optional Input
+ varname: 576 # Question VarName
+ varoffset: 576 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: ' Target Name'
+ help: 'The worldwide unique name of the target. Only iqn. format is accepted.'
+ opcodeflags: 0x0 # optional input
+ minsize: 4
+ maxsize: 223
+ - string:
+ condition: 'suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_AUTOCONFIG OR ideqval ISCSI_CONFIG_IFR_NVDATA.TargetInfoFromDhcp == 0x01'
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.TargetIp' # for reference
+ questionid: 262
+ varstoreid: 26214 # Optional Input
+ varname: 1024 # Question VarName
+ varoffset: 1024 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: ' Target Address'
+ help: 'Enter Target address in IPv4,IPv6 or URL format.You need to configure DNS server address in advance if input a URL string.'
+ opcodeflags: 0x0 # optional input
+ minsize: 0
+ maxsize: 255
+ - numeric:
+ condition: 'suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_AUTOCONFIG OR ideqval ISCSI_CONFIG_IFR_NVDATA.TargetInfoFromDhcp == 0x01'
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.TargetPort' # for reference
+ questionid: 7
+ varstoreid: 26214 # Optional Input
+ varname: 1534 # Question VarName
+ varoffset: 1534 # Question VarOffset
+ questionflags: 0 # Optional Input
+ prompt: ' Target Port'
+ help: ' Target Port'
+ opcodeflags: 0x11 # optional input
+ maximum: 65535 # Optional Input
+ minimum: 0 # Optional Input
+ step: 0 # Optional Input
+ - string:
+ condition: 'suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_AUTOCONFIG OR ideqval ISCSI_CONFIG_IFR_NVDATA.TargetInfoFromDhcp == 0x01'
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.BootLun' # for reference
+ questionid: 269
+ varstoreid: 26214 # Optional Input
+ varname: 1536 # Question VarName
+ varoffset: 1536 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: ' Boot LUN'
+ help: 'Hexadecimal representation of the LU number. Examples are: 4752-3A4F-6b7e-2F99, 6734-9-156f-127, 4186-9'
+ opcodeflags: 0x0 # optional input
+ minsize: 1
+ maxsize: 20
+ - subtitle:
+ condition: 'suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_AUTOCONFIG'
+ prompt: ''
+ flags: 0 # Optional Input
+ - oneof:
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.AuthenticationType' # for reference
+ questionid: 285
+ varstoreid: 26214 # Optional Input
+ varname: 1578 # Question VarName
+ varoffset: 1578 # Question VarOffset
+ questionflags: 0 # Optional Input
+ prompt: 'Authentication Type'
+ help: 'Authentication method: CHAP, Kerberos, or None'
+ opcodeflags: 0x10 # optional input
+ maximum: 1 # Optional Input
+ minimum: 0 # Optional Input
+ step: 0x0 # Optional Input
+ component:
+ - option:
+ text: 'CHAP'
+ flags: 0 # Optional Input
+ type: 0x0000 # Optional Input
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.AuthenticationType.Option0' # for reference
+ value: <VfrCompiler.IfrCtypes.c_ubyte_Array_1 object at 0x000001D6C50569C0>
+ - option:
+ text: 'None'
+ flags: 16 # Optional Input
+ type: 0x0000 # Optional Input
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.AuthenticationType.Option1' # for reference
+ value: <VfrCompiler.IfrCtypes.c_ubyte_Array_1 object at 0x000001D6C50569C0>
+ - oneof:
+ condition: 'suppressif NOT ideqval ISCSI_CONFIG_IFR_NVDATA.AuthenticationType == ISCSI_AUTH_TYPE_CHAP'
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.CHAPType' # for reference
+ questionid: 8
+ varstoreid: 26214 # Optional Input
+ varname: 1579 # Question VarName
+ varoffset: 1579 # Question VarOffset
+ questionflags: 0 # Optional Input
+ prompt: ' CHAP Type'
+ help: 'None, One way CHAP or mutual CHAP'
+ opcodeflags: 0x10 # optional input
+ maximum: 1 # Optional Input
+ minimum: 0 # Optional Input
+ step: 0x0 # Optional Input
+ component:
+ - option:
+ text: 'One way'
+ flags: 0 # Optional Input
+ type: 0x0000 # Optional Input
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.CHAPType.Option0' # for reference
+ value: <VfrCompiler.IfrCtypes.c_ubyte_Array_1 object at 0x000001D6C50569C0>
+ - option:
+ text: 'Mutual'
+ flags: 16 # Optional Input
+ type: 0x0000 # Optional Input
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.CHAPType.Option1' # for reference
+ value: <VfrCompiler.IfrCtypes.c_ubyte_Array_1 object at 0x000001D6C50569C0>
+ - string:
+ condition: 'suppressif NOT ideqval ISCSI_CONFIG_IFR_NVDATA.AuthenticationType == ISCSI_AUTH_TYPE_CHAP'
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.CHAPName' # for reference
+ questionid: 263
+ varstoreid: 26214 # Optional Input
+ varname: 1580 # Question VarName
+ varoffset: 1580 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: ' CHAP Name'
+ help: ' CHAP Name'
+ opcodeflags: 0x0 # optional input
+ minsize: 0
+ maxsize: 126
+ - string:
+ condition: 'suppressif NOT ideqval ISCSI_CONFIG_IFR_NVDATA.AuthenticationType == ISCSI_AUTH_TYPE_CHAP'
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.CHAPSecret' # for reference
+ questionid: 264
+ varstoreid: 26214 # Optional Input
+ varname: 1834 # Question VarName
+ varoffset: 1834 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: ' CHAP Secret'
+ help: 'The minimum length is 12 bytes and the maximum length is 16 bytes.'
+ opcodeflags: 0x0 # optional input
+ minsize: 12
+ maxsize: 16
+ - string:
+ condition: 'suppressif NOT ideqval ISCSI_CONFIG_IFR_NVDATA.AuthenticationType == ISCSI_AUTH_TYPE_CHAP OR NOT ideqval ISCSI_CONFIG_IFR_NVDATA.CHAPType == ISCSI_CHAP_MUTUAL'
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.ReverseCHAPName' # for reference
+ questionid: 265
+ varstoreid: 26214 # Optional Input
+ varname: 1868 # Question VarName
+ varoffset: 1868 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: ' Reverse CHAP Name'
+ help: ' Reverse CHAP Name'
+ opcodeflags: 0x0 # optional input
+ minsize: 0
+ maxsize: 126
+ - string:
+ condition: 'suppressif NOT ideqval ISCSI_CONFIG_IFR_NVDATA.AuthenticationType == ISCSI_AUTH_TYPE_CHAP OR NOT ideqval ISCSI_CONFIG_IFR_NVDATA.CHAPType == ISCSI_CHAP_MUTUAL'
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.ReverseCHAPSecret' # for reference
+ questionid: 266
+ varstoreid: 26214 # Optional Input
+ varname: 2122 # Question VarName
+ varoffset: 2122 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: ' Reverse CHAP Secret'
+ help: 'The minimum length is 12 bytes and the maximum length is 16 bytes.'
+ opcodeflags: 0x0 # optional input
+ minsize: 12
+ maxsize: 16
+ - string:
+ condition: 'suppressif TRUE'
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.ISCSIMacAddr' # for reference
+ questionid: 9
+ varstoreid: 26214 # Optional Input
+ varname: 2900 # Question VarName
+ varoffset: 2900 # Question VarOffset
+ questionflags: 0 # Optional Input
+ prompt: 'Configure the mac address for the attempt'
+ help: 'Configure the mac address for the attempt'
+ opcodeflags: 0x0 # optional input
+ minsize: 0
+ maxsize: 96
+ - string:
+ condition: 'suppressif TRUE'
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.ISCSIAttemptOrder' # for reference
+ questionid: 10
+ varstoreid: 26214 # Optional Input
+ varname: 3092 # Question VarName
+ varoffset: 3092 # Question VarOffset
+ questionflags: 0 # Optional Input
+ prompt: 'New Attempt Order'
+ help: 'New Attempt Order'
+ opcodeflags: 0x0 # optional input
+ minsize: 0
+ maxsize: 96
+ - string:
+ condition: 'suppressif TRUE'
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.ISCSIAddAttemptList' # for reference
+ questionid: 11
+ varstoreid: 26214 # Optional Input
+ varname: 3284 # Question VarName
+ varoffset: 3284 # Question VarOffset
+ questionflags: 0 # Optional Input
+ prompt: 'Add Attempts'
+ help: 'Add Attempts'
+ opcodeflags: 0x0 # optional input
+ minsize: 0
+ maxsize: 96
+ - string:
+ condition: 'suppressif TRUE'
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.ISCSIDeleteAttemptList' # for reference
+ questionid: 12
+ varstoreid: 26214 # Optional Input
+ varname: 3476 # Question VarName
+ varoffset: 3476 # Question VarOffset
+ questionflags: 0 # Optional Input
+ prompt: 'Delete Attempts'
+ help: 'Delete Attempts'
+ opcodeflags: 0x0 # optional input
+ minsize: 0
+ maxsize: 96
+ - string:
+ condition: 'suppressif TRUE'
+ position: 'ISCSI_CONFIG_GUID.FORMID_ATTEMPT_FORM.ISCSI_CONFIG_IFR_NVDATA.ISCSIDisplayAttemptList' # for reference
+ questionid: 13
+ varstoreid: 26214 # Optional Input
+ varname: 3668 # Question VarName
+ varoffset: 3668 # Question VarOffset
+ questionflags: 1 # Optional Input
+ prompt: 'Display Attempts'
+ help: 'Display Attempts'
+ opcodeflags: 0x0 # optional input
+ minsize: 0
+ maxsize: 96
+ - label:
+ condition: 'suppressif TRUE'
+ number: 0x6000 # Number
+ - label:
+ condition: 'suppressif TRUE'
+ number: 0xffff # Number
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - text:
+ help: 'Must reboot system manually for changes to take place.'
+ prompt: 'Save Changes'
+ flags: 4 # Optional Input, Question Flags
+ key: 0x010f # Optional Input, Question QuestionId
+ - goto:
+ questionid: 14
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 0 # Optional Input
+ prompt: 'Back to Previous Page'
+ help: 'Back to Previous Page'
+ formid: 0x1
+ question: 0x000e # Optional Input
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiConfigVfrProcessed.yml b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiConfigVfrProcessed.yml
new file mode 100644
index 000000000000..a9522e41c6c6
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiConfigVfrProcessed.yml
@@ -0,0 +1,393 @@
+defines:
+ EFI_NETWORK_DEVICE_CLASS: 4
+formset:
+ component:
+ - varstore:
+ guid: '{0x4b47d616, 0xa8d6, 0x4552, {0x9d, 0x44, 0xcc, 0xad, 0x2e, 0xf, 0x4c, 0xf9}}'
+ name: ISCSI_CONFIG_IFR_NVDATA
+ type: ISCSI_CONFIG_IFR_NVDATA
+ varid: 26214
+ - form:
+ component:
+ - string:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0007)
+ key: 257
+ maxsize: 223
+ minsize: 4
+ prompt: STRING_TOKEN(0x0006)
+ varid: ISCSI_CONFIG_IFR_NVDATA.InitiatorName
+ - subtitle:
+ text: STRING_TOKEN(0x003A)
+ - goto:
+ flags: INTERACTIVE
+ formid: 2
+ help: STRING_TOKEN(0x000E)
+ key: 270
+ prompt: STRING_TOKEN(0x000E)
+ - label:
+ number: 36864
+ - label:
+ number: 65535
+ - subtitle:
+ text: STRING_TOKEN(0x003A)
+ - goto:
+ flags: INTERACTIVE
+ formid: 5
+ help: STRING_TOKEN(0x0011)
+ key: 278
+ prompt: STRING_TOKEN(0x0010)
+ - subtitle:
+ text: STRING_TOKEN(0x003A)
+ - goto:
+ flags: INTERACTIVE
+ formid: 4
+ help: STRING_TOKEN(0x0012)
+ key: 272
+ prompt: STRING_TOKEN(0x0012)
+ - subtitle:
+ text: STRING_TOKEN(0x003A)
+ formid: 1
+ title: STRING_TOKEN(0x0004)
+ - form:
+ component:
+ - label:
+ number: 12288
+ - label:
+ number: 65535
+ formid: 2
+ title: STRING_TOKEN(0x0005)
+ - form:
+ component:
+ - label:
+ number: 16384
+ - label:
+ number: 65535
+ - text:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x003B)
+ key: 273
+ prompt: STRING_TOKEN(0x003B)
+ - text:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x003C)
+ key: 274
+ prompt: STRING_TOKEN(0x003C)
+ formid: 4
+ title: STRING_TOKEN(0x0012)
+ - form:
+ component:
+ - label:
+ number: 20480
+ - label:
+ number: 65535
+ - text:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x003B)
+ key: 276
+ prompt: STRING_TOKEN(0x003B)
+ - text:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x003C)
+ key: 277
+ prompt: STRING_TOKEN(0x003C)
+ formid: 5
+ title: STRING_TOKEN(0x0010)
+ - form:
+ component:
+ - string:
+ flags: READ_ONLY
+ help: STRING_TOKEN(0x0009)
+ key: 275
+ maxsize: 12
+ minsize: 0
+ prompt: STRING_TOKEN(0x0008)
+ varid: ISCSI_CONFIG_IFR_NVDATA.AttemptName
+ - subtitle:
+ text: STRING_TOKEN(0x003A)
+ - oneof:
+ component:
+ - option:
+ flags: DEFAULT
+ text: STRING_TOKEN(0x0015)
+ value: 0
+ - option:
+ flags: 0
+ text: STRING_TOKEN(0x0016)
+ value: 1
+ - option:
+ flags: 0
+ text: STRING_TOKEN(0x0017)
+ value: 2
+ help: STRING_TOKEN(0x0014)
+ prompt: STRING_TOKEN(0x0013)
+ varid: ISCSI_CONFIG_IFR_NVDATA.Enabled
+ - subtitle:
+ text: STRING_TOKEN(0x003A)
+ - oneof:
+ component:
+ - option:
+ flags: INTERACTIVE
+ text: STRING_TOKEN(0x001A)
+ value: 0
+ - option:
+ flags: INTERACTIVE
+ text: STRING_TOKEN(0x001B)
+ value: 1
+ - option:
+ flags: INTERACTIVE
+ text: STRING_TOKEN(0x001C)
+ value: 2
+ help: STRING_TOKEN(0x0019)
+ prompt: STRING_TOKEN(0x0018)
+ questionid: 284
+ varid: ISCSI_CONFIG_IFR_NVDATA.IpMode
+ - subtitle:
+ text: STRING_TOKEN(0x003A)
+ - numeric:
+ flags: 0
+ help: STRING_TOKEN(0x000B)
+ maximum: 16
+ minmum: 0
+ prompt: STRING_TOKEN(0x000A)
+ step: 0
+ varid: ISCSI_CONFIG_IFR_NVDATA.ConnectRetryCount
+ - numeric:
+ component:
+ - default:
+ value: 1000
+ flags: 0
+ help: STRING_TOKEN(0x000D)
+ maximum: 20000
+ minmum: 100
+ prompt: STRING_TOKEN(0x000C)
+ step: 0
+ varid: ISCSI_CONFIG_IFR_NVDATA.ConnectTimeout
+ - subtitle:
+ text: STRING_TOKEN(0x003A)
+ - string:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x003E)
+ key: 286
+ maxsize: 12
+ minsize: 6
+ prompt: STRING_TOKEN(0x003D)
+ varid: ISCSI_CONFIG_IFR_NVDATA.IsId
+ - subtitle:
+ text: STRING_TOKEN(0x003A)
+ - suppressif:
+ component:
+ - checkbox:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x002C)
+ prompt: STRING_TOKEN(0x002C)
+ varid: ISCSI_CONFIG_IFR_NVDATA.InitiatorInfoFromDhcp
+ expression: ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_AUTOCONFIG
+ - suppressif:
+ component:
+ - grayoutif:
+ component:
+ - string:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0024)
+ key: 259
+ maxsize: 15
+ minsize: 7
+ prompt: STRING_TOKEN(0x0021)
+ varid: ISCSI_CONFIG_IFR_NVDATA.LocalIp
+ - string:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0024)
+ key: 260
+ maxsize: 15
+ minsize: 7
+ prompt: STRING_TOKEN(0x0022)
+ varid: ISCSI_CONFIG_IFR_NVDATA.SubnetMask
+ - string:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0024)
+ key: 261
+ maxsize: 15
+ minsize: 7
+ prompt: STRING_TOKEN(0x0023)
+ varid: ISCSI_CONFIG_IFR_NVDATA.Gateway
+ expression: ideqval ISCSI_CONFIG_IFR_NVDATA.InitiatorInfoFromDhcp == 0x01
+ expression: ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_IP6 OR ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_AUTOCONFIG
+ - suppressif:
+ component:
+ - subtitle:
+ text: STRING_TOKEN(0x003A)
+ expression: ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_AUTOCONFIG
+ - suppressif:
+ component:
+ - checkbox:
+ flags: 0
+ help: STRING_TOKEN(0x002D)
+ prompt: STRING_TOKEN(0x002D)
+ varid: ISCSI_CONFIG_IFR_NVDATA.TargetInfoFromDhcp
+ expression: ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_AUTOCONFIG OR ideqval ISCSI_CONFIG_IFR_NVDATA.InitiatorInfoFromDhcp == 0x00
+ - suppressif:
+ component:
+ - string:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0026)
+ key: 268
+ maxsize: 223
+ minsize: 4
+ prompt: STRING_TOKEN(0x0025)
+ varid: ISCSI_CONFIG_IFR_NVDATA.TargetName
+ - string:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0028)
+ key: 262
+ maxsize: 255
+ minsize: 0
+ prompt: STRING_TOKEN(0x0027)
+ varid: ISCSI_CONFIG_IFR_NVDATA.TargetIp
+ - numeric:
+ flags: 0
+ help: STRING_TOKEN(0x0029)
+ maximum: 65535
+ minmum: 0
+ prompt: STRING_TOKEN(0x0029)
+ step: 0
+ varid: ISCSI_CONFIG_IFR_NVDATA.TargetPort
+ - string:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x002B)
+ key: 269
+ maxsize: 20
+ minsize: 1
+ prompt: STRING_TOKEN(0x002A)
+ varid: ISCSI_CONFIG_IFR_NVDATA.BootLun
+ expression: ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_AUTOCONFIG OR ideqval ISCSI_CONFIG_IFR_NVDATA.TargetInfoFromDhcp == 0x01
+ - suppressif:
+ component:
+ - subtitle:
+ text: STRING_TOKEN(0x003A)
+ expression: ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == IP_MODE_AUTOCONFIG
+ - oneof:
+ component:
+ - option:
+ flags: 0
+ text: STRING_TOKEN(0x001F)
+ value: 1
+ - option:
+ flags: DEFAULT
+ text: STRING_TOKEN(0x0020)
+ value: 0
+ help: STRING_TOKEN(0x001E)
+ prompt: STRING_TOKEN(0x001D)
+ questionid: 285
+ varid: ISCSI_CONFIG_IFR_NVDATA.AuthenticationType
+ - suppressif:
+ component:
+ - oneof:
+ component:
+ - option:
+ flags: 0
+ text: STRING_TOKEN(0x0030)
+ value: 0
+ - option:
+ flags: DEFAULT
+ text: STRING_TOKEN(0x0031)
+ value: 1
+ help: STRING_TOKEN(0x002F)
+ prompt: STRING_TOKEN(0x002E)
+ varid: ISCSI_CONFIG_IFR_NVDATA.CHAPType
+ expression: NOT ideqval ISCSI_CONFIG_IFR_NVDATA.AuthenticationType == ISCSI_AUTH_TYPE_CHAP
+ - suppressif:
+ component:
+ - string:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0032)
+ key: 263
+ maxsize: 126
+ minsize: 0
+ prompt: STRING_TOKEN(0x0032)
+ varid: ISCSI_CONFIG_IFR_NVDATA.CHAPName
+ - string:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0034)
+ key: 264
+ maxsize: 16
+ minsize: 12
+ prompt: STRING_TOKEN(0x0033)
+ varid: ISCSI_CONFIG_IFR_NVDATA.CHAPSecret
+ expression: NOT ideqval ISCSI_CONFIG_IFR_NVDATA.AuthenticationType == ISCSI_AUTH_TYPE_CHAP
+ - suppressif:
+ component:
+ - string:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0035)
+ key: 265
+ maxsize: 126
+ minsize: 0
+ prompt: STRING_TOKEN(0x0035)
+ varid: ISCSI_CONFIG_IFR_NVDATA.ReverseCHAPName
+ - string:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0034)
+ key: 266
+ maxsize: 16
+ minsize: 12
+ prompt: STRING_TOKEN(0x0036)
+ varid: ISCSI_CONFIG_IFR_NVDATA.ReverseCHAPSecret
+ expression: NOT ideqval ISCSI_CONFIG_IFR_NVDATA.AuthenticationType == ISCSI_AUTH_TYPE_CHAP OR NOT ideqval ISCSI_CONFIG_IFR_NVDATA.CHAPType == ISCSI_CHAP_MUTUAL
+ - suppressif:
+ component:
+ - string:
+ help: STRING_TOKEN(0x003F)
+ maxsize: 96
+ minsize: 0
+ prompt: STRING_TOKEN(0x003F)
+ varid: ISCSI_CONFIG_IFR_NVDATA.ISCSIMacAddr
+ - string:
+ help: STRING_TOKEN(0x0043)
+ maxsize: 96
+ minsize: 0
+ prompt: STRING_TOKEN(0x0043)
+ varid: ISCSI_CONFIG_IFR_NVDATA.ISCSIAttemptOrder
+ - string:
+ help: STRING_TOKEN(0x0040)
+ maxsize: 96
+ minsize: 0
+ prompt: STRING_TOKEN(0x0040)
+ varid: ISCSI_CONFIG_IFR_NVDATA.ISCSIAddAttemptList
+ - string:
+ help: STRING_TOKEN(0x0041)
+ maxsize: 96
+ minsize: 0
+ prompt: STRING_TOKEN(0x0041)
+ varid: ISCSI_CONFIG_IFR_NVDATA.ISCSIDeleteAttemptList
+ - string:
+ flags: READ_ONLY
+ help: STRING_TOKEN(0x0042)
+ maxsize: 96
+ minsize: 0
+ prompt: STRING_TOKEN(0x0042)
+ varid: ISCSI_CONFIG_IFR_NVDATA.ISCSIDisplayAttemptList
+ - label:
+ number: 24576
+ - label:
+ number: 65535
+ expression: 'TRUE'
+ - subtitle:
+ text: STRING_TOKEN(0x003A)
+ - text:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0039)
+ key: 271
+ prompt: STRING_TOKEN(0x0038)
+ - goto:
+ flags: 0
+ formid: 1
+ help: STRING_TOKEN(0x0037)
+ prompt: STRING_TOKEN(0x0037)
+ formid: 3
+ title: STRING_TOKEN(0x000F)
+ guid: '{0x4b47d616, 0xa8d6, 0x4552, {0x9d, 0x44, 0xcc, 0xad, 0x2e, 0xf, 0x4c, 0xf9}}'
+ help: STRING_TOKEN(0x0003)
+ title: STRING_TOKEN(0x0002)
+include:
+- IScsiConfigNVDataStruc.h
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiDxe.dll b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiDxe.dll
new file mode 100644
index 0000000000000000000000000000000000000000..905aea8f0b8b527ec4f0307e88aaf7988fb0d5e7
GIT binary patch
literal 135040
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
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiDxe.efi b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiDxe.efi
new file mode 100644
index 0000000000000000000000000000000000000000..4b89705b3e8e382faf344b8a892594547358c27c
GIT binary patch
literal 135040
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%0AF1vGfqliV5UXhIr9%<
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≧K+S?tssK1wLa;
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
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiDxe.map b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiDxe.map
new file mode 100644
index 000000000000..d0158f8be3da
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/DEBUG/IScsiDxe.map
@@ -0,0 +1,1428 @@
+ IScsiDxe
+
+ Timestamp is 647841dd (Thu Jun 1 14:59:41 2023)
+
+ Preferred load address is 0000000000000000
+
+ Start Length Name Class
+ 0001:00000000 00000348H .text CODE
+ 0001:00000348 00017f4fH .text$mn CODE
+ 0002:00000000 00005444H .rdata DATA
+ 0002:00005444 00000130H .rdata$zzzdbg DATA
+ 0003:00000000 00001c88H .data DATA
+ 0003:00001c88 000000b8H .bss DATA
+ 0004:00000000 00000cb4H .pdata DATA
+ 0005:00000000 00000a34H .xdata DATA
+
+ Address Publics by Value Rva+Base Lib:Object
+
+ 0000:00000000 __dynamic_value_reloc_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_longjmp_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_flags 0000000000000000 <absolute>
+ 0000:00000000 __guard_longjmp_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_iat_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_iat_count 0000000000000000 <absolute>
+ 0001:00000000 InternalMemCopyMem 00000000000002c0 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000040 InternalMemCompareMem 0000000000000300 BaseMemoryLibRepStr:CompareMem.obj
+ 0001:00000060 InternalMemZeroMem 0000000000000320 BaseMemoryLibRepStr:ZeroMem.obj
+ 0001:00000080 InternalMemSetMem 0000000000000340 BaseMemoryLibRepStr:SetMem.obj
+ 0001:000000a0 InternalMemSetMem64 0000000000000360 BaseMemoryLibRepStr:SetMem64.obj
+ 0001:000000c0 InternalMemSetMem32 0000000000000380 BaseMemoryLibRepStr:SetMem32.obj
+ 0001:000000e0 InternalMemSetMem16 00000000000003a0 BaseMemoryLibRepStr:SetMem16.obj
+ 0001:00000100 CpuPause 00000000000003c0 BaseLib:CpuPause.obj
+ 0001:00000110 SevNoRepIo 00000000000003d0 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000150 SevIoReadFifo8 0000000000000410 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000172 SevIoReadFifo16 0000000000000432 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000198 SevIoReadFifo32 0000000000000458 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001bb SevIoWriteFifo8 000000000000047b BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001dd SevIoWriteFifo16 000000000000049d BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000203 SevIoWriteFifo32 00000000000004c3 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000230 TdVmCall 00000000000004f0 BaseLib:TdVmcall.obj
+ 0001:000002c0 EnableInterrupts 0000000000000580 BaseLib:EnableInterrupts.obj
+ 0001:000002d0 DisableInterrupts 0000000000000590 BaseLib:DisableInterrupts.obj
+ 0001:000002e0 AsmReadEflags 00000000000005a0 BaseLib:ReadEflags.obj
+ 0001:000002f0 TdCall 00000000000005b0 BaseLib:TdCall.obj
+ 0001:00000348 _DriverUnloadHandler 0000000000000608 f UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0001:00000350 _ModuleEntryPoint 0000000000000610 f UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0001:000003cc ProcessLibraryConstructorList 000000000000068c f IScsiDxe:AutoGen.obj
+ 0001:00000758 IScsiCheckAip 0000000000000a18 f IScsiDxe:IScsiDriver.obj
+ 0001:00000984 IScsiSupported 0000000000000c44 f IScsiDxe:IScsiDriver.obj
+ 0001:00000b28 IScsiStart 0000000000000de8 f IScsiDxe:IScsiDriver.obj
+ 0001:00001538 IScsiStop 00000000000017f8 f IScsiDxe:IScsiDriver.obj
+ 0001:000017dc IScsiIp4DriverBindingSupported 0000000000001a9c f IScsiDxe:IScsiDriver.obj
+ 0001:000017e4 IScsiIp4DriverBindingStart 0000000000001aa4 f IScsiDxe:IScsiDriver.obj
+ 0001:0000180c IScsiIp4DriverBindingStop 0000000000001acc f IScsiDxe:IScsiDriver.obj
+ 0001:00001820 IScsiIp6DriverBindingSupported 0000000000001ae0 f IScsiDxe:IScsiDriver.obj
+ 0001:00001828 IScsiIp6DriverBindingStart 0000000000001ae8 f IScsiDxe:IScsiDriver.obj
+ 0001:00001850 IScsiIp6DriverBindingStop 0000000000001b10 f IScsiDxe:IScsiDriver.obj
+ 0001:00001864 IScsiUnload 0000000000001b24 f IScsiDxe:IScsiDriver.obj
+ 0001:00001b68 IScsiDriverEntryPoint 0000000000001e28 f IScsiDxe:IScsiDriver.obj
+ 0001:00001dcc IScsiCHAPCalculateResponse 000000000000208c f IScsiDxe:IScsiCHAP.obj
+ 0001:00001ec4 IScsiCHAPAuthTarget 0000000000002184 f IScsiDxe:IScsiCHAP.obj
+ 0001:00001f9c IScsiCHAPOnRspReceived 000000000000225c f IScsiDxe:IScsiCHAP.obj
+ 0001:0000233c IScsiCHAPToSendReq 00000000000025fc f IScsiDxe:IScsiCHAP.obj
+ 0001:0000264c IScsiCHAPInitHashList 000000000000290c f IScsiDxe:IScsiCHAP.obj
+ 0001:00002740 IScsiGetSubnetMaskPrefixLength 0000000000002a00 f IScsiDxe:IScsiMisc.obj
+ 0001:00002780 IScsiAsciiStrToLun 0000000000002a40 f IScsiDxe:IScsiMisc.obj
+ 0001:00002874 IScsiLunToUnicodeStr 0000000000002b34 f IScsiDxe:IScsiMisc.obj
+ 0001:00002a38 IScsiAsciiStrToIp 0000000000002cf8 f IScsiDxe:IScsiMisc.obj
+ 0001:00002ac8 IScsiMacAddrToStr 0000000000002d88 f IScsiDxe:IScsiMisc.obj
+ 0001:00002b60 IScsiBinToHex 0000000000002e20 f IScsiDxe:IScsiMisc.obj
+ 0001:00002c0c IScsiHexToBin 0000000000002ecc f IScsiDxe:IScsiMisc.obj
+ 0001:00002d00 IScsiNetNtoi 0000000000002fc0 f IScsiDxe:IScsiMisc.obj
+ 0001:00002d3c IScsiGenRandom 0000000000002ffc f IScsiDxe:IScsiMisc.obj
+ 0001:00002de4 IScsiCheckIpv6Support 00000000000030a4 f IScsiDxe:IScsiMisc.obj
+ 0001:00002f74 IScsiAddNic 0000000000003234 f IScsiDxe:IScsiMisc.obj
+ 0001:00003174 IScsiRemoveNic 0000000000003434 f IScsiDxe:IScsiMisc.obj
+ 0001:0000330c IScsiCreateAttempts 00000000000035cc f IScsiDxe:IScsiMisc.obj
+ 0001:000034fc IScsiCreateKeywords 00000000000037bc f IScsiDxe:IScsiMisc.obj
+ 0001:0000432c IScsiGetVariableAndSize 00000000000045ec f IScsiDxe:IScsiMisc.obj
+ 0001:000043d8 IScsiCreateDriverData 0000000000004698 f IScsiDxe:IScsiMisc.obj
+ 0001:000044ac IScsiCleanDriverData 000000000000476c f IScsiDxe:IScsiMisc.obj
+ 0001:00004560 IScsiDhcpIsConfigured 0000000000004820 f IScsiDxe:IScsiMisc.obj
+ 0001:00004728 IScsiDnsIsConfigured 00000000000049e8 f IScsiDxe:IScsiMisc.obj
+ 0001:000048bc IScsiGetConfigData 0000000000004b7c f IScsiDxe:IScsiMisc.obj
+ 0001:00004ef4 IScsiGetTcpConnDevicePath 00000000000051b4 f IScsiDxe:IScsiMisc.obj
+ 0001:0000508c IScsiOnExitBootService 000000000000534c f IScsiDxe:IScsiMisc.obj
+ 0001:000050c0 IScsiTestManagedDevice 0000000000005380 f IScsiDxe:IScsiMisc.obj
+ 0001:00005198 IScsiComponentNameGetDriverName 0000000000005458 f IScsiDxe:ComponentName.obj
+ 0001:000051cc UpdateName 000000000000548c f IScsiDxe:ComponentName.obj
+ 0001:000052bc IScsiComponentNameGetControllerName 000000000000557c f IScsiDxe:ComponentName.obj
+ 0001:00005418 IScsiIpToStr 00000000000056d8 f IScsiDxe:IScsiConfig.obj
+ 0001:000055c0 IpIsUnicast 0000000000005880 f IScsiDxe:IScsiConfig.obj
+ 0001:0000568c IScsiParseIsIdFromString 000000000000594c f IScsiDxe:IScsiConfig.obj
+ 0001:00005778 IScsiConvertIsIdToString 0000000000005a38 f IScsiDxe:IScsiConfig.obj
+ 0001:000057f8 IScsiGetValue 0000000000005ab8 f IScsiDxe:IScsiConfig.obj
+ 0001:00005984 IScsiConfigGetAttemptByConfigIndex 0000000000005c44 f IScsiDxe:IScsiConfig.obj
+ 0001:000059a8 IScsiGetAttemptIndexList 0000000000005c68 f IScsiDxe:IScsiConfig.obj
+ 0001:00005a58 IScsiConvertAttemptConfigDataToIfrNvData 0000000000005d18 f IScsiDxe:IScsiConfig.obj
+ 0001:00005cd8 IScsiConvertAttemptConfigDataToIfrNvDataByKeyword 0000000000005f98 f IScsiDxe:IScsiConfig.obj
+ 0001:00006168 IScsiConvertIfrNvDataToAttemptConfigData 0000000000006428 f IScsiDxe:IScsiConfig.obj
+ 0001:000068b0 IScsiConvertlfrNvDataToAttemptConfigDataByKeyword 0000000000006b70 f IScsiDxe:IScsiConfig.obj
+ 0001:000074a0 IScsiCreateOpCode 0000000000007760 f IScsiDxe:IScsiConfig.obj
+ 0001:00007590 IScsiConfigUpdateAttempt 0000000000007850 f IScsiDxe:IScsiConfig.obj
+ 0001:00007690 IScsiConfigAddAttempt 0000000000007950 f IScsiDxe:IScsiConfig.obj
+ 0001:00007828 IScsiConfigAddAttemptsByKeywords 0000000000007ae8 f IScsiDxe:IScsiConfig.obj
+ 0001:00007b3c IScsiConfigDeleteAttempts 0000000000007dfc f IScsiDxe:IScsiConfig.obj
+ 0001:00007dd8 IScsiConfigDisplayDeleteAttempts 0000000000008098 f IScsiDxe:IScsiConfig.obj
+ 0001:00007f38 IScsiConfigDisplayOrderAttempts 00000000000081f8 f IScsiDxe:IScsiConfig.obj
+ 0001:000080d8 IScsiConfigOrderAttempts 0000000000008398 f IScsiDxe:IScsiConfig.obj
+ 0001:0000824c IScsiConfigProcessDefault 000000000000850c f IScsiDxe:IScsiConfig.obj
+ 0001:00008510 IScsiFormExtractConfig 00000000000087d0 f IScsiDxe:IScsiConfig.obj
+ 0001:00008758 IScsiFormRouteConfig 0000000000008a18 f IScsiDxe:IScsiConfig.obj
+ 0001:00008af0 IScsiFormCallback 0000000000008db0 f IScsiDxe:IScsiConfig.obj
+ 0001:000093a8 IScsiConfigFormInit 0000000000009668 f IScsiDxe:IScsiConfig.obj
+ 0001:000094f0 IScsiConfigFormUnload 00000000000097b0 f IScsiDxe:IScsiConfig.obj
+ 0001:0000968c IScsiCheckSN 000000000000994c f IScsiDxe:IScsiProto.obj
+ 0001:000096d0 IScsiUpdateCmdSN 0000000000009990 f IScsiDxe:IScsiProto.obj
+ 0001:00009754 IScsiConnReset 0000000000009a14 f IScsiDxe:IScsiProto.obj
+ 0001:000097e8 IScsiCreateConnection 0000000000009aa8 f IScsiDxe:IScsiProto.obj
+ 0001:00009a1c IScsiGetIp6NicInfo 0000000000009cdc f IScsiDxe:IScsiProto.obj
+ 0001:00009c88 IScsiSessionLogin 0000000000009f48 f IScsiDxe:IScsiProto.obj
+ 0001:0000a074 IScsiSessionReLogin 000000000000a334 f IScsiDxe:IScsiProto.obj
+ 0001:0000a134 IScsiAddKeyValuePair 000000000000a3f4 f IScsiDxe:IScsiProto.obj
+ 0001:0000a238 IScsiPrepareLoginReq 000000000000a4f8 f IScsiDxe:IScsiProto.obj
+ 0001:0000a3e8 IScsiProcessLoginRsp 000000000000a6a8 f IScsiDxe:IScsiProto.obj
+ 0001:0000a740 IScsiUpdateTargetAddress 000000000000aa00 f IScsiDxe:IScsiProto.obj
+ 0001:0000a90c IScsiFreeNbufList 000000000000abcc f IScsiDxe:IScsiProto.obj
+ 0001:0000a948 IScsiNbufExtFree 000000000000ac08 f IScsiDxe:IScsiProto.obj
+ 0001:0000a94c IScsiReceivePdu 000000000000ac0c f IScsiDxe:IScsiProto.obj
+ 0001:0000abac IScsiCheckOpParams 000000000000ae6c f IScsiDxe:IScsiProto.obj
+ 0001:0000b0a4 IScsiFillOpParams 000000000000b364 f IScsiDxe:IScsiProto.obj
+ 0001:0000b3bc IScsiBuildKeyValueList 000000000000b67c f IScsiDxe:IScsiProto.obj
+ 0001:0000b490 IScsiGetValueByKeyFromList 000000000000b750 f IScsiDxe:IScsiProto.obj
+ 0001:0000b4fc IScsiFreeKeyValueList 000000000000b7bc f IScsiDxe:IScsiProto.obj
+ 0001:0000b530 IScsiNormalizeName 000000000000b7f0 f IScsiDxe:IScsiProto.obj
+ 0001:0000b5b0 IScsiNewTcb 000000000000b870 f IScsiDxe:IScsiProto.obj
+ 0001:0000b698 IScsiNewDataSegment 000000000000b958 f IScsiDxe:IScsiProto.obj
+ 0001:0000b6ec IScsiNewScsiCmdPdu 000000000000b9ac f IScsiDxe:IScsiProto.obj
+ 0001:0000b9e4 IScsiNewDataOutPdu 000000000000bca4 f IScsiDxe:IScsiProto.obj
+ 0001:0000bba0 IScsiSendDataOutPduSequence 000000000000be60 f IScsiDxe:IScsiProto.obj
+ 0001:0000bcb4 IScsiOnDataInRcvd 000000000000bf74 f IScsiDxe:IScsiProto.obj
+ 0001:0000be6c IScsiOnR2TRcvd 000000000000c12c f IScsiDxe:IScsiProto.obj
+ 0001:0000bfe8 IScsiOnScsiRspRcvd 000000000000c2a8 f IScsiDxe:IScsiProto.obj
+ 0001:0000c250 IScsiOnNopInRcvd 000000000000c510 f IScsiDxe:IScsiProto.obj
+ 0001:0000c324 IScsiExecuteScsiCommand 000000000000c5e4 f IScsiDxe:IScsiProto.obj
+ 0001:0000c660 IScsiSessionInit 000000000000c920 f IScsiDxe:IScsiProto.obj
+ 0001:0000c714 IScsiSessionAbort 000000000000c9d4 f IScsiDxe:IScsiProto.obj
+ 0001:0000c838 IScsiGetAuthenticationInfo 000000000000caf8 f IScsiDxe:IScsiAuthenticationInfo.obj
+ 0001:0000c844 IScsiExtScsiPassThruResetChannel 000000000000cb04 f IScsiDxe:IScsiExtScsiPassThru.obj
+ 0001:0000c844 IScsiExtScsiPassThruResetTargetLun 000000000000cb04 f IScsiDxe:IScsiExtScsiPassThru.obj
+ 0001:0000c844 IScsiSetAuthenticationInfo 000000000000cb04 f IScsiDxe:IScsiAuthenticationInfo.obj
+ 0001:0000c850 IScsiGetInitiatorName 000000000000cb10 f IScsiDxe:IScsiInitiatorName.obj
+ 0001:0000c894 IScsiSetInitiatorName 000000000000cb54 f IScsiDxe:IScsiInitiatorName.obj
+ 0001:0000c90c IScsiInitIbfTableHeader 000000000000cbcc f IScsiDxe:IScsiIbft.obj
+ 0001:0000c95c IScsiAddHeapItem 000000000000cc1c f IScsiDxe:IScsiIbft.obj
+ 0001:0000c990 IScsiMapV4ToV6Addr 000000000000cc50 f IScsiDxe:IScsiIbft.obj
+ 0001:0000c9dc IScsiFillNICAndTargetSections 000000000000cc9c f IScsiDxe:IScsiIbft.obj
+ 0001:0000ceb8 IScsiPublishIbft 000000000000d178 f IScsiDxe:IScsiIbft.obj
+ 0001:0000d134 IScsiDhcp6ExtractRootPath 000000000000d3f4 f IScsiDxe:IScsiDhcp6.obj
+ 0001:0000d470 IScsiDhcp6ParseReply 000000000000d730 f IScsiDxe:IScsiDhcp6.obj
+ 0001:0000d624 IScsiDoDhcp6 000000000000d8e4 f IScsiDxe:IScsiDhcp6.obj
+ 0001:0000d8c4 IScsiDhcpExtractRootPath 000000000000db84 f IScsiDxe:IScsiDhcp.obj
+ 0001:0000db94 IScsiDhcpSelectOffer 000000000000de54 f IScsiDxe:IScsiDhcp.obj
+ 0001:0000dc98 IScsiParseDhcpAck 000000000000df58 f IScsiDxe:IScsiDhcp.obj
+ 0001:0000de38 IScsiDoDhcp 000000000000e0f8 f IScsiDxe:IScsiDhcp.obj
+ 0001:0000e0b8 IScsiExtScsiPassThruFunction 000000000000e378 f IScsiDxe:IScsiExtScsiPassThru.obj
+ 0001:0000e1bc IScsiExtScsiPassThruGetNextTargetLun 000000000000e47c f IScsiDxe:IScsiExtScsiPassThru.obj
+ 0001:0000e298 IScsiExtScsiPassThruBuildDevicePath 000000000000e558 f IScsiDxe:IScsiExtScsiPassThru.obj
+ 0001:0000e3fc IScsiExtScsiPassThruGetTargetLun 000000000000e6bc f IScsiDxe:IScsiExtScsiPassThru.obj
+ 0001:0000e4fc IScsiExtScsiPassThruGetNextTarget 000000000000e7bc f IScsiDxe:IScsiExtScsiPassThru.obj
+ 0001:0000e558 IScsiCommonNotify 000000000000e818 f IScsiDxe:IScsiDns.obj
+ 0001:0000e55c IScsiDns4 000000000000e81c f IScsiDxe:IScsiDns.obj
+ 0001:0000e870 IScsiDns6 000000000000eb30 f IScsiDxe:IScsiDns.obj
+ 0001:0000eb54 CopyMem 000000000000ee14 f BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0001:0000ebf0 CopyGuid 000000000000eeb0 f BaseMemoryLibRepStr:MemLibGuid.obj
+ 0001:0000ec74 CompareGuid 000000000000ef34 f BaseMemoryLibRepStr:MemLibGuid.obj
+ 0001:0000ecdc CompareMem 000000000000ef9c f BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0001:0000edb4 ZeroMem 000000000000f074 f BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0001:0000ee18 SetMem 000000000000f0d8 f BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0001:0000ee78 InternalBaseLibIsListValid 000000000000f138 f BaseLib:LinkedList.obj
+ 0001:0000eee4 InitializeListHead 000000000000f1a4 f BaseLib:LinkedList.obj
+ 0001:0000ef1c InsertTailList 000000000000f1dc f BaseLib:LinkedList.obj
+ 0001:0000ef70 IsListEmpty 000000000000f230 f BaseLib:LinkedList.obj
+ 0001:0000efa8 RemoveEntryList 000000000000f268 f BaseLib:LinkedList.obj
+ 0001:0000eff0 StrLen 000000000000f2b0 f BaseLib:String.obj
+ 0001:0000f084 StrCmp 000000000000f344 f BaseLib:String.obj
+ 0001:0000f120 StrnCmp 000000000000f3e0 f BaseLib:String.obj
+ 0001:0000f208 StrStr 000000000000f4c8 f BaseLib:String.obj
+ 0001:0000f2d0 InternalHexCharToUintn 000000000000f590 f BaseLib:String.obj
+ 0001:0000f300 StrHexToUint64 000000000000f5c0 f BaseLib:String.obj
+ 0001:0000f458 AsciiStrLen 000000000000f718 f BaseLib:String.obj
+ 0001:0000f4c4 AsciiStrCmp 000000000000f784 f BaseLib:String.obj
+ 0001:0000f548 InternalAsciiHexCharToUintn 000000000000f808 f BaseLib:String.obj
+ 0001:0000f578 AsciiStrnCmp 000000000000f838 f BaseLib:String.obj
+ 0001:0000f644 AsciiStrHexToUint64 000000000000f904 f BaseLib:String.obj
+ 0001:0000f75c StrnLenS 000000000000fa1c f BaseLib:SafeString.obj
+ 0001:0000f7c4 StrCpyS 000000000000fa84 f BaseLib:SafeString.obj
+ 0001:0000f954 StrnCpyS 000000000000fc14 f BaseLib:SafeString.obj
+ 0001:0000fb2c StrCatS 000000000000fdec f BaseLib:SafeString.obj
+ 0001:0000fd14 StrDecimalToUintnS 000000000000ffd4 f BaseLib:SafeString.obj
+ 0001:0000fe7c StrHexToUintnS 000000000001013c f BaseLib:SafeString.obj
+ 0001:0000fff0 AsciiStrnLenS 00000000000102b0 f BaseLib:SafeString.obj
+ 0001:0001001c AsciiStrCpyS 00000000000102dc f BaseLib:SafeString.obj
+ 0001:00010158 AsciiStrDecimalToUintnS 0000000000010418 f BaseLib:SafeString.obj
+ 0001:00010280 AsciiStrHexToUintnS 0000000000010540 f BaseLib:SafeString.obj
+ 0001:000103d4 UnicodeStrToAsciiStrS 0000000000010694 f BaseLib:SafeString.obj
+ 0001:00010560 AsciiStrToUnicodeStrS 0000000000010820 f BaseLib:SafeString.obj
+ 0001:000106d8 AsciiStrToIpv6Address 0000000000010998 f BaseLib:SafeString.obj
+ 0001:00010918 ReadUnaligned16 0000000000010bd8 f BaseLib:Unaligned.obj
+ 0001:00010948 WriteUnaligned16 0000000000010c08 f BaseLib:Unaligned.obj
+ 0001:00010984 ReadUnaligned32 0000000000010c44 f BaseLib:Unaligned.obj
+ 0001:000109b4 WriteUnaligned32 0000000000010c74 f BaseLib:Unaligned.obj
+ 0001:000109f0 ReadUnaligned64 0000000000010cb0 f BaseLib:Unaligned.obj
+ 0001:00010a20 UnicodeVSPrint 0000000000010ce0 f BasePrintLib:PrintLib.obj
+ 0001:00010aac UnicodeSPrint 0000000000010d6c f BasePrintLib:PrintLib.obj
+ 0001:00010acc UnicodeVSPrintAsciiFormat 0000000000010d8c f BasePrintLib:PrintLib.obj
+ 0001:00010b2c UnicodeValueToStringS 0000000000010dec f BasePrintLib:PrintLib.obj
+ 0001:00010b8c AsciiSPrint 0000000000010e4c f BasePrintLib:PrintLib.obj
+ 0001:00010bb4 BasePrintLibFillBuffer 0000000000010e74 f BasePrintLib:PrintLibInternal.obj
+ 0001:00010be8 BasePrintLibValueToString 0000000000010ea8 f BasePrintLib:PrintLibInternal.obj
+ 0001:00010c60 BasePrintLibConvertValueToStringS 0000000000010f20 f BasePrintLib:PrintLibInternal.obj
+ 0001:00010e14 BasePrintLibSPrintMarker 00000000000110d4 f BasePrintLib:PrintLibInternal.obj
+ 0001:00011c48 BasePrintLibSPrint 0000000000011f08 f BasePrintLib:PrintLibInternal.obj
+ 0001:00011c6c DebugPrint 0000000000011f2c f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:00011c90 DebugPrintMarker 0000000000011f50 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:00011d18 DebugAssert 0000000000011fd8 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:00011d88 PlatformDebugLibIoPortFound 0000000000012048 f PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0001:00011dd0 InternalAllocatePool 0000000000012090 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00011e00 AllocateZeroPool 00000000000120c0 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00011e2c InternalAllocateCopyPool 00000000000120ec f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00011ea4 InternalReallocatePool 0000000000012164 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00011f24 FreePool 00000000000121e4 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00011f68 DevicePathType 0000000000012228 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00011f98 DevicePathSubType 0000000000012258 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00011fc8 DevicePathNodeLength 0000000000012288 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00012000 NextDevicePathNode 00000000000122c0 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00012038 IsDevicePathEnd 00000000000122f8 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:000120a4 SetDevicePathNodeLength 0000000000012364 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:0001210c DevicePathFromHandle 00000000000123cc f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00012140 CompareIso639LanguageCode 0000000000012400 f UefiLib:UefiLib.obj
+ 0001:000121a8 EfiGetSystemConfigurationTable 0000000000012468 f UefiLib:UefiLib.obj
+ 0001:0001226c EfiTestChildHandle 000000000001252c f UefiLib:UefiLib.obj
+ 0001:00012324 IsLanguageSupported 00000000000125e4 f UefiLib:UefiLib.obj
+ 0001:000123a4 LookupUnicodeString2 0000000000012664 f UefiLib:UefiLib.obj
+ 0001:000124b0 AddUnicodeString2 0000000000012770 f UefiLib:UefiLib.obj
+ 0001:00012684 FreeUnicodeStringTable 0000000000012944 f UefiLib:UefiLib.obj
+ 0001:000126ec GetVariable2 00000000000129ac f UefiLib:UefiLib.obj
+ 0001:000127e0 EfiLibInstallDriverBindingComponentName2 0000000000012aa0 f UefiLib:UefiDriverModel.obj
+ 0001:000128b0 EfiLibUninstallDriverBindingComponentName2 0000000000012b70 f UefiLib:UefiDriverModel.obj
+ 0001:00012960 UefiLibGetStringWidth 0000000000012c20 f UefiLib:Console.obj
+ 0001:00012a08 CreatePopUp 0000000000012cc8 f UefiLib:Console.obj
+ 0001:00012dcc AsciiInternalPrint 000000000001308c f UefiLib:UefiLibPrint.obj
+ 0001:00012ea4 AsciiPrint 0000000000013164 f UefiLib:UefiLibPrint.obj
+ 0001:00012efc GetHobList 00000000000131bc f DxeHobLib:HobLib.obj
+ 0001:00012f80 GetNextHob 0000000000013240 f DxeHobLib:HobLib.obj
+ 0001:00012fd0 Md5GetContextSize 0000000000013290 f BaseCryptLib:CryptMd5.obj
+ 0001:00012fd8 Md5Init 0000000000013298 f BaseCryptLib:CryptMd5.obj
+ 0001:0001301c Md5Update 00000000000132dc f BaseCryptLib:CryptMd5.obj
+ 0001:00013034 Md5Final 00000000000132f4 f BaseCryptLib:CryptMd5.obj
+ 0001:00013050 Sha256GetContextSize 0000000000013310 f BaseCryptLib:CryptSha256.obj
+ 0001:00013058 Sha256Init 0000000000013318 f BaseCryptLib:CryptSha256.obj
+ 0001:00013068 Sha256Update 0000000000013328 f BaseCryptLib:CryptSha256.obj
+ 0001:00013080 Sha256Final 0000000000013340 f BaseCryptLib:CryptSha256.obj
+ 0001:0001309c HiiSetString 000000000001335c f UefiHiiLib:HiiString.obj
+ 0001:00013218 HiiAddPackages 00000000000134d8 f UefiHiiLib:HiiLib.obj
+ 0001:00013354 InternalHiiBrowserCallback 0000000000013614 f UefiHiiLib:HiiLib.obj
+ 0001:00013450 HiiConstructConfigHdr 0000000000013710 f UefiHiiLib:HiiLib.obj
+ 0001:00013694 InternalHiiCompareSubString 0000000000013954 f UefiHiiLib:HiiLib.obj
+ 0001:000137b0 HiiIsConfigHdrMatch 0000000000013a70 f UefiHiiLib:HiiLib.obj
+ 0001:00013848 HiiGetBrowserData 0000000000013b08 f UefiHiiLib:HiiLib.obj
+ 0001:0001390c HiiSetBrowserData 0000000000013bcc f UefiHiiLib:HiiLib.obj
+ 0001:00013a34 HiiAllocateOpCodeHandle 0000000000013cf4 f UefiHiiLib:HiiLib.obj
+ 0001:00013a84 HiiFreeOpCodeHandle 0000000000013d44 f UefiHiiLib:HiiLib.obj
+ 0001:00013ac4 InternalHiiGrowOpCodeHandle 0000000000013d84 f UefiHiiLib:HiiLib.obj
+ 0001:00013b68 InternalHiiCreateOpCodeExtended 0000000000013e28 f UefiHiiLib:HiiLib.obj
+ 0001:00013c1c InternalHiiAppendOpCodes 0000000000013edc f UefiHiiLib:HiiLib.obj
+ 0001:00013c9c HiiCreateEndOpCode 0000000000013f5c f UefiHiiLib:HiiLib.obj
+ 0001:00013cc4 HiiCreateGuidOpCode 0000000000013f84 f UefiHiiLib:HiiLib.obj
+ 0001:00013d18 HiiCreateGotoOpCode 0000000000013fd8 f UefiHiiLib:HiiLib.obj
+ 0001:00013d94 HiiCreateNumericOpCode 0000000000014054 f UefiHiiLib:HiiLib.obj
+ 0001:00013ea8 HiiCreateStringOpCode 0000000000014168 f UefiHiiLib:HiiLib.obj
+ 0001:00013f68 HiiCreateOrderedListOpCode 0000000000014228 f UefiHiiLib:HiiLib.obj
+ 0001:00014014 InternalHiiUpdateFormPackageData 00000000000142d4 f UefiHiiLib:HiiLib.obj
+ 0001:00014264 HiiUpdateForm 0000000000014524 f UefiHiiLib:HiiLib.obj
+ 0001:000144bc HiiGetSupportedLanguages 000000000001477c f UefiHiiLib:HiiLanguage.obj
+ 0001:00014560 NetIp4IsUnicast 0000000000014820 f DxeNetLib:DxeNetLib.obj
+ 0001:000145f8 NetListRemoveHead 00000000000148b8 f DxeNetLib:DxeNetLib.obj
+ 0001:00014650 NetLibCreateServiceChild 0000000000014910 f DxeNetLib:DxeNetLib.obj
+ 0001:000146e4 NetLibDestroyServiceChild 00000000000149a4 f DxeNetLib:DxeNetLib.obj
+ 0001:00014774 NetLibGetSnpHandle 0000000000014a34 f DxeNetLib:DxeNetLib.obj
+ 0001:0001483c NetLibGetVlanId 0000000000014afc f DxeNetLib:DxeNetLib.obj
+ 0001:00014890 NetLibGetMacAddress 0000000000014b50 f DxeNetLib:DxeNetLib.obj
+ 0001:00014a10 NetLibDetectMedia 0000000000014cd0 f DxeNetLib:DxeNetLib.obj
+ 0001:00014c44 NetLibDetectMediaWaitTimeout 0000000000014f04 f DxeNetLib:DxeNetLib.obj
+ 0001:00014e74 NetLibGetNicHandle 0000000000015134 f DxeNetLib:DxeNetLib.obj
+ 0001:00014f1c NetLibAsciiStrToIp4 00000000000151dc f DxeNetLib:DxeNetLib.obj
+ 0001:00015044 NetLibStrToIp4 0000000000015304 f DxeNetLib:DxeNetLib.obj
+ 0001:0001519c NetbufAllocStruct 000000000001545c f DxeNetLib:NetBuffer.obj
+ 0001:00015254 NetbufAlloc 0000000000015514 f DxeNetLib:NetBuffer.obj
+ 0001:000152fc NetbufFreeVector 00000000000155bc f DxeNetLib:NetBuffer.obj
+ 0001:000153c8 NetbufFree 0000000000015688 f DxeNetLib:NetBuffer.obj
+ 0001:00015450 NetbufFreeList 0000000000015710 f DxeNetLib:NetBuffer.obj
+ 0001:000154f4 NetbufGetByte 00000000000157b4 f DxeNetLib:NetBuffer.obj
+ 0001:00015598 NetbufSetBlock 0000000000015858 f DxeNetLib:NetBuffer.obj
+ 0001:0001567c NetbufFromExt 000000000001593c f DxeNetLib:NetBuffer.obj
+ 0001:00015744 NetbufBuildExt 0000000000015a04 f DxeNetLib:NetBuffer.obj
+ 0001:000157b8 NetbufFromBufList 0000000000015a78 f DxeNetLib:NetBuffer.obj
+ 0001:000158f8 NetbufAllocSpace 0000000000015bb8 f DxeNetLib:NetBuffer.obj
+ 0001:00015a18 NetblockTrim 0000000000015cd8 f DxeNetLib:NetBuffer.obj
+ 0001:00015a74 NetbufTrim 0000000000015d34 f DxeNetLib:NetBuffer.obj
+ 0001:00015b50 NetbufCopy 0000000000015e10 f DxeNetLib:NetBuffer.obj
+ 0001:00015ce4 NetbufQueCopy 0000000000015fa4 f DxeNetLib:NetBuffer.obj
+ 0001:00015e44 NetbufQueFlush 0000000000016104 f DxeNetLib:NetBuffer.obj
+ 0001:00015e8c TcpIoCommonNotify 000000000001614c f DxeTcpIoLib:DxeTcpIoLib.obj
+ 0001:00015e9c TcpIoGetMapping 000000000001615c f DxeTcpIoLib:DxeTcpIoLib.obj
+ 0001:00015f6c TcpIoCreateSocket 000000000001622c f DxeTcpIoLib:DxeTcpIoLib.obj
+ 0001:000163b4 TcpIoDestroySocket 0000000000016674 f DxeTcpIoLib:DxeTcpIoLib.obj
+ 0001:00016534 TcpIoTransmit 00000000000167f4 f DxeTcpIoLib:DxeTcpIoLib.obj
+ 0001:0001669c TcpIoReceive 000000000001695c f DxeTcpIoLib:DxeTcpIoLib.obj
+ 0001:000168b8 GetPcdProtocol 0000000000016b78 f DxePcdLib:DxePcdLib.obj
+ 0001:00016944 SetMem16 0000000000016c04 f BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0001:00016a0c IoWriteFifo8 0000000000016ccc f BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0001:00016a60 IoRead32 0000000000016d20 f BaseIoLibIntrinsicSev:IoLibMsc.obj
+ 0001:00016aa8 IoWrite32 0000000000016d68 f BaseIoLibIntrinsicSev:IoLibMsc.obj
+ 0001:00016ad8 TdIoRead8 0000000000016d98 f BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0001:00016b28 TdIoRead32 0000000000016de8 f BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0001:00016b9c TdIoWrite8 0000000000016e5c f BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0001:00016bf0 TdIoWrite32 0000000000016eb0 f BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0001:00016c6c PciExpressRead32 0000000000016f2c f BasePciExpressLib:PciExpressLib.obj
+ 0001:00016cbc PciCf8Read32 0000000000016f7c f BasePciCf8Lib:PciCf8Lib.obj
+ 0001:00016d58 MD5_Update 0000000000017018 f OpensslLibCrypto:md5_dgst.obj
+ 0001:00016e60 MD5_Final 0000000000017120 f OpensslLibCrypto:md5_dgst.obj
+ 0001:00016ff0 md5_block_data_order 00000000000172b0 f OpensslLibCrypto:md5_dgst.obj
+ 0001:00017a98 SHA256_Init 0000000000017d58 f OpensslLibCrypto:sha256.obj
+ 0001:00017af8 SHA256_Update 0000000000017db8 f OpensslLibCrypto:sha256.obj
+ 0001:00017c00 SHA256_Final 0000000000017ec0 f OpensslLibCrypto:sha256.obj
+ 0001:00018158 SaveAndDisableInterrupts 0000000000018418 f BaseLib:Cpu.obj
+ 0001:0001817c GetTdInfo 000000000001843c f TdxLib:TdInfo.obj
+ 0001:000181e0 TdSharedPageMask 00000000000184a0 f TdxLib:TdInfo.obj
+ 0001:0001820c MmioRead32 00000000000184cc f BaseIoLibIntrinsicSev:IoLib.obj
+ 0001:00018280 memset 0000000000018540 f BaseIntrinsicLib:MemoryIntrinsics.obj
+ 0002:00000000 ??_C@_0CB@DMEJJJHA@?6ASSERT_EFI_ERROR?5?$CIStatus?5?$DN?5?$CFr?$CJ?6@ 0000000000018560 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:00000028 ??_C@_0CH@BBNBJKHK@?$CB?$CI?$CI?$CIINTN?$CJ?$CIRETURN_STATUS?$CJ?$CIStatus?$CJ@ 0000000000018588 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:00000050 ??_C@_0FI@PIDCFOGG@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000185b0 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:000000a8 ??_C@_0CE@IBFOBMLB@?6ASSERT_RETURN_ERROR?5?$CIStatus?5?$DN?5?$CF@ 0000000000018608 IScsiDxe:AutoGen.obj
+ 0002:000000d0 ??_C@_0HA@GGDCMHAB@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000018630 IScsiDxe:AutoGen.obj
+ 0002:00000140 ??_C@_0CA@HACALLLF@AipHandleBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000186a0 IScsiDxe:IScsiDriver.obj
+ 0002:00000160 ??_C@_0ED@DPEJEBML@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000186c0 IScsiDxe:IScsiDriver.obj
+ 0002:000001a8 ??_C@_0BE@LGDFPDAJ@Aip?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000018708 IScsiDxe:IScsiDriver.obj
+ 0002:000001c0 ??_C@_0BF@NDBIKIKC@CR?5has?5Bad?5Signature?$AA@ 0000000000018720 IScsiDxe:IScsiDriver.obj
+ 0002:000001d8 ??_C@_1BG@HANLGHEF@?$AAA?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AA?5?$AA?$CF?$AAd?$AA?$AA@ 0000000000018738 IScsiDxe:IScsiDriver.obj
+ 0002:000001f0 ??_C@_1BK@ELJKIAPE@?$AAA?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AAO?$AAr?$AAd?$AAe?$AAr?$AA?$AA@ 0000000000018750 IScsiDxe:IScsiDriver.obj
+ 0002:00000210 ??_C@_0BI@GONLCNCH@Private?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000018770 IScsiDxe:IScsiDriver.obj
+ 0002:00000228 ??_C@_0BF@GEKOGLOJ@Hash?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000018788 IScsiDxe:IScsiCHAP.obj
+ 0002:00000240 ??_C@_0EB@BJPABIKE@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000187a0 IScsiDxe:IScsiCHAP.obj
+ 0002:00000288 ??_C@_0BP@MDANAGBA@AuthData?9?$DOHash?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000187e8 IScsiDxe:IScsiCHAP.obj
+ 0002:000002a8 ??_C@_0BI@GHHLBLGE@Conn?9?$DOCurrentStage?5?$DN?$DN?50?$AA@ 0000000000018808 IScsiDxe:IScsiCHAP.obj
+ 0002:000002c0 ??_C@_0BJ@OKLBHGHH@Conn?9?$DORspQue?4BufNum?5?$CB?$DN?50?$AA@ 0000000000018820 IScsiDxe:IScsiCHAP.obj
+ 0002:000002e0 ??_C@_0BF@IANBPGNJ@TargetPortalGroupTag?$AA@ 0000000000018840 IScsiDxe:IScsiCHAP.obj
+ 0002:000002f8 ??_C@_0L@PAKANODK@AuthMethod?$AA@ 0000000000018858 IScsiDxe:IScsiCHAP.obj
+ 0002:00000304 ??_C@_04OHJIHAFH@None?$AA@ 0000000000018864 IScsiDxe:IScsiCHAP.obj
+ 0002:0000030c ??_C@_04LDMNOAAK@CHAP?$AA@ 000000000001886c IScsiDxe:IScsiCHAP.obj
+ 0002:00000314 ??_C@_06NEGHKOPG@CHAP_A?$AA@ 0000000000018874 IScsiDxe:IScsiCHAP.obj
+ 0002:00000320 ??_C@_0BP@ICAIOLEG@AuthData?9?$DOHash?5?$DN?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000018880 IScsiDxe:IScsiCHAP.obj
+ 0002:00000340 ??_C@_06BMLOCEPO@CHAP_I?$AA@ 00000000000188a0 IScsiDxe:IScsiCHAP.obj
+ 0002:00000348 ??_C@_06OGFBMMHE@CHAP_C?$AA@ 00000000000188a8 IScsiDxe:IScsiCHAP.obj
+ 0002:00000350 ??_C@_0CE@FMOMPILK@AuthData?9?$DOAuthConfig?9?$DOCHAPType?5?$DN@ 00000000000188b0 IScsiDxe:IScsiCHAP.obj
+ 0002:00000374 ??_C@_06FDPPLCDJ@CHAP_N?$AA@ 00000000000188d4 IScsiDxe:IScsiCHAP.obj
+ 0002:0000037c ??_C@_06LFIIOPGE@CHAP_R?$AA@ 00000000000188dc IScsiDxe:IScsiCHAP.obj
+ 0002:00000388 ??_C@_0O@IHIGCLKB@InitiatorName?$AA@ 00000000000188e8 IScsiDxe:IScsiCHAP.obj
+ 0002:00000398 ??_C@_06EFAGIKOH@Normal?$AA@ 00000000000188f8 IScsiDxe:IScsiCHAP.obj
+ 0002:000003a0 ??_C@_0M@CNGHNCIE@SessionType?$AA@ 0000000000018900 IScsiDxe:IScsiCHAP.obj
+ 0002:000003b0 ??_C@_0L@BDKAFAEA@TargetName?$AA@ 0000000000018910 IScsiDxe:IScsiCHAP.obj
+ 0002:000003c0 ??_C@_0CP@DCPEABMB@?$CB?$CI?$CI?$CIINTN?$CJ?$CIRETURN_STATUS?$CJ?$CIBinToHe@ 0000000000018920 IScsiDxe:IScsiCHAP.obj
+ 0002:000003f0 ??_C@_02DPKJAMEF@?$CFd?$AA@ 0000000000018950 IScsiDxe:IScsiCHAP.obj
+ 0002:000003f8 ??_C@_09EOGFNIHE@Left?5?$DO?$DN?52?$AA@ 0000000000018958 IScsiDxe:IScsiCHAP.obj
+ 0002:00000402 ??_C@_00CNPNBAHC@?$AA@ 0000000000018962 IScsiDxe:IScsiCHAP.obj
+ 0002:00000404 ??_C@_01IHBHIGKO@?0?$AA@ 0000000000018964 IScsiDxe:IScsiCHAP.obj
+ 0002:00000408 ??_C@_04IMHBBCFI@?$CFa?$CFd?$AA@ 0000000000018968 IScsiDxe:IScsiCHAP.obj
+ 0002:00000410 ??_C@_0BD@DKPFENLA@Printed?5?$CL?51?5?$DM?5Left?$AA@ 0000000000018970 IScsiDxe:IScsiCHAP.obj
+ 0002:00000428 ??_C@_0BH@MDAKALIE@Hash?9?$DODigestSize?5?$DM?$DN?532?$AA@ 0000000000018988 IScsiDxe:IScsiCHAP.obj
+ 0002:00000490 ??_C@_15BIBPCOBC@?$AA0?$AA?9?$AA?$AA@ 00000000000189f0 IScsiDxe:IScsiMisc.obj
+ 0002:00000498 ??_C@_0BC@FAONMJPI@StrLen?5?$CIStr?$CJ?5?$DO?$DN?51?$AA@ 00000000000189f8 IScsiDxe:IScsiMisc.obj
+ 0002:000004b0 ??_C@_0EB@LMEAAJMD@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000018a10 IScsiDxe:IScsiMisc.obj
+ 0002:000004f8 ??_C@_1M@KAICHIDM@?$AA?2?$AA?$CF?$AA0?$AA4?$AAx?$AA?$AA@ 0000000000018a58 IScsiDxe:IScsiMisc.obj
+ 0002:00000508 ??_C@_0BM@KLIDFGLC@Ipv6Support?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000018a68 IScsiDxe:IScsiMisc.obj
+ 0002:00000528 ??_C@_1CI@PHDJCGLB@?$AAI?$AAn?$AAi?$AAt?$AAi?$AAa?$AAl?$AAA?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AAO?$AAr?$AAd?$AAe?$AAr?$AA?$AA@ 0000000000018a88 IScsiDxe:IScsiMisc.obj
+ 0002:00000550 ??_C@_0BE@OLCIKBCC@IScsiCreateAttempts?$AA@ 0000000000018ab0 IScsiDxe:IScsiMisc.obj
+ 0002:00000568 ??_C@_0DM@EMCCJOPP@?$CFa?3?5Failed?5to?5set?5?8InitialAttemp@ 0000000000018ac8 IScsiDxe:IScsiMisc.obj
+ 0002:000005b0 ??_C@_0EG@HPJPAPJF@?$CFa?3?5Failed?5to?5set?5variable?5?$CImPri@ 0000000000018b10 IScsiDxe:IScsiMisc.obj
+ 0002:00000600 ??_C@_1EC@HNHKMKMB@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAA?$AAT?$AAT?$AAE?$AAM?$AAP?$AAT?$AAT?$AA_?$AAN?$AAA?$AAM?$AAE?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT?$AA?$CF?$AAd@ 0000000000018b60 IScsiDxe:IScsiMisc.obj
+ 0002:00000648 ??_C@_1CI@HEIGCBOD@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAA?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AAN?$AAa?$AAm?$AAe?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000018ba8 IScsiDxe:IScsiMisc.obj
+ 0002:00000670 ??_C@_09BJEBPINI@x?9UEFI?9ns?$AA@ 0000000000018bd0 IScsiDxe:IScsiMisc.obj
+ 0002:00000680 ??_C@_1DA@BJMNBGMF@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAM?$AAO?$AAD?$AAE?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT?$AA?$CF?$AAd?$AA?$AA@ 0000000000018be0 IScsiDxe:IScsiMisc.obj
+ 0002:000006b0 ??_C@_1CG@HFJGGIEK@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAB?$AAo?$AAo?$AAt?$AAE?$AAn?$AAa?$AAb?$AAl?$AAe?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000018c10 IScsiDxe:IScsiMisc.obj
+ 0002:000006d8 ??_C@_1DG@HCOKEFHE@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAI?$AAP?$AA_?$AAM?$AAO?$AAD?$AAE?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT?$AA?$CF?$AAd?$AA?$AA@ 0000000000018c38 IScsiDxe:IScsiMisc.obj
+ 0002:00000710 ??_C@_1CM@CBPAADNE@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAI?$AAp?$AAA?$AAd?$AAd?$AAr?$AAe?$AAs?$AAs?$AAT?$AAy?$AAp?$AAe?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000018c70 IScsiDxe:IScsiMisc.obj
+ 0002:00000740 ??_C@_1EC@DPEODOHN@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAC?$AAO?$AAN?$AAN?$AAE?$AAC?$AAT?$AA_?$AAR?$AAE?$AAT?$AAR?$AAY?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT?$AA?$CF?$AAd@ 0000000000018ca0 IScsiDxe:IScsiMisc.obj
+ 0002:00000788 ??_C@_1CK@LPKJOHD@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAC?$AAo?$AAn?$AAn?$AAe?$AAc?$AAt?$AAR?$AAe?$AAt?$AAr?$AAy?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000018ce8 IScsiDxe:IScsiMisc.obj
+ 0002:000007c0 ??_C@_1EG@FOEHCAKJ@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAC?$AAO?$AAN?$AAN?$AAE?$AAC?$AAT?$AA_?$AAT?$AAI?$AAM?$AAE?$AAO?$AAU?$AAT?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT@ 0000000000018d20 IScsiDxe:IScsiMisc.obj
+ 0002:00000808 ??_C@_1CO@LCOHAIEK@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAC?$AAo?$AAn?$AAn?$AAe?$AAc?$AAt?$AAT?$AAi?$AAm?$AAe?$AAo?$AAu?$AAt?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000018d68 IScsiDxe:IScsiMisc.obj
+ 0002:00000838 ??_C@_1DA@OHPDKBKN@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAI?$AAS?$AAI?$AAD?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT?$AA?$CF?$AAd?$AA?$AA@ 0000000000018d98 IScsiDxe:IScsiMisc.obj
+ 0002:00000868 ??_C@_1BK@GHCBGJK@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAI?$AAS?$AAI?$AAD?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000018dc8 IScsiDxe:IScsiMisc.obj
+ 0002:00000890 ??_C@_1EM@CDJCPBKN@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAI?$AAN?$AAI?$AAT?$AAI?$AAA?$AAT?$AAO?$AAR?$AA_?$AAV?$AAI?$AAA?$AA_?$AAD?$AAH?$AAC?$AAP?$AA_?$AAP?$AAR?$AAO@ 0000000000018df0 IScsiDxe:IScsiMisc.obj
+ 0002:000008e0 ??_C@_1DK@MNMHMNMI@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAI?$AAn?$AAi?$AAt?$AAi?$AAa?$AAt?$AAo?$AAr?$AAI?$AAn?$AAf?$AAo?$AAV?$AAi?$AAa?$AAD?$AAH?$AAC?$AAP?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000018e40 IScsiDxe:IScsiMisc.obj
+ 0002:00000920 ??_C@_1FA@KPPEFLHA@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAI?$AAN?$AAI?$AAT?$AAI?$AAA?$AAT?$AAO?$AAR?$AA_?$AAI?$AAP?$AA_?$AAA?$AAD?$AAD?$AAR?$AAE?$AAS?$AAS?$AA_?$AAP@ 0000000000018e80 IScsiDxe:IScsiMisc.obj
+ 0002:00000970 ??_C@_1DG@BDOEDFB@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAI?$AAn?$AAi?$AAt?$AAi?$AAa?$AAt?$AAo?$AAr?$AAI?$AAp?$AAA?$AAd?$AAd?$AAr?$AAe?$AAs?$AAs?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000018ed0 IScsiDxe:IScsiMisc.obj
+ 0002:000009b0 ??_C@_1EM@KKJJLIHN@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAI?$AAN?$AAI?$AAT?$AAI?$AAA?$AAT?$AAO?$AAR?$AA_?$AAN?$AAE?$AAT?$AA_?$AAM?$AAA?$AAS?$AAK?$AA_?$AAP?$AAR?$AAO@ 0000000000018f10 IScsiDxe:IScsiMisc.obj
+ 0002:00000a00 ??_C@_1DC@HFNAHCNF@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAI?$AAn?$AAi?$AAt?$AAi?$AAa?$AAt?$AAo?$AAr?$AAN?$AAe?$AAt?$AAm?$AAa?$AAs?$AAk?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000018f60 IScsiDxe:IScsiMisc.obj
+ 0002:00000a40 ??_C@_1EE@PKEMPLOI@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAI?$AAN?$AAI?$AAT?$AAI?$AAA?$AAT?$AAO?$AAR?$AA_?$AAG?$AAA?$AAT?$AAE?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT?$AA?$CF@ 0000000000018fa0 IScsiDxe:IScsiMisc.obj
+ 0002:00000a88 ??_C@_1DC@LLENBBGP@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAI?$AAn?$AAi?$AAt?$AAi?$AAa?$AAt?$AAo?$AAr?$AAG?$AAa?$AAt?$AAe?$AAw?$AAa?$AAy?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000018fe8 IScsiDxe:IScsiMisc.obj
+ 0002:00000ac0 ??_C@_1EG@GAJNCGJH@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAT?$AAA?$AAR?$AAG?$AAE?$AAT?$AA_?$AAV?$AAI?$AAA?$AA_?$AAD?$AAH?$AAC?$AAP?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT@ 0000000000019020 IScsiDxe:IScsiMisc.obj
+ 0002:00000b08 ??_C@_1DE@OGOGAJBO@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAT?$AAa?$AAr?$AAg?$AAe?$AAt?$AAI?$AAn?$AAf?$AAo?$AAV?$AAi?$AAa?$AAD?$AAH?$AAC?$AAP?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000019068 IScsiDxe:IScsiMisc.obj
+ 0002:00000b40 ??_C@_1EG@KMENBILK@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAT?$AAA?$AAR?$AAG?$AAE?$AAT?$AA_?$AAT?$AAC?$AAP?$AA_?$AAP?$AAO?$AAR?$AAT?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT@ 00000000000190a0 IScsiDxe:IScsiMisc.obj
+ 0002:00000b88 ??_C@_1CM@HDFAPMME@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAT?$AAa?$AAr?$AAg?$AAe?$AAt?$AAT?$AAc?$AAp?$AAP?$AAo?$AAr?$AAt?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 00000000000190e8 IScsiDxe:IScsiMisc.obj
+ 0002:00000bb8 ??_C@_1DO@NNEJJHC@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAT?$AAA?$AAR?$AAG?$AAE?$AAT?$AA_?$AAN?$AAA?$AAM?$AAE?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT?$AA?$CF?$AAd?$AA?$AA@ 0000000000019118 IScsiDxe:IScsiMisc.obj
+ 0002:00000bf8 ??_C@_1CG@IMIDKEEM@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAT?$AAa?$AAr?$AAg?$AAe?$AAt?$AAN?$AAa?$AAm?$AAe?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000019158 IScsiDxe:IScsiMisc.obj
+ 0002:00000c20 ??_C@_1EK@NAOJGMOF@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAT?$AAA?$AAR?$AAG?$AAE?$AAT?$AA_?$AAI?$AAP?$AA_?$AAA?$AAD?$AAD?$AAR?$AAE?$AAS?$AAS?$AA_?$AAP?$AAR?$AAO?$AAM@ 0000000000019180 IScsiDxe:IScsiMisc.obj
+ 0002:00000c70 ??_C@_1DA@BNHFHCKF@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAT?$AAa?$AAr?$AAg?$AAe?$AAt?$AAI?$AAp?$AAA?$AAd?$AAd?$AAr?$AAe?$AAs?$AAs?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 00000000000191d0 IScsiDxe:IScsiMisc.obj
+ 0002:00000ca0 ??_C@_1CO@LKFGDNLP@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAL?$AAU?$AAN?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT?$AA?$CF?$AAd?$AA?$AA@ 0000000000019200 IScsiDxe:IScsiMisc.obj
+ 0002:00000cd0 ??_C@_1BI@CCOOIPBK@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAL?$AAU?$AAN?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000019230 IScsiDxe:IScsiMisc.obj
+ 0002:00000cf0 ??_C@_1FC@BBEHEHML@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAA?$AAU?$AAT?$AAH?$AAE?$AAN?$AAT?$AAI?$AAC?$AAA?$AAT?$AAI?$AAO?$AAN?$AA_?$AAM?$AAE?$AAT?$AAH?$AAO?$AAD?$AA_@ 0000000000019250 IScsiDxe:IScsiMisc.obj
+ 0002:00000d48 ??_C@_1DK@GMLHAFCO@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAA?$AAu?$AAt?$AAh?$AAe?$AAn?$AAt?$AAi?$AAc?$AAa?$AAt?$AAi?$AAo?$AAn?$AAM?$AAe?$AAt?$AAh?$AAo?$AAd?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 00000000000192a8 IScsiDxe:IScsiMisc.obj
+ 0002:00000d88 ??_C@_1DI@CPGEKLIM@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAC?$AAH?$AAA?$AAR?$AAT?$AAY?$AAP?$AAE?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT?$AA?$CF?$AAd?$AA?$AA@ 00000000000192e8 IScsiDxe:IScsiMisc.obj
+ 0002:00000dc0 ??_C@_1CC@PNCOMNAM@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAC?$AAh?$AAa?$AAp?$AAT?$AAy?$AAp?$AAe?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000019320 IScsiDxe:IScsiMisc.obj
+ 0002:00000df0 ??_C@_1EE@BDEAJPAA@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAC?$AAH?$AAA?$AAR?$AA_?$AAU?$AAS?$AAE?$AAR?$AA_?$AAN?$AAA?$AAM?$AAE?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT?$AA?$CF@ 0000000000019350 IScsiDxe:IScsiMisc.obj
+ 0002:00000e38 ??_C@_1CK@HMKCAOIH@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAC?$AAh?$AAa?$AAp?$AAU?$AAs?$AAe?$AAr?$AAn?$AAa?$AAm?$AAe?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000019398 IScsiDxe:IScsiMisc.obj
+ 0002:00000e68 ??_C@_1DO@ILKFOLHO@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAC?$AAH?$AAA?$AAR?$AA_?$AAS?$AAE?$AAC?$AAR?$AAE?$AAT?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT?$AA?$CF?$AAd?$AA?$AA@ 00000000000193c8 IScsiDxe:IScsiMisc.obj
+ 0002:00000ea8 ??_C@_1CG@LPJEJPEJ@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAC?$AAh?$AAa?$AAp?$AAS?$AAe?$AAc?$AAr?$AAe?$AAt?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000019408 IScsiDxe:IScsiMisc.obj
+ 0002:00000ed0 ??_C@_1FE@GBGGNCNN@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAC?$AAH?$AAA?$AAR?$AA_?$AAR?$AAE?$AAV?$AAE?$AAR?$AAS?$AAE?$AA_?$AAU?$AAS?$AAE?$AAR?$AA_?$AAN?$AAA?$AAM?$AAE@ 0000000000019430 IScsiDxe:IScsiMisc.obj
+ 0002:00000f28 ??_C@_1DI@JGKDKGKI@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAR?$AAe?$AAv?$AAe?$AAr?$AAs?$AAe?$AAC?$AAh?$AAa?$AAp?$AAU?$AAs?$AAe?$AAr?$AAn?$AAa?$AAm?$AAe?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000019488 IScsiDxe:IScsiMisc.obj
+ 0002:00000f60 ??_C@_1EO@OFKHBAND@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAC?$AAH?$AAA?$AAR?$AA_?$AAR?$AAE?$AAV?$AAE?$AAR?$AAS?$AAE?$AA_?$AAS?$AAE?$AAC?$AAR?$AAE?$AAT?$AA_?$AAP?$AAR@ 00000000000194c0 IScsiDxe:IScsiMisc.obj
+ 0002:00000fb0 ??_C@_1DE@OMHAAAJE@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAR?$AAe?$AAv?$AAe?$AAr?$AAs?$AAe?$AAC?$AAh?$AAa?$AAp?$AAS?$AAe?$AAc?$AAr?$AAe?$AAt?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000019510 IScsiDxe:IScsiMisc.obj
+ 0002:00000fe8 ??_C@_0DM@EDFBLLHA@AttemptConfigOrder?$FLIndex?$FN?5?$DN?$DN?5Att@ 0000000000019548 IScsiDxe:IScsiMisc.obj
+ 0002:00001028 ??_C@_0BI@KGIBPGM@NicInfo?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019588 IScsiDxe:IScsiMisc.obj
+ 0002:00001040 ??_C@_0ED@FHEGFGOH@AttemptConfigOrder?$FLIndex?$FN?5?$DN?$DN?5Att@ 00000000000195a0 IScsiDxe:IScsiMisc.obj
+ 0002:00001088 ??_C@_1BC@FGCJDNHA@?$AAD?$AAi?$AAs?$AAa?$AAb?$AAl?$AAe?$AAd?$AA?$AA@ 00000000000195e8 IScsiDxe:IScsiMisc.obj
+ 0002:000010a0 ??_C@_1BA@NPJPKIM@?$AAE?$AAn?$AAa?$AAb?$AAl?$AAe?$AAd?$AA?$AA@ 0000000000019600 IScsiDxe:IScsiMisc.obj
+ 0002:000010b0 ??_C@_1CC@HOPKGJBM@?$AAE?$AAn?$AAa?$AAb?$AAl?$AAe?$AAd?$AA?5?$AAf?$AAo?$AAr?$AA?5?$AAM?$AAP?$AAI?$AAO?$AA?$AA@ 0000000000019610 IScsiDxe:IScsiMisc.obj
+ 0002:000010d8 ??_C@_17NPMIJOFB@?$AAI?$AAP?$AA4?$AA?$AA@ 0000000000019638 IScsiDxe:IScsiMisc.obj
+ 0002:000010e0 ??_C@_17HFMBFGNK@?$AAI?$AAP?$AA6?$AA?$AA@ 0000000000019640 IScsiDxe:IScsiMisc.obj
+ 0002:000010e8 ??_C@_1BM@LLBKNBMC@?$AAA?$AAu?$AAt?$AAo?$AAc?$AAo?$AAn?$AAf?$AAi?$AAg?$AAu?$AAr?$AAe?$AA?$AA@ 0000000000019648 IScsiDxe:IScsiMisc.obj
+ 0002:00001110 ??_C@_1JA@LJOCICLJ@?$AAM?$AAA?$AAC?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?0?$AA?5?$AAP?$AAF?$AAA?$AA?3?$AA?5?$AAB?$AAu?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$HM?$AA?5?$AAD?$AAe?$AAv?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$HM?$AA?5@ 0000000000019670 IScsiDxe:IScsiMisc.obj
+ 0002:000011a0 ??_C@_0BN@HHGHCLME@ProtocolGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019700 IScsiDxe:IScsiMisc.obj
+ 0002:000011c0 IScsiHexString 0000000000019720 IScsiDxe:IScsiMisc.obj
+ 0002:000011d8 ??_C@_03LKLGDMJI@eng?$AA@ 0000000000019738 IScsiDxe:ComponentName.obj
+ 0002:000011dc ??_C@_02LFNMGJAP@en?$AA@ 000000000001973c IScsiDxe:ComponentName.obj
+ 0002:000011e0 ??_C@_06DALJLGPG@eng?$DLen?$AA@ 0000000000019740 IScsiDxe:ComponentName.obj
+ 0002:000011e8 ??_C@_1BK@DKDHMMII@?$AAi?$AAS?$AAC?$AAS?$AAI?$AA?5?$AAD?$AAr?$AAi?$AAv?$AAe?$AAr?$AA?$AA@ 0000000000019748 IScsiDxe:ComponentName.obj
+ 0002:00001210 ??_C@_0EF@EEJOHKJD@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000019770 IScsiDxe:ComponentName.obj
+ 0002:00001258 ??_C@_19CDMHABIE@?$AAI?$AAP?$AAv?$AA6?$AA?$AA@ 00000000000197b8 IScsiDxe:ComponentName.obj
+ 0002:00001268 ??_C@_19IJMOMJAP@?$AAI?$AAP?$AAv?$AA4?$AA?$AA@ 00000000000197c8 IScsiDxe:ComponentName.obj
+ 0002:00001278 ??_C@_1DA@MCMPEFMN@?$AAi?$AAS?$AAC?$AAS?$AAI?$AA?5?$AA?$CI?$AA?$CF?$AAs?$AA?0?$AA?5?$AAN?$AAi?$AAc?$AAI?$AAn?$AAd?$AAe?$AAx?$AA?$DN?$AA?$CF?$AAd?$AA?$CJ?$AA?$AA@ 00000000000197d8 IScsiDxe:ComponentName.obj
+ 0002:000012a8 ??_C@_1BI@FCMLLAGN@?$AA?$CF?$AAd?$AA?4?$AA?$CF?$AAd?$AA?4?$AA?$CF?$AAd?$AA?4?$AA?$CF?$AAd?$AA?$AA@ 0000000000019808 IScsiDxe:IScsiConfig.obj
+ 0002:000012c0 ??_C@_0L@PEIHAPBP@Index?5?$DM?515?$AA@ 0000000000019820 IScsiDxe:IScsiConfig.obj
+ 0002:000012d0 ??_C@_0ED@NINAHOEB@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000019830 IScsiDxe:IScsiConfig.obj
+ 0002:00001318 ??_C@_17FDKMNLMN@?$AA?$CF?$AAx?$AA?3?$AA?$AA@ 0000000000019878 IScsiDxe:IScsiConfig.obj
+ 0002:00001320 ??_C@_1O@OEEHBOOE@?$AA?$CF?$AAx?$AA0?$AA?$CF?$AAx?$AA?3?$AA?$AA@ 0000000000019880 IScsiDxe:IScsiConfig.obj
+ 0002:00001330 ??_C@_1M@CIFHKLEP@?$AA?$CF?$AAx?$AA?$CF?$AAx?$AA?3?$AA?$AA@ 0000000000019890 IScsiDxe:IScsiConfig.obj
+ 0002:00001340 ??_C@_0DM@GAEIBCOM@IpMode?5?$CFd?5is?5invalid?5when?5config@ 00000000000198a0 IScsiDxe:IScsiConfig.obj
+ 0002:00001380 ??_C@_1PM@NKCILPCF@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?$CB?$AA?5?$AAO?$AAn?$AAl?$AAy?$AA?5?$AAl?$AAa?$AAs?$AAt?$AA?5?$AA3?$AA?5?$AAb?$AAy?$AAt?$AAe?$AAs?$AA?5?$AAa?$AAr?$AAe?$AA?5?$AAc?$AAo?$AAn@ 00000000000198e0 IScsiDxe:IScsiConfig.obj
+ 0002:00001480 ??_C@_17EGMIMACD@?$AA0?$AA?$CF?$AAX?$AA?$AA@ 00000000000199e0 IScsiDxe:IScsiConfig.obj
+ 0002:00001488 ??_C@_15BHOFONJE@?$AA?$CF?$AAX?$AA?$AA@ 00000000000199e8 IScsiDxe:IScsiConfig.obj
+ 0002:00001490 ??_C@_0BK@OHHEMHCC@StringPtr?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000199f0 IScsiDxe:IScsiConfig.obj
+ 0002:000014b0 ??_C@_1BC@FPHENPJJ@?$AAa?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AA?3?$AA?$AA@ 0000000000019a10 IScsiDxe:IScsiConfig.obj
+ 0002:000014d0 ??_C@_0EM@KLICEKGL@?$CIAttempt?9?$DOAttemptConfigIndex?5?$DO?50@ 0000000000019a30 IScsiDxe:IScsiConfig.obj
+ 0002:00001520 ??_C@_0O@IKONHJNJ@StringLen?5?$DO?52?$AA@ 0000000000019a80 IScsiDxe:IScsiConfig.obj
+ 0002:00001530 ??_C@_1IE@FMPFFHNB@?$AAC?$AAo?$AAn?$AAn?$AAe?$AAc?$AAt?$AAi?$AAo?$AAn?$AA?5?$AAE?$AAs?$AAt?$AAa?$AAb?$AAl?$AAi?$AAs?$AAh?$AAi?$AAn?$AAg?$AA?5?$AAT?$AAi?$AAm?$AAe?$AAo?$AAu?$AAt?$AA?5@ 0000000000019a90 IScsiDxe:IScsiConfig.obj
+ 0002:000015c0 ??_C@_1GA@GADAOPJN@?$AAG?$AAa?$AAt?$AAe?$AAw?$AAa?$AAy?$AA?5?$AAa?$AAd?$AAd?$AAr?$AAe?$AAs?$AAs?$AA?5?$AAi?$AAs?$AA?5?$AAs?$AAe?$AAt?$AA?5?$AAb?$AAu?$AAt?$AA?5?$AAs?$AAu?$AAb?$AAn?$AAe@ 0000000000019b20 IScsiDxe:IScsiConfig.obj
+ 0002:00001620 ??_C@_1GC@NOKIOPCN@?$AAL?$AAo?$AAc?$AAa?$AAl?$AA?5?$AAI?$AAP?$AA?5?$AAa?$AAn?$AAd?$AA?5?$AAG?$AAa?$AAt?$AAe?$AAw?$AAa?$AAy?$AA?5?$AAa?$AAr?$AAe?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAi?$AAn?$AA?5@ 0000000000019b80 IScsiDxe:IScsiConfig.obj
+ 0002:00001688 ??_C@_1CM@DIGHAABF@?$AAT?$AAa?$AAr?$AAg?$AAe?$AAt?$AA?5?$AAI?$AAP?$AA?5?$AAi?$AAs?$AA?5?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?$CB?$AA?$AA@ 0000000000019be8 IScsiDxe:IScsiConfig.obj
+ 0002:000016c0 ??_C@_1EK@KKIJKOOP@?$AAi?$AAS?$AAC?$AAS?$AAI?$AA?5?$AAt?$AAa?$AAr?$AAg?$AAe?$AAt?$AA?5?$AAU?$AAr?$AAl?$AA?5?$AAs?$AAh?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAb?$AAe?$AA?5?$AAN@ 0000000000019c20 IScsiDxe:IScsiConfig.obj
+ 0002:00001710 ??_C@_1DG@CLIBEBMD@?$AAi?$AAS?$AAC?$AAS?$AAI?$AA?5?$AAt?$AAa?$AAr?$AAg?$AAe?$AAt?$AA?5?$AAn?$AAa?$AAm?$AAe?$AA?5?$AAi?$AAs?$AA?5?$AAN?$AAU?$AAL?$AAL?$AA?$CB?$AA?$AA@ 0000000000019c70 IScsiDxe:IScsiConfig.obj
+ 0002:00001750 ??_C@_1EK@CICAMCED@?$AAC?$AAH?$AAA?$AAP?$AA?5?$AAN?$AAa?$AAm?$AAe?$AA?5?$AAo?$AAr?$AA?5?$AAC?$AAH?$AAA?$AAP?$AA?5?$AAS?$AAe?$AAc?$AAr?$AAe?$AAt?$AA?5?$AAi?$AAs?$AA?5?$AAi?$AAn?$AAv?$AAa@ 0000000000019cb0 IScsiDxe:IScsiConfig.obj
+ 0002:000017a0 ??_C@_1GK@ILMFAFOE@?$AAR?$AAe?$AAv?$AAe?$AAr?$AAs?$AAe?$AA?5?$AAC?$AAH?$AAA?$AAP?$AA?5?$AAN?$AAa?$AAm?$AAe?$AA?5?$AAo?$AAr?$AA?5?$AAR?$AAe?$AAv?$AAe?$AAr?$AAs?$AAe?$AA?5?$AAC?$AAH?$AAA@ 0000000000019d00 IScsiDxe:IScsiConfig.obj
+ 0002:00001810 ??_C@_1GK@DNBKIGEI@?$AAW?$AAa?$AAr?$AAn?$AAi?$AAn?$AAg?$AA?$CB?$AA?5?$AAA?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AA?5?$AA?$CC?$AA?$CF?$AAs?$AA?$CC?$AA?5?$AAu?$AAs?$AAe?$AAs?$AA?5?$AAs?$AAa?$AAm?$AAe?$AA?5@ 0000000000019d70 IScsiDxe:IScsiConfig.obj
+ 0002:00001880 ??_C@_0BI@IGFDHHON@ExistAttempt?5?$DN?$DN?5Attempt?$AA@ 0000000000019de0 IScsiDxe:IScsiConfig.obj
+ 0002:000018a0 ??_C@_1FK@ELEIPALG@?$AAW?$AAa?$AAr?$AAn?$AAi?$AAn?$AAg?$AA?$CB?$AA?5?$AA?$CC?$AA?$CF?$AAs?$AA?$CC?$AA?5?$AAu?$AAs?$AAe?$AAs?$AA?5?$AAs?$AAa?$AAm?$AAe?$AA?5?$AAN?$AAI?$AAC?$AA?5?$AAa?$AAs?$AA?5?$AAA@ 0000000000019e00 IScsiDxe:IScsiConfig.obj
+ 0002:00001900 ??_C@_1IA@OPOCHDEG@?$AAT?$AAh?$AAe?$AA?5?$AAm?$AAi?$AAn?$AAi?$AAm?$AAu?$AAm?$AA?5?$AAv?$AAa?$AAl?$AAu?$AAe?$AA?5?$AAi?$AAs?$AA?5?$AA0?$AA?5?$AAa?$AAn?$AAd?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAm@ 0000000000019e60 IScsiDxe:IScsiConfig.obj
+ 0002:00001980 ??_C@_1IK@OKCMAFBM@?$AAT?$AAh?$AAe?$AA?5?$AAm?$AAi?$AAn?$AAi?$AAm?$AAu?$AAm?$AA?5?$AAv?$AAa?$AAl?$AAu?$AAe?$AA?5?$AAi?$AAs?$AA?5?$AA1?$AA0?$AA0?$AA?5?$AAm?$AAi?$AAl?$AAl?$AAi?$AAs?$AAe@ 0000000000019ee0 IScsiDxe:IScsiConfig.obj
+ 0002:00001a10 ??_C@_1HK@PKNPBNOI@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AAu?$AAr?$AAa?$AAt?$AAi?$AAo?$AAn?$AA?0?$AA?5?$AAC?$AAh?$AAe?$AAc?$AAk?$AA?5?$AAv?$AAa?$AAl@ 0000000000019f70 IScsiDxe:IScsiConfig.obj
+ 0002:00001a90 ??_C@_1IC@POFCKNAH@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AAu?$AAr?$AAa?$AAt?$AAi?$AAo?$AAn?$AA?0?$AA?5?$AAC?$AAh?$AAe?$AAc?$AAk?$AA?5?$AAv?$AAa?$AAl@ 0000000000019ff0 IScsiDxe:IScsiConfig.obj
+ 0002:00001b18 ??_C@_1CI@LMPBJGDM@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAI?$AAP?$AA?5?$AAa?$AAd?$AAd?$AAr?$AAe?$AAs?$AAs?$AA?$CB?$AA?$AA@ 000000000001a078 IScsiDxe:IScsiConfig.obj
+ 0002:00001b40 ??_C@_1CK@EKOBMLHN@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAS?$AAu?$AAb?$AAn?$AAe?$AAt?$AA?5?$AAM?$AAa?$AAs?$AAk?$AA?$CB?$AA?$AA@ 000000000001a0a0 IScsiDxe:IScsiConfig.obj
+ 0002:00001b70 ??_C@_1CC@EECKCHGK@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAG?$AAa?$AAt?$AAe?$AAw?$AAa?$AAy?$AA?$CB?$AA?$AA@ 000000000001a0d0 IScsiDxe:IScsiConfig.obj
+ 0002:00001b98 ??_C@_1CI@GPNFKPNE@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAi?$AAS?$AAC?$AAS?$AAI?$AA?5?$AAN?$AAa?$AAm?$AAe?$AA?$CB?$AA?$AA@ 000000000001a0f8 IScsiDxe:IScsiConfig.obj
+ 0002:00001bc0 ??_C@_1KA@DCMDPHDG@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAL?$AAU?$AAN?$AA?5?$AAs?$AAt?$AAr?$AAi?$AAn?$AAg?$AA?0?$AA?5?$AAE?$AAx?$AAa?$AAm?$AAp?$AAl?$AAe?$AAs?$AA?5?$AAa?$AAr?$AAe@ 000000000001a120 IScsiDxe:IScsiConfig.obj
+ 0002:00001c60 ??_C@_1CM@KIGHCEPH@?$AAC?$AAH?$AAA?$AAP?$AA?5?$AAN?$AAa?$AAm?$AAe?$AA?5?$AAi?$AAs?$AA?5?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?$CB?$AA?$AA@ 000000000001a1c0 IScsiDxe:IScsiConfig.obj
+ 0002:00001c90 ??_C@_1HE@GHDDKPP@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AAu?$AAr?$AAa?$AAt?$AAi?$AAo?$AAn?$AA?0?$AA?5?$AAC?$AAh?$AAe?$AAc?$AAk?$AA?5?$AAv?$AAa?$AAl@ 000000000001a1f0 IScsiDxe:IScsiConfig.obj
+ 0002:00001d10 ??_C@_1JO@IECLLNNM@?$AAT?$AAh?$AAe?$AA?5?$AAC?$AAh?$AAa?$AAp?$AA?5?$AAS?$AAe?$AAc?$AAr?$AAe?$AAt?$AA?5?$AAm?$AAi?$AAn?$AAi?$AAm?$AAu?$AAm?$AA?5?$AAl?$AAe?$AAn?$AAg?$AAt?$AAh?$AA?5?$AAi@ 000000000001a270 IScsiDxe:IScsiConfig.obj
+ 0002:00001db0 ??_C@_1DM@EBKLMKDD@?$AAR?$AAe?$AAv?$AAe?$AAr?$AAs?$AAe?$AA?5?$AAC?$AAH?$AAA?$AAP?$AA?5?$AAN?$AAa?$AAm?$AAe?$AA?5?$AAi?$AAs?$AA?5?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?$CB?$AA?$AA@ 000000000001a310 IScsiDxe:IScsiConfig.obj
+ 0002:00001df0 ??_C@_1IO@JOOAFOHI@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AAu?$AAr?$AAa?$AAt?$AAi?$AAo?$AAn?$AA?0?$AA?5?$AAC?$AAh?$AAe?$AAc?$AAk?$AA?5?$AAv?$AAa?$AAl@ 000000000001a350 IScsiDxe:IScsiConfig.obj
+ 0002:00001e80 ??_C@_1KO@GCLOJAIA@?$AAT?$AAh?$AAe?$AA?5?$AAR?$AAe?$AAv?$AAe?$AAr?$AAs?$AAe?$AA?5?$AAC?$AAH?$AAA?$AAP?$AA?5?$AAS?$AAe?$AAc?$AAr?$AAe?$AAt?$AA?5?$AAm?$AAi?$AAn?$AAi?$AAm?$AAu?$AAm?$AA?5@ 000000000001a3e0 IScsiDxe:IScsiConfig.obj
+ 0002:00001f30 ??_C@_1O@NBNBLPAP@?$AAM?$AAA?$AAC?$AA?5?$AA?$CF?$AAs?$AA?$AA@ 000000000001a490 IScsiDxe:IScsiConfig.obj
+ 0002:00001f40 ??_C@_1DO@OOHFBPEO@?$AAP?$AAF?$AAA?$AA?3?$AA?5?$AAB?$AAu?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$HM?$AA?5?$AAD?$AAe?$AAv?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$HM?$AA?5?$AAF?$AAu?$AAn?$AAc?$AA?5?$AA?$CF?$AAd?$AA?$AA@ 000000000001a4a0 IScsiDxe:IScsiConfig.obj
+ 0002:00001f80 ??_C@_0CC@PIBHJFDN@StartOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 000000000001a4e0 IScsiDxe:IScsiConfig.obj
+ 0002:00001fa8 ??_C@_0CA@MFFPKHJH@Index?5?$DN?$DN?5mPrivate?9?$DOAttemptCount?$AA@ 000000000001a508 IScsiDxe:IScsiConfig.obj
+ 0002:00001fd0 ??_C@_1KO@CMAFGNCI@?$AAC?$AAa?$AAn?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAm?$AAo?$AAr?$AAe?$AA?5?$AAa?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AAs?$AA?0?$AA?5?$AAP?$AAl@ 000000000001a530 IScsiDxe:IScsiConfig.obj
+ 0002:00002080 ??_C@_0CC@NCPBIMNJ@AttemptConfigData?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 000000000001a5e0 IScsiDxe:IScsiConfig.obj
+ 0002:000020b0 ??_C@_1FA@BNOKFEIK@?$AAM?$AAA?$AAC?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?0?$AA?5?$AAP?$AAF?$AAA?$AA?3?$AA?5?$AAB?$AAu?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$HM?$AA?5?$AAD?$AAe?$AAv?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$HM?$AA?5@ 000000000001a610 IScsiDxe:IScsiConfig.obj
+ 0002:00002100 ??_C@_0DI@KOIDKGNG@Corresponding?5configuration?5data@ 000000000001a660 IScsiDxe:IScsiConfig.obj
+ 0002:00002138 ??_C@_1O@LFMAFHMH@?$AAO?$AAF?$AAF?$AAS?$AAE?$AAT?$AA?$AA@ 000000000001a698 IScsiDxe:IScsiConfig.obj
+ 0002:00002148 ??_C@_1DC@EPJEBJEB@?$AA?$CF?$AAs?$AA?$CG?$AAO?$AAF?$AAF?$AAS?$AAE?$AAT?$AA?$DN?$AA0?$AA?$CG?$AAW?$AAI?$AAD?$AAT?$AAH?$AA?$DN?$AA?$CF?$AA0?$AA1?$AA6?$AAL?$AAX?$AA?$AA@ 000000000001a6a8 IScsiDxe:IScsiConfig.obj
+ 0002:00002180 ??_C@_1BC@KLGPJAMP@?$AA?$CG?$AAO?$AAF?$AAF?$AAS?$AAE?$AAT?$AA?$DN?$AA?$AA@ 000000000001a6e0 IScsiDxe:IScsiConfig.obj
+ 0002:000021a0 ??_C@_1GI@FGGMGBGN@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?3?$AA?5?$AAp?$AAl?$AAe?$AAa?$AAs?$AAe?$AA?5?$AAc?$AAo?$AAn?$AAf?$AAi?$AAg?$AAu?$AAr?$AAe?$AA?5?$AAi?$AAS?$AAC?$AAS?$AAI?$AA?5?$AAi?$AAn@ 000000000001a700 IScsiDxe:IScsiConfig.obj
+ 0002:00002210 ??_C@_1EO@FLPILACC@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?3?$AA?5?$AAT?$AAh?$AAe?$AA?5?$AAa?$AAd?$AAd?$AA?5?$AAa?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AA?5?$AAl?$AAi?$AAs?$AAt?$AA?5?$AAi?$AAs?$AA?5?$AAi@ 000000000001a770 IScsiDxe:IScsiConfig.obj
+ 0002:00002260 ??_C@_1FE@DJKEEMLI@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?3?$AA?5?$AAT?$AAh?$AAe?$AA?5?$AAd?$AAe?$AAl?$AAe?$AAt?$AAe?$AA?5?$AAa?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AA?5?$AAl?$AAi?$AAs?$AAt?$AA?5?$AAi@ 000000000001a7c0 IScsiDxe:IScsiConfig.obj
+ 0002:000022c0 ??_C@_1FK@DCGFDFEP@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?3?$AA?5?$AAT?$AAh?$AAe?$AA?5?$AAn?$AAe?$AAw?$AA?5?$AAa?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AA?5?$AAo?$AAr?$AAd?$AAe?$AAr?$AA?5?$AAl?$AAi?$AAs@ 000000000001a820 IScsiDxe:IScsiConfig.obj
+ 0002:00002320 ??_C@_1EE@FFBFOLIE@?$AAC?$AAu?$AAr?$AAr?$AAe?$AAn?$AAt?$AA?5?$AAN?$AAI?$AAC?$AA?5?$AAd?$AAo?$AAe?$AAs?$AAn?$AA?8?$AAt?$AA?5?$AAS?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AA?5?$AAI?$AAP?$AAv?$AA6@ 000000000001a880 IScsiDxe:IScsiConfig.obj
+ 0002:00002368 ??_C@_1CI@GENBJJAB@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAL?$AAU?$AAN?$AA?5?$AAs?$AAt?$AAr?$AAi?$AAn?$AAg?$AA?$CB?$AA?$AA@ 000000000001a8c8 IScsiDxe:IScsiConfig.obj
+ 0002:00002390 ??_C@_0BM@FGCLBLHH@mPrivate?9?$DOAttemptCount?5?$DN?$DN?50?$AA@ 000000000001a8f0 IScsiDxe:IScsiConfig.obj
+ 0002:000023b0 ??_C@_0BI@MEJLBIAC@mPrivate?9?$DONicCount?5?$DN?$DN?50?$AA@ 000000000001a910 IScsiDxe:IScsiConfig.obj
+ 0002:000023d0 ??_C@_0EH@NJGCLBKC@The?5configuration?5of?5Target?5addr@ 000000000001a930 IScsiDxe:IScsiProto.obj
+ 0002:00002420 ??_C@_0EC@DDFIKPBA@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001a980 IScsiDxe:IScsiProto.obj
+ 0002:00002468 ??_C@_0BE@OAEFJCLC@Pdu?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001a9c8 IScsiDxe:IScsiProto.obj
+ 0002:00002480 ??_C@_0O@DMHNKPDD@TargetAddress?$AA@ 000000000001a9e0 IScsiDxe:IScsiProto.obj
+ 0002:00002490 ??_C@_0BE@MAANAFFD@Arg?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001a9f0 IScsiDxe:IScsiProto.obj
+ 0002:000024a8 ??_C@_0N@LDJCJGDI@HeaderDigest?$AA@ 000000000001aa08 IScsiDxe:IScsiProto.obj
+ 0002:000024b8 ??_C@_05MHNOECFO@CRC32?$AA@ 000000000001aa18 IScsiDxe:IScsiProto.obj
+ 0002:000024c0 ??_C@_0L@NIHDLAKD@DataDigest?$AA@ 000000000001aa20 IScsiDxe:IScsiProto.obj
+ 0002:000024d0 ??_C@_0BD@OAAHBPKN@ErrorRecoveryLevel?$AA@ 000000000001aa30 IScsiDxe:IScsiProto.obj
+ 0002:000024e8 ??_C@_0L@DHPBNECN@InitialR2T?$AA@ 000000000001aa48 IScsiDxe:IScsiProto.obj
+ 0002:000024f4 ??_C@_03CCLAEDDF@Yes?$AA@ 000000000001aa54 IScsiDxe:IScsiProto.obj
+ 0002:000024f8 ??_C@_0O@GKGOMOLB@ImmediateData?$AA@ 000000000001aa58 IScsiDxe:IScsiProto.obj
+ 0002:00002508 ??_C@_0BJ@FCLHOFCN@MaxRecvDataSegmentLength?$AA@ 000000000001aa68 IScsiDxe:IScsiProto.obj
+ 0002:00002528 ??_C@_0P@KOEHAIP@MaxBurstLength?$AA@ 000000000001aa88 IScsiDxe:IScsiProto.obj
+ 0002:00002538 ??_C@_0BB@IPNJPAAG@FirstBurstLength?$AA@ 000000000001aa98 IScsiDxe:IScsiProto.obj
+ 0002:00002550 ??_C@_0P@DDHINENC@MaxConnections?$AA@ 000000000001aab0 IScsiDxe:IScsiProto.obj
+ 0002:00002560 ??_C@_0P@BAPPFDGI@DataPDUInOrder?$AA@ 000000000001aac0 IScsiDxe:IScsiProto.obj
+ 0002:00002570 ??_C@_0BE@KICALKDN@DataSequenceInOrder?$AA@ 000000000001aad0 IScsiDxe:IScsiProto.obj
+ 0002:00002588 ??_C@_0BB@HADJICGK@DefaultTime2Wait?$AA@ 000000000001aae8 IScsiDxe:IScsiProto.obj
+ 0002:000025a0 ??_C@_0BD@BGMCDOLB@DefaultTime2Retain?$AA@ 000000000001ab00 IScsiDxe:IScsiProto.obj
+ 0002:000025b8 ??_C@_0BC@HPPCAHHC@MaxOutstandingR2T?$AA@ 000000000001ab18 IScsiDxe:IScsiProto.obj
+ 0002:000025d0 ??_C@_0M@PDHAICBK@TargetAlias?$AA@ 000000000001ab30 IScsiDxe:IScsiProto.obj
+ 0002:000025e0 ??_C@_0L@LNPOJIAE@None?0CRC32?$AA@ 000000000001ab40 IScsiDxe:IScsiProto.obj
+ 0002:000025ec ??_C@_02ECNOPIAA@?$CFa?$AA@ 000000000001ab4c IScsiDxe:IScsiProto.obj
+ 0002:000025f0 ??_C@_02JINPPBEP@No?$AA@ 000000000001ab50 IScsiDxe:IScsiProto.obj
+ 0002:000025f4 ??_C@_04DHDCDFCB@iqn?4?$AA@ 000000000001ab54 IScsiDxe:IScsiProto.obj
+ 0002:00002600 ??_C@_0BE@CLBLKENM@Tcb?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001ab60 IScsiDxe:IScsiProto.obj
+ 0002:00002618 ??_C@_0BE@MNMOFMCK@Session?9?$DOState?5?$CB?$DN?50?$AA@ 000000000001ab78 IScsiDxe:IScsiProto.obj
+ 0002:00002630 ??_C@_0BP@GEGOHMJ@?$CBIsListEmpty?5?$CI?$CGSession?9?$DOConns?$CJ?$AA@ 000000000001ab90 IScsiDxe:IScsiProto.obj
+ 0002:00002650 ??_C@_1O@PFAMAPCJ@?$AAI?$AA_?$AAN?$AAA?$AAM?$AAE?$AA?$AA@ 000000000001abb0 IScsiDxe:IScsiInitiatorName.obj
+ 0002:00002660 ??_C@_0CI@PJANFIEL@Attempt?9?$DOSessionConfigData?4Enabl@ 000000000001abc0 IScsiDxe:IScsiIbft.obj
+ 0002:00002690 ??_C@_0EB@EHAGKKMH@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001abf0 IScsiDxe:IScsiIbft.obj
+ 0002:000026d8 ??_C@_0BC@FEDIJHFF@?$CI?$CIBOOLEAN?$CJ?$CI0?$DN?$DN1?$CJ?$CJ?$AA@ 000000000001ac38 IScsiDxe:IScsiIbft.obj
+ 0002:000026ec ??_C@_06DELMHKOB@iscsi?3?$AA@ 000000000001ac4c IScsiDxe:IScsiDhcp6.obj
+ 0002:000026f8 ??_C@_0DA@NKGOKBK@?6?5?5Error?3?5Could?5not?5detect?5netwo@ 000000000001ac58 IScsiDxe:IScsiDhcp6.obj
+ 0002:00002730 ??_C@_0EM@OHHFFIDO@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001ac90 IScsiDxe:IScsiExtScsiPassThru.obj
+ 0002:00002780 ??_C@_0ED@MKGCMJG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 000000000001ace0 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:000027d0 ??_C@_0FF@LLAFLLDM@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001ad30 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00002828 ??_C@_0DO@MAOBOFEG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 000000000001ad88 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00002868 ??_C@_0DG@EEENIGGL@Length?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFFFFFULL@ 000000000001adc8 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0002:000028a0 ??_C@_0CC@JOEHDGKB@DestinationBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 000000000001ae00 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:000028d0 ??_C@_0FI@NCCCHAEB@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001ae30 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00002928 ??_C@_0BN@MDMCNBCC@SourceBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001ae88 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00002948 ??_C@_0BH@IACGKAP@Buffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001aea8 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:00002960 ??_C@_0FF@PKHNKPL@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001aec0 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:000029b8 ??_C@_0DI@DAGDPLPG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 000000000001af18 BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0002:000029f0 ??_C@_0FE@OAGIONNJ@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001af50 BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0002:00002a48 ??_C@_0CO@LECKNDNC@?$CI?$CI?$CIUINTN?$CJBuffer?$CJ?5?$CG?5?$CIsizeof?5?$CIValu@ 000000000001afa8 BaseMemoryLibRepStr:SetMem64Wrapper.obj
+ 0002:00002a78 ??_C@_0CF@LEICOABD@?$CILength?5?$CG?5?$CIsizeof?5?$CIValue?$CJ?5?9?51?$CJ?$CJ?5@ 000000000001afd8 BaseMemoryLibRepStr:SetMem64Wrapper.obj
+ 0002:00002aa0 ??_C@_0BF@NJNGJMPC@List?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b000 BaseLib:LinkedList.obj
+ 0002:00002ac0 ??_C@_0EF@PHMLHICE@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b020 BaseLib:LinkedList.obj
+ 0002:00002b08 ??_C@_0CC@KDLPLAED@List?9?$DOForwardLink?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 000000000001b068 BaseLib:LinkedList.obj
+ 0002:00002b30 ??_C@_0BP@IJJCCMAK@List?9?$DOBackLink?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b090 BaseLib:LinkedList.obj
+ 0002:00002b50 ??_C@_0BJ@NJABNCDK@ListHead?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b0b0 BaseLib:LinkedList.obj
+ 0002:00002b70 ??_C@_0CG@LGIALJFK@InternalBaseLibIsListValid?5?$CIList@ 000000000001b0d0 BaseLib:LinkedList.obj
+ 0002:00002b98 ??_C@_0BF@NMBJJECB@?$CBIsListEmpty?5?$CIEntry?$CJ?$AA@ 000000000001b0f8 BaseLib:LinkedList.obj
+ 0002:00002bb0 ??_C@_0BH@MAAHKCPC@String?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b110 BaseLib:String.obj
+ 0002:00002bd0 ??_C@_0EB@OHCINBMP@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b130 BaseLib:String.obj
+ 0002:00002c18 ??_C@_0CC@GFNLNIOC@?$CI?$CIUINTN?$CJString?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 000000000001b178 BaseLib:String.obj
+ 0002:00002c40 ??_C@_0DK@EOJCOAME@Length?5?$DM?5_gPcd_FixedAtBuild_PcdM@ 000000000001b1a0 BaseLib:String.obj
+ 0002:00002c80 ??_C@_0BL@JAAMOCAJ@StrSize?5?$CIFirstString?$CJ?5?$CB?$DN?50?$AA@ 000000000001b1e0 BaseLib:String.obj
+ 0002:00002ca0 ??_C@_0BM@DALBOILC@StrSize?5?$CISecondString?$CJ?5?$CB?$DN?50?$AA@ 000000000001b200 BaseLib:String.obj
+ 0002:00002cc0 ??_C@_0DL@LFIMEMJP@Length?5?$DM?$DN?5_gPcd_FixedAtBuild_Pcd@ 000000000001b220 BaseLib:String.obj
+ 0002:00002d00 ??_C@_0BG@KBNOLIGE@StrSize?5?$CIString?$CJ?5?$CB?$DN?50?$AA@ 000000000001b260 BaseLib:String.obj
+ 0002:00002d18 ??_C@_0BM@NNBLOHJD@StrSize?5?$CISearchString?$CJ?5?$CB?$DN?50?$AA@ 000000000001b278 BaseLib:String.obj
+ 0002:00002d38 ??_C@_0DI@MDIKFADO@Length?5?$DM?5_gPcd_FixedAtBuild_PcdM@ 000000000001b298 BaseLib:String.obj
+ 0002:00002d70 ??_C@_0BL@IKFBNFIL@AsciiStrSize?5?$CIFirstString?$CJ?$AA@ 000000000001b2d0 BaseLib:String.obj
+ 0002:00002d90 ??_C@_0BM@EDNOKLLE@AsciiStrSize?5?$CISecondString?$CJ?$AA@ 000000000001b2f0 BaseLib:String.obj
+ 0002:00002db0 ??_C@_0DJ@JJHGIFMP@Length?5?$DM?$DN?5_gPcd_FixedAtBuild_Pcd@ 000000000001b310 BaseLib:String.obj
+ 0002:00002df0 ??_C@_0EF@MFKKFBPN@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b350 BaseLib:SafeString.obj
+ 0002:00002e38 ??_C@_0CH@LALFPBMC@?$CI?$CIUINTN?$CJDestination?5?$CG?50x00000001@ 000000000001b398 BaseLib:SafeString.obj
+ 0002:00002e60 ??_C@_0CC@HEBCMBPF@?$CI?$CIUINTN?$CJSource?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 000000000001b3c0 BaseLib:SafeString.obj
+ 0002:00002e88 ??_C@_0BO@ECNIOIHG@?$CIDestination?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 000000000001b3e8 BaseLib:SafeString.obj
+ 0002:00002ea8 ??_C@_07KBGDFDAM@StrCpyS?$AA@ 000000000001b408 BaseLib:SafeString.obj
+ 0002:00002eb0 ??_C@_0EA@PDPDJJNN@?$CFa?$CI?$CFd?$CJ?5?$CFa?3?5SAFE_STRING_CONSTRAIN@ 000000000001b410 BaseLib:SafeString.obj
+ 0002:00002ef0 ??_C@_0BJ@EAEEJIP@?$CISource?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 000000000001b450 BaseLib:SafeString.obj
+ 0002:00002f10 ??_C@_0EA@BBALOHPI@?$CIDestMax?5?$DM?$DN?5?$CI_gPcd_FixedAtBuild_@ 000000000001b470 BaseLib:SafeString.obj
+ 0002:00002f50 ??_C@_0P@PMIMLIHM@?$CIDestMax?5?$CB?$DN?50?$CJ?$AA@ 000000000001b4b0 BaseLib:SafeString.obj
+ 0002:00002f60 ??_C@_0BG@EEGIIOKH@?$CIDestMax?5?$DO?5SourceLen?$CJ?$AA@ 000000000001b4c0 BaseLib:SafeString.obj
+ 0002:00002f80 ??_C@_0FH@PPBLBDBJ@InternalSafeStringNoStrOverlap?5?$CI@ 000000000001b4e0 BaseLib:SafeString.obj
+ 0002:00002fd8 ??_C@_08INOAHJON@StrnCpyS?$AA@ 000000000001b538 BaseLib:SafeString.obj
+ 0002:00002fe8 ??_C@_0DP@PBOJGJC@?$CILength?5?$DM?$DN?5?$CI_gPcd_FixedAtBuild_P@ 000000000001b548 BaseLib:SafeString.obj
+ 0002:00003028 ??_C@_07EBBOPAKF@StrCatS?$AA@ 000000000001b588 BaseLib:SafeString.obj
+ 0002:00003030 ??_C@_0P@BHOOOJPD@?$CICopyLen?5?$CB?$DN?50?$CJ?$AA@ 000000000001b590 BaseLib:SafeString.obj
+ 0002:00003040 ??_C@_0BG@BPGICNPK@?$CICopyLen?5?$DO?5SourceLen?$CJ?$AA@ 000000000001b5a0 BaseLib:SafeString.obj
+ 0002:00003058 ??_C@_0BJ@MBBOBCLN@?$CIString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 000000000001b5b8 BaseLib:SafeString.obj
+ 0002:00003078 ??_C@_0BD@NNBAKNOF@StrDecimalToUintnS?$AA@ 000000000001b5d8 BaseLib:SafeString.obj
+ 0002:00003090 ??_C@_0BH@JPMEDPAI@?$CIData?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 000000000001b5f0 BaseLib:SafeString.obj
+ 0002:000030b0 ??_C@_0IC@CFBPEAPC@?$CIStrnLenS?5?$CIString?0?5?$CI_gPcd_FixedA@ 000000000001b610 BaseLib:SafeString.obj
+ 0002:00003138 ??_C@_0P@FDCJFGP@StrHexToUintnS?$AA@ 000000000001b698 BaseLib:SafeString.obj
+ 0002:00003148 ??_C@_0BA@PLPLKCD@StrHexToUint64S?$AA@ 000000000001b6a8 BaseLib:SafeString.obj
+ 0002:00003158 ??_C@_0BK@PFCDEPEA@?$CIAddress?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 000000000001b6b8 BaseLib:SafeString.obj
+ 0002:00003180 ??_C@_0EK@OFPBBCEA@AddressIndex?5?$CL?51?5?$DM?5?$CIsizeof?5?$CIAddr@ 000000000001b6e0 BaseLib:SafeString.obj
+ 0002:000031d0 ??_C@_0BB@JCLCGCPJ@StrToIpv4Address?$AA@ 000000000001b730 BaseLib:SafeString.obj
+ 0002:000031e8 ??_C@_0BJ@CNKJJNE@?$CIBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 000000000001b748 BaseLib:SafeString.obj
+ 0002:00003208 ??_C@_0N@OMPODJLB@AsciiStrCpyS?$AA@ 000000000001b768 BaseLib:SafeString.obj
+ 0002:00003218 ??_C@_0DO@LJFOOPII@?$CIDestMax?5?$DM?$DN?5?$CI_gPcd_FixedAtBuild_@ 000000000001b778 BaseLib:SafeString.obj
+ 0002:00003260 ??_C@_0FL@CDANCHFO@InternalSafeStringNoAsciiStrOver@ 000000000001b7c0 BaseLib:SafeString.obj
+ 0002:000032c0 ??_C@_0BI@GIIHIIN@AsciiStrDecimalToUintnS?$AA@ 000000000001b820 BaseLib:SafeString.obj
+ 0002:000032e0 ??_C@_0ID@JMCCGBLD@?$CIAsciiStrnLenS?5?$CIString?0?5?$CI_gPcd_F@ 000000000001b840 BaseLib:SafeString.obj
+ 0002:00003368 ??_C@_0BE@KNBHPEHC@AsciiStrHexToUintnS?$AA@ 000000000001b8c8 BaseLib:SafeString.obj
+ 0002:00003380 ??_C@_0BF@GMBBPDJL@AsciiStrHexToUint64S?$AA@ 000000000001b8e0 BaseLib:SafeString.obj
+ 0002:00003398 ??_C@_0BG@ECBHNCII@UnicodeStrToAsciiStrS?$AA@ 000000000001b8f8 BaseLib:SafeString.obj
+ 0002:000033b0 ??_C@_0GH@OGMKEJDK@?$CBInternalSafeStringIsOverlap?5?$CIDe@ 000000000001b910 BaseLib:SafeString.obj
+ 0002:00003418 ??_C@_0BA@MFHLDCJH@?$CKSource?5?$DM?50x100?$AA@ 000000000001b978 BaseLib:SafeString.obj
+ 0002:00003428 ??_C@_0BG@MFINJFHO@AsciiStrToUnicodeStrS?$AA@ 000000000001b988 BaseLib:SafeString.obj
+ 0002:00003440 ??_C@_0GF@GCLJAOAI@?$CBInternalSafeStringIsOverlap?5?$CIDe@ 000000000001b9a0 BaseLib:SafeString.obj
+ 0002:000034a8 ??_C@_0BG@HJJNNPII@AsciiStrToIpv6Address?$AA@ 000000000001ba08 BaseLib:SafeString.obj
+ 0002:000034c0 ??_C@_0BG@FHGLPHAO@AsciiStrToIpv4Address?$AA@ 000000000001ba20 BaseLib:SafeString.obj
+ 0002:000034e0 ??_C@_0ED@GJHPOIEN@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001ba40 BaseLib:CheckSum.obj
+ 0002:00003528 ??_C@_0DI@FAOGOFLE@Length?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFFFFFULL@ 000000000001ba88 BaseLib:CheckSum.obj
+ 0002:00003560 ??_C@_0EE@FAJFAODK@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001bac0 BaseLib:Unaligned.obj
+ 0002:000035a8 ??_C@_0N@KGHEHMDL@Divisor?5?$CB?$DN?50?$AA@ 000000000001bb08 BaseLib:DivU64x32.obj
+ 0002:000035b8 ??_C@_0CI@BGLNHBLM@?$CI?$CI?$CIUINTN?$CJ?5?$CIStartOfBuffer?$CJ?$CJ?5?$CG?50x0@ 000000000001bb18 BasePrintLib:PrintLib.obj
+ 0002:000035e0 ??_C@_0EI@PHEOPKNG@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001bb40 BasePrintLib:PrintLib.obj
+ 0002:00003628 ??_C@_0CH@KJLBGOBB@?$CI?$CI?$CIUINTN?$CJ?5?$CIFormatString?$CJ?$CJ?5?$CG?50x01@ 000000000001bb88 BasePrintLib:PrintLib.obj
+ 0002:00003650 ??_C@_0CB@LDBAOPMG@?$CI?$CI?$CIUINTN?$CJ?5?$CIBuffer?$CJ?$CJ?5?$CG?50x01?$CJ?5?$DN?$DN?50@ 000000000001bbb0 BasePrintLib:PrintLib.obj
+ 0002:00003680 ??_C@_0FA@JGMHCDLA@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001bbe0 BasePrintLib:PrintLibInternal.obj
+ 0002:000036d0 ??_C@_0EB@HDGIDCIO@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 000000000001bc30 BasePrintLib:PrintLibInternal.obj
+ 0002:00003720 ??_C@_0FJ@HAEMOBLP@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 000000000001bc80 BasePrintLib:PrintLibInternal.obj
+ 0002:00003780 ??_C@_0N@PNKFBKME@?$CIWidth?5?$DM?538?$CJ?$AA@ 000000000001bce0 BasePrintLib:PrintLibInternal.obj
+ 0002:00003790 ??_C@_0CI@HPJOGFNE@?$CIBufferSize?5?$DO?$DN?5?$CIWidth?5?$CL?51?$CJ?5?$CK?5Inc@ 000000000001bcf0 BasePrintLib:PrintLibInternal.obj
+ 0002:000037b8 ??_C@_0BJ@PPAKKDJG@?$CIFormat?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 000000000001bd18 BasePrintLib:PrintLibInternal.obj
+ 0002:000037e0 ??_C@_0ED@LPDDCECB@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 000000000001bd40 BasePrintLib:PrintLibInternal.obj
+ 0002:00003830 ??_C@_0IM@BFJJFLGB@?$CIStrnLenS?5?$CI?$CICHAR16?5?$CK?$CJFormat?0?5?$CI_g@ 000000000001bd90 BasePrintLib:PrintLibInternal.obj
+ 0002:000038c0 ??_C@_0ID@PLGJGION@?$CIAsciiStrnLenS?5?$CIFormat?0?5?$CI_gPcd_F@ 000000000001be20 BasePrintLib:PrintLibInternal.obj
+ 0002:00003948 ??_C@_0O@MLOLIMFM@?$DMnull?5string?$DO?$AA@ 000000000001bea8 BasePrintLib:PrintLibInternal.obj
+ 0002:00003958 ??_C@_0M@BJJDNPHK@?$DMnull?5guid?$DO?$AA@ 000000000001beb8 BasePrintLib:PrintLibInternal.obj
+ 0002:00003968 ??_C@_0DB@PMLHLBMO@?$CF08x?9?$CF04x?9?$CF04x?9?$CF02x?$CF02x?9?$CF02x?$CF02x@ 000000000001bec8 BasePrintLib:PrintLibInternal.obj
+ 0002:000039a0 ??_C@_0M@LHGBCIKM@?$DMnull?5time?$DO?$AA@ 000000000001bf00 BasePrintLib:PrintLibInternal.obj
+ 0002:000039b0 ??_C@_0BK@FCPKCIDD@?$CF02d?1?$CF02d?1?$CF04d?5?5?$CF02d?3?$CF02d?$AA@ 000000000001bf10 BasePrintLib:PrintLibInternal.obj
+ 0002:000039cc ??_C@_04JIMNDDED@?$CF08X?$AA@ 000000000001bf2c BasePrintLib:PrintLibInternal.obj
+ 0002:000039d4 ??_C@_02PCIJFNDE@?$AN?6?$AA@ 000000000001bf34 BasePrintLib:PrintLibInternal.obj
+ 0002:000039d8 ??_C@_01LIIJDEN@?$AN?$AA@ 000000000001bf38 BasePrintLib:PrintLibInternal.obj
+ 0002:000039e0 mWarningString 000000000001bf40 BasePrintLib:PrintLibInternal.obj
+ 0002:00003a80 mErrorString 000000000001bfe0 BasePrintLib:PrintLibInternal.obj
+ 0002:00003d40 mHexStr 000000000001c2a0 BasePrintLib:PrintLibInternal.obj
+ 0002:00003d50 ??_C@_0BH@LKMBFCBF@Format?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c2b0 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00003d70 ??_C@_0FD@OABGLBHF@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c2d0 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00003dc8 ??_C@_0BE@ECBJLCDE@ASSERT?5?$CFa?$CI?$CFLu?$CJ?3?5?$CFa?6?$AA@ 000000000001c328 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00003de0 ??_C@_0BN@COECPDCC@gImageHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c340 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00003e00 ??_C@_0GE@FKBNDHHB@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c360 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00003e68 ??_C@_0BE@DGNHAHIL@gST?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c3c8 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00003e80 ??_C@_0BE@BDFJLGLN@gBS?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c3e0 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00003ea0 ??_C@_0FO@BEMDJMPM@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c400 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:00003f00 ??_C@_0DO@GEEICOOO@AllocationSize?5?$DM?$DN?5?$CI0xFFFFFFFFFFF@ 000000000001c460 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:00003f40 ??_C@_0BE@OBDFIHND@gRT?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c4a0 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:00003f60 ??_C@_0GK@FJIMGEPP@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c4c0 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:00003fd0 ??_C@_0GI@KEFAHLGJ@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c530 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00004038 ??_C@_0DC@CNNBPJA@mDevicePathLibDevicePathUtilitie@ 000000000001c598 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00004070 ??_C@_0BF@CBLMFKOC@Node?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c5d0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00004090 ??_C@_0EH@ENCEEKKL@?$CILength?5?$DO?$DN?5sizeof?5?$CIEFI_DEVICE_PA@ 000000000001c5f0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:000040d8 ??_C@_0BK@PPOBBAMB@TableGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c638 UefiLib:UefiLib.obj
+ 0002:00004100 ??_C@_0EC@DCGCAOKF@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c660 UefiLib:UefiLib.obj
+ 0002:00004148 ??_C@_0BG@JDKEGFNB@Table?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c6a8 UefiLib:UefiLib.obj
+ 0002:00004160 ??_C@_0EG@GOBFPEEP@Name?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5Guid?5?$CB?$DN?5@ 000000000001c6c0 UefiLib:UefiLib.obj
+ 0002:000041a8 ??_C@_0BH@FMEOEIBC@?$CKValue?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c708 UefiLib:UefiLib.obj
+ 0002:000041c0 ??_C@_0BO@MHFMIIAE@DriverBinding?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c720 UefiLib:UefiDriverModel.obj
+ 0002:000041e0 ??_C@_0EK@CMFOJGEC@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c740 UefiLib:UefiDriverModel.obj
+ 0002:00004230 ??_C@_0BD@BHENKNKP@NumberOfLines?5?$CB?$DN?50?$AA@ 000000000001c790 UefiLib:Console.obj
+ 0002:00004250 ??_C@_0EC@EJLIGNPA@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c7b0 UefiLib:Console.obj
+ 0002:00004298 ??_C@_0P@ICDOOCHP@MaxLength?5?$CB?$DN?50?$AA@ 000000000001c7f8 UefiLib:Console.obj
+ 0002:000042a8 ??_C@_0BF@DMEONNDO@Line?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c808 UefiLib:Console.obj
+ 0002:000042c0 ??_C@_0BK@IHAIHFJE@TmpString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c820 UefiLib:Console.obj
+ 0002:000042e0 ??_C@_17LGKOMLJ@?$AA?4?$AA?4?$AA?4?$AA?$AA@ 000000000001c840 UefiLib:Console.obj
+ 0002:000042f0 ??_C@_0EH@BHOPMLMJ@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c850 UefiLib:UefiLibPrint.obj
+ 0002:00004338 ??_C@_0BI@DIKLKBJC@Console?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c898 UefiLib:UefiLibPrint.obj
+ 0002:00004350 ??_C@_0ED@HPBEEAH@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c8b0 DxeHobLib:HobLib.obj
+ 0002:00004398 ??_C@_0BJ@OBFMLLDO@mHobList?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c8f8 DxeHobLib:HobLib.obj
+ 0002:000043b8 ??_C@_0BJ@NOLLDKJB@HobStart?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c918 DxeHobLib:HobLib.obj
+ 0002:000043d8 ??_C@_0BP@LHBKJBMC@PlatformInfoHob?5is?5not?5found?4?6?$AA@ 000000000001c938 DxeAcpiTimerLib:DxeAcpiTimerLib.obj
+ 0002:00004400 ??_C@_0FA@KOBOOOIF@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c960 DxeAcpiTimerLib:DxeAcpiTimerLib.obj
+ 0002:00004450 ??_C@_0BI@HAGPDMHJ@AcpiTimerLibConstructor?$AA@ 000000000001c9b0 DxeAcpiTimerLib:DxeAcpiTimerLib.obj
+ 0002:00004468 ??_C@_0CL@DGCOIACG@?$CFa?3?5Unknown?5Host?5Bridge?5Device?5I@ 000000000001c9c8 DxeAcpiTimerLib:DxeAcpiTimerLib.obj
+ 0002:000044a0 ??_C@_0FO@HNLMMFDN@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001ca00 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0002:00004500 ??_C@_0BK@KLJHMMPJ@HiiHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001ca60 UefiHiiLib:HiiString.obj
+ 0002:00004520 ??_C@_0EN@DDBLCGFI@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001ca80 UefiHiiLib:HiiString.obj
+ 0002:00004570 ??_C@_06PLDEFKP@x?9UEFI?$AA@ 000000000001cad0 UefiHiiLib:HiiString.obj
+ 0002:00004578 ??_C@_0CA@OEKIMLLB@PackageListGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cad8 UefiHiiLib:HiiString.obj
+ 0002:000045a0 ??_C@_0EK@CCOCGB@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001cb00 UefiHiiLib:HiiLib.obj
+ 0002:000045f0 ??_C@_0BN@EHPNHAIF@ConfigString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cb50 UefiHiiLib:HiiLib.obj
+ 0002:00004610 ??_C@_0BG@MJAHJKJ@Block?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cb70 UefiHiiLib:HiiLib.obj
+ 0002:00004628 ??_C@_1M@DPLGJLCD@?$AAG?$AAU?$AAI?$AAD?$AA?$DN?$AA?$AA@ 000000000001cb88 UefiHiiLib:HiiLib.obj
+ 0002:00004638 ??_C@_1O@FMIENBLJ@?$AA?$CG?$AAN?$AAA?$AAM?$AAE?$AA?$DN?$AA?$AA@ 000000000001cb98 UefiHiiLib:HiiLib.obj
+ 0002:00004648 ??_C@_1O@GGMHNGIF@?$AA?$CG?$AAP?$AAA?$AAT?$AAH?$AA?$DN?$AA?$AA@ 000000000001cba8 UefiHiiLib:HiiLib.obj
+ 0002:00004658 ??_C@_0BM@LENJOOBF@FirstString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cbb8 UefiHiiLib:HiiLib.obj
+ 0002:00004678 ??_C@_0BN@CGMEJHHH@SecondString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cbd8 UefiHiiLib:HiiLib.obj
+ 0002:00004698 ??_C@_0CC@BCKDEPBB@StartSearchString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 000000000001cbf8 UefiHiiLib:HiiLib.obj
+ 0002:000046c0 ??_C@_0CB@NPMPBLHL@StopSearchString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ@ 000000000001cc20 UefiHiiLib:HiiLib.obj
+ 0002:000046e8 ??_C@_0BK@LFDBOAFJ@ConfigHdr?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cc48 UefiHiiLib:HiiLib.obj
+ 0002:00004708 ??_C@_1M@IDEFLMF@?$AA?$CF?$AAs?$AA?$CG?$AA?$CF?$AAs?$AA?$AA@ 000000000001cc68 UefiHiiLib:HiiLib.obj
+ 0002:00004718 ??_C@_0BN@OKKMNGPH@OpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cc78 UefiHiiLib:HiiLib.obj
+ 0002:00004738 ??_C@_0BP@IOABAFLF@OpCodeTemplate?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cc98 UefiHiiLib:HiiLib.obj
+ 0002:00004758 ??_C@_0CF@DPHCOLMP@?$CIOpCodeSize?5?$CL?5ExtensionSize?$CJ?5?$DM?$DN?5@ 000000000001ccb8 UefiHiiLib:HiiLib.obj
+ 0002:00004780 ??_C@_0BK@JGHNIOOD@RawBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cce0 UefiHiiLib:HiiLib.obj
+ 0002:000047a0 ??_C@_0CA@JCKPEJCB@RawOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cd00 UefiHiiLib:HiiLib.obj
+ 0002:000047c0 ??_C@_0DG@CGCLKNEF@?$CIQuestionFlags?5?$CG?5?$CI?$HO?$CI0x01?5?$HM?50x04?5@ 000000000001cd20 UefiHiiLib:HiiLib.obj
+ 0002:000047f8 ??_C@_0CE@KJODLANI@OptionsOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ@ 000000000001cd58 UefiHiiLib:HiiLib.obj
+ 0002:00004820 mConfigHdrTemplate 000000000001cd80 UefiHiiLib:HiiLib.obj
+ 0002:00004890 mEndOfPakageList 000000000001cdf0 UefiHiiLib:HiiLib.obj
+ 0002:000048a0 ??_C@_0EP@LMJDKFAP@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001ce00 UefiHiiLib:HiiLanguage.obj
+ 0002:000048f0 ??_C@_0EK@GBBIEMHN@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001ce50 DxeNetLib:DxeNetLib.obj
+ 0002:00004940 ??_C@_0N@NMJPNKHJ@NetMask?5?$CB?$DN?50?$AA@ 000000000001cea0 DxeNetLib:DxeNetLib.obj
+ 0002:00004950 ??_C@_0CI@KOOBFNBF@?$CIMaskLength?5?$DO?$DN?50?$CJ?5?$CG?$CG?5?$CIMaskLength@ 000000000001ceb0 DxeNetLib:DxeNetLib.obj
+ 0002:00004978 ??_C@_0BE@FCBOEPIJ@Ip6?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001ced8 DxeNetLib:DxeNetLib.obj
+ 0002:00004990 ??_C@_0EH@NHBGDONK@?$CIIp1?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CIIp2?5?$CB?$DN@ 000000000001cef0 DxeNetLib:DxeNetLib.obj
+ 0002:000049d8 ??_C@_09EEFECIOP@Byte?5?$DM?516?$AA@ 000000000001cf38 DxeNetLib:DxeNetLib.obj
+ 0002:000049e8 ??_C@_0BF@FBEMMEEB@Head?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cf48 DxeNetLib:DxeNetLib.obj
+ 0002:00004a00 ??_C@_0EG@FMMHPKDI@?$CIServiceBindingGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ@ 000000000001cf60 DxeNetLib:DxeNetLib.obj
+ 0002:00004a48 ??_C@_0CD@PCCGAHJM@ServiceBindingGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?5@ 000000000001cfa8 DxeNetLib:DxeNetLib.obj
+ 0002:00004a70 ??_C@_0BL@PMLJBBIE@MacAddress?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cfd0 DxeNetLib:DxeNetLib.obj
+ 0002:00004a90 ??_C@_0BM@CDAGHOOA@AddressSize?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cff0 DxeNetLib:DxeNetLib.obj
+ 0002:00004ab0 ??_C@_0BN@NHNKBDLL@MediaPresent?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d010 DxeNetLib:DxeNetLib.obj
+ 0002:00004ad0 ??_C@_0BM@CPKMECHF@MCastFilter?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d030 DxeNetLib:DxeNetLib.obj
+ 0002:00004af0 gIp4AllMasks 000000000001d050 DxeNetLib:DxeNetLib.obj
+ 0002:00004b78 ??_C@_0BA@MDHFKOHH@BlockOpNum?5?$DO?$DN?51?$AA@ 000000000001d0d8 DxeNetLib:NetBuffer.obj
+ 0002:00004b90 ??_C@_0EK@HPDBBEBA@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d0f0 DxeNetLib:NetBuffer.obj
+ 0002:00004be0 ??_C@_07DJKBCKNJ@Len?5?$DO?50?$AA@ 000000000001d140 DxeNetLib:NetBuffer.obj
+ 0002:00004be8 ??_C@_0BH@HKOFEGGJ@Vector?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d148 DxeNetLib:NetBuffer.obj
+ 0002:00004c00 ??_C@_0GP@BJHFFKHJ@?$CI?$CIVector?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CI?$CI@ 000000000001d160 DxeNetLib:NetBuffer.obj
+ 0002:00004c70 ??_C@_0BD@DIPGLBBO@Vector?9?$DORefCnt?5?$DO?50?$AA@ 000000000001d1d0 DxeNetLib:NetBuffer.obj
+ 0002:00004c88 ??_C@_0BF@LJMLDKHP@Nbuf?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d1e8 DxeNetLib:NetBuffer.obj
+ 0002:00004ca0 ??_C@_0GL@IFMHLCLE@?$CI?$CINbuf?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CI?$CINb@ 000000000001d200 DxeNetLib:NetBuffer.obj
+ 0002:00004d10 ??_C@_0BB@DOGOGLPG@Nbuf?9?$DORefCnt?5?$DO?50?$AA@ 000000000001d270 DxeNetLib:NetBuffer.obj
+ 0002:00004d28 ??_C@_0BD@CJPEEIBJ@IsListEmpty?5?$CIHead?$CJ?$AA@ 000000000001d288 DxeNetLib:NetBuffer.obj
+ 0002:00004d40 ??_C@_0HL@FGMBHKJG@?$CI?$CINbuf?9?$DOVector?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ@ 000000000001d2a0 DxeNetLib:NetBuffer.obj
+ 0002:00004dc0 ??_C@_0BJ@KIFBBHL@Index?5?$DM?5Nbuf?9?$DOBlockOpNum?$AA@ 000000000001d320 DxeNetLib:NetBuffer.obj
+ 0002:00004de0 ??_C@_0EL@JHACLFKC@?$CIExtFragment?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG@ 000000000001d340 DxeNetLib:NetBuffer.obj
+ 0002:00004e30 ??_C@_0DE@CILPCCFL@?$CIBlockOp?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CIBl@ 000000000001d390 DxeNetLib:NetBuffer.obj
+ 0002:00004e64 ??_C@_04IFLCJLKB@Dest?$AA@ 000000000001d3c4 DxeNetLib:NetBuffer.obj
+ 0002:00004e70 ??_C@_0HB@ILKEBNKK@?$CI?$CINbufQue?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CI@ 000000000001d3d0 DxeNetLib:NetBuffer.obj
+ 0002:00004ee8 ??_C@_0BF@CPBCKIGP@Dest?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d448 DxeNetLib:NetBuffer.obj
+ 0002:00004f00 ??_C@_0BF@PJAONBJP@Tcp4?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d460 DxeTcpIoLib:DxeTcpIoLib.obj
+ 0002:00004f20 ??_C@_0EO@KLJCLEPI@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d480 DxeTcpIoLib:DxeTcpIoLib.obj
+ 0002:00004f70 ??_C@_0BF@PMNKLKBM@Tcp6?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d4d0 DxeTcpIoLib:DxeTcpIoLib.obj
+ 0002:00004f90 ??_C@_0EG@MAJBHDFF@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d4f0 DxePcdLib:DxePcdLib.obj
+ 0002:00004fd8 ??_C@_0BF@OOKDELHM@mPcd?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d538 DxePcdLib:DxePcdLib.obj
+ 0002:00004ff0 ??_C@_0FG@BHBOFAHM@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d550 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00005050 ??_C@_0EN@EIGKPMFG@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d5b0 BaseLib:DivU64x32Remainder.obj
+ 0002:000050a0 ??_C@_0EO@GMIANGPF@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d600 BaseIoLibIntrinsicSev:IoLibMsc.obj
+ 0002:000050f0 ??_C@_0BA@HCECIDGN@?$CIPort?5?$CG?53?$CJ?5?$DN?$DN?50?$AA@ 000000000001d650 BaseIoLibIntrinsicSev:IoLibMsc.obj
+ 0002:00005100 ??_C@_0FG@HPDLAHGH@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d660 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0002:00005158 ??_C@_0BD@OMMAJMCK@?$CIAddress?5?$CG?53?$CJ?5?$DN?$DN?50?$AA@ 000000000001d6b8 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0002:00005170 ??_C@_0BO@BAKALPJK@?$CI?$CIAddress?$CJ?5?$CG?5?$HO0xfffffff?$CJ?5?$DN?$DN?50?$AA@ 000000000001d6d0 BasePciExpressLib:PciExpressLib.obj
+ 0002:00005190 ??_C@_0FC@LBKCNALB@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d6f0 BasePciExpressLib:PciExpressLib.obj
+ 0002:000051f0 ??_C@_0EK@HKMCGMBJ@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d750 BasePciCf8Lib:PciCf8Lib.obj
+ 0002:00005240 ??_C@_0CG@EDKLCMBO@?$CI?$CIAddress?$CJ?5?$CG?5?$CI?$HO0xffff0ff?5?$HM?5?$CI3?$CJ?$CJ?$CJ@ 000000000001d7a0 BasePciCf8Lib:PciCf8Lib.obj
+ 0002:00005370 ??_C@_0CB@GEABOFIF@Failed?5call?5TDCALL_TDINFO?4?5?$CFllx?6@ 000000000001d8d0 TdxLib:TdInfo.obj
+ 0002:000053a0 ??_C@_0EL@KBHFHFOL@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d900 BaseIoLibIntrinsicSev:IoLib.obj
+ 0003:00000000 _fltused 000000000001dae0 BaseIntrinsicLib:MemoryIntrinsics.obj
+ 0003:00000008 gEfiLoadedImageProtocolGuid 000000000001dae8 IScsiDxe:AutoGen.obj
+ 0003:00000018 gEfiAdapterInfoUndiIpv6SupportGuid 000000000001daf8 IScsiDxe:AutoGen.obj
+ 0003:00000028 gEfiAuthenticationInfoProtocolGuid 000000000001db08 IScsiDxe:AutoGen.obj
+ 0003:00000038 gEfiDns4ServiceBindingProtocolGuid 000000000001db18 IScsiDxe:AutoGen.obj
+ 0003:00000048 gEfiDhcp6ServiceBindingProtocolGuid 000000000001db28 IScsiDxe:AutoGen.obj
+ 0003:00000058 gEfiIfrTianoGuid 000000000001db38 IScsiDxe:AutoGen.obj
+ 0003:00000068 gEfiExtScsiPassThruProtocolGuid 000000000001db48 IScsiDxe:AutoGen.obj
+ 0003:00000078 gEfiDns4ProtocolGuid 000000000001db58 IScsiDxe:AutoGen.obj
+ 0003:00000088 gEfiIScsiInitiatorNameProtocolGuid 000000000001db68 IScsiDxe:AutoGen.obj
+ 0003:00000098 gEfiComponentName2ProtocolGuid 000000000001db78 IScsiDxe:AutoGen.obj
+ 0003:000000a8 gPcdProtocolGuid 000000000001db88 IScsiDxe:AutoGen.obj
+ 0003:000000b8 gEfiAdapterInformationProtocolGuid 000000000001db98 IScsiDxe:AutoGen.obj
+ 0003:000000d0 IScsiDxeStrings 000000000001dbb0 IScsiDxe:AutoGen.obj
+ 0003:00001378 gEfiDhcp6ProtocolGuid 000000000001ee58 IScsiDxe:AutoGen.obj
+ 0003:00001388 gEfiNetworkInterfaceIdentifierProtocolGuid_31 000000000001ee68 IScsiDxe:AutoGen.obj
+ 0003:00001398 gEfiDhcp4ServiceBindingProtocolGuid 000000000001ee78 IScsiDxe:AutoGen.obj
+ 0003:000013a8 gEfiDevicePathProtocolGuid 000000000001ee88 IScsiDxe:AutoGen.obj
+ 0003:000013b8 gEfiPciIoProtocolGuid 000000000001ee98 IScsiDxe:AutoGen.obj
+ 0003:000013c8 gEfiIp6ConfigProtocolGuid 000000000001eea8 IScsiDxe:AutoGen.obj
+ 0003:000013d8 gEfiSimpleNetworkProtocolGuid 000000000001eeb8 IScsiDxe:AutoGen.obj
+ 0003:000013e8 gEfiHiiConfigRoutingProtocolGuid 000000000001eec8 IScsiDxe:AutoGen.obj
+ 0003:000013f8 gEfiAcpi10TableGuid 000000000001eed8 IScsiDxe:AutoGen.obj
+ 0003:00001408 gEfiDns6ServiceBindingProtocolGuid 000000000001eee8 IScsiDxe:AutoGen.obj
+ 0003:00001418 gUefiOvmfPkgPlatformInfoGuid 000000000001eef8 IScsiDxe:AutoGen.obj
+ 0003:00001428 gEfiAdapterInfoNetworkBootGuid 000000000001ef08 IScsiDxe:AutoGen.obj
+ 0003:00001438 gEfiAcpiTableGuid 000000000001ef18 IScsiDxe:AutoGen.obj
+ 0003:00001448 gEfiIp4Config2ProtocolGuid 000000000001ef28 IScsiDxe:AutoGen.obj
+ 0003:00001458 gEfiHiiImageProtocolGuid 000000000001ef38 IScsiDxe:AutoGen.obj
+ 0003:00001468 gEfiDevicePathUtilitiesProtocolGuid 000000000001ef48 IScsiDxe:AutoGen.obj
+ 0003:00001478 gEfiHiiDatabaseProtocolGuid 000000000001ef58 IScsiDxe:AutoGen.obj
+ 0003:00001488 gEfiHiiStringProtocolGuid 000000000001ef68 IScsiDxe:AutoGen.obj
+ 0003:00001498 gEfiAcpiTableProtocolGuid 000000000001ef78 IScsiDxe:AutoGen.obj
+ 0003:000014a8 gEfiDns6ProtocolGuid 000000000001ef88 IScsiDxe:AutoGen.obj
+ 0003:000014b8 gEfiHiiConfigAccessProtocolGuid 000000000001ef98 IScsiDxe:AutoGen.obj
+ 0003:000014c8 gEfiHobListGuid 000000000001efa8 IScsiDxe:AutoGen.obj
+ 0003:000014d8 gEfiAdapterInfoMediaStateGuid 000000000001efb8 IScsiDxe:AutoGen.obj
+ 0003:000014e8 gEfiManagedNetworkServiceBindingProtocolGuid 000000000001efc8 IScsiDxe:AutoGen.obj
+ 0003:000014f8 gEfiFormBrowser2ProtocolGuid 000000000001efd8 IScsiDxe:AutoGen.obj
+ 0003:00001508 gEfiDriverBindingProtocolGuid 000000000001efe8 IScsiDxe:AutoGen.obj
+ 0003:00001518 gEfiEventExitBootServicesGuid 000000000001eff8 IScsiDxe:AutoGen.obj
+ 0003:00001528 gEfiTcp4ServiceBindingProtocolGuid 000000000001f008 IScsiDxe:AutoGen.obj
+ 0003:00001540 gIScsiConfigGuid 000000000001f020 IScsiDxe:AutoGen.obj
+ 0003:00001550 gEfiComponentNameProtocolGuid 000000000001f030 IScsiDxe:AutoGen.obj
+ 0003:00001560 gEfiDhcp4ProtocolGuid 000000000001f040 IScsiDxe:AutoGen.obj
+ 0003:00001570 gEfiTcp6ServiceBindingProtocolGuid 000000000001f050 IScsiDxe:AutoGen.obj
+ 0003:00001580 gEfiManagedNetworkProtocolGuid 000000000001f060 IScsiDxe:AutoGen.obj
+ 0003:00001590 gEfiTcp6ProtocolGuid 000000000001f070 IScsiDxe:AutoGen.obj
+ 0003:000015a0 gEfiTcp4ProtocolGuid 000000000001f080 IScsiDxe:AutoGen.obj
+ 0003:000015b0 gEfiHiiFontProtocolGuid 000000000001f090 IScsiDxe:AutoGen.obj
+ 0003:000015c0 gIScsiV4PrivateGuid 000000000001f0a0 IScsiDxe:IScsiDriver.obj
+ 0003:000015d0 gIScsiIp6DriverBinding 000000000001f0b0 IScsiDxe:IScsiDriver.obj
+ 0003:00001600 gIScsiV6PrivateGuid 000000000001f0e0 IScsiDxe:IScsiDriver.obj
+ 0003:00001610 gIScsiIp4DriverBinding 000000000001f0f0 IScsiDxe:IScsiDriver.obj
+ 0003:00001640 gIScsiComponentName2 000000000001f120 IScsiDxe:ComponentName.obj
+ 0003:00001658 gIScsiComponentName 000000000001f138 IScsiDxe:ComponentName.obj
+ 0003:00001670 mIScsiDriverNameTable 000000000001f150 IScsiDxe:ComponentName.obj
+ 0003:00001690 mIScsiHiiVendorDevicePath 000000000001f170 IScsiDxe:IScsiConfig.obj
+ 0003:000016b0 mVendorStorageName 000000000001f190 IScsiDxe:IScsiConfig.obj
+ 0003:000016e0 gIScsiAuthenticationInfo 000000000001f1c0 IScsiDxe:IScsiAuthenticationInfo.obj
+ 0003:000016f0 gIScsiInitiatorName 000000000001f1d0 IScsiDxe:IScsiInitiatorName.obj
+ 0003:00001700 gIScsiExtScsiPassThruProtocolTemplate 000000000001f1e0 IScsiDxe:IScsiExtScsiPassThru.obj
+ 0003:00001740 IScsiConfigVfrBin 000000000001f220 IScsiDxe:IScsiConfigVfr.obj
+ 0003:00001c88 mPrivate 000000000001f768 IScsiDxe:IScsiDriver.obj
+ 0003:00001c90 gIScsiControllerNameTable 000000000001f770 IScsiDxe:ComponentName.obj
+ 0003:00001c98 mCallbackInfo 000000000001f778 IScsiDxe:IScsiConfig.obj
+ 0003:00001ca0 mDataSegPad 000000000001f780 IScsiDxe:IScsiProto.obj
+ 0003:00001ca4 mIbftInstalled 000000000001f784 IScsiDxe:IScsiIbft.obj
+ 0003:00001ca8 gST 000000000001f788 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00001cb0 gBS 000000000001f790 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00001cb8 gImageHandle 000000000001f798 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00001cc0 gRT 000000000001f7a0 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0003:00001cc8 mDevicePathLibDevicePathUtilities 000000000001f7a8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0003:00001cd0 mHobList 000000000001f7b0 DxeHobLib:HobLib.obj
+ 0003:00001cd8 gHiiConfigRouting 000000000001f7b8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00001ce0 gHiiString 000000000001f7c0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00001ce8 gHiiFont 000000000001f7c8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00001cf0 gHiiImage 000000000001f7d0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00001cf8 gHiiDatabase 000000000001f7d8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00001d00 mUefiFormBrowser2 000000000001f7e0 UefiHiiLib:HiiLib.obj
+ 0003:00001d08 mZeroIp4Addr 000000000001f7e8 DxeNetLib:DxeNetLib.obj
+ 0003:00001d10 mPcd 000000000001f7f0 DxePcdLib:DxePcdLib.obj
+ 0003:00001d18 mTdDataReturned 000000000001f7f8 TdxLib:TdInfo.obj
+ 0003:00001d20 mTdSharedPageMask 000000000001f800 TdxLib:TdInfo.obj
+ 0003:00001d38 mTableKey 000000000001f818 <common>
+
+ entry point at 0001:00000350
+
+ Static symbols
+
+ 0001:0000001a InternalMemCopyMem.0 00000000000002da BaseMemoryLibRepStr:CopyMem.obj
+ 0001:0000002a @CopyBackward 00000000000002ea BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000033 @CopyBytes 00000000000002f3 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:0000014a @UseRepIo 000000000000040a BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000014c @SevNoRepIo_Done 000000000000040c BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000164 @IoReadFifo8_NoRep 0000000000000424 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000166 @IoReadFifo8_Loop 0000000000000426 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000016e @IoReadFifo8_Done 000000000000042e BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000187 @IoReadFifo16_NoRep 0000000000000447 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000189 @IoReadFifo16_Loop 0000000000000449 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000194 @IoReadFifo16_Done 0000000000000454 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001ac @IoReadFifo32_NoRep 000000000000046c BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001ae @IoReadFifo32_Loop 000000000000046e BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001b7 @IoReadFifo32_Done 0000000000000477 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001cf @IoWriteFifo8_NoRep 000000000000048f BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001d1 @IoWriteFifo8_Loop 0000000000000491 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001d9 @IoWriteFifo8_Done 0000000000000499 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001f2 @IoWriteFifo16_NoRep 00000000000004b2 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001f4 @IoWriteFifo16_Loop 00000000000004b4 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001ff @IoWriteFifo16_Done 00000000000004bf BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000217 @IoWriteFifo32_NoRep 00000000000004d7 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000219 @IoWriteFifo32_Loop 00000000000004d9 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000222 @IoWriteFifo32_Done 00000000000004e2 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000028e TdVmCall.no_return_data 000000000000054e BaseLib:TdVmcall.obj
+ 0001:0000033b TdCall.exit 00000000000005fb BaseLib:TdCall.obj
+ 0001:00017dc4 sha256_block_data_order 0000000000018084 f OpensslLibCrypto:sha256.obj
+ 0002:00000440 mChapHash 00000000000189a0 IScsiDxe:IScsiCHAP.obj
+ 0002:00005270 K256 000000000001d7d0 OpensslLibCrypto:sha256.obj
+ 0003:00001c80 memset_func 000000000001f760 OpensslLibCrypto:mem_clr.obj
+ 0003:00001ca5 mDebugIoPortChecked 000000000001f785 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0003:00001ca6 mDebugIoPortFound 000000000001f786 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0003:00001d28 mChapHashListString 000000000001f808 IScsiDxe:IScsiCHAP.obj
+ 0003:00001d31 mRunningOnQ35 000000000001f811 DxePciLibI440FxQ35:PciLib.obj
+ 0004:00000000 $pdata$_ModuleEntryPoint 000000000001f820 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0004:0000000c $pdata$ProcessLibraryConstructorList 000000000001f82c IScsiDxe:AutoGen.obj
+ 0004:00000018 $pdata$IScsiCheckAip 000000000001f838 IScsiDxe:IScsiDriver.obj
+ 0004:00000024 $pdata$IScsiSupported 000000000001f844 IScsiDxe:IScsiDriver.obj
+ 0004:00000030 $pdata$IScsiStart 000000000001f850 IScsiDxe:IScsiDriver.obj
+ 0004:0000003c $pdata$IScsiStop 000000000001f85c IScsiDxe:IScsiDriver.obj
+ 0004:00000048 $pdata$IScsiIp4DriverBindingStart 000000000001f868 IScsiDxe:IScsiDriver.obj
+ 0004:00000054 $pdata$IScsiIp4DriverBindingStop 000000000001f874 IScsiDxe:IScsiDriver.obj
+ 0004:00000060 $pdata$IScsiIp6DriverBindingStart 000000000001f880 IScsiDxe:IScsiDriver.obj
+ 0004:0000006c $pdata$IScsiIp6DriverBindingStop 000000000001f88c IScsiDxe:IScsiDriver.obj
+ 0004:00000078 $pdata$IScsiUnload 000000000001f898 IScsiDxe:IScsiDriver.obj
+ 0004:00000084 $pdata$IScsiDriverEntryPoint 000000000001f8a4 IScsiDxe:IScsiDriver.obj
+ 0004:00000090 $pdata$IScsiCHAPCalculateResponse 000000000001f8b0 IScsiDxe:IScsiCHAP.obj
+ 0004:0000009c $pdata$IScsiCHAPAuthTarget 000000000001f8bc IScsiDxe:IScsiCHAP.obj
+ 0004:000000a8 $pdata$IScsiCHAPOnRspReceived 000000000001f8c8 IScsiDxe:IScsiCHAP.obj
+ 0004:000000b4 $pdata$IScsiCHAPToSendReq 000000000001f8d4 IScsiDxe:IScsiCHAP.obj
+ 0004:000000c0 $pdata$IScsiCHAPInitHashList 000000000001f8e0 IScsiDxe:IScsiCHAP.obj
+ 0004:000000cc $pdata$IScsiAsciiStrToLun 000000000001f8ec IScsiDxe:IScsiMisc.obj
+ 0004:000000d8 $pdata$IScsiLunToUnicodeStr 000000000001f8f8 IScsiDxe:IScsiMisc.obj
+ 0004:000000e4 $pdata$IScsiAsciiStrToIp 000000000001f904 IScsiDxe:IScsiMisc.obj
+ 0004:000000f0 $pdata$IScsiMacAddrToStr 000000000001f910 IScsiDxe:IScsiMisc.obj
+ 0004:000000fc $pdata$IScsiHexToBin 000000000001f91c IScsiDxe:IScsiMisc.obj
+ 0004:00000108 $pdata$IScsiNetNtoi 000000000001f928 IScsiDxe:IScsiMisc.obj
+ 0004:00000114 $pdata$IScsiGenRandom 000000000001f934 IScsiDxe:IScsiMisc.obj
+ 0004:00000120 $pdata$IScsiCheckIpv6Support 000000000001f940 IScsiDxe:IScsiMisc.obj
+ 0004:0000012c $pdata$IScsiAddNic 000000000001f94c IScsiDxe:IScsiMisc.obj
+ 0004:00000138 $pdata$IScsiRemoveNic 000000000001f958 IScsiDxe:IScsiMisc.obj
+ 0004:00000144 $pdata$IScsiCreateAttempts 000000000001f964 IScsiDxe:IScsiMisc.obj
+ 0004:00000150 $pdata$IScsiCreateKeywords 000000000001f970 IScsiDxe:IScsiMisc.obj
+ 0004:0000015c $pdata$IScsiGetVariableAndSize 000000000001f97c IScsiDxe:IScsiMisc.obj
+ 0004:00000168 $pdata$IScsiCreateDriverData 000000000001f988 IScsiDxe:IScsiMisc.obj
+ 0004:00000174 $pdata$IScsiCleanDriverData 000000000001f994 IScsiDxe:IScsiMisc.obj
+ 0004:00000180 $pdata$IScsiDhcpIsConfigured 000000000001f9a0 IScsiDxe:IScsiMisc.obj
+ 0004:0000018c $pdata$IScsiDnsIsConfigured 000000000001f9ac IScsiDxe:IScsiMisc.obj
+ 0004:00000198 $pdata$IScsiGetConfigData 000000000001f9b8 IScsiDxe:IScsiMisc.obj
+ 0004:000001a4 $pdata$IScsiGetTcpConnDevicePath 000000000001f9c4 IScsiDxe:IScsiMisc.obj
+ 0004:000001b0 $pdata$IScsiOnExitBootService 000000000001f9d0 IScsiDxe:IScsiMisc.obj
+ 0004:000001bc $pdata$IScsiTestManagedDevice 000000000001f9dc IScsiDxe:IScsiMisc.obj
+ 0004:000001c8 $pdata$IScsiComponentNameGetDriverName 000000000001f9e8 IScsiDxe:ComponentName.obj
+ 0004:000001d4 $pdata$UpdateName 000000000001f9f4 IScsiDxe:ComponentName.obj
+ 0004:000001e0 $pdata$IScsiComponentNameGetControllerName 000000000001fa00 IScsiDxe:ComponentName.obj
+ 0004:000001ec $pdata$IScsiIpToStr 000000000001fa0c IScsiDxe:IScsiConfig.obj
+ 0004:000001f8 $pdata$IpIsUnicast 000000000001fa18 IScsiDxe:IScsiConfig.obj
+ 0004:00000204 $pdata$IScsiParseIsIdFromString 000000000001fa24 IScsiDxe:IScsiConfig.obj
+ 0004:00000210 $pdata$IScsiConvertIsIdToString 000000000001fa30 IScsiDxe:IScsiConfig.obj
+ 0004:0000021c $pdata$IScsiGetValue 000000000001fa3c IScsiDxe:IScsiConfig.obj
+ 0004:00000228 $pdata$IScsiGetAttemptIndexList 000000000001fa48 IScsiDxe:IScsiConfig.obj
+ 0004:00000234 $pdata$IScsiConvertAttemptConfigDataToIfrNvData 000000000001fa54 IScsiDxe:IScsiConfig.obj
+ 0004:00000240 $pdata$IScsiConvertAttemptConfigDataToIfrNvDataByKeyword 000000000001fa60 IScsiDxe:IScsiConfig.obj
+ 0004:0000024c $pdata$IScsiConvertIfrNvDataToAttemptConfigData 000000000001fa6c IScsiDxe:IScsiConfig.obj
+ 0004:00000258 $pdata$IScsiConvertlfrNvDataToAttemptConfigDataByKeyword 000000000001fa78 IScsiDxe:IScsiConfig.obj
+ 0004:00000264 $pdata$IScsiCreateOpCode 000000000001fa84 IScsiDxe:IScsiConfig.obj
+ 0004:00000270 $pdata$IScsiConfigUpdateAttempt 000000000001fa90 IScsiDxe:IScsiConfig.obj
+ 0004:0000027c $pdata$IScsiConfigAddAttempt 000000000001fa9c IScsiDxe:IScsiConfig.obj
+ 0004:00000288 $pdata$IScsiConfigAddAttemptsByKeywords 000000000001faa8 IScsiDxe:IScsiConfig.obj
+ 0004:00000294 $pdata$IScsiConfigDeleteAttempts 000000000001fab4 IScsiDxe:IScsiConfig.obj
+ 0004:000002a0 $pdata$IScsiConfigDisplayDeleteAttempts 000000000001fac0 IScsiDxe:IScsiConfig.obj
+ 0004:000002ac $pdata$IScsiConfigDisplayOrderAttempts 000000000001facc IScsiDxe:IScsiConfig.obj
+ 0004:000002b8 $pdata$IScsiConfigOrderAttempts 000000000001fad8 IScsiDxe:IScsiConfig.obj
+ 0004:000002c4 $pdata$IScsiConfigProcessDefault 000000000001fae4 IScsiDxe:IScsiConfig.obj
+ 0004:000002d0 $pdata$IScsiFormExtractConfig 000000000001faf0 IScsiDxe:IScsiConfig.obj
+ 0004:000002dc $pdata$IScsiFormRouteConfig 000000000001fafc IScsiDxe:IScsiConfig.obj
+ 0004:000002e8 $pdata$IScsiFormCallback 000000000001fb08 IScsiDxe:IScsiConfig.obj
+ 0004:000002f4 $pdata$IScsiConfigFormInit 000000000001fb14 IScsiDxe:IScsiConfig.obj
+ 0004:00000300 $pdata$IScsiConfigFormUnload 000000000001fb20 IScsiDxe:IScsiConfig.obj
+ 0004:0000030c $pdata$IScsiConnReset 000000000001fb2c IScsiDxe:IScsiProto.obj
+ 0004:00000318 $pdata$IScsiCreateConnection 000000000001fb38 IScsiDxe:IScsiProto.obj
+ 0004:00000324 $pdata$IScsiGetIp6NicInfo 000000000001fb44 IScsiDxe:IScsiProto.obj
+ 0004:00000330 $pdata$IScsiSessionLogin 000000000001fb50 IScsiDxe:IScsiProto.obj
+ 0004:0000033c $pdata$IScsiSessionReLogin 000000000001fb5c IScsiDxe:IScsiProto.obj
+ 0004:00000348 $pdata$IScsiAddKeyValuePair 000000000001fb68 IScsiDxe:IScsiProto.obj
+ 0004:00000354 $pdata$IScsiPrepareLoginReq 000000000001fb74 IScsiDxe:IScsiProto.obj
+ 0004:00000360 $pdata$IScsiProcessLoginRsp 000000000001fb80 IScsiDxe:IScsiProto.obj
+ 0004:0000036c $pdata$IScsiUpdateTargetAddress 000000000001fb8c IScsiDxe:IScsiProto.obj
+ 0004:00000378 $pdata$IScsiFreeNbufList 000000000001fb98 IScsiDxe:IScsiProto.obj
+ 0004:00000384 $pdata$IScsiReceivePdu 000000000001fba4 IScsiDxe:IScsiProto.obj
+ 0004:00000390 $pdata$IScsiCheckOpParams 000000000001fbb0 IScsiDxe:IScsiProto.obj
+ 0004:0000039c $pdata$IScsiFillOpParams 000000000001fbbc IScsiDxe:IScsiProto.obj
+ 0004:000003a8 $pdata$IScsiBuildKeyValueList 000000000001fbc8 IScsiDxe:IScsiProto.obj
+ 0004:000003b4 $pdata$IScsiGetValueByKeyFromList 000000000001fbd4 IScsiDxe:IScsiProto.obj
+ 0004:000003c0 $pdata$IScsiFreeKeyValueList 000000000001fbe0 IScsiDxe:IScsiProto.obj
+ 0004:000003cc $pdata$IScsiNormalizeName 000000000001fbec IScsiDxe:IScsiProto.obj
+ 0004:000003d8 $pdata$IScsiNewTcb 000000000001fbf8 IScsiDxe:IScsiProto.obj
+ 0004:000003e4 $pdata$IScsiNewDataSegment 000000000001fc04 IScsiDxe:IScsiProto.obj
+ 0004:000003f0 $pdata$IScsiNewScsiCmdPdu 000000000001fc10 IScsiDxe:IScsiProto.obj
+ 0004:000003fc $pdata$IScsiNewDataOutPdu 000000000001fc1c IScsiDxe:IScsiProto.obj
+ 0004:00000408 $pdata$IScsiSendDataOutPduSequence 000000000001fc28 IScsiDxe:IScsiProto.obj
+ 0004:00000414 $pdata$IScsiOnDataInRcvd 000000000001fc34 IScsiDxe:IScsiProto.obj
+ 0004:00000420 $pdata$IScsiOnR2TRcvd 000000000001fc40 IScsiDxe:IScsiProto.obj
+ 0004:0000042c $pdata$IScsiOnScsiRspRcvd 000000000001fc4c IScsiDxe:IScsiProto.obj
+ 0004:00000438 $pdata$IScsiOnNopInRcvd 000000000001fc58 IScsiDxe:IScsiProto.obj
+ 0004:00000444 $pdata$IScsiExecuteScsiCommand 000000000001fc64 IScsiDxe:IScsiProto.obj
+ 0004:00000450 $pdata$IScsiSessionInit 000000000001fc70 IScsiDxe:IScsiProto.obj
+ 0004:0000045c $pdata$IScsiSessionAbort 000000000001fc7c IScsiDxe:IScsiProto.obj
+ 0004:00000468 $pdata$IScsiGetInitiatorName 000000000001fc88 IScsiDxe:IScsiInitiatorName.obj
+ 0004:00000474 $pdata$IScsiSetInitiatorName 000000000001fc94 IScsiDxe:IScsiInitiatorName.obj
+ 0004:00000480 $pdata$IScsiInitIbfTableHeader 000000000001fca0 IScsiDxe:IScsiIbft.obj
+ 0004:0000048c $pdata$IScsiAddHeapItem 000000000001fcac IScsiDxe:IScsiIbft.obj
+ 0004:00000498 $pdata$IScsiMapV4ToV6Addr 000000000001fcb8 IScsiDxe:IScsiIbft.obj
+ 0004:000004a4 $pdata$IScsiFillNICAndTargetSections 000000000001fcc4 IScsiDxe:IScsiIbft.obj
+ 0004:000004b0 $pdata$IScsiPublishIbft 000000000001fcd0 IScsiDxe:IScsiIbft.obj
+ 0004:000004bc $pdata$IScsiDhcp6ExtractRootPath 000000000001fcdc IScsiDxe:IScsiDhcp6.obj
+ 0004:000004c8 $pdata$IScsiDhcp6ParseReply 000000000001fce8 IScsiDxe:IScsiDhcp6.obj
+ 0004:000004d4 $pdata$IScsiDoDhcp6 000000000001fcf4 IScsiDxe:IScsiDhcp6.obj
+ 0004:000004e0 $pdata$IScsiDhcpExtractRootPath 000000000001fd00 IScsiDxe:IScsiDhcp.obj
+ 0004:000004ec $pdata$IScsiDhcpSelectOffer 000000000001fd0c IScsiDxe:IScsiDhcp.obj
+ 0004:000004f8 $pdata$IScsiParseDhcpAck 000000000001fd18 IScsiDxe:IScsiDhcp.obj
+ 0004:00000504 $pdata$IScsiDoDhcp 000000000001fd24 IScsiDxe:IScsiDhcp.obj
+ 0004:00000510 $pdata$IScsiExtScsiPassThruFunction 000000000001fd30 IScsiDxe:IScsiExtScsiPassThru.obj
+ 0004:0000051c $pdata$IScsiExtScsiPassThruGetNextTargetLun 000000000001fd3c IScsiDxe:IScsiExtScsiPassThru.obj
+ 0004:00000528 $pdata$IScsiExtScsiPassThruBuildDevicePath 000000000001fd48 IScsiDxe:IScsiExtScsiPassThru.obj
+ 0004:00000534 $pdata$IScsiExtScsiPassThruGetTargetLun 000000000001fd54 IScsiDxe:IScsiExtScsiPassThru.obj
+ 0004:00000540 $pdata$IScsiExtScsiPassThruGetNextTarget 000000000001fd60 IScsiDxe:IScsiExtScsiPassThru.obj
+ 0004:0000054c $pdata$IScsiDns4 000000000001fd6c IScsiDxe:IScsiDns.obj
+ 0004:00000558 $pdata$IScsiDns6 000000000001fd78 IScsiDxe:IScsiDns.obj
+ 0004:00000564 $pdata$CopyMem 000000000001fd84 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0004:00000570 $pdata$CopyGuid 000000000001fd90 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0004:0000057c $pdata$CompareGuid 000000000001fd9c BaseMemoryLibRepStr:MemLibGuid.obj
+ 0004:00000588 $pdata$CompareMem 000000000001fda8 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0004:00000594 $pdata$ZeroMem 000000000001fdb4 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0004:000005a0 $pdata$SetMem 000000000001fdc0 BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0004:000005ac $pdata$InternalBaseLibIsListValid 000000000001fdcc BaseLib:LinkedList.obj
+ 0004:000005b8 $pdata$InitializeListHead 000000000001fdd8 BaseLib:LinkedList.obj
+ 0004:000005c4 $pdata$InsertTailList 000000000001fde4 BaseLib:LinkedList.obj
+ 0004:000005d0 $pdata$IsListEmpty 000000000001fdf0 BaseLib:LinkedList.obj
+ 0004:000005dc $pdata$RemoveEntryList 000000000001fdfc BaseLib:LinkedList.obj
+ 0004:000005e8 $pdata$StrLen 000000000001fe08 BaseLib:String.obj
+ 0004:000005f4 $pdata$StrCmp 000000000001fe14 BaseLib:String.obj
+ 0004:00000600 $pdata$StrnCmp 000000000001fe20 BaseLib:String.obj
+ 0004:0000060c $pdata$StrStr 000000000001fe2c BaseLib:String.obj
+ 0004:00000618 $pdata$StrHexToUint64 000000000001fe38 BaseLib:String.obj
+ 0004:00000624 $pdata$AsciiStrLen 000000000001fe44 BaseLib:String.obj
+ 0004:00000630 $pdata$AsciiStrCmp 000000000001fe50 BaseLib:String.obj
+ 0004:0000063c $pdata$AsciiStrnCmp 000000000001fe5c BaseLib:String.obj
+ 0004:00000648 $pdata$AsciiStrHexToUint64 000000000001fe68 BaseLib:String.obj
+ 0004:00000654 $pdata$StrnLenS 000000000001fe74 BaseLib:SafeString.obj
+ 0004:00000660 $pdata$StrCpyS 000000000001fe80 BaseLib:SafeString.obj
+ 0004:0000066c $pdata$StrnCpyS 000000000001fe8c BaseLib:SafeString.obj
+ 0004:00000678 $pdata$StrCatS 000000000001fe98 BaseLib:SafeString.obj
+ 0004:00000684 $pdata$StrDecimalToUintnS 000000000001fea4 BaseLib:SafeString.obj
+ 0004:00000690 $pdata$StrHexToUintnS 000000000001feb0 BaseLib:SafeString.obj
+ 0004:0000069c $pdata$AsciiStrCpyS 000000000001febc BaseLib:SafeString.obj
+ 0004:000006a8 $pdata$AsciiStrDecimalToUintnS 000000000001fec8 BaseLib:SafeString.obj
+ 0004:000006b4 $pdata$AsciiStrHexToUintnS 000000000001fed4 BaseLib:SafeString.obj
+ 0004:000006c0 $pdata$UnicodeStrToAsciiStrS 000000000001fee0 BaseLib:SafeString.obj
+ 0004:000006cc $pdata$AsciiStrToUnicodeStrS 000000000001feec BaseLib:SafeString.obj
+ 0004:000006d8 $pdata$AsciiStrToIpv6Address 000000000001fef8 BaseLib:SafeString.obj
+ 0004:000006e4 $pdata$ReadUnaligned16 000000000001ff04 BaseLib:Unaligned.obj
+ 0004:000006f0 $pdata$WriteUnaligned16 000000000001ff10 BaseLib:Unaligned.obj
+ 0004:000006fc $pdata$ReadUnaligned32 000000000001ff1c BaseLib:Unaligned.obj
+ 0004:00000708 $pdata$WriteUnaligned32 000000000001ff28 BaseLib:Unaligned.obj
+ 0004:00000714 $pdata$ReadUnaligned64 000000000001ff34 BaseLib:Unaligned.obj
+ 0004:00000720 $pdata$UnicodeVSPrint 000000000001ff40 BasePrintLib:PrintLib.obj
+ 0004:0000072c $pdata$UnicodeSPrint 000000000001ff4c BasePrintLib:PrintLib.obj
+ 0004:00000738 $pdata$UnicodeVSPrintAsciiFormat 000000000001ff58 BasePrintLib:PrintLib.obj
+ 0004:00000744 $pdata$UnicodeValueToStringS 000000000001ff64 BasePrintLib:PrintLib.obj
+ 0004:00000750 $pdata$AsciiSPrint 000000000001ff70 BasePrintLib:PrintLib.obj
+ 0004:0000075c $pdata$BasePrintLibValueToString 000000000001ff7c BasePrintLib:PrintLibInternal.obj
+ 0004:00000768 $pdata$BasePrintLibConvertValueToStringS 000000000001ff88 BasePrintLib:PrintLibInternal.obj
+ 0004:00000774 $pdata$BasePrintLibSPrintMarker 000000000001ff94 BasePrintLib:PrintLibInternal.obj
+ 0004:00000780 $pdata$BasePrintLibSPrint 000000000001ffa0 BasePrintLib:PrintLibInternal.obj
+ 0004:0000078c $pdata$DebugPrint 000000000001ffac PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000798 $pdata$DebugPrintMarker 000000000001ffb8 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:000007a4 $pdata$DebugAssert 000000000001ffc4 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:000007b0 $pdata$PlatformDebugLibIoPortFound 000000000001ffd0 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0004:000007bc $pdata$InternalAllocatePool 000000000001ffdc UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:000007c8 $pdata$AllocateZeroPool 000000000001ffe8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:000007d4 $pdata$InternalAllocateCopyPool 000000000001fff4 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:000007e0 $pdata$InternalReallocatePool 0000000000020000 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:000007ec $pdata$FreePool 000000000002000c UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:000007f8 $pdata$DevicePathType 0000000000020018 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000804 $pdata$DevicePathSubType 0000000000020024 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000810 $pdata$DevicePathNodeLength 0000000000020030 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:0000081c $pdata$NextDevicePathNode 000000000002003c UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000828 $pdata$IsDevicePathEnd 0000000000020048 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000834 $pdata$SetDevicePathNodeLength 0000000000020054 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000840 $pdata$DevicePathFromHandle 0000000000020060 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:0000084c $pdata$CompareIso639LanguageCode 000000000002006c UefiLib:UefiLib.obj
+ 0004:00000858 $pdata$EfiGetSystemConfigurationTable 0000000000020078 UefiLib:UefiLib.obj
+ 0004:00000864 $pdata$EfiTestChildHandle 0000000000020084 UefiLib:UefiLib.obj
+ 0004:00000870 $pdata$IsLanguageSupported 0000000000020090 UefiLib:UefiLib.obj
+ 0004:0000087c $pdata$LookupUnicodeString2 000000000002009c UefiLib:UefiLib.obj
+ 0004:00000888 $pdata$AddUnicodeString2 00000000000200a8 UefiLib:UefiLib.obj
+ 0004:00000894 $pdata$FreeUnicodeStringTable 00000000000200b4 UefiLib:UefiLib.obj
+ 0004:000008a0 $pdata$GetVariable2 00000000000200c0 UefiLib:UefiLib.obj
+ 0004:000008ac $pdata$EfiLibInstallDriverBindingComponentName2 00000000000200cc UefiLib:UefiDriverModel.obj
+ 0004:000008b8 $pdata$EfiLibUninstallDriverBindingComponentName2 00000000000200d8 UefiLib:UefiDriverModel.obj
+ 0004:000008c4 $pdata$UefiLibGetStringWidth 00000000000200e4 UefiLib:Console.obj
+ 0004:000008d0 $pdata$CreatePopUp 00000000000200f0 UefiLib:Console.obj
+ 0004:000008dc $pdata$AsciiInternalPrint 00000000000200fc UefiLib:UefiLibPrint.obj
+ 0004:000008e8 $pdata$AsciiPrint 0000000000020108 UefiLib:UefiLibPrint.obj
+ 0004:000008f4 $pdata$GetHobList 0000000000020114 DxeHobLib:HobLib.obj
+ 0004:00000900 $pdata$GetNextHob 0000000000020120 DxeHobLib:HobLib.obj
+ 0004:0000090c $pdata$Md5Init 000000000002012c BaseCryptLib:CryptMd5.obj
+ 0004:00000918 $pdata$HiiSetString 0000000000020138 UefiHiiLib:HiiString.obj
+ 0004:00000924 $pdata$HiiAddPackages 0000000000020144 UefiHiiLib:HiiLib.obj
+ 0004:00000930 $pdata$InternalHiiBrowserCallback 0000000000020150 UefiHiiLib:HiiLib.obj
+ 0004:0000093c $pdata$HiiConstructConfigHdr 000000000002015c UefiHiiLib:HiiLib.obj
+ 0004:00000948 $pdata$InternalHiiCompareSubString 0000000000020168 UefiHiiLib:HiiLib.obj
+ 0004:00000954 $pdata$HiiIsConfigHdrMatch 0000000000020174 UefiHiiLib:HiiLib.obj
+ 0004:00000960 $pdata$HiiGetBrowserData 0000000000020180 UefiHiiLib:HiiLib.obj
+ 0004:0000096c $pdata$HiiSetBrowserData 000000000002018c UefiHiiLib:HiiLib.obj
+ 0004:00000978 $pdata$HiiAllocateOpCodeHandle 0000000000020198 UefiHiiLib:HiiLib.obj
+ 0004:00000984 $pdata$HiiFreeOpCodeHandle 00000000000201a4 UefiHiiLib:HiiLib.obj
+ 0004:00000990 $pdata$InternalHiiGrowOpCodeHandle 00000000000201b0 UefiHiiLib:HiiLib.obj
+ 0004:0000099c $pdata$InternalHiiCreateOpCodeExtended 00000000000201bc UefiHiiLib:HiiLib.obj
+ 0004:000009a8 $pdata$InternalHiiAppendOpCodes 00000000000201c8 UefiHiiLib:HiiLib.obj
+ 0004:000009b4 $pdata$HiiCreateEndOpCode 00000000000201d4 UefiHiiLib:HiiLib.obj
+ 0004:000009c0 $pdata$HiiCreateGuidOpCode 00000000000201e0 UefiHiiLib:HiiLib.obj
+ 0004:000009cc $pdata$HiiCreateGotoOpCode 00000000000201ec UefiHiiLib:HiiLib.obj
+ 0004:000009d8 $pdata$HiiCreateNumericOpCode 00000000000201f8 UefiHiiLib:HiiLib.obj
+ 0004:000009e4 $pdata$HiiCreateStringOpCode 0000000000020204 UefiHiiLib:HiiLib.obj
+ 0004:000009f0 $pdata$HiiCreateOrderedListOpCode 0000000000020210 UefiHiiLib:HiiLib.obj
+ 0004:000009fc $pdata$InternalHiiUpdateFormPackageData 000000000002021c UefiHiiLib:HiiLib.obj
+ 0004:00000a08 $pdata$HiiUpdateForm 0000000000020228 UefiHiiLib:HiiLib.obj
+ 0004:00000a14 $pdata$HiiGetSupportedLanguages 0000000000020234 UefiHiiLib:HiiLanguage.obj
+ 0004:00000a20 $pdata$NetIp4IsUnicast 0000000000020240 DxeNetLib:DxeNetLib.obj
+ 0004:00000a2c $pdata$NetListRemoveHead 000000000002024c DxeNetLib:DxeNetLib.obj
+ 0004:00000a38 $pdata$NetLibCreateServiceChild 0000000000020258 DxeNetLib:DxeNetLib.obj
+ 0004:00000a44 $pdata$NetLibDestroyServiceChild 0000000000020264 DxeNetLib:DxeNetLib.obj
+ 0004:00000a50 $pdata$NetLibGetSnpHandle 0000000000020270 DxeNetLib:DxeNetLib.obj
+ 0004:00000a5c $pdata$NetLibGetVlanId 000000000002027c DxeNetLib:DxeNetLib.obj
+ 0004:00000a68 $pdata$NetLibGetMacAddress 0000000000020288 DxeNetLib:DxeNetLib.obj
+ 0004:00000a74 $pdata$NetLibDetectMedia 0000000000020294 DxeNetLib:DxeNetLib.obj
+ 0004:00000a80 $pdata$NetLibDetectMediaWaitTimeout 00000000000202a0 DxeNetLib:DxeNetLib.obj
+ 0004:00000a8c $pdata$NetLibGetNicHandle 00000000000202ac DxeNetLib:DxeNetLib.obj
+ 0004:00000a98 $pdata$NetLibAsciiStrToIp4 00000000000202b8 DxeNetLib:DxeNetLib.obj
+ 0004:00000aa4 $pdata$NetLibStrToIp4 00000000000202c4 DxeNetLib:DxeNetLib.obj
+ 0004:00000ab0 $pdata$NetbufAllocStruct 00000000000202d0 DxeNetLib:NetBuffer.obj
+ 0004:00000abc $pdata$NetbufAlloc 00000000000202dc DxeNetLib:NetBuffer.obj
+ 0004:00000ac8 $pdata$NetbufFreeVector 00000000000202e8 DxeNetLib:NetBuffer.obj
+ 0004:00000ad4 $pdata$NetbufFree 00000000000202f4 DxeNetLib:NetBuffer.obj
+ 0004:00000ae0 $pdata$NetbufFreeList 0000000000020300 DxeNetLib:NetBuffer.obj
+ 0004:00000aec $pdata$NetbufGetByte 000000000002030c DxeNetLib:NetBuffer.obj
+ 0004:00000af8 $pdata$NetbufSetBlock 0000000000020318 DxeNetLib:NetBuffer.obj
+ 0004:00000b04 $pdata$NetbufFromExt 0000000000020324 DxeNetLib:NetBuffer.obj
+ 0004:00000b10 $pdata$NetbufBuildExt 0000000000020330 DxeNetLib:NetBuffer.obj
+ 0004:00000b1c $pdata$NetbufFromBufList 000000000002033c DxeNetLib:NetBuffer.obj
+ 0004:00000b28 $pdata$NetbufAllocSpace 0000000000020348 DxeNetLib:NetBuffer.obj
+ 0004:00000b34 $pdata$NetblockTrim 0000000000020354 DxeNetLib:NetBuffer.obj
+ 0004:00000b40 $pdata$NetbufTrim 0000000000020360 DxeNetLib:NetBuffer.obj
+ 0004:00000b4c $pdata$NetbufCopy 000000000002036c DxeNetLib:NetBuffer.obj
+ 0004:00000b58 $pdata$NetbufQueCopy 0000000000020378 DxeNetLib:NetBuffer.obj
+ 0004:00000b64 $pdata$NetbufQueFlush 0000000000020384 DxeNetLib:NetBuffer.obj
+ 0004:00000b70 $pdata$TcpIoGetMapping 0000000000020390 DxeTcpIoLib:DxeTcpIoLib.obj
+ 0004:00000b7c $pdata$TcpIoCreateSocket 000000000002039c DxeTcpIoLib:DxeTcpIoLib.obj
+ 0004:00000b88 $pdata$TcpIoDestroySocket 00000000000203a8 DxeTcpIoLib:DxeTcpIoLib.obj
+ 0004:00000b94 $pdata$TcpIoTransmit 00000000000203b4 DxeTcpIoLib:DxeTcpIoLib.obj
+ 0004:00000ba0 $pdata$TcpIoReceive 00000000000203c0 DxeTcpIoLib:DxeTcpIoLib.obj
+ 0004:00000bac $pdata$GetPcdProtocol 00000000000203cc DxePcdLib:DxePcdLib.obj
+ 0004:00000bb8 $pdata$SetMem16 00000000000203d8 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0004:00000bc4 $pdata$IoWriteFifo8 00000000000203e4 BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0004:00000bd0 $pdata$IoRead32 00000000000203f0 BaseIoLibIntrinsicSev:IoLibMsc.obj
+ 0004:00000bdc $pdata$IoWrite32 00000000000203fc BaseIoLibIntrinsicSev:IoLibMsc.obj
+ 0004:00000be8 $pdata$TdIoRead8 0000000000020408 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0004:00000bf4 $pdata$TdIoRead32 0000000000020414 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0004:00000c00 $pdata$TdIoWrite8 0000000000020420 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0004:00000c0c $pdata$TdIoWrite32 000000000002042c BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0004:00000c18 $pdata$PciExpressRead32 0000000000020438 BasePciExpressLib:PciExpressLib.obj
+ 0004:00000c24 $pdata$PciCf8Read32 0000000000020444 BasePciCf8Lib:PciCf8Lib.obj
+ 0004:00000c30 $pdata$MD5_Update 0000000000020450 OpensslLibCrypto:md5_dgst.obj
+ 0004:00000c3c $pdata$MD5_Final 000000000002045c OpensslLibCrypto:md5_dgst.obj
+ 0004:00000c48 $pdata$md5_block_data_order 0000000000020468 OpensslLibCrypto:md5_dgst.obj
+ 0004:00000c54 $pdata$SHA256_Init 0000000000020474 OpensslLibCrypto:sha256.obj
+ 0004:00000c60 $pdata$SHA256_Update 0000000000020480 OpensslLibCrypto:sha256.obj
+ 0004:00000c6c $pdata$SHA256_Final 000000000002048c OpensslLibCrypto:sha256.obj
+ 0004:00000c78 $pdata$sha256_block_data_order 0000000000020498 OpensslLibCrypto:sha256.obj
+ 0004:00000c84 $pdata$SaveAndDisableInterrupts 00000000000204a4 BaseLib:Cpu.obj
+ 0004:00000c90 $pdata$GetTdInfo 00000000000204b0 TdxLib:TdInfo.obj
+ 0004:00000c9c $pdata$TdSharedPageMask 00000000000204bc TdxLib:TdInfo.obj
+ 0004:00000ca8 $pdata$MmioRead32 00000000000204c8 BaseIoLibIntrinsicSev:IoLib.obj
+ 0005:00000000 $unwind$IScsiOnNopInRcvd 00000000000204e0 IScsiDxe:IScsiProto.obj
+ 0005:00000000 $unwind$ReadUnaligned32 00000000000204e0 BaseLib:Unaligned.obj
+ 0005:00000000 $unwind$IoRead32 00000000000204e0 BaseIoLibIntrinsicSev:IoLibMsc.obj
+ 0005:00000000 $unwind$_ModuleEntryPoint 00000000000204e0 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0005:00000000 $unwind$NetbufFree 00000000000204e0 DxeNetLib:NetBuffer.obj
+ 0005:00000000 $unwind$DevicePathType 00000000000204e0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000000 $unwind$InternalBaseLibIsListValid 00000000000204e0 BaseLib:LinkedList.obj
+ 0005:00000000 $unwind$ReadUnaligned16 00000000000204e0 BaseLib:Unaligned.obj
+ 0005:00000000 $unwind$HiiAllocateOpCodeHandle 00000000000204e0 UefiHiiLib:HiiLib.obj
+ 0005:00000000 $unwind$NetListRemoveHead 00000000000204e0 DxeNetLib:DxeNetLib.obj
+ 0005:00000000 $unwind$IsListEmpty 00000000000204e0 BaseLib:LinkedList.obj
+ 0005:00000000 $unwind$DevicePathSubType 00000000000204e0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000000 $unwind$IoWrite32 00000000000204e0 BaseIoLibIntrinsicSev:IoLibMsc.obj
+ 0005:00000000 $unwind$ReadUnaligned64 00000000000204e0 BaseLib:Unaligned.obj
+ 0005:00000000 $unwind$InitializeListHead 00000000000204e0 BaseLib:LinkedList.obj
+ 0005:00000000 $unwind$IScsiFreeNbufList 00000000000204e0 IScsiDxe:IScsiProto.obj
+ 0005:00000000 $unwind$GetNextHob 00000000000204e0 DxeHobLib:HobLib.obj
+ 0005:00000000 $unwind$HiiFreeOpCodeHandle 00000000000204e0 UefiHiiLib:HiiLib.obj
+ 0005:00000000 $unwind$IScsiFreeKeyValueList 00000000000204e0 IScsiDxe:IScsiProto.obj
+ 0005:00000000 $unwind$NextDevicePathNode 00000000000204e0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000000 $unwind$RemoveEntryList 00000000000204e0 BaseLib:LinkedList.obj
+ 0005:00000000 $unwind$AllocateZeroPool 00000000000204e0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000000 $unwind$SaveAndDisableInterrupts 00000000000204e0 BaseLib:Cpu.obj
+ 0005:00000000 $unwind$Md5Init 00000000000204e0 BaseCryptLib:CryptMd5.obj
+ 0005:00000000 $unwind$NetbufQueFlush 00000000000204e0 DxeNetLib:NetBuffer.obj
+ 0005:00000000 $unwind$SHA256_Init 00000000000204e0 OpensslLibCrypto:sha256.obj
+ 0005:00000000 $unwind$PciExpressRead32 00000000000204e0 BasePciExpressLib:PciExpressLib.obj
+ 0005:00000000 $unwind$IScsiOnExitBootService 00000000000204e0 IScsiDxe:IScsiMisc.obj
+ 0005:00000000 $unwind$DevicePathNodeLength 00000000000204e0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000008 $unwind$AsciiInternalPrint 00000000000204e8 UefiLib:UefiLibPrint.obj
+ 0005:00000008 $unwind$SHA256_Update 00000000000204e8 OpensslLibCrypto:sha256.obj
+ 0005:00000008 $unwind$LookupUnicodeString2 00000000000204e8 UefiLib:UefiLib.obj
+ 0005:00000008 $unwind$NetbufTrim 00000000000204e8 DxeNetLib:NetBuffer.obj
+ 0005:00000008 $unwind$ProcessLibraryConstructorList 00000000000204e8 IScsiDxe:AutoGen.obj
+ 0005:00000008 $unwind$MD5_Final 00000000000204e8 OpensslLibCrypto:md5_dgst.obj
+ 0005:00000008 $unwind$MD5_Update 00000000000204e8 OpensslLibCrypto:md5_dgst.obj
+ 0005:00000008 $unwind$EfiGetSystemConfigurationTable 00000000000204e8 UefiLib:UefiLib.obj
+ 0005:00000008 $unwind$InternalHiiCreateOpCodeExtended 00000000000204e8 UefiHiiLib:HiiLib.obj
+ 0005:00000008 $unwind$TcpIoTransmit 00000000000204e8 DxeTcpIoLib:DxeTcpIoLib.obj
+ 0005:00000008 $unwind$IScsiGetAttemptIndexList 00000000000204e8 IScsiDxe:IScsiConfig.obj
+ 0005:00000020 $unwind$IScsiCheckAip 0000000000020500 IScsiDxe:IScsiDriver.obj
+ 0005:00000034 $unwind$IScsiSupported 0000000000020514 IScsiDxe:IScsiDriver.obj
+ 0005:00000050 $unwind$IScsiStart 0000000000020530 IScsiDxe:IScsiDriver.obj
+ 0005:00000068 $unwind$IScsiStop 0000000000020548 IScsiDxe:IScsiDriver.obj
+ 0005:00000080 $unwind$GetHobList 0000000000020560 DxeHobLib:HobLib.obj
+ 0005:00000080 $unwind$IScsiNetNtoi 0000000000020560 IScsiDxe:IScsiMisc.obj
+ 0005:00000080 $unwind$DevicePathFromHandle 0000000000020560 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000080 $unwind$FreePool 0000000000020560 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000080 $unwind$InternalAllocatePool 0000000000020560 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000080 $unwind$IScsiIp4DriverBindingStart 0000000000020560 IScsiDxe:IScsiDriver.obj
+ 0005:00000080 $unwind$TdSharedPageMask 0000000000020560 TdxLib:TdInfo.obj
+ 0005:00000080 $unwind$GetPcdProtocol 0000000000020560 DxePcdLib:DxePcdLib.obj
+ 0005:00000080 $unwind$IScsiNormalizeName 0000000000020560 IScsiDxe:IScsiProto.obj
+ 0005:00000080 $unwind$IScsiIp6DriverBindingStart 0000000000020560 IScsiDxe:IScsiDriver.obj
+ 0005:00000080 $unwind$PlatformDebugLibIoPortFound 0000000000020560 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0005:00000088 $unwind$IScsiIp4DriverBindingStop 0000000000020568 IScsiDxe:IScsiDriver.obj
+ 0005:00000088 $unwind$TdIoRead8 0000000000020568 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:00000088 $unwind$HiiCreateEndOpCode 0000000000020568 UefiHiiLib:HiiLib.obj
+ 0005:00000088 $unwind$IScsiGetInitiatorName 0000000000020568 IScsiDxe:IScsiInitiatorName.obj
+ 0005:00000088 $unwind$IScsiComponentNameGetDriverName 0000000000020568 IScsiDxe:ComponentName.obj
+ 0005:00000088 $unwind$IScsiIp6DriverBindingStop 0000000000020568 IScsiDxe:IScsiDriver.obj
+ 0005:00000090 $unwind$IScsiUnload 0000000000020570 IScsiDxe:IScsiDriver.obj
+ 0005:000000a0 $unwind$IScsiDriverEntryPoint 0000000000020580 IScsiDxe:IScsiDriver.obj
+ 0005:000000ac $unwind$IScsiCheckOpParams 000000000002058c IScsiDxe:IScsiProto.obj
+ 0005:000000ac $unwind$IScsiLunToUnicodeStr 000000000002058c IScsiDxe:IScsiMisc.obj
+ 0005:000000ac $unwind$IScsiAddKeyValuePair 000000000002058c IScsiDxe:IScsiProto.obj
+ 0005:000000ac $unwind$IScsiCHAPCalculateResponse 000000000002058c IScsiDxe:IScsiCHAP.obj
+ 0005:000000c8 $unwind$IScsiCHAPAuthTarget 00000000000205a8 IScsiDxe:IScsiCHAP.obj
+ 0005:000000d8 $unwind$IScsiCHAPOnRspReceived 00000000000205b8 IScsiDxe:IScsiCHAP.obj
+ 0005:000000f4 $unwind$IScsiCHAPToSendReq 00000000000205d4 IScsiDxe:IScsiCHAP.obj
+ 0005:00000110 $unwind$IScsiCHAPInitHashList 00000000000205f0 IScsiDxe:IScsiCHAP.obj
+ 0005:00000128 $unwind$IScsiAsciiStrToLun 0000000000020608 IScsiDxe:IScsiMisc.obj
+ 0005:0000013c $unwind$NetbufGetByte 000000000002061c DxeNetLib:NetBuffer.obj
+ 0005:0000013c $unwind$FreeUnicodeStringTable 000000000002061c UefiLib:UefiLib.obj
+ 0005:0000013c $unwind$IsLanguageSupported 000000000002061c UefiLib:UefiLib.obj
+ 0005:0000013c $unwind$HiiIsConfigHdrMatch 000000000002061c UefiHiiLib:HiiLib.obj
+ 0005:0000013c $unwind$CopyGuid 000000000002061c BaseMemoryLibRepStr:MemLibGuid.obj
+ 0005:0000013c $unwind$IScsiSessionAbort 000000000002061c IScsiDxe:IScsiProto.obj
+ 0005:0000013c $unwind$NetbufAllocStruct 000000000002061c DxeNetLib:NetBuffer.obj
+ 0005:0000013c $unwind$SetMem16 000000000002061c BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0005:0000013c $unwind$IScsiAsciiStrToIp 000000000002061c IScsiDxe:IScsiMisc.obj
+ 0005:0000013c $unwind$IScsiConnReset 000000000002061c IScsiDxe:IScsiProto.obj
+ 0005:0000013c $unwind$SetMem 000000000002061c BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0005:0000013c $unwind$AsciiStrnCmp 000000000002061c BaseLib:String.obj
+ 0005:0000013c $unwind$NetIp4IsUnicast 000000000002061c DxeNetLib:DxeNetLib.obj
+ 0005:0000013c $unwind$StrStr 000000000002061c BaseLib:String.obj
+ 0005:0000013c $unwind$IoWriteFifo8 000000000002061c BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0005:0000013c $unwind$NetblockTrim 000000000002061c DxeNetLib:NetBuffer.obj
+ 0005:0000013c $unwind$InternalHiiGrowOpCodeHandle 000000000002061c UefiHiiLib:HiiLib.obj
+ 0005:0000013c $unwind$NetbufAlloc 000000000002061c DxeNetLib:NetBuffer.obj
+ 0005:0000013c $unwind$StrLen 000000000002061c BaseLib:String.obj
+ 0005:0000013c $unwind$IScsiOnDataInRcvd 000000000002061c IScsiDxe:IScsiProto.obj
+ 0005:0000013c $unwind$StrCmp 000000000002061c BaseLib:String.obj
+ 0005:0000013c $unwind$InternalHiiAppendOpCodes 000000000002061c UefiHiiLib:HiiLib.obj
+ 0005:0000013c $unwind$NetLibGetNicHandle 000000000002061c DxeNetLib:DxeNetLib.obj
+ 0005:0000013c $unwind$PciCf8Read32 000000000002061c BasePciCf8Lib:PciCf8Lib.obj
+ 0005:0000014c $unwind$WriteUnaligned16 000000000002062c BaseLib:Unaligned.obj
+ 0005:0000014c $unwind$NetbufFreeVector 000000000002062c DxeNetLib:NetBuffer.obj
+ 0005:0000014c $unwind$IScsiCleanDriverData 000000000002062c IScsiDxe:IScsiMisc.obj
+ 0005:0000014c $unwind$WriteUnaligned32 000000000002062c BaseLib:Unaligned.obj
+ 0005:0000014c $unwind$IScsiInitIbfTableHeader 000000000002062c IScsiDxe:IScsiIbft.obj
+ 0005:0000014c $unwind$NetLibGetVlanId 000000000002062c DxeNetLib:DxeNetLib.obj
+ 0005:0000014c $unwind$IScsiAddHeapItem 000000000002062c IScsiDxe:IScsiIbft.obj
+ 0005:0000014c $unwind$IScsiMapV4ToV6Addr 000000000002062c IScsiDxe:IScsiIbft.obj
+ 0005:0000014c $unwind$AsciiStrLen 000000000002062c BaseLib:String.obj
+ 0005:0000014c $unwind$IScsiMacAddrToStr 000000000002062c IScsiDxe:IScsiMisc.obj
+ 0005:0000014c $unwind$AsciiStrCmp 000000000002062c BaseLib:String.obj
+ 0005:0000014c $unwind$IScsiSessionInit 000000000002062c IScsiDxe:IScsiProto.obj
+ 0005:0000014c $unwind$InternalAllocateCopyPool 000000000002062c UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:0000014c $unwind$IpIsUnicast 000000000002062c IScsiDxe:IScsiConfig.obj
+ 0005:0000014c $unwind$ZeroMem 000000000002062c BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0005:0000014c $unwind$SetDevicePathNodeLength 000000000002062c UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:0000014c $unwind$IsDevicePathEnd 000000000002062c UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:0000014c $unwind$CompareIso639LanguageCode 000000000002062c UefiLib:UefiLib.obj
+ 0005:0000014c $unwind$InsertTailList 000000000002062c BaseLib:LinkedList.obj
+ 0005:0000014c $unwind$StrnLenS 000000000002062c BaseLib:SafeString.obj
+ 0005:0000014c $unwind$HiiGetSupportedLanguages 000000000002062c UefiHiiLib:HiiLanguage.obj
+ 0005:00000158 $unwind$IScsiHexToBin 0000000000020638 IScsiDxe:IScsiMisc.obj
+ 0005:0000016c $unwind$IScsiGenRandom 000000000002064c IScsiDxe:IScsiMisc.obj
+ 0005:0000017c $unwind$IScsiCheckIpv6Support 000000000002065c IScsiDxe:IScsiMisc.obj
+ 0005:00000190 $unwind$IScsiAddNic 0000000000020670 IScsiDxe:IScsiMisc.obj
+ 0005:000001a4 $unwind$IScsiRemoveNic 0000000000020684 IScsiDxe:IScsiMisc.obj
+ 0005:000001a4 $unwind$StrHexToUintnS 0000000000020684 BaseLib:SafeString.obj
+ 0005:000001b0 $unwind$IScsiCreateAttempts 0000000000020690 IScsiDxe:IScsiMisc.obj
+ 0005:000001c4 $unwind$IScsiCreateKeywords 00000000000206a4 IScsiDxe:IScsiMisc.obj
+ 0005:000001dc $unwind$IScsiGetVariableAndSize 00000000000206bc IScsiDxe:IScsiMisc.obj
+ 0005:000001f0 $unwind$IScsiExtScsiPassThruGetNextTargetLun 00000000000206d0 IScsiDxe:IScsiExtScsiPassThru.obj
+ 0005:000001f0 $unwind$EfiTestChildHandle 00000000000206d0 UefiLib:UefiLib.obj
+ 0005:000001f0 $unwind$IScsiConfigFormInit 00000000000206d0 IScsiDxe:IScsiConfig.obj
+ 0005:000001f0 $unwind$IScsiCreateDriverData 00000000000206d0 IScsiDxe:IScsiMisc.obj
+ 0005:000001f0 $unwind$UnicodeVSPrintAsciiFormat 00000000000206d0 BasePrintLib:PrintLib.obj
+ 0005:000001f0 $unwind$UnicodeValueToStringS 00000000000206d0 BasePrintLib:PrintLib.obj
+ 0005:00000200 $unwind$IScsiDhcpIsConfigured 00000000000206e0 IScsiDxe:IScsiMisc.obj
+ 0005:00000218 $unwind$IScsiDnsIsConfigured 00000000000206f8 IScsiDxe:IScsiMisc.obj
+ 0005:00000230 $unwind$IScsiGetConfigData 0000000000020710 IScsiDxe:IScsiMisc.obj
+ 0005:0000024c $unwind$IScsiGetTcpConnDevicePath 000000000002072c IScsiDxe:IScsiMisc.obj
+ 0005:00000260 $unwind$IScsiTestManagedDevice 0000000000020740 IScsiDxe:IScsiMisc.obj
+ 0005:00000260 $unwind$UnicodeVSPrint 0000000000020740 BasePrintLib:PrintLib.obj
+ 0005:00000274 $unwind$UpdateName 0000000000020754 IScsiDxe:ComponentName.obj
+ 0005:00000284 $unwind$IScsiComponentNameGetControllerName 0000000000020764 IScsiDxe:ComponentName.obj
+ 0005:00000298 $unwind$IScsiIpToStr 0000000000020778 IScsiDxe:IScsiConfig.obj
+ 0005:000002b0 $unwind$IScsiParseIsIdFromString 0000000000020790 IScsiDxe:IScsiConfig.obj
+ 0005:000002c4 $unwind$IScsiOnScsiRspRcvd 00000000000207a4 IScsiDxe:IScsiProto.obj
+ 0005:000002c4 $unwind$CompareGuid 00000000000207a4 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0005:000002c4 $unwind$CopyMem 00000000000207a4 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0005:000002c4 $unwind$IScsiOnR2TRcvd 00000000000207a4 IScsiDxe:IScsiProto.obj
+ 0005:000002c4 $unwind$InternalHiiCompareSubString 00000000000207a4 UefiHiiLib:HiiLib.obj
+ 0005:000002c4 $unwind$IScsiBuildKeyValueList 00000000000207a4 IScsiDxe:IScsiProto.obj
+ 0005:000002c4 $unwind$IScsiDhcpSelectOffer 00000000000207a4 IScsiDxe:IScsiDhcp.obj
+ 0005:000002c4 $unwind$BasePrintLibValueToString 00000000000207a4 BasePrintLib:PrintLibInternal.obj
+ 0005:000002c4 $unwind$IScsiExtScsiPassThruFunction 00000000000207a4 IScsiDxe:IScsiExtScsiPassThru.obj
+ 0005:000002c4 $unwind$IScsiPrepareLoginReq 00000000000207a4 IScsiDxe:IScsiProto.obj
+ 0005:000002c4 $unwind$IScsiConvertIsIdToString 00000000000207a4 IScsiDxe:IScsiConfig.obj
+ 0005:000002c4 $unwind$IScsiNewTcb 00000000000207a4 IScsiDxe:IScsiProto.obj
+ 0005:000002c4 $unwind$IScsiGetValueByKeyFromList 00000000000207a4 IScsiDxe:IScsiProto.obj
+ 0005:000002c4 $unwind$InternalReallocatePool 00000000000207a4 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:000002c4 $unwind$StrnCmp 00000000000207a4 BaseLib:String.obj
+ 0005:000002c4 $unwind$NetbufSetBlock 00000000000207a4 DxeNetLib:NetBuffer.obj
+ 0005:000002c4 $unwind$CompareMem 00000000000207a4 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0005:000002d8 $unwind$IScsiGetValue 00000000000207b8 IScsiDxe:IScsiConfig.obj
+ 0005:000002f4 $unwind$NetbufFromBufList 00000000000207d4 DxeNetLib:NetBuffer.obj
+ 0005:000002f4 $unwind$IScsiConvertAttemptConfigDataToIfrNvData 00000000000207d4 IScsiDxe:IScsiConfig.obj
+ 0005:0000030c $unwind$IScsiConvertAttemptConfigDataToIfrNvDataByKeyword 00000000000207ec IScsiDxe:IScsiConfig.obj
+ 0005:0000032c $unwind$IScsiConvertIfrNvDataToAttemptConfigData 000000000002080c IScsiDxe:IScsiConfig.obj
+ 0005:00000348 $unwind$IScsiConvertlfrNvDataToAttemptConfigDataByKeyword 0000000000020828 IScsiDxe:IScsiConfig.obj
+ 0005:00000364 $unwind$IScsiCreateOpCode 0000000000020844 IScsiDxe:IScsiConfig.obj
+ 0005:00000364 $unwind$SHA256_Final 0000000000020844 OpensslLibCrypto:sha256.obj
+ 0005:0000037c $unwind$IScsiConfigUpdateAttempt 000000000002085c IScsiDxe:IScsiConfig.obj
+ 0005:00000388 $unwind$IScsiConfigAddAttempt 0000000000020868 IScsiDxe:IScsiConfig.obj
+ 0005:00000398 $unwind$IScsiConfigAddAttemptsByKeywords 0000000000020878 IScsiDxe:IScsiConfig.obj
+ 0005:000003b4 $unwind$IScsiConfigDeleteAttempts 0000000000020894 IScsiDxe:IScsiConfig.obj
+ 0005:000003cc $unwind$IScsiConfigDisplayDeleteAttempts 00000000000208ac IScsiDxe:IScsiConfig.obj
+ 0005:000003e0 $unwind$IScsiConfigDisplayOrderAttempts 00000000000208c0 IScsiDxe:IScsiConfig.obj
+ 0005:000003f4 $unwind$IScsiConfigOrderAttempts 00000000000208d4 IScsiDxe:IScsiConfig.obj
+ 0005:00000410 $unwind$IScsiConfigProcessDefault 00000000000208f0 IScsiDxe:IScsiConfig.obj
+ 0005:00000428 $unwind$IScsiFormExtractConfig 0000000000020908 IScsiDxe:IScsiConfig.obj
+ 0005:00000444 $unwind$IScsiFormRouteConfig 0000000000020924 IScsiDxe:IScsiConfig.obj
+ 0005:00000460 $unwind$IScsiFormCallback 0000000000020940 IScsiDxe:IScsiConfig.obj
+ 0005:0000047c $unwind$IScsiConfigFormUnload 000000000002095c IScsiDxe:IScsiConfig.obj
+ 0005:0000047c $unwind$MmioRead32 000000000002095c BaseIoLibIntrinsicSev:IoLib.obj
+ 0005:0000047c $unwind$IScsiExtScsiPassThruGetNextTarget 000000000002095c IScsiDxe:IScsiExtScsiPassThru.obj
+ 0005:0000047c $unwind$TdIoWrite8 000000000002095c BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:0000047c $unwind$TdIoRead32 000000000002095c BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:00000484 $unwind$IScsiCreateConnection 0000000000020964 IScsiDxe:IScsiProto.obj
+ 0005:000004a0 $unwind$IScsiGetIp6NicInfo 0000000000020980 IScsiDxe:IScsiProto.obj
+ 0005:000004bc $unwind$IScsiSessionLogin 000000000002099c IScsiDxe:IScsiProto.obj
+ 0005:000004d4 $unwind$IScsiSessionReLogin 00000000000209b4 IScsiDxe:IScsiProto.obj
+ 0005:000004e4 $unwind$IScsiProcessLoginRsp 00000000000209c4 IScsiDxe:IScsiProto.obj
+ 0005:00000500 $unwind$IScsiUpdateTargetAddress 00000000000209e0 IScsiDxe:IScsiProto.obj
+ 0005:00000514 $unwind$IScsiReceivePdu 00000000000209f4 IScsiDxe:IScsiProto.obj
+ 0005:00000530 $unwind$IScsiFillOpParams 0000000000020a10 IScsiDxe:IScsiProto.obj
+ 0005:00000550 $unwind$IScsiNewDataSegment 0000000000020a30 IScsiDxe:IScsiProto.obj
+ 0005:00000558 $unwind$IScsiNewScsiCmdPdu 0000000000020a38 IScsiDxe:IScsiProto.obj
+ 0005:00000570 $unwind$IScsiNewDataOutPdu 0000000000020a50 IScsiDxe:IScsiProto.obj
+ 0005:00000588 $unwind$IScsiSendDataOutPduSequence 0000000000020a68 IScsiDxe:IScsiProto.obj
+ 0005:00000588 $unwind$HiiConstructConfigHdr 0000000000020a68 UefiHiiLib:HiiLib.obj
+ 0005:000005a4 $unwind$IScsiExecuteScsiCommand 0000000000020a84 IScsiDxe:IScsiProto.obj
+ 0005:000005bc $unwind$IScsiSetInitiatorName 0000000000020a9c IScsiDxe:IScsiInitiatorName.obj
+ 0005:000005bc $unwind$NetLibGetSnpHandle 0000000000020a9c DxeNetLib:DxeNetLib.obj
+ 0005:000005bc $unwind$TdIoWrite32 0000000000020a9c BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:000005c8 $unwind$IScsiFillNICAndTargetSections 0000000000020aa8 IScsiDxe:IScsiIbft.obj
+ 0005:000005e0 $unwind$IScsiPublishIbft 0000000000020ac0 IScsiDxe:IScsiIbft.obj
+ 0005:000005f0 $unwind$IScsiDhcp6ExtractRootPath 0000000000020ad0 IScsiDxe:IScsiDhcp6.obj
+ 0005:000005f0 $unwind$IScsiDhcpExtractRootPath 0000000000020ad0 IScsiDxe:IScsiDhcp.obj
+ 0005:00000608 $unwind$IScsiDhcp6ParseReply 0000000000020ae8 IScsiDxe:IScsiDhcp6.obj
+ 0005:00000620 $unwind$IScsiDoDhcp6 0000000000020b00 IScsiDxe:IScsiDhcp6.obj
+ 0005:00000638 $unwind$IScsiParseDhcpAck 0000000000020b18 IScsiDxe:IScsiDhcp.obj
+ 0005:00000654 $unwind$IScsiDoDhcp 0000000000020b34 IScsiDxe:IScsiDhcp.obj
+ 0005:0000066c $unwind$IScsiExtScsiPassThruBuildDevicePath 0000000000020b4c IScsiDxe:IScsiExtScsiPassThru.obj
+ 0005:00000688 $unwind$IScsiExtScsiPassThruGetTargetLun 0000000000020b68 IScsiDxe:IScsiExtScsiPassThru.obj
+ 0005:00000688 $unwind$NetbufFreeList 0000000000020b68 DxeNetLib:NetBuffer.obj
+ 0005:0000069c $unwind$IScsiDns6 0000000000020b7c IScsiDxe:IScsiDns.obj
+ 0005:0000069c $unwind$IScsiDns4 0000000000020b7c IScsiDxe:IScsiDns.obj
+ 0005:000006b8 $unwind$StrHexToUint64 0000000000020b98 BaseLib:String.obj
+ 0005:000006c4 $unwind$AsciiStrHexToUint64 0000000000020ba4 BaseLib:String.obj
+ 0005:000006cc $unwind$StrCpyS 0000000000020bac BaseLib:SafeString.obj
+ 0005:000006cc $unwind$UnicodeStrToAsciiStrS 0000000000020bac BaseLib:SafeString.obj
+ 0005:000006e4 $unwind$StrnCpyS 0000000000020bc4 BaseLib:SafeString.obj
+ 0005:000006fc $unwind$StrCatS 0000000000020bdc BaseLib:SafeString.obj
+ 0005:00000718 $unwind$HiiCreateGotoOpCode 0000000000020bf8 UefiHiiLib:HiiLib.obj
+ 0005:00000718 $unwind$EfiLibInstallDriverBindingComponentName2 0000000000020bf8 UefiLib:UefiDriverModel.obj
+ 0005:00000718 $unwind$StrDecimalToUintnS 0000000000020bf8 BaseLib:SafeString.obj
+ 0005:00000728 $unwind$AsciiStrHexToUintnS 0000000000020c08 BaseLib:SafeString.obj
+ 0005:00000728 $unwind$AsciiStrCpyS 0000000000020c08 BaseLib:SafeString.obj
+ 0005:00000728 $unwind$AsciiStrDecimalToUintnS 0000000000020c08 BaseLib:SafeString.obj
+ 0005:00000728 $unwind$EfiLibUninstallDriverBindingComponentName2 0000000000020c08 UefiLib:UefiDriverModel.obj
+ 0005:00000730 $unwind$AsciiStrToUnicodeStrS 0000000000020c10 BaseLib:SafeString.obj
+ 0005:00000730 $unwind$NetLibDestroyServiceChild 0000000000020c10 DxeNetLib:DxeNetLib.obj
+ 0005:00000730 $unwind$NetLibCreateServiceChild 0000000000020c10 DxeNetLib:DxeNetLib.obj
+ 0005:00000744 $unwind$AsciiStrToIpv6Address 0000000000020c24 BaseLib:SafeString.obj
+ 0005:0000075c $unwind$UnicodeSPrint 0000000000020c3c BasePrintLib:PrintLib.obj
+ 0005:00000764 $unwind$AsciiSPrint 0000000000020c44 BasePrintLib:PrintLib.obj
+ 0005:0000076c $unwind$BasePrintLibConvertValueToStringS 0000000000020c4c BasePrintLib:PrintLibInternal.obj
+ 0005:00000784 $unwind$BasePrintLibSPrintMarker 0000000000020c64 BasePrintLib:PrintLibInternal.obj
+ 0005:000007a0 $unwind$BasePrintLibSPrint 0000000000020c80 BasePrintLib:PrintLibInternal.obj
+ 0005:000007a8 $unwind$DebugPrint 0000000000020c88 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:000007b0 $unwind$DebugPrintMarker 0000000000020c90 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:000007c4 $unwind$DebugAssert 0000000000020ca4 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:000007d0 $unwind$AddUnicodeString2 0000000000020cb0 UefiLib:UefiLib.obj
+ 0005:000007e8 $unwind$GetVariable2 0000000000020cc8 UefiLib:UefiLib.obj
+ 0005:000007f4 $unwind$UefiLibGetStringWidth 0000000000020cd4 UefiLib:Console.obj
+ 0005:00000808 $unwind$CreatePopUp 0000000000020ce8 UefiLib:Console.obj
+ 0005:00000820 $unwind$AsciiPrint 0000000000020d00 UefiLib:UefiLibPrint.obj
+ 0005:00000828 $unwind$HiiSetString 0000000000020d08 UefiHiiLib:HiiString.obj
+ 0005:00000844 $unwind$HiiAddPackages 0000000000020d24 UefiHiiLib:HiiLib.obj
+ 0005:00000858 $unwind$InternalHiiBrowserCallback 0000000000020d38 UefiHiiLib:HiiLib.obj
+ 0005:00000868 $unwind$HiiGetBrowserData 0000000000020d48 UefiHiiLib:HiiLib.obj
+ 0005:00000878 $unwind$HiiSetBrowserData 0000000000020d58 UefiHiiLib:HiiLib.obj
+ 0005:0000088c $unwind$HiiCreateGuidOpCode 0000000000020d6c UefiHiiLib:HiiLib.obj
+ 0005:00000894 $unwind$HiiCreateNumericOpCode 0000000000020d74 UefiHiiLib:HiiLib.obj
+ 0005:000008ac $unwind$HiiCreateStringOpCode 0000000000020d8c UefiHiiLib:HiiLib.obj
+ 0005:000008c4 $unwind$HiiCreateOrderedListOpCode 0000000000020da4 UefiHiiLib:HiiLib.obj
+ 0005:000008d0 $unwind$InternalHiiUpdateFormPackageData 0000000000020db0 UefiHiiLib:HiiLib.obj
+ 0005:000008e8 $unwind$HiiUpdateForm 0000000000020dc8 UefiHiiLib:HiiLib.obj
+ 0005:00000900 $unwind$NetLibGetMacAddress 0000000000020de0 DxeNetLib:DxeNetLib.obj
+ 0005:00000918 $unwind$NetLibDetectMedia 0000000000020df8 DxeNetLib:DxeNetLib.obj
+ 0005:00000930 $unwind$NetLibDetectMediaWaitTimeout 0000000000020e10 DxeNetLib:DxeNetLib.obj
+ 0005:00000948 $unwind$NetLibAsciiStrToIp4 0000000000020e28 DxeNetLib:DxeNetLib.obj
+ 0005:00000958 $unwind$NetLibStrToIp4 0000000000020e38 DxeNetLib:DxeNetLib.obj
+ 0005:0000096c $unwind$NetbufQueCopy 0000000000020e4c DxeNetLib:NetBuffer.obj
+ 0005:0000096c $unwind$NetbufCopy 0000000000020e4c DxeNetLib:NetBuffer.obj
+ 0005:0000096c $unwind$NetbufFromExt 0000000000020e4c DxeNetLib:NetBuffer.obj
+ 0005:00000988 $unwind$NetbufBuildExt 0000000000020e68 DxeNetLib:NetBuffer.obj
+ 0005:00000990 $unwind$NetbufAllocSpace 0000000000020e70 DxeNetLib:NetBuffer.obj
+ 0005:000009a0 $unwind$TcpIoGetMapping 0000000000020e80 DxeTcpIoLib:DxeTcpIoLib.obj
+ 0005:000009b0 $unwind$TcpIoCreateSocket 0000000000020e90 DxeTcpIoLib:DxeTcpIoLib.obj
+ 0005:000009cc $unwind$TcpIoDestroySocket 0000000000020eac DxeTcpIoLib:DxeTcpIoLib.obj
+ 0005:000009e4 $unwind$TcpIoReceive 0000000000020ec4 DxeTcpIoLib:DxeTcpIoLib.obj
+ 0005:000009fc $unwind$md5_block_data_order 0000000000020edc OpensslLibCrypto:md5_dgst.obj
+ 0005:00000a14 $unwind$sha256_block_data_order 0000000000020ef4 OpensslLibCrypto:sha256.obj
+ 0005:00000a2c $unwind$GetTdInfo 0000000000020f0c TdxLib:TdInfo.obj
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/IScsiDxe.makefile b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/IScsiDxe.makefile
new file mode 100644
index 000000000000..86c6f9d45382
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/IScsiDxe.makefile
@@ -0,0 +1 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\Makefile
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/Makefile b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/Makefile
new file mode 100644
index 000000000000..4e69718f2441
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/Makefile
@@ -0,0 +1,496 @@
+#
+# DO NOT EDIT
+# This file is auto-generated by build utility
+#
+# Module Name:
+#
+# Makefile
+#
+# Abstract:
+#
+# Auto-generated makefile for building modules, libraries or platform
+#
+
+
+#
+# Platform Macro Definition
+#
+PLATFORM_NAME = Ovmf
+PLATFORM_GUID = 5a9e7754-d81b-49ea-85ad-69eaa7b1539b
+PLATFORM_VERSION = 0.1
+PLATFORM_RELATIVE_DIR = OvmfPkg
+PLATFORM_DIR = c:\users\mliang2x\workspace\edk2\OvmfPkg
+PLATFORM_OUTPUT_DIR = Build\OvmfX64
+
+#
+# Module Macro Definition
+#
+MODULE_NAME = IScsiDxe
+MODULE_GUID = 86CDDF93-4872-4597-8AF9-A35AE4D3725F
+MODULE_NAME_GUID = IScsiDxe
+MODULE_VERSION = 1.0
+MODULE_TYPE = UEFI_DRIVER
+MODULE_FILE = IScsiDxe.inf
+MODULE_FILE_BASE_NAME = IScsiDxe
+BASE_NAME = $(MODULE_NAME)
+MODULE_RELATIVE_DIR = NetworkPkg\IScsiDxe
+PACKAGE_RELATIVE_DIR = IScsiDxe
+MODULE_DIR = c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe
+FFS_OUTPUT_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\FV\Ffs\86CDDF93-4872-4597-8AF9-A35AE4D3725FIScsiDxe
+
+MODULE_ENTRY_POINT = IScsiDriverEntryPoint
+ARCH_ENTRY_POINT = IScsiDriverEntryPoint
+IMAGE_ENTRY_POINT = _ModuleEntryPoint
+
+INF_VERSION = 0x00010005
+BASE_NAME = IScsiDxe
+FILE_GUID = 86CDDF93-4872-4597-8AF9-A35AE4D3725F
+MODULE_TYPE = UEFI_DRIVER
+VERSION_STRING = 1.0
+MODULE_UNI_FILE = IScsiDxe.uni
+
+#
+# Build Configuration Macro Definition
+#
+ARCH = X64
+TOOLCHAIN = VS2015x86
+TOOLCHAIN_TAG = VS2015x86
+TARGET = DEBUG
+
+#
+# Build Directory Macro Definition
+#
+# PLATFORM_BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86
+BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86
+BIN_DIR = $(BUILD_DIR)\X64
+LIB_DIR = $(BIN_DIR)
+MODULE_BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe
+OUTPUT_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT
+DEBUG_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG
+DEST_DIR_OUTPUT = $(OUTPUT_DIR)
+DEST_DIR_DEBUG = $(DEBUG_DIR)
+
+#
+# Shell Command Macro
+#
+CP = copy /y
+MV = move /y
+RM = del /f /q
+MD = mkdir
+RD = rmdir /s /q
+
+
+#
+# Tools definitions specific to this module
+#
+APP_FLAGS = /nologo /E /TC
+APP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASL_FLAGS =
+ASL_OUTFLAGS = -p
+ASL = C:\ASL\iasl.exe
+
+ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable
+ASLCC = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE
+ASLDLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\link.exe
+
+ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h
+ASLPP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+ASM = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\ml64.exe
+
+ASM16 = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\ml.exe
+
+ASMLINK_FLAGS = /nologo /tiny
+ASMLINK = C:\WINDDK\3790.1830\bin\bin16\link16.exe
+
+BROTLI_GUID = 3D532050-5CDA-4FD0-879E-0F7F630D5AFB
+BROTLI = BrotliCompress
+
+CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /D DISABLE_NEW_DEPRECATED_INTERFACES /D TDX_GUEST_SUPPORTED /D ENABLE_MD5_DEPRECATED_INTERFACES
+CC = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+CRC32_GUID = FC1BCDB0-7D31-49AA-936A-A4600D9DD083
+CRC32 = GenCrc32
+
+DEPS_FLAGS = /showIncludes
+
+DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+DLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\link.exe
+
+DLINK2_FLAGS =
+
+DTC_FLAGS = -H epapr
+DTC = dtc
+
+DTCPP = cpp
+
+GENFW_FLAGS =
+GENFW = GenFw
+
+LZMA_GUID = EE4E5898-3914-4259-9D6E-DC7BD79403CF
+LZMA = LzmaCompress
+
+LZMAF86_GUID = D42AE6BD-1352-4bfb-909A-CA72A6EAE889
+LZMAF86 = LzmaF86Compress
+
+MAKE = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\nmake.exe
+
+NASM_FLAGS = -Ox -f win64 -g
+NASM = C:\nasm\nasm
+
+NASMB_FLAGS = -f bin
+
+OBJCOPY_ADDDEBUGFLAG = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_NAME).debug
+OBJCOPY_FLAGS = objcopy not needed for
+OBJCOPY = echo
+OBJCOPY_STRIPFLAG = --strip-unneeded -R .eh_frame
+
+OPTROM_FLAGS = -e
+OPTROM = EfiRom
+
+PKCS7SIGN_GUID = 4AAFD29D-68DF-49EE-8AA9-347D375665A7
+PKCS7SIGN = Pkcs7Sign
+
+PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+PP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+PYVFR = PyVfrCompile
+
+RC = c:\Program Files (x86)\Windows Kits\8.1\bin\x64\rc.exe
+
+RSA2048SHA256SIGN_GUID = A7717414-C616-4977-9420-844712A735BF
+RSA2048SHA256SIGN = Rsa2048Sha256Sign
+
+SLINK_FLAGS = /NOLOGO /LTCG
+SLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\lib.exe
+
+SYMRENAME_FLAGS = Symbol renaming not needed for
+SYMRENAME = echo
+
+TIANO_GUID = A31280AD-481E-41B6-95E8-127F4C984779
+TIANO = TianoCompress
+
+VFR_FLAGS = -l -n
+VFR = VfrCompile
+
+VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+VFRPP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+VPDTOOL_GUID = 8C3D856A-9BE6-468E-850A-24F7A8D38E08
+VPDTOOL = BPDG
+
+cc_resp_14 = @c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\cc_resp_14.txt
+
+MAKE_FILE = $(MODULE_BUILD_DIR)\Makefile
+
+#
+# Build Macro
+#
+STATIC_LIBRARY_FILES = \
+ $(BIN_DIR)\CryptoPkg\Library\BaseCryptLib\BaseCryptLib\OUTPUT\BaseCryptLib.lib \
+ $(BIN_DIR)\CryptoPkg\Library\IntrinsicLib\IntrinsicLib\OUTPUT\BaseIntrinsicLib.lib \
+ $(BIN_DIR)\CryptoPkg\Library\OpensslLib\OpensslLibCrypto\OUTPUT\OpensslLibCrypto.lib \
+ $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\OUTPUT\UefiHiiLib.lib \
+ $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\OUTPUT\UefiHiiServicesLib.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\OUTPUT\BaseDebugPrintErrorLevelLib.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\OUTPUT\BaseIoLibIntrinsicSev.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\OUTPUT\BaseLib.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\OUTPUT\BaseMemoryLibRepStr.lib \
+ $(BIN_DIR)\MdePkg\Library\BasePciCf8Lib\BasePciCf8Lib\OUTPUT\BasePciCf8Lib.lib \
+ $(BIN_DIR)\MdePkg\Library\BasePciExpressLib\BasePciExpressLib\OUTPUT\BasePciExpressLib.lib \
+ $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\OUTPUT\BasePrintLib.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseRngLibTimerLib\BaseRngLibTimerLib\OUTPUT\BaseRngLibTimerLib.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseSafeIntLib\BaseSafeIntLib\OUTPUT\BaseSafeIntLib.lib \
+ $(BIN_DIR)\MdePkg\Library\DxeHobLib\DxeHobLib\OUTPUT\DxeHobLib.lib \
+ $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\OUTPUT\DxePcdLib.lib \
+ $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\OUTPUT\FilterLibNull.lib \
+ $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\OUTPUT\TdxLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\OUTPUT\UefiBootServicesTableLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\OUTPUT\UefiDevicePathLibDevicePathProtocol.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint\OUTPUT\UefiDriverEntryPoint.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\OUTPUT\UefiLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\OUTPUT\UefiMemoryAllocationLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\OUTPUT\UefiRuntimeServicesTableLib.lib \
+ $(BIN_DIR)\NetworkPkg\Library\DxeNetLib\DxeNetLib\OUTPUT\DxeNetLib.lib \
+ $(BIN_DIR)\NetworkPkg\Library\DxeTcpIoLib\DxeTcpIoLib\OUTPUT\DxeTcpIoLib.lib \
+ $(BIN_DIR)\OvmfPkg\Library\AcpiTimerLib\DxeAcpiTimerLib\OUTPUT\DxeAcpiTimerLib.lib \
+ $(BIN_DIR)\OvmfPkg\Library\CcProbeLib\CcProbeLib\OUTPUT\CcProbeLib.lib \
+ $(BIN_DIR)\OvmfPkg\Library\DxePciLibI440FxQ35\DxePciLibI440FxQ35\OUTPUT\DxePciLibI440FxQ35.lib \
+ $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\OUTPUT\PlatformDebugLibIoPort.lib \
+ $(OUTPUT_DIR)\IScsiDxe.lib
+
+OBJECT_FILES = \
+ $(OUTPUT_DIR)\AutoGen.obj \
+ $(OUTPUT_DIR)\ComponentName.obj \
+ $(OUTPUT_DIR)\IScsiAuthenticationInfo.obj \
+ $(OUTPUT_DIR)\IScsiCHAP.obj \
+ $(OUTPUT_DIR)\IScsiConfig.obj \
+ $(OUTPUT_DIR)\IScsiConfigVfr.obj \
+ $(OUTPUT_DIR)\IScsiDhcp.obj \
+ $(OUTPUT_DIR)\IScsiDhcp6.obj \
+ $(OUTPUT_DIR)\IScsiDns.obj \
+ $(OUTPUT_DIR)\IScsiDriver.obj \
+ $(OUTPUT_DIR)\IScsiExtScsiPassThru.obj \
+ $(OUTPUT_DIR)\IScsiIbft.obj \
+ $(OUTPUT_DIR)\IScsiInitiatorName.obj \
+ $(OUTPUT_DIR)\IScsiMisc.obj \
+ $(OUTPUT_DIR)\IScsiProto.obj
+
+INC = \
+ /I$(WORKSPACE)\NetworkPkg\IScsiDxe \
+ /I$(DEBUG_DIR) \
+ /I$(WORKSPACE)\MdePkg \
+ /I$(WORKSPACE)\MdePkg\Include \
+ /I$(WORKSPACE)\MdePkg\Test\UnitTest\Include \
+ /I$(WORKSPACE)\MdePkg\Include\X64 \
+ /I$(WORKSPACE)\MdeModulePkg \
+ /I$(WORKSPACE)\MdeModulePkg\Include \
+ /I$(WORKSPACE)\CryptoPkg \
+ /I$(WORKSPACE)\CryptoPkg\Include \
+ /I$(WORKSPACE)\NetworkPkg \
+ /I$(WORKSPACE)\NetworkPkg\Include
+
+STATIC_LIBRARY_FILES_LIST = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\static_library_files.lst
+OBJECT_FILES_LIST = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\object_files.lst
+OBJLIST_0 = $(OUTPUT_DIR)\IScsiProto.obj $(OUTPUT_DIR)\IScsiConfig.obj $(OUTPUT_DIR)\AutoGen.obj $(OUTPUT_DIR)\IScsiAuthenticationInfo.obj $(OUTPUT_DIR)\IScsiExtScsiPassThru.obj $(OUTPUT_DIR)\IScsiDhcp6.obj $(OUTPUT_DIR)\IScsiDhcp.obj $(OUTPUT_DIR)\IScsiConfigVfr.obj $(OUTPUT_DIR)\IScsiMisc.obj $(OUTPUT_DIR)\IScsiInitiatorName.obj $(OUTPUT_DIR)\IScsiCHAP.obj $(OUTPUT_DIR)\IScsiDriver.obj $(OUTPUT_DIR)\IScsiDns.obj $(OUTPUT_DIR)\IScsiIbft.obj $(OUTPUT_DIR)\ComponentName.obj
+
+
+#
+# Overridable Target Macro Definitions
+#
+FORCE_REBUILD = force_build
+INIT_TARGET = init
+PCH_TARGET =
+BC_TARGET =
+CODA_TARGET = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiDxe.efi \
+ $(FFS_OUTPUT_DIR)\$(MODULE_GUID).map \
+ $(FFS_OUTPUT_DIR)\$(MODULE_GUID).ffs \
+
+
+#
+# Default target, which will build dependent libraries in addition to source files
+#
+
+all: mbuild
+
+
+#
+# Target used when called from platform makefile, which will bypass the build of dependent libraries
+#
+
+pbuild: $(INIT_TARGET) $(BC_TARGET) $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# ModuleTarget
+#
+
+mbuild: $(INIT_TARGET) $(BC_TARGET) gen_libs $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# Build Target used in multi-thread build mode, which will bypass the init and gen_libs targets
+#
+
+tbuild: $(BC_TARGET) $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# Phony target which is used to force executing commands for a target
+#
+force_build:
+ -@
+
+#
+# Target to update the FD
+#
+
+fds: mbuild gen_fds
+
+#
+# Initialization target: print build information and create necessary directories
+#
+init: info dirs
+
+info:
+ -@echo Building ... $(MODULE_DIR)\$(MODULE_FILE) [$(ARCH)]
+
+dirs:
+ -@if not exist $(DEBUG_DIR) $(MD) $(DEBUG_DIR)
+ -@if not exist $(OUTPUT_DIR) $(MD) $(OUTPUT_DIR)
+
+
+strdefs:
+ -@$(CP) $(DEBUG_DIR)\AutoGen.h $(DEBUG_DIR)\$(MODULE_NAME)StrDefs.h
+
+#
+# GenLibsTarget
+#
+gen_libs:
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\CcProbeLib\CcProbeLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BasePciExpressLib\BasePciExpressLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BasePciCf8Lib\BasePciCf8Lib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxeHobLib\DxeHobLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\DxePciLibI440FxQ35\DxePciLibI440FxQ35\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\AcpiTimerLib\DxeAcpiTimerLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseRngLibTimerLib\BaseRngLibTimerLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\CryptoPkg\Library\IntrinsicLib\IntrinsicLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\CryptoPkg\Library\OpensslLib\OpensslLibCrypto\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\CryptoPkg\Library\BaseCryptLib\BaseCryptLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\NetworkPkg\Library\DxeNetLib\DxeNetLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseSafeIntLib\BaseSafeIntLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\NetworkPkg\Library\DxeTcpIoLib\DxeTcpIoLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint\Makefile
+ @cd $(MODULE_BUILD_DIR)
+
+#
+# Build Flash Device Image
+#
+gen_fds:
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BUILD_DIR)\Makefile fds
+ @cd $(MODULE_BUILD_DIR)
+
+!INCLUDE $(MODULE_BUILD_DIR)\dependency
+!INCLUDE $(MODULE_BUILD_DIR)\deps_target
+
+#
+# Individual Object Build Targets
+#
+$(DEBUG_DIR)\IScsiDxe.dll : $(MAKE_FILE)
+$(DEBUG_DIR)\IScsiDxe.dll : $(STATIC_LIBRARY_FILES)
+$(DEBUG_DIR)\IScsiDxe.dll : $(STATIC_LIBRARY_FILES_LIST)
+ "$(DLINK)" /OUT:c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\IScsiDxe.dll $(DLINK_FLAGS) $(DLINK2_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST)
+ "$(DLINK)" /OUT:c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\IScsiDxe.dll $(DLINK_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST)
+
+$(OUTPUT_DIR)\IScsiDxe.efi : $(DEBUG_DIR)\IScsiDxe.dll
+ "$(GENFW)" -e $(MODULE_TYPE) -o c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiDxe.efi c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\IScsiDxe.dll $(GENFW_FLAGS)
+ $(CP) c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiDxe.efi $(DEBUG_DIR)
+ $(CP) c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiDxe.efi $(BIN_DIR)\$(MODULE_NAME_GUID).efi
+ -$(CP) $(DEBUG_DIR)\*.map $(OUTPUT_DIR)
+ -$(CP) $(DEBUG_DIR)\*.pdb $(OUTPUT_DIR)
+
+$(DEBUG_DIR)\IScsiDxe.efi : $(OUTPUT_DIR)\IScsiDxe.efi
+
+
+$(OUTPUT_DIR)\IScsiDxe.map : $(OUTPUT_DIR)\IScsiDxe.efi
+
+
+$(OBJLIST_0): \
+ $(MAKE_FILE) \
+ $(WORKSPACE)\NetworkPkg\IScsiDxe\IScsiMisc.c \
+ $(DEBUG_DIR)\AutoGen.h \
+ $(DEBUG_DIR)\IScsiDxeStrDefs.h \
+ $(WORKSPACE)\NetworkPkg\IScsiDxe\IScsiAuthenticationInfo.c \
+ $(WORKSPACE)\NetworkPkg\IScsiDxe\IScsiIbft.c \
+ $(WORKSPACE)\NetworkPkg\IScsiDxe\IScsiExtScsiPassThru.c \
+ $(WORKSPACE)\NetworkPkg\IScsiDxe\IScsiInitiatorName.c \
+ $(DEBUG_DIR)\IScsiConfigVfr.c \
+ $(WORKSPACE)\NetworkPkg\IScsiDxe\ComponentName.c \
+ $(WORKSPACE)\NetworkPkg\IScsiDxe\IScsiDhcp6.c \
+ $(WORKSPACE)\NetworkPkg\IScsiDxe\IScsiCHAP.c \
+ $(WORKSPACE)\NetworkPkg\IScsiDxe\IScsiDriver.c \
+ $(WORKSPACE)\NetworkPkg\IScsiDxe\IScsiDhcp.c \
+ $(WORKSPACE)\NetworkPkg\IScsiDxe\IScsiProto.c \
+ $(DEBUG_DIR)\AutoGen.c \
+ $(WORKSPACE)\NetworkPkg\IScsiDxe\IScsiDns.c \
+ $(WORKSPACE)\NetworkPkg\IScsiDxe\IScsiConfig.c
+ "$(CC)" /Foc:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\.\ $(DEPS_FLAGS) $(CC_FLAGS) $(INC) $(cc_resp_14)
+
+$(OUTPUT_DIR)\IScsiDxe.lib : $(OBJECT_FILES)
+$(OUTPUT_DIR)\IScsiDxe.lib : $(OBJECT_FILES_LIST)
+ "$(SLINK)" $(SLINK_FLAGS) /OUT:c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiDxe.lib @$(OBJECT_FILES_LIST)
+
+$(DEBUG_DIR)\IScsiConfigVfr.c : $(MAKE_FILE)
+$(DEBUG_DIR)\IScsiConfigVfr.c : $(DEBUG_DIR)\AutoGen.h
+$(DEBUG_DIR)\IScsiConfigVfr.c : $(DEBUG_DIR)\IScsiDxeStrDefs.h
+$(DEBUG_DIR)\IScsiConfigVfr.c : $(WORKSPACE)\NetworkPkg\IScsiDxe\IScsiConfigVfr.vfr
+ "$(VFRPP)" $(DEPS_FLAGS) $(VFRPP_FLAGS) $(INC) c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiConfigVfr.vfr > $(OUTPUT_DIR)\IScsiConfigVfr.i
+ "$(VFR)" $(VFR_FLAGS) --string-db $(OUTPUT_DIR)\$(MODULE_NAME)StrDefs.hpk --output-directory c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\. $(OUTPUT_DIR)\IScsiConfigVfr.i
+ "$(PYVFR)" c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiConfigVfr.vfr -i $(INC) -m $(MODULE_NAME) -o $(OUTPUT_DIR) --vfr
+
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID).map : $(OUTPUT_DIR)\IScsiDxe.map
+ if exist $(OUTPUT_DIR)\IScsiDxe.map $(CP) $(OUTPUT_DIR)\IScsiDxe.map $(FFS_OUTPUT_DIR)\$(MODULE_GUID).map
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID).ffs : $(FFS_OUTPUT_DIR)\IScsiDxeOffset.raw $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.1.pe32 $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ui $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC4.ver
+ GenFfs -t EFI_FV_FILETYPE_DRIVER -g $(MODULE_GUID) -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID).ffs -oi $(FFS_OUTPUT_DIR)\IScsiDxeOffset.raw -oi $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.1.pe32 -oi $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ui -oi $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC4.ver
+$(FFS_OUTPUT_DIR)\IScsiDxeOffset.raw : $(FFS_OUTPUT_DIR)\IScsiDxe.offset
+ if exist $(FFS_OUTPUT_DIR)\IScsiDxe.offset GenSec -s EFI_SECTION_RAW -o $(FFS_OUTPUT_DIR)\IScsiDxeOffset.raw $(FFS_OUTPUT_DIR)\IScsiDxe.offset
+$(FFS_OUTPUT_DIR)\IScsiDxe.offset : $(DEBUG_DIR)\IScsiDxe.efi
+ Trim --Vfr-Uni-Offset -o $(FFS_OUTPUT_DIR)\IScsiDxe.offset --ModuleName=IScsiDxe --DebugDir=c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.1.pe32 : $(OUTPUT_DIR)\IScsiDxe.efi
+ if exist $(OUTPUT_DIR)\IScsiDxe.efi GenSec -s EFI_SECTION_PE32 -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.1.pe32 $(OUTPUT_DIR)\IScsiDxe.efi
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ui : $(MODULE_DIR)\$(MODULE_FILE)
+ GenSec -s EFI_SECTION_USER_INTERFACE -n $(MODULE_NAME) -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ui
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC4.ver : $(MODULE_DIR)\$(MODULE_FILE)
+ GenSec -s EFI_SECTION_VERSION -n 1.0 -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC4.ver
+
+
+#
+# clean all intermediate files
+#
+clean:
+ if exist $(OUTPUT_DIR) $(RD) $(OUTPUT_DIR)
+ $(RM) AutoGenTimeStamp
+
+#
+# clean all generated files
+#
+cleanall:
+ if exist $(DEBUG_DIR) $(RD) $(DEBUG_DIR)
+ if exist $(OUTPUT_DIR) $(RD) $(OUTPUT_DIR)
+ $(RM) *.pdb *.idb > NUL 2>&1
+ $(RM) $(BIN_DIR)\$(MODULE_NAME).efi
+ $(RM) AutoGenTimeStamp
+
+#
+# clean all dependent libraries built
+#
+cleanlib:
+ -@if exist $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\OvmfPkg\Library\CcProbeLib\CcProbeLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\CcProbeLib\CcProbeLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BasePciExpressLib\BasePciExpressLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BasePciExpressLib\BasePciExpressLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BasePciCf8Lib\BasePciCf8Lib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BasePciCf8Lib\BasePciCf8Lib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\DxeHobLib\DxeHobLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxeHobLib\DxeHobLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\OvmfPkg\Library\DxePciLibI440FxQ35\DxePciLibI440FxQ35\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\DxePciLibI440FxQ35\DxePciLibI440FxQ35\Makefile cleanall
+ -@if exist $(BIN_DIR)\OvmfPkg\Library\AcpiTimerLib\DxeAcpiTimerLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\AcpiTimerLib\DxeAcpiTimerLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseRngLibTimerLib\BaseRngLibTimerLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseRngLibTimerLib\BaseRngLibTimerLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\CryptoPkg\Library\IntrinsicLib\IntrinsicLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\CryptoPkg\Library\IntrinsicLib\IntrinsicLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\CryptoPkg\Library\OpensslLib\OpensslLibCrypto\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\CryptoPkg\Library\OpensslLib\OpensslLibCrypto\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\CryptoPkg\Library\BaseCryptLib\BaseCryptLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\CryptoPkg\Library\BaseCryptLib\BaseCryptLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\NetworkPkg\Library\DxeNetLib\DxeNetLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\NetworkPkg\Library\DxeNetLib\DxeNetLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseSafeIntLib\BaseSafeIntLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseSafeIntLib\BaseSafeIntLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\NetworkPkg\Library\DxeTcpIoLib\DxeTcpIoLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\NetworkPkg\Library\DxeTcpIoLib\DxeTcpIoLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint\Makefile cleanall
+ @cd $(MODULE_BUILD_DIR)
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/AutoGen.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/AutoGen.c.deps
new file mode 100644
index 000000000000..814d5e51cca9
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/AutoGen.c.deps
@@ -0,0 +1,33 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\AutoGen.c: \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\iscsidxe\iscsidxe\debug\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\iscsidxe\iscsidxe\debug\IScsiDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/ComponentName.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/ComponentName.c.deps
new file mode 100644
index 000000000000..bfe47bbfd95a
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/ComponentName.c.deps
@@ -0,0 +1,102 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\ComponentName.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\iscsidxe\iscsidxe\debug\IScsiDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiImpl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6Config.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AuthenticationInfo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IScsiInitiatorName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ScsiPassThruExt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AdapterInformation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/NetworkInterfaceIdentifier.h" \
+"c:\users\mliang2x\workspace\edk2\CryptoPkg\Include\Library/BaseCryptLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/SafeIntLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/TcpIoLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/EventGroup.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfigNVDataStruc.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/IScsiConfigHii.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDriver.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiProto.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiCHAP.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiIbft.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/IScsiBootFirmwareTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/PciIo.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiMisc.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDns.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfig.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiAuthenticationInfo.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiAuthenticationInfo.c.deps
new file mode 100644
index 000000000000..d8aef6aaedc4
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiAuthenticationInfo.c.deps
@@ -0,0 +1,102 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiAuthenticationInfo.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\iscsidxe\iscsidxe\debug\IScsiDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiImpl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6Config.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AuthenticationInfo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IScsiInitiatorName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ScsiPassThruExt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AdapterInformation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/NetworkInterfaceIdentifier.h" \
+"c:\users\mliang2x\workspace\edk2\CryptoPkg\Include\Library/BaseCryptLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/SafeIntLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/TcpIoLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/EventGroup.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfigNVDataStruc.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/IScsiConfigHii.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDriver.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiProto.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiCHAP.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiIbft.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/IScsiBootFirmwareTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/PciIo.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiMisc.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDns.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfig.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiCHAP.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiCHAP.c.deps
new file mode 100644
index 000000000000..e5b7a28054c1
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiCHAP.c.deps
@@ -0,0 +1,102 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiCHAP.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\iscsidxe\iscsidxe\debug\IScsiDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiImpl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6Config.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AuthenticationInfo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IScsiInitiatorName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ScsiPassThruExt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AdapterInformation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/NetworkInterfaceIdentifier.h" \
+"c:\users\mliang2x\workspace\edk2\CryptoPkg\Include\Library/BaseCryptLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/SafeIntLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/TcpIoLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/EventGroup.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfigNVDataStruc.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/IScsiConfigHii.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDriver.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiProto.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiCHAP.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiIbft.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/IScsiBootFirmwareTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/PciIo.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiMisc.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDns.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfig.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiConfig.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiConfig.c.deps
new file mode 100644
index 000000000000..f65cfbff7c80
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiConfig.c.deps
@@ -0,0 +1,102 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiConfig.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\iscsidxe\iscsidxe\debug\IScsiDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiImpl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6Config.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AuthenticationInfo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IScsiInitiatorName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ScsiPassThruExt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AdapterInformation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/NetworkInterfaceIdentifier.h" \
+"c:\users\mliang2x\workspace\edk2\CryptoPkg\Include\Library/BaseCryptLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/SafeIntLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/TcpIoLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/EventGroup.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfigNVDataStruc.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/IScsiConfigHii.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDriver.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiProto.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiCHAP.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiIbft.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/IScsiBootFirmwareTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/PciIo.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiMisc.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDns.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfig.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiConfigVfr.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiConfigVfr.c.deps
new file mode 100644
index 000000000000..02962f0718c7
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiConfigVfr.c.deps
@@ -0,0 +1,29 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiConfigVfr.obj: \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\iscsidxe\iscsidxe\debug\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\iscsidxe\iscsidxe\debug\IScsiDxeStrDefs.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiConfigVfr.i b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiConfigVfr.i
new file mode 100644
index 000000000000..d525528d6d96
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiConfigVfr.i
@@ -0,0 +1,803 @@
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\IScsiDxe\\IScsiConfigVfr.vfr"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\NetworkPkg\\IScsiDxe\\IScsiDxe\\DEBUG\\IScsiDxeStrDefs.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern unsigned char IScsiDxeStrings[];
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 146 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\NetworkPkg\\IScsiDxe\\IScsiDxe\\DEBUG\\IScsiDxeStrDefs.h"
+
+#line 148 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\NetworkPkg\\IScsiDxe\\IScsiDxe\\DEBUG\\IScsiDxeStrDefs.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\IScsiDxe\\IScsiConfigVfr.vfr"
+
+
+
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\networkpkg\\iscsidxe\\IScsiConfigNVDataStruc.h"
+
+
+
+
+
+
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\Include\\Guid/IScsiConfigHii.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern EFI_GUID { 0x4b47d616, 0xa8d6, 0x4552, { 0x9d, 0x44, 0xcc, 0xad, 0x2e, 0xf, 0x4c, 0xf9}};
+
+#line 21 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\Include\\Guid/IScsiConfigHii.h"
+#line 13 "c:\\users\\mliang2x\\workspace\\edk2\\networkpkg\\iscsidxe\\IScsiConfigNVDataStruc.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(1)
+
+
+
+
+typedef struct {
+ CHAR16 ISCSIIsId[13];
+ CHAR16 ISCSIInitiatorIpAddress[16];
+ CHAR16 ISCSIInitiatorNetmask[16];
+ CHAR16 ISCSIInitiatorGateway[16];
+ CHAR16 ISCSITargetName[224];
+ CHAR16 ISCSITargetIpAddress[255];
+ CHAR16 ISCSILun[21];
+ CHAR16 ISCSIChapUsername[127];
+ CHAR16 ISCSIChapSecret[17];
+ CHAR16 ISCSIReverseChapUsername[127];
+ CHAR16 ISCSIReverseChapSecret[17];
+} KEYWORD_STR;
+
+typedef struct _ISCSI_CONFIG_IFR_NVDATA {
+ CHAR16 InitiatorName[224];
+ CHAR16 AttemptName[12];
+ UINT8 Enabled;
+ UINT8 IpMode;
+
+ UINT8 ConnectRetryCount;
+ UINT8 Padding1;
+ UINT16 ConnectTimeout;
+
+ UINT8 InitiatorInfoFromDhcp;
+ UINT8 TargetInfoFromDhcp;
+ CHAR16 LocalIp[16];
+ CHAR16 SubnetMask[16];
+ CHAR16 Gateway[16];
+
+ CHAR16 TargetName[224];
+ CHAR16 TargetIp[255];
+ UINT16 TargetPort;
+ CHAR16 BootLun[21];
+
+ UINT8 AuthenticationType;
+
+ UINT8 CHAPType;
+ CHAR16 CHAPName[127];
+ CHAR16 CHAPSecret[17];
+ CHAR16 ReverseCHAPName[127];
+ CHAR16 ReverseCHAPSecret[17];
+
+ BOOLEAN MutualRequired;
+ UINT8 Padding2;
+ CHAR16 KerberosUserName[96];
+ CHAR16 KerberosUserSecret[17];
+ CHAR16 KerberosKDCName[96];
+ CHAR16 KerberosKDCRealm[96];
+ CHAR16 KerberosKDCIp[40];
+ UINT16 KerberosKDCPort;
+
+ UINT8 DynamicOrderedList[0x08];
+ UINT8 DeleteAttemptList[0x08];
+ UINT8 AddAttemptList[0x08];
+ CHAR16 IsId[13];
+
+
+
+
+ CHAR16 ISCSIMacAddr[96];
+ CHAR16 ISCSIAttemptOrder[96];
+ CHAR16 ISCSIAddAttemptList[96];
+ CHAR16 ISCSIDeleteAttemptList[96];
+ CHAR16 ISCSIDisplayAttemptList[96];
+ CHAR16 ISCSIAttemptName[96];
+ UINT8 ISCSIBootEnableList[0x08];
+ UINT8 ISCSIIpAddressTypeList[0x08];
+ UINT8 ISCSIConnectRetry[0x08];
+ UINT16 ISCSIConnectTimeout[0x08];
+ UINT8 ISCSIInitiatorInfoViaDHCP[0x08];
+ UINT8 ISCSITargetInfoViaDHCP[0x08];
+ UINT16 ISCSITargetTcpPort[0x08];
+ UINT8 ISCSIAuthenticationMethod[0x08];
+ UINT8 ISCSIChapType[0x08];
+ KEYWORD_STR Keyword[0x08];
+} ISCSI_CONFIG_IFR_NVDATA;
+#pragma pack()
+
+#line 233 "c:\\users\\mliang2x\\workspace\\edk2\\networkpkg\\iscsidxe\\IScsiConfigNVDataStruc.h"
+#line 10 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\IScsiDxe\\IScsiConfigVfr.vfr"
+
+
+
+formset
+ guid = { 0x4b47d616, 0xa8d6, 0x4552, { 0x9d, 0x44, 0xcc, 0xad, 0x2e, 0xf, 0x4c, 0xf9 } },
+ title = STRING_TOKEN(0x0002),
+ help = STRING_TOKEN(0x0003),
+
+ varstore ISCSI_CONFIG_IFR_NVDATA,
+ varid = 0x6666,
+ name = ISCSI_CONFIG_IFR_NVDATA,
+ guid = { 0x4b47d616, 0xa8d6, 0x4552, { 0x9d, 0x44, 0xcc, 0xad, 0x2e, 0xf, 0x4c, 0xf9 } };
+
+ form formid = 1,
+ title = STRING_TOKEN(0x0004);
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.InitiatorName,
+ prompt = STRING_TOKEN(0x0006),
+ help = STRING_TOKEN(0x0007),
+ flags = INTERACTIVE,
+ key = 0x101,
+ minsize = 4,
+ maxsize = 223,
+ endstring;
+
+ subtitle text = STRING_TOKEN(0x003A);
+
+ goto 2,
+ prompt = STRING_TOKEN(0x000E),
+ help = STRING_TOKEN(0x000E),
+ flags = INTERACTIVE,
+ key = 0x10e;
+
+ label 0x9000;
+ label 0xffff;
+
+ subtitle text = STRING_TOKEN(0x003A);
+
+ goto 5,
+ prompt = STRING_TOKEN (0x0010),
+ help = STRING_TOKEN (0x0011),
+ flags = INTERACTIVE,
+ key = 0x116;
+
+ subtitle text = STRING_TOKEN(0x003A);
+
+ goto 4,
+ prompt = STRING_TOKEN (0x0012),
+ help = STRING_TOKEN (0x0012),
+ flags = INTERACTIVE,
+ key = 0x110;
+
+ subtitle text = STRING_TOKEN(0x003A);
+
+ endform;
+
+ form formid = 2,
+ title = STRING_TOKEN(0x0005);
+
+ label 0x3000;
+ label 0xffff;
+
+ endform;
+
+ form formid = 4,
+ title = STRING_TOKEN(0x0012);
+
+ label 0x4000;
+ label 0xffff;
+
+ text
+ help = STRING_TOKEN (0x003B),
+ text = STRING_TOKEN (0x003B),
+ flags = INTERACTIVE,
+ key = 0x111;
+
+ text
+ help = STRING_TOKEN (0x003C),
+ text = STRING_TOKEN (0x003C),
+ flags = INTERACTIVE,
+ key = 0x112;
+ endform;
+
+ form formid = 5,
+ title = STRING_TOKEN(0x0010);
+
+ label 0x5000;
+ label 0xffff;
+
+ text
+ help = STRING_TOKEN (0x003B),
+ text = STRING_TOKEN (0x003B),
+ flags = INTERACTIVE,
+ key = 0x114;
+
+ text
+ help = STRING_TOKEN (0x003C),
+ text = STRING_TOKEN (0x003C),
+ flags = INTERACTIVE,
+ key = 0x115;
+ endform;
+
+ form formid = 3,
+ title = STRING_TOKEN(0x000F);
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.AttemptName,
+ prompt = STRING_TOKEN(0x0008),
+ help = STRING_TOKEN(0x0009),
+ flags = READ_ONLY,
+ key = 0x113,
+ minsize = 0,
+ maxsize = 12,
+ endstring;
+
+ subtitle text = STRING_TOKEN(0x003A);
+
+ oneof varid = ISCSI_CONFIG_IFR_NVDATA.Enabled,
+ prompt = STRING_TOKEN(0x0013),
+ help = STRING_TOKEN(0x0014),
+ option text = STRING_TOKEN(0x0015), value = 0, flags = DEFAULT;
+ option text = STRING_TOKEN(0x0016), value = 1, flags = 0;
+ option text = STRING_TOKEN(0x0017), value = 2, flags = 0;
+ endoneof;
+
+ subtitle text = STRING_TOKEN(0x003A);
+
+ oneof varid = ISCSI_CONFIG_IFR_NVDATA.IpMode,
+ questionid = 0x11c,
+ prompt = STRING_TOKEN(0x0018),
+ help = STRING_TOKEN(0x0019),
+ option text = STRING_TOKEN(0x001A), value = 0, flags = INTERACTIVE;
+ option text = STRING_TOKEN(0x001B), value = 1, flags = INTERACTIVE;
+ option text = STRING_TOKEN(0x001C), value = 2, flags = INTERACTIVE;
+ endoneof;
+
+ subtitle text = STRING_TOKEN(0x003A);
+
+ numeric varid = ISCSI_CONFIG_IFR_NVDATA.ConnectRetryCount,
+ prompt = STRING_TOKEN(0x000A),
+ help = STRING_TOKEN(0x000B),
+ flags = 0,
+ minimum = 0,
+ maximum = 16,
+ step = 0,
+ endnumeric;
+
+ numeric varid = ISCSI_CONFIG_IFR_NVDATA.ConnectTimeout,
+ prompt = STRING_TOKEN(0x000C),
+ help = STRING_TOKEN(0x000D),
+ flags = 0,
+ minimum = 100,
+ maximum = 20000,
+ step = 0,
+ default = 1000,
+ endnumeric;
+
+ subtitle text = STRING_TOKEN(0x003A);
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.IsId,
+ prompt = STRING_TOKEN(0x003D),
+ help = STRING_TOKEN(0x003E),
+ flags = INTERACTIVE,
+ key = 0x11e,
+ minsize = 6,
+ maxsize = 12,
+ endstring;
+
+ subtitle text = STRING_TOKEN(0x003A);
+
+ suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == 2;
+ checkbox varid = ISCSI_CONFIG_IFR_NVDATA.InitiatorInfoFromDhcp,
+ prompt = STRING_TOKEN(0x002C),
+ help = STRING_TOKEN(0x002C),
+ flags = INTERACTIVE,
+ key = 0x102,
+ endcheckbox;
+ endif;
+
+ suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == 1 OR
+ ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == 2;
+
+ grayoutif ideqval ISCSI_CONFIG_IFR_NVDATA.InitiatorInfoFromDhcp == 0x01;
+ string varid = ISCSI_CONFIG_IFR_NVDATA.LocalIp,
+ prompt = STRING_TOKEN(0x0021),
+ help = STRING_TOKEN(0x0024),
+ flags = INTERACTIVE,
+ key = 0x103,
+ minsize = 7,
+ maxsize = 15,
+ endstring;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.SubnetMask,
+ prompt = STRING_TOKEN(0x0022),
+ help = STRING_TOKEN(0x0024),
+ flags = INTERACTIVE,
+ key = 0x104,
+ minsize = 7,
+ maxsize = 15,
+ endstring;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.Gateway,
+ prompt = STRING_TOKEN(0x0023),
+ help = STRING_TOKEN(0x0024),
+ flags = INTERACTIVE,
+ key = 0x105,
+ minsize = 7,
+ maxsize = 15,
+ endstring;
+ endif;
+
+ endif;
+
+ suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == 2;
+ subtitle text = STRING_TOKEN(0x003A);
+ endif;
+
+ suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == 2 OR
+ ideqval ISCSI_CONFIG_IFR_NVDATA.InitiatorInfoFromDhcp == 0x00;
+ checkbox varid = ISCSI_CONFIG_IFR_NVDATA.TargetInfoFromDhcp,
+ prompt = STRING_TOKEN(0x002D),
+ help = STRING_TOKEN(0x002D),
+ flags = 0,
+ endcheckbox;
+ endif;
+
+ suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == 2 OR
+ ideqval ISCSI_CONFIG_IFR_NVDATA.TargetInfoFromDhcp == 0x01;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.TargetName,
+ prompt = STRING_TOKEN(0x0025),
+ help = STRING_TOKEN(0x0026),
+ flags = INTERACTIVE,
+ key = 0x10c,
+ minsize = 4,
+ maxsize = 223,
+ endstring;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.TargetIp,
+ prompt = STRING_TOKEN(0x0027),
+ help = STRING_TOKEN(0x0028),
+ flags = INTERACTIVE,
+ key = 0x106,
+ minsize = 0,
+ maxsize = 255,
+ endstring;
+
+ numeric varid = ISCSI_CONFIG_IFR_NVDATA.TargetPort,
+ prompt = STRING_TOKEN(0x0029),
+ help = STRING_TOKEN(0x0029),
+ flags = 0,
+ minimum = 0,
+ maximum = 65535,
+ step = 0,
+ endnumeric;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.BootLun,
+ prompt = STRING_TOKEN(0x002A),
+ help = STRING_TOKEN(0x002B),
+ flags = INTERACTIVE,
+ key = 0x10d,
+ minsize = 1,
+ maxsize = 20,
+ endstring;
+
+ endif;
+
+ suppressif ideqval ISCSI_CONFIG_IFR_NVDATA.IpMode == 2;
+ subtitle text = STRING_TOKEN(0x003A);
+ endif;
+
+ oneof varid = ISCSI_CONFIG_IFR_NVDATA.AuthenticationType,
+ questionid = 0x11d,
+ prompt = STRING_TOKEN(0x001D),
+ help = STRING_TOKEN(0x001E),
+ option text = STRING_TOKEN(0x001F), value = 1, flags = 0;
+ option text = STRING_TOKEN(0x0020), value = 0, flags = DEFAULT;
+ endoneof;
+
+ suppressif NOT ideqval ISCSI_CONFIG_IFR_NVDATA.AuthenticationType == 1;
+ oneof varid = ISCSI_CONFIG_IFR_NVDATA.CHAPType,
+ prompt = STRING_TOKEN(0x002E),
+ help = STRING_TOKEN(0x002F),
+ option text = STRING_TOKEN(0x0030), value = 0, flags = 0;
+ option text = STRING_TOKEN(0x0031), value = 1, flags = DEFAULT;
+ endoneof;
+ endif;
+
+ suppressif NOT ideqval ISCSI_CONFIG_IFR_NVDATA.AuthenticationType == 1;
+ string varid = ISCSI_CONFIG_IFR_NVDATA.CHAPName,
+ prompt = STRING_TOKEN(0x0032),
+ help = STRING_TOKEN(0x0032),
+ flags = INTERACTIVE,
+ key = 0x107,
+ minsize = 0,
+ maxsize = 126,
+ endstring;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.CHAPSecret,
+ prompt = STRING_TOKEN(0x0033),
+ help = STRING_TOKEN(0x0034),
+ flags = INTERACTIVE,
+ key = 0x108,
+ minsize = 12,
+ maxsize = 16,
+ endstring;
+
+ endif;
+
+ suppressif NOT ideqval ISCSI_CONFIG_IFR_NVDATA.AuthenticationType == 1 OR
+ NOT ideqval ISCSI_CONFIG_IFR_NVDATA.CHAPType == 1;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.ReverseCHAPName,
+ prompt = STRING_TOKEN(0x0035),
+ help = STRING_TOKEN(0x0035),
+ flags = INTERACTIVE,
+ key = 0x109,
+ minsize = 0,
+ maxsize = 126,
+ endstring;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.ReverseCHAPSecret,
+ prompt = STRING_TOKEN(0x0036),
+ help = STRING_TOKEN(0x0034),
+ flags = INTERACTIVE,
+ key = 0x10a,
+ minsize = 12,
+ maxsize = 16,
+ endstring;
+
+ endif;
+
+ suppressif TRUE;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.ISCSIMacAddr,
+ prompt = STRING_TOKEN(0x003F),
+ help = STRING_TOKEN(0x003F),
+ minsize = 0,
+ maxsize = 96,
+ endstring;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.ISCSIAttemptOrder,
+ prompt = STRING_TOKEN(0x0043),
+ help = STRING_TOKEN(0x0043),
+ minsize = 0,
+ maxsize = 96,
+ endstring;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.ISCSIAddAttemptList,
+ prompt = STRING_TOKEN(0x0040),
+ help = STRING_TOKEN(0x0040),
+ minsize = 0,
+ maxsize = 96,
+ endstring;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.ISCSIDeleteAttemptList,
+ prompt = STRING_TOKEN(0x0041),
+ help = STRING_TOKEN(0x0041),
+ minsize = 0,
+ maxsize = 96,
+ endstring;
+
+ string varid = ISCSI_CONFIG_IFR_NVDATA.ISCSIDisplayAttemptList,
+ prompt = STRING_TOKEN(0x0042),
+ help = STRING_TOKEN(0x0042),
+ flags = READ_ONLY,
+ minsize = 0,
+ maxsize = 96,
+ endstring;
+
+ label 0x6000;
+ label 0xffff;
+ endif;
+
+ subtitle text = STRING_TOKEN(0x003A);
+
+ text
+ help = STRING_TOKEN (0x0039),
+ text = STRING_TOKEN (0x0038),
+ flags = INTERACTIVE,
+ key = 0x10f;
+
+ goto 1,
+ prompt = STRING_TOKEN (0x0037),
+ help = STRING_TOKEN (0x0037),
+ flags = 0;
+
+ endform;
+
+endformset;
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDhcp.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDhcp.c.deps
new file mode 100644
index 000000000000..804941809359
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDhcp.c.deps
@@ -0,0 +1,102 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiDhcp.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\iscsidxe\iscsidxe\debug\IScsiDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiImpl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6Config.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AuthenticationInfo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IScsiInitiatorName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ScsiPassThruExt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AdapterInformation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/NetworkInterfaceIdentifier.h" \
+"c:\users\mliang2x\workspace\edk2\CryptoPkg\Include\Library/BaseCryptLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/SafeIntLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/TcpIoLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/EventGroup.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfigNVDataStruc.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/IScsiConfigHii.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDriver.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiProto.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiCHAP.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiIbft.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/IScsiBootFirmwareTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/PciIo.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiMisc.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDns.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfig.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDhcp6.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDhcp6.c.deps
new file mode 100644
index 000000000000..af7ebc4902c9
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDhcp6.c.deps
@@ -0,0 +1,102 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiDhcp6.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\iscsidxe\iscsidxe\debug\IScsiDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiImpl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6Config.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AuthenticationInfo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IScsiInitiatorName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ScsiPassThruExt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AdapterInformation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/NetworkInterfaceIdentifier.h" \
+"c:\users\mliang2x\workspace\edk2\CryptoPkg\Include\Library/BaseCryptLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/SafeIntLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/TcpIoLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/EventGroup.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfigNVDataStruc.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/IScsiConfigHii.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDriver.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiProto.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiCHAP.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiIbft.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/IScsiBootFirmwareTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/PciIo.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiMisc.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDns.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfig.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDns.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDns.c.deps
new file mode 100644
index 000000000000..123ebd4a7167
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDns.c.deps
@@ -0,0 +1,102 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiDns.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\iscsidxe\iscsidxe\debug\IScsiDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiImpl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6Config.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AuthenticationInfo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IScsiInitiatorName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ScsiPassThruExt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AdapterInformation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/NetworkInterfaceIdentifier.h" \
+"c:\users\mliang2x\workspace\edk2\CryptoPkg\Include\Library/BaseCryptLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/SafeIntLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/TcpIoLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/EventGroup.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfigNVDataStruc.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/IScsiConfigHii.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDriver.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiProto.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiCHAP.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiIbft.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/IScsiBootFirmwareTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/PciIo.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiMisc.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDns.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfig.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDriver.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDriver.c.deps
new file mode 100644
index 000000000000..00742cd23b99
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDriver.c.deps
@@ -0,0 +1,102 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiDriver.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\iscsidxe\iscsidxe\debug\IScsiDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiImpl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6Config.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AuthenticationInfo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IScsiInitiatorName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ScsiPassThruExt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AdapterInformation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/NetworkInterfaceIdentifier.h" \
+"c:\users\mliang2x\workspace\edk2\CryptoPkg\Include\Library/BaseCryptLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/SafeIntLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/TcpIoLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/EventGroup.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfigNVDataStruc.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/IScsiConfigHii.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDriver.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiProto.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiCHAP.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiIbft.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/IScsiBootFirmwareTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/PciIo.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiMisc.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDns.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfig.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxe.efi b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxe.efi
new file mode 100644
index 0000000000000000000000000000000000000000..4b89705b3e8e382faf344b8a892594547358c27c
GIT binary patch
literal 135040
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%0AF1vGfqliV5UXhIr9%<
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≧K+S?tssK1wLa;
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
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxe.lib b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxe.lib
new file mode 100644
index 0000000000000000000000000000000000000000..32913bdbfa96b7ec691f2acd31ec8f2954033206
GIT binary patch
literal 986420
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Ν
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�KW_GHd$%glL+RTSJ
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
OU4_m&xWgav@c#h0cRr{9
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxe.map b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxe.map
new file mode 100644
index 000000000000..d0158f8be3da
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxe.map
@@ -0,0 +1,1428 @@
+ IScsiDxe
+
+ Timestamp is 647841dd (Thu Jun 1 14:59:41 2023)
+
+ Preferred load address is 0000000000000000
+
+ Start Length Name Class
+ 0001:00000000 00000348H .text CODE
+ 0001:00000348 00017f4fH .text$mn CODE
+ 0002:00000000 00005444H .rdata DATA
+ 0002:00005444 00000130H .rdata$zzzdbg DATA
+ 0003:00000000 00001c88H .data DATA
+ 0003:00001c88 000000b8H .bss DATA
+ 0004:00000000 00000cb4H .pdata DATA
+ 0005:00000000 00000a34H .xdata DATA
+
+ Address Publics by Value Rva+Base Lib:Object
+
+ 0000:00000000 __dynamic_value_reloc_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_longjmp_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_flags 0000000000000000 <absolute>
+ 0000:00000000 __guard_longjmp_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_iat_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_iat_count 0000000000000000 <absolute>
+ 0001:00000000 InternalMemCopyMem 00000000000002c0 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000040 InternalMemCompareMem 0000000000000300 BaseMemoryLibRepStr:CompareMem.obj
+ 0001:00000060 InternalMemZeroMem 0000000000000320 BaseMemoryLibRepStr:ZeroMem.obj
+ 0001:00000080 InternalMemSetMem 0000000000000340 BaseMemoryLibRepStr:SetMem.obj
+ 0001:000000a0 InternalMemSetMem64 0000000000000360 BaseMemoryLibRepStr:SetMem64.obj
+ 0001:000000c0 InternalMemSetMem32 0000000000000380 BaseMemoryLibRepStr:SetMem32.obj
+ 0001:000000e0 InternalMemSetMem16 00000000000003a0 BaseMemoryLibRepStr:SetMem16.obj
+ 0001:00000100 CpuPause 00000000000003c0 BaseLib:CpuPause.obj
+ 0001:00000110 SevNoRepIo 00000000000003d0 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000150 SevIoReadFifo8 0000000000000410 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000172 SevIoReadFifo16 0000000000000432 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000198 SevIoReadFifo32 0000000000000458 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001bb SevIoWriteFifo8 000000000000047b BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001dd SevIoWriteFifo16 000000000000049d BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000203 SevIoWriteFifo32 00000000000004c3 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000230 TdVmCall 00000000000004f0 BaseLib:TdVmcall.obj
+ 0001:000002c0 EnableInterrupts 0000000000000580 BaseLib:EnableInterrupts.obj
+ 0001:000002d0 DisableInterrupts 0000000000000590 BaseLib:DisableInterrupts.obj
+ 0001:000002e0 AsmReadEflags 00000000000005a0 BaseLib:ReadEflags.obj
+ 0001:000002f0 TdCall 00000000000005b0 BaseLib:TdCall.obj
+ 0001:00000348 _DriverUnloadHandler 0000000000000608 f UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0001:00000350 _ModuleEntryPoint 0000000000000610 f UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0001:000003cc ProcessLibraryConstructorList 000000000000068c f IScsiDxe:AutoGen.obj
+ 0001:00000758 IScsiCheckAip 0000000000000a18 f IScsiDxe:IScsiDriver.obj
+ 0001:00000984 IScsiSupported 0000000000000c44 f IScsiDxe:IScsiDriver.obj
+ 0001:00000b28 IScsiStart 0000000000000de8 f IScsiDxe:IScsiDriver.obj
+ 0001:00001538 IScsiStop 00000000000017f8 f IScsiDxe:IScsiDriver.obj
+ 0001:000017dc IScsiIp4DriverBindingSupported 0000000000001a9c f IScsiDxe:IScsiDriver.obj
+ 0001:000017e4 IScsiIp4DriverBindingStart 0000000000001aa4 f IScsiDxe:IScsiDriver.obj
+ 0001:0000180c IScsiIp4DriverBindingStop 0000000000001acc f IScsiDxe:IScsiDriver.obj
+ 0001:00001820 IScsiIp6DriverBindingSupported 0000000000001ae0 f IScsiDxe:IScsiDriver.obj
+ 0001:00001828 IScsiIp6DriverBindingStart 0000000000001ae8 f IScsiDxe:IScsiDriver.obj
+ 0001:00001850 IScsiIp6DriverBindingStop 0000000000001b10 f IScsiDxe:IScsiDriver.obj
+ 0001:00001864 IScsiUnload 0000000000001b24 f IScsiDxe:IScsiDriver.obj
+ 0001:00001b68 IScsiDriverEntryPoint 0000000000001e28 f IScsiDxe:IScsiDriver.obj
+ 0001:00001dcc IScsiCHAPCalculateResponse 000000000000208c f IScsiDxe:IScsiCHAP.obj
+ 0001:00001ec4 IScsiCHAPAuthTarget 0000000000002184 f IScsiDxe:IScsiCHAP.obj
+ 0001:00001f9c IScsiCHAPOnRspReceived 000000000000225c f IScsiDxe:IScsiCHAP.obj
+ 0001:0000233c IScsiCHAPToSendReq 00000000000025fc f IScsiDxe:IScsiCHAP.obj
+ 0001:0000264c IScsiCHAPInitHashList 000000000000290c f IScsiDxe:IScsiCHAP.obj
+ 0001:00002740 IScsiGetSubnetMaskPrefixLength 0000000000002a00 f IScsiDxe:IScsiMisc.obj
+ 0001:00002780 IScsiAsciiStrToLun 0000000000002a40 f IScsiDxe:IScsiMisc.obj
+ 0001:00002874 IScsiLunToUnicodeStr 0000000000002b34 f IScsiDxe:IScsiMisc.obj
+ 0001:00002a38 IScsiAsciiStrToIp 0000000000002cf8 f IScsiDxe:IScsiMisc.obj
+ 0001:00002ac8 IScsiMacAddrToStr 0000000000002d88 f IScsiDxe:IScsiMisc.obj
+ 0001:00002b60 IScsiBinToHex 0000000000002e20 f IScsiDxe:IScsiMisc.obj
+ 0001:00002c0c IScsiHexToBin 0000000000002ecc f IScsiDxe:IScsiMisc.obj
+ 0001:00002d00 IScsiNetNtoi 0000000000002fc0 f IScsiDxe:IScsiMisc.obj
+ 0001:00002d3c IScsiGenRandom 0000000000002ffc f IScsiDxe:IScsiMisc.obj
+ 0001:00002de4 IScsiCheckIpv6Support 00000000000030a4 f IScsiDxe:IScsiMisc.obj
+ 0001:00002f74 IScsiAddNic 0000000000003234 f IScsiDxe:IScsiMisc.obj
+ 0001:00003174 IScsiRemoveNic 0000000000003434 f IScsiDxe:IScsiMisc.obj
+ 0001:0000330c IScsiCreateAttempts 00000000000035cc f IScsiDxe:IScsiMisc.obj
+ 0001:000034fc IScsiCreateKeywords 00000000000037bc f IScsiDxe:IScsiMisc.obj
+ 0001:0000432c IScsiGetVariableAndSize 00000000000045ec f IScsiDxe:IScsiMisc.obj
+ 0001:000043d8 IScsiCreateDriverData 0000000000004698 f IScsiDxe:IScsiMisc.obj
+ 0001:000044ac IScsiCleanDriverData 000000000000476c f IScsiDxe:IScsiMisc.obj
+ 0001:00004560 IScsiDhcpIsConfigured 0000000000004820 f IScsiDxe:IScsiMisc.obj
+ 0001:00004728 IScsiDnsIsConfigured 00000000000049e8 f IScsiDxe:IScsiMisc.obj
+ 0001:000048bc IScsiGetConfigData 0000000000004b7c f IScsiDxe:IScsiMisc.obj
+ 0001:00004ef4 IScsiGetTcpConnDevicePath 00000000000051b4 f IScsiDxe:IScsiMisc.obj
+ 0001:0000508c IScsiOnExitBootService 000000000000534c f IScsiDxe:IScsiMisc.obj
+ 0001:000050c0 IScsiTestManagedDevice 0000000000005380 f IScsiDxe:IScsiMisc.obj
+ 0001:00005198 IScsiComponentNameGetDriverName 0000000000005458 f IScsiDxe:ComponentName.obj
+ 0001:000051cc UpdateName 000000000000548c f IScsiDxe:ComponentName.obj
+ 0001:000052bc IScsiComponentNameGetControllerName 000000000000557c f IScsiDxe:ComponentName.obj
+ 0001:00005418 IScsiIpToStr 00000000000056d8 f IScsiDxe:IScsiConfig.obj
+ 0001:000055c0 IpIsUnicast 0000000000005880 f IScsiDxe:IScsiConfig.obj
+ 0001:0000568c IScsiParseIsIdFromString 000000000000594c f IScsiDxe:IScsiConfig.obj
+ 0001:00005778 IScsiConvertIsIdToString 0000000000005a38 f IScsiDxe:IScsiConfig.obj
+ 0001:000057f8 IScsiGetValue 0000000000005ab8 f IScsiDxe:IScsiConfig.obj
+ 0001:00005984 IScsiConfigGetAttemptByConfigIndex 0000000000005c44 f IScsiDxe:IScsiConfig.obj
+ 0001:000059a8 IScsiGetAttemptIndexList 0000000000005c68 f IScsiDxe:IScsiConfig.obj
+ 0001:00005a58 IScsiConvertAttemptConfigDataToIfrNvData 0000000000005d18 f IScsiDxe:IScsiConfig.obj
+ 0001:00005cd8 IScsiConvertAttemptConfigDataToIfrNvDataByKeyword 0000000000005f98 f IScsiDxe:IScsiConfig.obj
+ 0001:00006168 IScsiConvertIfrNvDataToAttemptConfigData 0000000000006428 f IScsiDxe:IScsiConfig.obj
+ 0001:000068b0 IScsiConvertlfrNvDataToAttemptConfigDataByKeyword 0000000000006b70 f IScsiDxe:IScsiConfig.obj
+ 0001:000074a0 IScsiCreateOpCode 0000000000007760 f IScsiDxe:IScsiConfig.obj
+ 0001:00007590 IScsiConfigUpdateAttempt 0000000000007850 f IScsiDxe:IScsiConfig.obj
+ 0001:00007690 IScsiConfigAddAttempt 0000000000007950 f IScsiDxe:IScsiConfig.obj
+ 0001:00007828 IScsiConfigAddAttemptsByKeywords 0000000000007ae8 f IScsiDxe:IScsiConfig.obj
+ 0001:00007b3c IScsiConfigDeleteAttempts 0000000000007dfc f IScsiDxe:IScsiConfig.obj
+ 0001:00007dd8 IScsiConfigDisplayDeleteAttempts 0000000000008098 f IScsiDxe:IScsiConfig.obj
+ 0001:00007f38 IScsiConfigDisplayOrderAttempts 00000000000081f8 f IScsiDxe:IScsiConfig.obj
+ 0001:000080d8 IScsiConfigOrderAttempts 0000000000008398 f IScsiDxe:IScsiConfig.obj
+ 0001:0000824c IScsiConfigProcessDefault 000000000000850c f IScsiDxe:IScsiConfig.obj
+ 0001:00008510 IScsiFormExtractConfig 00000000000087d0 f IScsiDxe:IScsiConfig.obj
+ 0001:00008758 IScsiFormRouteConfig 0000000000008a18 f IScsiDxe:IScsiConfig.obj
+ 0001:00008af0 IScsiFormCallback 0000000000008db0 f IScsiDxe:IScsiConfig.obj
+ 0001:000093a8 IScsiConfigFormInit 0000000000009668 f IScsiDxe:IScsiConfig.obj
+ 0001:000094f0 IScsiConfigFormUnload 00000000000097b0 f IScsiDxe:IScsiConfig.obj
+ 0001:0000968c IScsiCheckSN 000000000000994c f IScsiDxe:IScsiProto.obj
+ 0001:000096d0 IScsiUpdateCmdSN 0000000000009990 f IScsiDxe:IScsiProto.obj
+ 0001:00009754 IScsiConnReset 0000000000009a14 f IScsiDxe:IScsiProto.obj
+ 0001:000097e8 IScsiCreateConnection 0000000000009aa8 f IScsiDxe:IScsiProto.obj
+ 0001:00009a1c IScsiGetIp6NicInfo 0000000000009cdc f IScsiDxe:IScsiProto.obj
+ 0001:00009c88 IScsiSessionLogin 0000000000009f48 f IScsiDxe:IScsiProto.obj
+ 0001:0000a074 IScsiSessionReLogin 000000000000a334 f IScsiDxe:IScsiProto.obj
+ 0001:0000a134 IScsiAddKeyValuePair 000000000000a3f4 f IScsiDxe:IScsiProto.obj
+ 0001:0000a238 IScsiPrepareLoginReq 000000000000a4f8 f IScsiDxe:IScsiProto.obj
+ 0001:0000a3e8 IScsiProcessLoginRsp 000000000000a6a8 f IScsiDxe:IScsiProto.obj
+ 0001:0000a740 IScsiUpdateTargetAddress 000000000000aa00 f IScsiDxe:IScsiProto.obj
+ 0001:0000a90c IScsiFreeNbufList 000000000000abcc f IScsiDxe:IScsiProto.obj
+ 0001:0000a948 IScsiNbufExtFree 000000000000ac08 f IScsiDxe:IScsiProto.obj
+ 0001:0000a94c IScsiReceivePdu 000000000000ac0c f IScsiDxe:IScsiProto.obj
+ 0001:0000abac IScsiCheckOpParams 000000000000ae6c f IScsiDxe:IScsiProto.obj
+ 0001:0000b0a4 IScsiFillOpParams 000000000000b364 f IScsiDxe:IScsiProto.obj
+ 0001:0000b3bc IScsiBuildKeyValueList 000000000000b67c f IScsiDxe:IScsiProto.obj
+ 0001:0000b490 IScsiGetValueByKeyFromList 000000000000b750 f IScsiDxe:IScsiProto.obj
+ 0001:0000b4fc IScsiFreeKeyValueList 000000000000b7bc f IScsiDxe:IScsiProto.obj
+ 0001:0000b530 IScsiNormalizeName 000000000000b7f0 f IScsiDxe:IScsiProto.obj
+ 0001:0000b5b0 IScsiNewTcb 000000000000b870 f IScsiDxe:IScsiProto.obj
+ 0001:0000b698 IScsiNewDataSegment 000000000000b958 f IScsiDxe:IScsiProto.obj
+ 0001:0000b6ec IScsiNewScsiCmdPdu 000000000000b9ac f IScsiDxe:IScsiProto.obj
+ 0001:0000b9e4 IScsiNewDataOutPdu 000000000000bca4 f IScsiDxe:IScsiProto.obj
+ 0001:0000bba0 IScsiSendDataOutPduSequence 000000000000be60 f IScsiDxe:IScsiProto.obj
+ 0001:0000bcb4 IScsiOnDataInRcvd 000000000000bf74 f IScsiDxe:IScsiProto.obj
+ 0001:0000be6c IScsiOnR2TRcvd 000000000000c12c f IScsiDxe:IScsiProto.obj
+ 0001:0000bfe8 IScsiOnScsiRspRcvd 000000000000c2a8 f IScsiDxe:IScsiProto.obj
+ 0001:0000c250 IScsiOnNopInRcvd 000000000000c510 f IScsiDxe:IScsiProto.obj
+ 0001:0000c324 IScsiExecuteScsiCommand 000000000000c5e4 f IScsiDxe:IScsiProto.obj
+ 0001:0000c660 IScsiSessionInit 000000000000c920 f IScsiDxe:IScsiProto.obj
+ 0001:0000c714 IScsiSessionAbort 000000000000c9d4 f IScsiDxe:IScsiProto.obj
+ 0001:0000c838 IScsiGetAuthenticationInfo 000000000000caf8 f IScsiDxe:IScsiAuthenticationInfo.obj
+ 0001:0000c844 IScsiExtScsiPassThruResetChannel 000000000000cb04 f IScsiDxe:IScsiExtScsiPassThru.obj
+ 0001:0000c844 IScsiExtScsiPassThruResetTargetLun 000000000000cb04 f IScsiDxe:IScsiExtScsiPassThru.obj
+ 0001:0000c844 IScsiSetAuthenticationInfo 000000000000cb04 f IScsiDxe:IScsiAuthenticationInfo.obj
+ 0001:0000c850 IScsiGetInitiatorName 000000000000cb10 f IScsiDxe:IScsiInitiatorName.obj
+ 0001:0000c894 IScsiSetInitiatorName 000000000000cb54 f IScsiDxe:IScsiInitiatorName.obj
+ 0001:0000c90c IScsiInitIbfTableHeader 000000000000cbcc f IScsiDxe:IScsiIbft.obj
+ 0001:0000c95c IScsiAddHeapItem 000000000000cc1c f IScsiDxe:IScsiIbft.obj
+ 0001:0000c990 IScsiMapV4ToV6Addr 000000000000cc50 f IScsiDxe:IScsiIbft.obj
+ 0001:0000c9dc IScsiFillNICAndTargetSections 000000000000cc9c f IScsiDxe:IScsiIbft.obj
+ 0001:0000ceb8 IScsiPublishIbft 000000000000d178 f IScsiDxe:IScsiIbft.obj
+ 0001:0000d134 IScsiDhcp6ExtractRootPath 000000000000d3f4 f IScsiDxe:IScsiDhcp6.obj
+ 0001:0000d470 IScsiDhcp6ParseReply 000000000000d730 f IScsiDxe:IScsiDhcp6.obj
+ 0001:0000d624 IScsiDoDhcp6 000000000000d8e4 f IScsiDxe:IScsiDhcp6.obj
+ 0001:0000d8c4 IScsiDhcpExtractRootPath 000000000000db84 f IScsiDxe:IScsiDhcp.obj
+ 0001:0000db94 IScsiDhcpSelectOffer 000000000000de54 f IScsiDxe:IScsiDhcp.obj
+ 0001:0000dc98 IScsiParseDhcpAck 000000000000df58 f IScsiDxe:IScsiDhcp.obj
+ 0001:0000de38 IScsiDoDhcp 000000000000e0f8 f IScsiDxe:IScsiDhcp.obj
+ 0001:0000e0b8 IScsiExtScsiPassThruFunction 000000000000e378 f IScsiDxe:IScsiExtScsiPassThru.obj
+ 0001:0000e1bc IScsiExtScsiPassThruGetNextTargetLun 000000000000e47c f IScsiDxe:IScsiExtScsiPassThru.obj
+ 0001:0000e298 IScsiExtScsiPassThruBuildDevicePath 000000000000e558 f IScsiDxe:IScsiExtScsiPassThru.obj
+ 0001:0000e3fc IScsiExtScsiPassThruGetTargetLun 000000000000e6bc f IScsiDxe:IScsiExtScsiPassThru.obj
+ 0001:0000e4fc IScsiExtScsiPassThruGetNextTarget 000000000000e7bc f IScsiDxe:IScsiExtScsiPassThru.obj
+ 0001:0000e558 IScsiCommonNotify 000000000000e818 f IScsiDxe:IScsiDns.obj
+ 0001:0000e55c IScsiDns4 000000000000e81c f IScsiDxe:IScsiDns.obj
+ 0001:0000e870 IScsiDns6 000000000000eb30 f IScsiDxe:IScsiDns.obj
+ 0001:0000eb54 CopyMem 000000000000ee14 f BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0001:0000ebf0 CopyGuid 000000000000eeb0 f BaseMemoryLibRepStr:MemLibGuid.obj
+ 0001:0000ec74 CompareGuid 000000000000ef34 f BaseMemoryLibRepStr:MemLibGuid.obj
+ 0001:0000ecdc CompareMem 000000000000ef9c f BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0001:0000edb4 ZeroMem 000000000000f074 f BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0001:0000ee18 SetMem 000000000000f0d8 f BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0001:0000ee78 InternalBaseLibIsListValid 000000000000f138 f BaseLib:LinkedList.obj
+ 0001:0000eee4 InitializeListHead 000000000000f1a4 f BaseLib:LinkedList.obj
+ 0001:0000ef1c InsertTailList 000000000000f1dc f BaseLib:LinkedList.obj
+ 0001:0000ef70 IsListEmpty 000000000000f230 f BaseLib:LinkedList.obj
+ 0001:0000efa8 RemoveEntryList 000000000000f268 f BaseLib:LinkedList.obj
+ 0001:0000eff0 StrLen 000000000000f2b0 f BaseLib:String.obj
+ 0001:0000f084 StrCmp 000000000000f344 f BaseLib:String.obj
+ 0001:0000f120 StrnCmp 000000000000f3e0 f BaseLib:String.obj
+ 0001:0000f208 StrStr 000000000000f4c8 f BaseLib:String.obj
+ 0001:0000f2d0 InternalHexCharToUintn 000000000000f590 f BaseLib:String.obj
+ 0001:0000f300 StrHexToUint64 000000000000f5c0 f BaseLib:String.obj
+ 0001:0000f458 AsciiStrLen 000000000000f718 f BaseLib:String.obj
+ 0001:0000f4c4 AsciiStrCmp 000000000000f784 f BaseLib:String.obj
+ 0001:0000f548 InternalAsciiHexCharToUintn 000000000000f808 f BaseLib:String.obj
+ 0001:0000f578 AsciiStrnCmp 000000000000f838 f BaseLib:String.obj
+ 0001:0000f644 AsciiStrHexToUint64 000000000000f904 f BaseLib:String.obj
+ 0001:0000f75c StrnLenS 000000000000fa1c f BaseLib:SafeString.obj
+ 0001:0000f7c4 StrCpyS 000000000000fa84 f BaseLib:SafeString.obj
+ 0001:0000f954 StrnCpyS 000000000000fc14 f BaseLib:SafeString.obj
+ 0001:0000fb2c StrCatS 000000000000fdec f BaseLib:SafeString.obj
+ 0001:0000fd14 StrDecimalToUintnS 000000000000ffd4 f BaseLib:SafeString.obj
+ 0001:0000fe7c StrHexToUintnS 000000000001013c f BaseLib:SafeString.obj
+ 0001:0000fff0 AsciiStrnLenS 00000000000102b0 f BaseLib:SafeString.obj
+ 0001:0001001c AsciiStrCpyS 00000000000102dc f BaseLib:SafeString.obj
+ 0001:00010158 AsciiStrDecimalToUintnS 0000000000010418 f BaseLib:SafeString.obj
+ 0001:00010280 AsciiStrHexToUintnS 0000000000010540 f BaseLib:SafeString.obj
+ 0001:000103d4 UnicodeStrToAsciiStrS 0000000000010694 f BaseLib:SafeString.obj
+ 0001:00010560 AsciiStrToUnicodeStrS 0000000000010820 f BaseLib:SafeString.obj
+ 0001:000106d8 AsciiStrToIpv6Address 0000000000010998 f BaseLib:SafeString.obj
+ 0001:00010918 ReadUnaligned16 0000000000010bd8 f BaseLib:Unaligned.obj
+ 0001:00010948 WriteUnaligned16 0000000000010c08 f BaseLib:Unaligned.obj
+ 0001:00010984 ReadUnaligned32 0000000000010c44 f BaseLib:Unaligned.obj
+ 0001:000109b4 WriteUnaligned32 0000000000010c74 f BaseLib:Unaligned.obj
+ 0001:000109f0 ReadUnaligned64 0000000000010cb0 f BaseLib:Unaligned.obj
+ 0001:00010a20 UnicodeVSPrint 0000000000010ce0 f BasePrintLib:PrintLib.obj
+ 0001:00010aac UnicodeSPrint 0000000000010d6c f BasePrintLib:PrintLib.obj
+ 0001:00010acc UnicodeVSPrintAsciiFormat 0000000000010d8c f BasePrintLib:PrintLib.obj
+ 0001:00010b2c UnicodeValueToStringS 0000000000010dec f BasePrintLib:PrintLib.obj
+ 0001:00010b8c AsciiSPrint 0000000000010e4c f BasePrintLib:PrintLib.obj
+ 0001:00010bb4 BasePrintLibFillBuffer 0000000000010e74 f BasePrintLib:PrintLibInternal.obj
+ 0001:00010be8 BasePrintLibValueToString 0000000000010ea8 f BasePrintLib:PrintLibInternal.obj
+ 0001:00010c60 BasePrintLibConvertValueToStringS 0000000000010f20 f BasePrintLib:PrintLibInternal.obj
+ 0001:00010e14 BasePrintLibSPrintMarker 00000000000110d4 f BasePrintLib:PrintLibInternal.obj
+ 0001:00011c48 BasePrintLibSPrint 0000000000011f08 f BasePrintLib:PrintLibInternal.obj
+ 0001:00011c6c DebugPrint 0000000000011f2c f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:00011c90 DebugPrintMarker 0000000000011f50 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:00011d18 DebugAssert 0000000000011fd8 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:00011d88 PlatformDebugLibIoPortFound 0000000000012048 f PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0001:00011dd0 InternalAllocatePool 0000000000012090 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00011e00 AllocateZeroPool 00000000000120c0 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00011e2c InternalAllocateCopyPool 00000000000120ec f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00011ea4 InternalReallocatePool 0000000000012164 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00011f24 FreePool 00000000000121e4 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00011f68 DevicePathType 0000000000012228 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00011f98 DevicePathSubType 0000000000012258 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00011fc8 DevicePathNodeLength 0000000000012288 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00012000 NextDevicePathNode 00000000000122c0 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00012038 IsDevicePathEnd 00000000000122f8 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:000120a4 SetDevicePathNodeLength 0000000000012364 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:0001210c DevicePathFromHandle 00000000000123cc f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00012140 CompareIso639LanguageCode 0000000000012400 f UefiLib:UefiLib.obj
+ 0001:000121a8 EfiGetSystemConfigurationTable 0000000000012468 f UefiLib:UefiLib.obj
+ 0001:0001226c EfiTestChildHandle 000000000001252c f UefiLib:UefiLib.obj
+ 0001:00012324 IsLanguageSupported 00000000000125e4 f UefiLib:UefiLib.obj
+ 0001:000123a4 LookupUnicodeString2 0000000000012664 f UefiLib:UefiLib.obj
+ 0001:000124b0 AddUnicodeString2 0000000000012770 f UefiLib:UefiLib.obj
+ 0001:00012684 FreeUnicodeStringTable 0000000000012944 f UefiLib:UefiLib.obj
+ 0001:000126ec GetVariable2 00000000000129ac f UefiLib:UefiLib.obj
+ 0001:000127e0 EfiLibInstallDriverBindingComponentName2 0000000000012aa0 f UefiLib:UefiDriverModel.obj
+ 0001:000128b0 EfiLibUninstallDriverBindingComponentName2 0000000000012b70 f UefiLib:UefiDriverModel.obj
+ 0001:00012960 UefiLibGetStringWidth 0000000000012c20 f UefiLib:Console.obj
+ 0001:00012a08 CreatePopUp 0000000000012cc8 f UefiLib:Console.obj
+ 0001:00012dcc AsciiInternalPrint 000000000001308c f UefiLib:UefiLibPrint.obj
+ 0001:00012ea4 AsciiPrint 0000000000013164 f UefiLib:UefiLibPrint.obj
+ 0001:00012efc GetHobList 00000000000131bc f DxeHobLib:HobLib.obj
+ 0001:00012f80 GetNextHob 0000000000013240 f DxeHobLib:HobLib.obj
+ 0001:00012fd0 Md5GetContextSize 0000000000013290 f BaseCryptLib:CryptMd5.obj
+ 0001:00012fd8 Md5Init 0000000000013298 f BaseCryptLib:CryptMd5.obj
+ 0001:0001301c Md5Update 00000000000132dc f BaseCryptLib:CryptMd5.obj
+ 0001:00013034 Md5Final 00000000000132f4 f BaseCryptLib:CryptMd5.obj
+ 0001:00013050 Sha256GetContextSize 0000000000013310 f BaseCryptLib:CryptSha256.obj
+ 0001:00013058 Sha256Init 0000000000013318 f BaseCryptLib:CryptSha256.obj
+ 0001:00013068 Sha256Update 0000000000013328 f BaseCryptLib:CryptSha256.obj
+ 0001:00013080 Sha256Final 0000000000013340 f BaseCryptLib:CryptSha256.obj
+ 0001:0001309c HiiSetString 000000000001335c f UefiHiiLib:HiiString.obj
+ 0001:00013218 HiiAddPackages 00000000000134d8 f UefiHiiLib:HiiLib.obj
+ 0001:00013354 InternalHiiBrowserCallback 0000000000013614 f UefiHiiLib:HiiLib.obj
+ 0001:00013450 HiiConstructConfigHdr 0000000000013710 f UefiHiiLib:HiiLib.obj
+ 0001:00013694 InternalHiiCompareSubString 0000000000013954 f UefiHiiLib:HiiLib.obj
+ 0001:000137b0 HiiIsConfigHdrMatch 0000000000013a70 f UefiHiiLib:HiiLib.obj
+ 0001:00013848 HiiGetBrowserData 0000000000013b08 f UefiHiiLib:HiiLib.obj
+ 0001:0001390c HiiSetBrowserData 0000000000013bcc f UefiHiiLib:HiiLib.obj
+ 0001:00013a34 HiiAllocateOpCodeHandle 0000000000013cf4 f UefiHiiLib:HiiLib.obj
+ 0001:00013a84 HiiFreeOpCodeHandle 0000000000013d44 f UefiHiiLib:HiiLib.obj
+ 0001:00013ac4 InternalHiiGrowOpCodeHandle 0000000000013d84 f UefiHiiLib:HiiLib.obj
+ 0001:00013b68 InternalHiiCreateOpCodeExtended 0000000000013e28 f UefiHiiLib:HiiLib.obj
+ 0001:00013c1c InternalHiiAppendOpCodes 0000000000013edc f UefiHiiLib:HiiLib.obj
+ 0001:00013c9c HiiCreateEndOpCode 0000000000013f5c f UefiHiiLib:HiiLib.obj
+ 0001:00013cc4 HiiCreateGuidOpCode 0000000000013f84 f UefiHiiLib:HiiLib.obj
+ 0001:00013d18 HiiCreateGotoOpCode 0000000000013fd8 f UefiHiiLib:HiiLib.obj
+ 0001:00013d94 HiiCreateNumericOpCode 0000000000014054 f UefiHiiLib:HiiLib.obj
+ 0001:00013ea8 HiiCreateStringOpCode 0000000000014168 f UefiHiiLib:HiiLib.obj
+ 0001:00013f68 HiiCreateOrderedListOpCode 0000000000014228 f UefiHiiLib:HiiLib.obj
+ 0001:00014014 InternalHiiUpdateFormPackageData 00000000000142d4 f UefiHiiLib:HiiLib.obj
+ 0001:00014264 HiiUpdateForm 0000000000014524 f UefiHiiLib:HiiLib.obj
+ 0001:000144bc HiiGetSupportedLanguages 000000000001477c f UefiHiiLib:HiiLanguage.obj
+ 0001:00014560 NetIp4IsUnicast 0000000000014820 f DxeNetLib:DxeNetLib.obj
+ 0001:000145f8 NetListRemoveHead 00000000000148b8 f DxeNetLib:DxeNetLib.obj
+ 0001:00014650 NetLibCreateServiceChild 0000000000014910 f DxeNetLib:DxeNetLib.obj
+ 0001:000146e4 NetLibDestroyServiceChild 00000000000149a4 f DxeNetLib:DxeNetLib.obj
+ 0001:00014774 NetLibGetSnpHandle 0000000000014a34 f DxeNetLib:DxeNetLib.obj
+ 0001:0001483c NetLibGetVlanId 0000000000014afc f DxeNetLib:DxeNetLib.obj
+ 0001:00014890 NetLibGetMacAddress 0000000000014b50 f DxeNetLib:DxeNetLib.obj
+ 0001:00014a10 NetLibDetectMedia 0000000000014cd0 f DxeNetLib:DxeNetLib.obj
+ 0001:00014c44 NetLibDetectMediaWaitTimeout 0000000000014f04 f DxeNetLib:DxeNetLib.obj
+ 0001:00014e74 NetLibGetNicHandle 0000000000015134 f DxeNetLib:DxeNetLib.obj
+ 0001:00014f1c NetLibAsciiStrToIp4 00000000000151dc f DxeNetLib:DxeNetLib.obj
+ 0001:00015044 NetLibStrToIp4 0000000000015304 f DxeNetLib:DxeNetLib.obj
+ 0001:0001519c NetbufAllocStruct 000000000001545c f DxeNetLib:NetBuffer.obj
+ 0001:00015254 NetbufAlloc 0000000000015514 f DxeNetLib:NetBuffer.obj
+ 0001:000152fc NetbufFreeVector 00000000000155bc f DxeNetLib:NetBuffer.obj
+ 0001:000153c8 NetbufFree 0000000000015688 f DxeNetLib:NetBuffer.obj
+ 0001:00015450 NetbufFreeList 0000000000015710 f DxeNetLib:NetBuffer.obj
+ 0001:000154f4 NetbufGetByte 00000000000157b4 f DxeNetLib:NetBuffer.obj
+ 0001:00015598 NetbufSetBlock 0000000000015858 f DxeNetLib:NetBuffer.obj
+ 0001:0001567c NetbufFromExt 000000000001593c f DxeNetLib:NetBuffer.obj
+ 0001:00015744 NetbufBuildExt 0000000000015a04 f DxeNetLib:NetBuffer.obj
+ 0001:000157b8 NetbufFromBufList 0000000000015a78 f DxeNetLib:NetBuffer.obj
+ 0001:000158f8 NetbufAllocSpace 0000000000015bb8 f DxeNetLib:NetBuffer.obj
+ 0001:00015a18 NetblockTrim 0000000000015cd8 f DxeNetLib:NetBuffer.obj
+ 0001:00015a74 NetbufTrim 0000000000015d34 f DxeNetLib:NetBuffer.obj
+ 0001:00015b50 NetbufCopy 0000000000015e10 f DxeNetLib:NetBuffer.obj
+ 0001:00015ce4 NetbufQueCopy 0000000000015fa4 f DxeNetLib:NetBuffer.obj
+ 0001:00015e44 NetbufQueFlush 0000000000016104 f DxeNetLib:NetBuffer.obj
+ 0001:00015e8c TcpIoCommonNotify 000000000001614c f DxeTcpIoLib:DxeTcpIoLib.obj
+ 0001:00015e9c TcpIoGetMapping 000000000001615c f DxeTcpIoLib:DxeTcpIoLib.obj
+ 0001:00015f6c TcpIoCreateSocket 000000000001622c f DxeTcpIoLib:DxeTcpIoLib.obj
+ 0001:000163b4 TcpIoDestroySocket 0000000000016674 f DxeTcpIoLib:DxeTcpIoLib.obj
+ 0001:00016534 TcpIoTransmit 00000000000167f4 f DxeTcpIoLib:DxeTcpIoLib.obj
+ 0001:0001669c TcpIoReceive 000000000001695c f DxeTcpIoLib:DxeTcpIoLib.obj
+ 0001:000168b8 GetPcdProtocol 0000000000016b78 f DxePcdLib:DxePcdLib.obj
+ 0001:00016944 SetMem16 0000000000016c04 f BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0001:00016a0c IoWriteFifo8 0000000000016ccc f BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0001:00016a60 IoRead32 0000000000016d20 f BaseIoLibIntrinsicSev:IoLibMsc.obj
+ 0001:00016aa8 IoWrite32 0000000000016d68 f BaseIoLibIntrinsicSev:IoLibMsc.obj
+ 0001:00016ad8 TdIoRead8 0000000000016d98 f BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0001:00016b28 TdIoRead32 0000000000016de8 f BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0001:00016b9c TdIoWrite8 0000000000016e5c f BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0001:00016bf0 TdIoWrite32 0000000000016eb0 f BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0001:00016c6c PciExpressRead32 0000000000016f2c f BasePciExpressLib:PciExpressLib.obj
+ 0001:00016cbc PciCf8Read32 0000000000016f7c f BasePciCf8Lib:PciCf8Lib.obj
+ 0001:00016d58 MD5_Update 0000000000017018 f OpensslLibCrypto:md5_dgst.obj
+ 0001:00016e60 MD5_Final 0000000000017120 f OpensslLibCrypto:md5_dgst.obj
+ 0001:00016ff0 md5_block_data_order 00000000000172b0 f OpensslLibCrypto:md5_dgst.obj
+ 0001:00017a98 SHA256_Init 0000000000017d58 f OpensslLibCrypto:sha256.obj
+ 0001:00017af8 SHA256_Update 0000000000017db8 f OpensslLibCrypto:sha256.obj
+ 0001:00017c00 SHA256_Final 0000000000017ec0 f OpensslLibCrypto:sha256.obj
+ 0001:00018158 SaveAndDisableInterrupts 0000000000018418 f BaseLib:Cpu.obj
+ 0001:0001817c GetTdInfo 000000000001843c f TdxLib:TdInfo.obj
+ 0001:000181e0 TdSharedPageMask 00000000000184a0 f TdxLib:TdInfo.obj
+ 0001:0001820c MmioRead32 00000000000184cc f BaseIoLibIntrinsicSev:IoLib.obj
+ 0001:00018280 memset 0000000000018540 f BaseIntrinsicLib:MemoryIntrinsics.obj
+ 0002:00000000 ??_C@_0CB@DMEJJJHA@?6ASSERT_EFI_ERROR?5?$CIStatus?5?$DN?5?$CFr?$CJ?6@ 0000000000018560 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:00000028 ??_C@_0CH@BBNBJKHK@?$CB?$CI?$CI?$CIINTN?$CJ?$CIRETURN_STATUS?$CJ?$CIStatus?$CJ@ 0000000000018588 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:00000050 ??_C@_0FI@PIDCFOGG@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000185b0 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:000000a8 ??_C@_0CE@IBFOBMLB@?6ASSERT_RETURN_ERROR?5?$CIStatus?5?$DN?5?$CF@ 0000000000018608 IScsiDxe:AutoGen.obj
+ 0002:000000d0 ??_C@_0HA@GGDCMHAB@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000018630 IScsiDxe:AutoGen.obj
+ 0002:00000140 ??_C@_0CA@HACALLLF@AipHandleBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000186a0 IScsiDxe:IScsiDriver.obj
+ 0002:00000160 ??_C@_0ED@DPEJEBML@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000186c0 IScsiDxe:IScsiDriver.obj
+ 0002:000001a8 ??_C@_0BE@LGDFPDAJ@Aip?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000018708 IScsiDxe:IScsiDriver.obj
+ 0002:000001c0 ??_C@_0BF@NDBIKIKC@CR?5has?5Bad?5Signature?$AA@ 0000000000018720 IScsiDxe:IScsiDriver.obj
+ 0002:000001d8 ??_C@_1BG@HANLGHEF@?$AAA?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AA?5?$AA?$CF?$AAd?$AA?$AA@ 0000000000018738 IScsiDxe:IScsiDriver.obj
+ 0002:000001f0 ??_C@_1BK@ELJKIAPE@?$AAA?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AAO?$AAr?$AAd?$AAe?$AAr?$AA?$AA@ 0000000000018750 IScsiDxe:IScsiDriver.obj
+ 0002:00000210 ??_C@_0BI@GONLCNCH@Private?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000018770 IScsiDxe:IScsiDriver.obj
+ 0002:00000228 ??_C@_0BF@GEKOGLOJ@Hash?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000018788 IScsiDxe:IScsiCHAP.obj
+ 0002:00000240 ??_C@_0EB@BJPABIKE@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000187a0 IScsiDxe:IScsiCHAP.obj
+ 0002:00000288 ??_C@_0BP@MDANAGBA@AuthData?9?$DOHash?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000187e8 IScsiDxe:IScsiCHAP.obj
+ 0002:000002a8 ??_C@_0BI@GHHLBLGE@Conn?9?$DOCurrentStage?5?$DN?$DN?50?$AA@ 0000000000018808 IScsiDxe:IScsiCHAP.obj
+ 0002:000002c0 ??_C@_0BJ@OKLBHGHH@Conn?9?$DORspQue?4BufNum?5?$CB?$DN?50?$AA@ 0000000000018820 IScsiDxe:IScsiCHAP.obj
+ 0002:000002e0 ??_C@_0BF@IANBPGNJ@TargetPortalGroupTag?$AA@ 0000000000018840 IScsiDxe:IScsiCHAP.obj
+ 0002:000002f8 ??_C@_0L@PAKANODK@AuthMethod?$AA@ 0000000000018858 IScsiDxe:IScsiCHAP.obj
+ 0002:00000304 ??_C@_04OHJIHAFH@None?$AA@ 0000000000018864 IScsiDxe:IScsiCHAP.obj
+ 0002:0000030c ??_C@_04LDMNOAAK@CHAP?$AA@ 000000000001886c IScsiDxe:IScsiCHAP.obj
+ 0002:00000314 ??_C@_06NEGHKOPG@CHAP_A?$AA@ 0000000000018874 IScsiDxe:IScsiCHAP.obj
+ 0002:00000320 ??_C@_0BP@ICAIOLEG@AuthData?9?$DOHash?5?$DN?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000018880 IScsiDxe:IScsiCHAP.obj
+ 0002:00000340 ??_C@_06BMLOCEPO@CHAP_I?$AA@ 00000000000188a0 IScsiDxe:IScsiCHAP.obj
+ 0002:00000348 ??_C@_06OGFBMMHE@CHAP_C?$AA@ 00000000000188a8 IScsiDxe:IScsiCHAP.obj
+ 0002:00000350 ??_C@_0CE@FMOMPILK@AuthData?9?$DOAuthConfig?9?$DOCHAPType?5?$DN@ 00000000000188b0 IScsiDxe:IScsiCHAP.obj
+ 0002:00000374 ??_C@_06FDPPLCDJ@CHAP_N?$AA@ 00000000000188d4 IScsiDxe:IScsiCHAP.obj
+ 0002:0000037c ??_C@_06LFIIOPGE@CHAP_R?$AA@ 00000000000188dc IScsiDxe:IScsiCHAP.obj
+ 0002:00000388 ??_C@_0O@IHIGCLKB@InitiatorName?$AA@ 00000000000188e8 IScsiDxe:IScsiCHAP.obj
+ 0002:00000398 ??_C@_06EFAGIKOH@Normal?$AA@ 00000000000188f8 IScsiDxe:IScsiCHAP.obj
+ 0002:000003a0 ??_C@_0M@CNGHNCIE@SessionType?$AA@ 0000000000018900 IScsiDxe:IScsiCHAP.obj
+ 0002:000003b0 ??_C@_0L@BDKAFAEA@TargetName?$AA@ 0000000000018910 IScsiDxe:IScsiCHAP.obj
+ 0002:000003c0 ??_C@_0CP@DCPEABMB@?$CB?$CI?$CI?$CIINTN?$CJ?$CIRETURN_STATUS?$CJ?$CIBinToHe@ 0000000000018920 IScsiDxe:IScsiCHAP.obj
+ 0002:000003f0 ??_C@_02DPKJAMEF@?$CFd?$AA@ 0000000000018950 IScsiDxe:IScsiCHAP.obj
+ 0002:000003f8 ??_C@_09EOGFNIHE@Left?5?$DO?$DN?52?$AA@ 0000000000018958 IScsiDxe:IScsiCHAP.obj
+ 0002:00000402 ??_C@_00CNPNBAHC@?$AA@ 0000000000018962 IScsiDxe:IScsiCHAP.obj
+ 0002:00000404 ??_C@_01IHBHIGKO@?0?$AA@ 0000000000018964 IScsiDxe:IScsiCHAP.obj
+ 0002:00000408 ??_C@_04IMHBBCFI@?$CFa?$CFd?$AA@ 0000000000018968 IScsiDxe:IScsiCHAP.obj
+ 0002:00000410 ??_C@_0BD@DKPFENLA@Printed?5?$CL?51?5?$DM?5Left?$AA@ 0000000000018970 IScsiDxe:IScsiCHAP.obj
+ 0002:00000428 ??_C@_0BH@MDAKALIE@Hash?9?$DODigestSize?5?$DM?$DN?532?$AA@ 0000000000018988 IScsiDxe:IScsiCHAP.obj
+ 0002:00000490 ??_C@_15BIBPCOBC@?$AA0?$AA?9?$AA?$AA@ 00000000000189f0 IScsiDxe:IScsiMisc.obj
+ 0002:00000498 ??_C@_0BC@FAONMJPI@StrLen?5?$CIStr?$CJ?5?$DO?$DN?51?$AA@ 00000000000189f8 IScsiDxe:IScsiMisc.obj
+ 0002:000004b0 ??_C@_0EB@LMEAAJMD@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000018a10 IScsiDxe:IScsiMisc.obj
+ 0002:000004f8 ??_C@_1M@KAICHIDM@?$AA?2?$AA?$CF?$AA0?$AA4?$AAx?$AA?$AA@ 0000000000018a58 IScsiDxe:IScsiMisc.obj
+ 0002:00000508 ??_C@_0BM@KLIDFGLC@Ipv6Support?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000018a68 IScsiDxe:IScsiMisc.obj
+ 0002:00000528 ??_C@_1CI@PHDJCGLB@?$AAI?$AAn?$AAi?$AAt?$AAi?$AAa?$AAl?$AAA?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AAO?$AAr?$AAd?$AAe?$AAr?$AA?$AA@ 0000000000018a88 IScsiDxe:IScsiMisc.obj
+ 0002:00000550 ??_C@_0BE@OLCIKBCC@IScsiCreateAttempts?$AA@ 0000000000018ab0 IScsiDxe:IScsiMisc.obj
+ 0002:00000568 ??_C@_0DM@EMCCJOPP@?$CFa?3?5Failed?5to?5set?5?8InitialAttemp@ 0000000000018ac8 IScsiDxe:IScsiMisc.obj
+ 0002:000005b0 ??_C@_0EG@HPJPAPJF@?$CFa?3?5Failed?5to?5set?5variable?5?$CImPri@ 0000000000018b10 IScsiDxe:IScsiMisc.obj
+ 0002:00000600 ??_C@_1EC@HNHKMKMB@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAA?$AAT?$AAT?$AAE?$AAM?$AAP?$AAT?$AAT?$AA_?$AAN?$AAA?$AAM?$AAE?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT?$AA?$CF?$AAd@ 0000000000018b60 IScsiDxe:IScsiMisc.obj
+ 0002:00000648 ??_C@_1CI@HEIGCBOD@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAA?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AAN?$AAa?$AAm?$AAe?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000018ba8 IScsiDxe:IScsiMisc.obj
+ 0002:00000670 ??_C@_09BJEBPINI@x?9UEFI?9ns?$AA@ 0000000000018bd0 IScsiDxe:IScsiMisc.obj
+ 0002:00000680 ??_C@_1DA@BJMNBGMF@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAM?$AAO?$AAD?$AAE?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT?$AA?$CF?$AAd?$AA?$AA@ 0000000000018be0 IScsiDxe:IScsiMisc.obj
+ 0002:000006b0 ??_C@_1CG@HFJGGIEK@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAB?$AAo?$AAo?$AAt?$AAE?$AAn?$AAa?$AAb?$AAl?$AAe?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000018c10 IScsiDxe:IScsiMisc.obj
+ 0002:000006d8 ??_C@_1DG@HCOKEFHE@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAI?$AAP?$AA_?$AAM?$AAO?$AAD?$AAE?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT?$AA?$CF?$AAd?$AA?$AA@ 0000000000018c38 IScsiDxe:IScsiMisc.obj
+ 0002:00000710 ??_C@_1CM@CBPAADNE@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAI?$AAp?$AAA?$AAd?$AAd?$AAr?$AAe?$AAs?$AAs?$AAT?$AAy?$AAp?$AAe?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000018c70 IScsiDxe:IScsiMisc.obj
+ 0002:00000740 ??_C@_1EC@DPEODOHN@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAC?$AAO?$AAN?$AAN?$AAE?$AAC?$AAT?$AA_?$AAR?$AAE?$AAT?$AAR?$AAY?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT?$AA?$CF?$AAd@ 0000000000018ca0 IScsiDxe:IScsiMisc.obj
+ 0002:00000788 ??_C@_1CK@LPKJOHD@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAC?$AAo?$AAn?$AAn?$AAe?$AAc?$AAt?$AAR?$AAe?$AAt?$AAr?$AAy?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000018ce8 IScsiDxe:IScsiMisc.obj
+ 0002:000007c0 ??_C@_1EG@FOEHCAKJ@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAC?$AAO?$AAN?$AAN?$AAE?$AAC?$AAT?$AA_?$AAT?$AAI?$AAM?$AAE?$AAO?$AAU?$AAT?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT@ 0000000000018d20 IScsiDxe:IScsiMisc.obj
+ 0002:00000808 ??_C@_1CO@LCOHAIEK@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAC?$AAo?$AAn?$AAn?$AAe?$AAc?$AAt?$AAT?$AAi?$AAm?$AAe?$AAo?$AAu?$AAt?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000018d68 IScsiDxe:IScsiMisc.obj
+ 0002:00000838 ??_C@_1DA@OHPDKBKN@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAI?$AAS?$AAI?$AAD?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT?$AA?$CF?$AAd?$AA?$AA@ 0000000000018d98 IScsiDxe:IScsiMisc.obj
+ 0002:00000868 ??_C@_1BK@GHCBGJK@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAI?$AAS?$AAI?$AAD?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000018dc8 IScsiDxe:IScsiMisc.obj
+ 0002:00000890 ??_C@_1EM@CDJCPBKN@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAI?$AAN?$AAI?$AAT?$AAI?$AAA?$AAT?$AAO?$AAR?$AA_?$AAV?$AAI?$AAA?$AA_?$AAD?$AAH?$AAC?$AAP?$AA_?$AAP?$AAR?$AAO@ 0000000000018df0 IScsiDxe:IScsiMisc.obj
+ 0002:000008e0 ??_C@_1DK@MNMHMNMI@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAI?$AAn?$AAi?$AAt?$AAi?$AAa?$AAt?$AAo?$AAr?$AAI?$AAn?$AAf?$AAo?$AAV?$AAi?$AAa?$AAD?$AAH?$AAC?$AAP?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000018e40 IScsiDxe:IScsiMisc.obj
+ 0002:00000920 ??_C@_1FA@KPPEFLHA@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAI?$AAN?$AAI?$AAT?$AAI?$AAA?$AAT?$AAO?$AAR?$AA_?$AAI?$AAP?$AA_?$AAA?$AAD?$AAD?$AAR?$AAE?$AAS?$AAS?$AA_?$AAP@ 0000000000018e80 IScsiDxe:IScsiMisc.obj
+ 0002:00000970 ??_C@_1DG@BDOEDFB@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAI?$AAn?$AAi?$AAt?$AAi?$AAa?$AAt?$AAo?$AAr?$AAI?$AAp?$AAA?$AAd?$AAd?$AAr?$AAe?$AAs?$AAs?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000018ed0 IScsiDxe:IScsiMisc.obj
+ 0002:000009b0 ??_C@_1EM@KKJJLIHN@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAI?$AAN?$AAI?$AAT?$AAI?$AAA?$AAT?$AAO?$AAR?$AA_?$AAN?$AAE?$AAT?$AA_?$AAM?$AAA?$AAS?$AAK?$AA_?$AAP?$AAR?$AAO@ 0000000000018f10 IScsiDxe:IScsiMisc.obj
+ 0002:00000a00 ??_C@_1DC@HFNAHCNF@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAI?$AAn?$AAi?$AAt?$AAi?$AAa?$AAt?$AAo?$AAr?$AAN?$AAe?$AAt?$AAm?$AAa?$AAs?$AAk?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000018f60 IScsiDxe:IScsiMisc.obj
+ 0002:00000a40 ??_C@_1EE@PKEMPLOI@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAI?$AAN?$AAI?$AAT?$AAI?$AAA?$AAT?$AAO?$AAR?$AA_?$AAG?$AAA?$AAT?$AAE?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT?$AA?$CF@ 0000000000018fa0 IScsiDxe:IScsiMisc.obj
+ 0002:00000a88 ??_C@_1DC@LLENBBGP@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAI?$AAn?$AAi?$AAt?$AAi?$AAa?$AAt?$AAo?$AAr?$AAG?$AAa?$AAt?$AAe?$AAw?$AAa?$AAy?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000018fe8 IScsiDxe:IScsiMisc.obj
+ 0002:00000ac0 ??_C@_1EG@GAJNCGJH@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAT?$AAA?$AAR?$AAG?$AAE?$AAT?$AA_?$AAV?$AAI?$AAA?$AA_?$AAD?$AAH?$AAC?$AAP?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT@ 0000000000019020 IScsiDxe:IScsiMisc.obj
+ 0002:00000b08 ??_C@_1DE@OGOGAJBO@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAT?$AAa?$AAr?$AAg?$AAe?$AAt?$AAI?$AAn?$AAf?$AAo?$AAV?$AAi?$AAa?$AAD?$AAH?$AAC?$AAP?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000019068 IScsiDxe:IScsiMisc.obj
+ 0002:00000b40 ??_C@_1EG@KMENBILK@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAT?$AAA?$AAR?$AAG?$AAE?$AAT?$AA_?$AAT?$AAC?$AAP?$AA_?$AAP?$AAO?$AAR?$AAT?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT@ 00000000000190a0 IScsiDxe:IScsiMisc.obj
+ 0002:00000b88 ??_C@_1CM@HDFAPMME@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAT?$AAa?$AAr?$AAg?$AAe?$AAt?$AAT?$AAc?$AAp?$AAP?$AAo?$AAr?$AAt?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 00000000000190e8 IScsiDxe:IScsiMisc.obj
+ 0002:00000bb8 ??_C@_1DO@NNEJJHC@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAT?$AAA?$AAR?$AAG?$AAE?$AAT?$AA_?$AAN?$AAA?$AAM?$AAE?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT?$AA?$CF?$AAd?$AA?$AA@ 0000000000019118 IScsiDxe:IScsiMisc.obj
+ 0002:00000bf8 ??_C@_1CG@IMIDKEEM@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAT?$AAa?$AAr?$AAg?$AAe?$AAt?$AAN?$AAa?$AAm?$AAe?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000019158 IScsiDxe:IScsiMisc.obj
+ 0002:00000c20 ??_C@_1EK@NAOJGMOF@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAT?$AAA?$AAR?$AAG?$AAE?$AAT?$AA_?$AAI?$AAP?$AA_?$AAA?$AAD?$AAD?$AAR?$AAE?$AAS?$AAS?$AA_?$AAP?$AAR?$AAO?$AAM@ 0000000000019180 IScsiDxe:IScsiMisc.obj
+ 0002:00000c70 ??_C@_1DA@BNHFHCKF@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAT?$AAa?$AAr?$AAg?$AAe?$AAt?$AAI?$AAp?$AAA?$AAd?$AAd?$AAr?$AAe?$AAs?$AAs?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 00000000000191d0 IScsiDxe:IScsiMisc.obj
+ 0002:00000ca0 ??_C@_1CO@LKFGDNLP@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAL?$AAU?$AAN?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT?$AA?$CF?$AAd?$AA?$AA@ 0000000000019200 IScsiDxe:IScsiMisc.obj
+ 0002:00000cd0 ??_C@_1BI@CCOOIPBK@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAL?$AAU?$AAN?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000019230 IScsiDxe:IScsiMisc.obj
+ 0002:00000cf0 ??_C@_1FC@BBEHEHML@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAA?$AAU?$AAT?$AAH?$AAE?$AAN?$AAT?$AAI?$AAC?$AAA?$AAT?$AAI?$AAO?$AAN?$AA_?$AAM?$AAE?$AAT?$AAH?$AAO?$AAD?$AA_@ 0000000000019250 IScsiDxe:IScsiMisc.obj
+ 0002:00000d48 ??_C@_1DK@GMLHAFCO@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAA?$AAu?$AAt?$AAh?$AAe?$AAn?$AAt?$AAi?$AAc?$AAa?$AAt?$AAi?$AAo?$AAn?$AAM?$AAe?$AAt?$AAh?$AAo?$AAd?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 00000000000192a8 IScsiDxe:IScsiMisc.obj
+ 0002:00000d88 ??_C@_1DI@CPGEKLIM@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAC?$AAH?$AAA?$AAR?$AAT?$AAY?$AAP?$AAE?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT?$AA?$CF?$AAd?$AA?$AA@ 00000000000192e8 IScsiDxe:IScsiMisc.obj
+ 0002:00000dc0 ??_C@_1CC@PNCOMNAM@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAC?$AAh?$AAa?$AAp?$AAT?$AAy?$AAp?$AAe?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000019320 IScsiDxe:IScsiMisc.obj
+ 0002:00000df0 ??_C@_1EE@BDEAJPAA@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAC?$AAH?$AAA?$AAR?$AA_?$AAU?$AAS?$AAE?$AAR?$AA_?$AAN?$AAA?$AAM?$AAE?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT?$AA?$CF@ 0000000000019350 IScsiDxe:IScsiMisc.obj
+ 0002:00000e38 ??_C@_1CK@HMKCAOIH@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAC?$AAh?$AAa?$AAp?$AAU?$AAs?$AAe?$AAr?$AAn?$AAa?$AAm?$AAe?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000019398 IScsiDxe:IScsiMisc.obj
+ 0002:00000e68 ??_C@_1DO@ILKFOLHO@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAC?$AAH?$AAA?$AAR?$AA_?$AAS?$AAE?$AAC?$AAR?$AAE?$AAT?$AA_?$AAP?$AAR?$AAO?$AAM?$AAP?$AAT?$AA?$CF?$AAd?$AA?$AA@ 00000000000193c8 IScsiDxe:IScsiMisc.obj
+ 0002:00000ea8 ??_C@_1CG@LPJEJPEJ@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAC?$AAh?$AAa?$AAp?$AAS?$AAe?$AAc?$AAr?$AAe?$AAt?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000019408 IScsiDxe:IScsiMisc.obj
+ 0002:00000ed0 ??_C@_1FE@GBGGNCNN@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAC?$AAH?$AAA?$AAR?$AA_?$AAR?$AAE?$AAV?$AAE?$AAR?$AAS?$AAE?$AA_?$AAU?$AAS?$AAE?$AAR?$AA_?$AAN?$AAA?$AAM?$AAE@ 0000000000019430 IScsiDxe:IScsiMisc.obj
+ 0002:00000f28 ??_C@_1DI@JGKDKGKI@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAR?$AAe?$AAv?$AAe?$AAr?$AAs?$AAe?$AAC?$AAh?$AAa?$AAp?$AAU?$AAs?$AAe?$AAr?$AAn?$AAa?$AAm?$AAe?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000019488 IScsiDxe:IScsiMisc.obj
+ 0002:00000f60 ??_C@_1EO@OFKHBAND@?$AAS?$AAT?$AAR?$AA_?$AAI?$AAS?$AAC?$AAS?$AAI?$AA_?$AAC?$AAH?$AAA?$AAR?$AA_?$AAR?$AAE?$AAV?$AAE?$AAR?$AAS?$AAE?$AA_?$AAS?$AAE?$AAC?$AAR?$AAE?$AAT?$AA_?$AAP?$AAR@ 00000000000194c0 IScsiDxe:IScsiMisc.obj
+ 0002:00000fb0 ??_C@_1DE@OMHAAAJE@?$AAi?$AAS?$AAC?$AAS?$AAI?$AAR?$AAe?$AAv?$AAe?$AAr?$AAs?$AAe?$AAC?$AAh?$AAa?$AAp?$AAS?$AAe?$AAc?$AAr?$AAe?$AAt?$AA?3?$AA?$CF?$AAd?$AA?$AA@ 0000000000019510 IScsiDxe:IScsiMisc.obj
+ 0002:00000fe8 ??_C@_0DM@EDFBLLHA@AttemptConfigOrder?$FLIndex?$FN?5?$DN?$DN?5Att@ 0000000000019548 IScsiDxe:IScsiMisc.obj
+ 0002:00001028 ??_C@_0BI@KGIBPGM@NicInfo?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019588 IScsiDxe:IScsiMisc.obj
+ 0002:00001040 ??_C@_0ED@FHEGFGOH@AttemptConfigOrder?$FLIndex?$FN?5?$DN?$DN?5Att@ 00000000000195a0 IScsiDxe:IScsiMisc.obj
+ 0002:00001088 ??_C@_1BC@FGCJDNHA@?$AAD?$AAi?$AAs?$AAa?$AAb?$AAl?$AAe?$AAd?$AA?$AA@ 00000000000195e8 IScsiDxe:IScsiMisc.obj
+ 0002:000010a0 ??_C@_1BA@NPJPKIM@?$AAE?$AAn?$AAa?$AAb?$AAl?$AAe?$AAd?$AA?$AA@ 0000000000019600 IScsiDxe:IScsiMisc.obj
+ 0002:000010b0 ??_C@_1CC@HOPKGJBM@?$AAE?$AAn?$AAa?$AAb?$AAl?$AAe?$AAd?$AA?5?$AAf?$AAo?$AAr?$AA?5?$AAM?$AAP?$AAI?$AAO?$AA?$AA@ 0000000000019610 IScsiDxe:IScsiMisc.obj
+ 0002:000010d8 ??_C@_17NPMIJOFB@?$AAI?$AAP?$AA4?$AA?$AA@ 0000000000019638 IScsiDxe:IScsiMisc.obj
+ 0002:000010e0 ??_C@_17HFMBFGNK@?$AAI?$AAP?$AA6?$AA?$AA@ 0000000000019640 IScsiDxe:IScsiMisc.obj
+ 0002:000010e8 ??_C@_1BM@LLBKNBMC@?$AAA?$AAu?$AAt?$AAo?$AAc?$AAo?$AAn?$AAf?$AAi?$AAg?$AAu?$AAr?$AAe?$AA?$AA@ 0000000000019648 IScsiDxe:IScsiMisc.obj
+ 0002:00001110 ??_C@_1JA@LJOCICLJ@?$AAM?$AAA?$AAC?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?0?$AA?5?$AAP?$AAF?$AAA?$AA?3?$AA?5?$AAB?$AAu?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$HM?$AA?5?$AAD?$AAe?$AAv?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$HM?$AA?5@ 0000000000019670 IScsiDxe:IScsiMisc.obj
+ 0002:000011a0 ??_C@_0BN@HHGHCLME@ProtocolGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019700 IScsiDxe:IScsiMisc.obj
+ 0002:000011c0 IScsiHexString 0000000000019720 IScsiDxe:IScsiMisc.obj
+ 0002:000011d8 ??_C@_03LKLGDMJI@eng?$AA@ 0000000000019738 IScsiDxe:ComponentName.obj
+ 0002:000011dc ??_C@_02LFNMGJAP@en?$AA@ 000000000001973c IScsiDxe:ComponentName.obj
+ 0002:000011e0 ??_C@_06DALJLGPG@eng?$DLen?$AA@ 0000000000019740 IScsiDxe:ComponentName.obj
+ 0002:000011e8 ??_C@_1BK@DKDHMMII@?$AAi?$AAS?$AAC?$AAS?$AAI?$AA?5?$AAD?$AAr?$AAi?$AAv?$AAe?$AAr?$AA?$AA@ 0000000000019748 IScsiDxe:ComponentName.obj
+ 0002:00001210 ??_C@_0EF@EEJOHKJD@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000019770 IScsiDxe:ComponentName.obj
+ 0002:00001258 ??_C@_19CDMHABIE@?$AAI?$AAP?$AAv?$AA6?$AA?$AA@ 00000000000197b8 IScsiDxe:ComponentName.obj
+ 0002:00001268 ??_C@_19IJMOMJAP@?$AAI?$AAP?$AAv?$AA4?$AA?$AA@ 00000000000197c8 IScsiDxe:ComponentName.obj
+ 0002:00001278 ??_C@_1DA@MCMPEFMN@?$AAi?$AAS?$AAC?$AAS?$AAI?$AA?5?$AA?$CI?$AA?$CF?$AAs?$AA?0?$AA?5?$AAN?$AAi?$AAc?$AAI?$AAn?$AAd?$AAe?$AAx?$AA?$DN?$AA?$CF?$AAd?$AA?$CJ?$AA?$AA@ 00000000000197d8 IScsiDxe:ComponentName.obj
+ 0002:000012a8 ??_C@_1BI@FCMLLAGN@?$AA?$CF?$AAd?$AA?4?$AA?$CF?$AAd?$AA?4?$AA?$CF?$AAd?$AA?4?$AA?$CF?$AAd?$AA?$AA@ 0000000000019808 IScsiDxe:IScsiConfig.obj
+ 0002:000012c0 ??_C@_0L@PEIHAPBP@Index?5?$DM?515?$AA@ 0000000000019820 IScsiDxe:IScsiConfig.obj
+ 0002:000012d0 ??_C@_0ED@NINAHOEB@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000019830 IScsiDxe:IScsiConfig.obj
+ 0002:00001318 ??_C@_17FDKMNLMN@?$AA?$CF?$AAx?$AA?3?$AA?$AA@ 0000000000019878 IScsiDxe:IScsiConfig.obj
+ 0002:00001320 ??_C@_1O@OEEHBOOE@?$AA?$CF?$AAx?$AA0?$AA?$CF?$AAx?$AA?3?$AA?$AA@ 0000000000019880 IScsiDxe:IScsiConfig.obj
+ 0002:00001330 ??_C@_1M@CIFHKLEP@?$AA?$CF?$AAx?$AA?$CF?$AAx?$AA?3?$AA?$AA@ 0000000000019890 IScsiDxe:IScsiConfig.obj
+ 0002:00001340 ??_C@_0DM@GAEIBCOM@IpMode?5?$CFd?5is?5invalid?5when?5config@ 00000000000198a0 IScsiDxe:IScsiConfig.obj
+ 0002:00001380 ??_C@_1PM@NKCILPCF@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?$CB?$AA?5?$AAO?$AAn?$AAl?$AAy?$AA?5?$AAl?$AAa?$AAs?$AAt?$AA?5?$AA3?$AA?5?$AAb?$AAy?$AAt?$AAe?$AAs?$AA?5?$AAa?$AAr?$AAe?$AA?5?$AAc?$AAo?$AAn@ 00000000000198e0 IScsiDxe:IScsiConfig.obj
+ 0002:00001480 ??_C@_17EGMIMACD@?$AA0?$AA?$CF?$AAX?$AA?$AA@ 00000000000199e0 IScsiDxe:IScsiConfig.obj
+ 0002:00001488 ??_C@_15BHOFONJE@?$AA?$CF?$AAX?$AA?$AA@ 00000000000199e8 IScsiDxe:IScsiConfig.obj
+ 0002:00001490 ??_C@_0BK@OHHEMHCC@StringPtr?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000199f0 IScsiDxe:IScsiConfig.obj
+ 0002:000014b0 ??_C@_1BC@FPHENPJJ@?$AAa?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AA?3?$AA?$AA@ 0000000000019a10 IScsiDxe:IScsiConfig.obj
+ 0002:000014d0 ??_C@_0EM@KLICEKGL@?$CIAttempt?9?$DOAttemptConfigIndex?5?$DO?50@ 0000000000019a30 IScsiDxe:IScsiConfig.obj
+ 0002:00001520 ??_C@_0O@IKONHJNJ@StringLen?5?$DO?52?$AA@ 0000000000019a80 IScsiDxe:IScsiConfig.obj
+ 0002:00001530 ??_C@_1IE@FMPFFHNB@?$AAC?$AAo?$AAn?$AAn?$AAe?$AAc?$AAt?$AAi?$AAo?$AAn?$AA?5?$AAE?$AAs?$AAt?$AAa?$AAb?$AAl?$AAi?$AAs?$AAh?$AAi?$AAn?$AAg?$AA?5?$AAT?$AAi?$AAm?$AAe?$AAo?$AAu?$AAt?$AA?5@ 0000000000019a90 IScsiDxe:IScsiConfig.obj
+ 0002:000015c0 ??_C@_1GA@GADAOPJN@?$AAG?$AAa?$AAt?$AAe?$AAw?$AAa?$AAy?$AA?5?$AAa?$AAd?$AAd?$AAr?$AAe?$AAs?$AAs?$AA?5?$AAi?$AAs?$AA?5?$AAs?$AAe?$AAt?$AA?5?$AAb?$AAu?$AAt?$AA?5?$AAs?$AAu?$AAb?$AAn?$AAe@ 0000000000019b20 IScsiDxe:IScsiConfig.obj
+ 0002:00001620 ??_C@_1GC@NOKIOPCN@?$AAL?$AAo?$AAc?$AAa?$AAl?$AA?5?$AAI?$AAP?$AA?5?$AAa?$AAn?$AAd?$AA?5?$AAG?$AAa?$AAt?$AAe?$AAw?$AAa?$AAy?$AA?5?$AAa?$AAr?$AAe?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAi?$AAn?$AA?5@ 0000000000019b80 IScsiDxe:IScsiConfig.obj
+ 0002:00001688 ??_C@_1CM@DIGHAABF@?$AAT?$AAa?$AAr?$AAg?$AAe?$AAt?$AA?5?$AAI?$AAP?$AA?5?$AAi?$AAs?$AA?5?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?$CB?$AA?$AA@ 0000000000019be8 IScsiDxe:IScsiConfig.obj
+ 0002:000016c0 ??_C@_1EK@KKIJKOOP@?$AAi?$AAS?$AAC?$AAS?$AAI?$AA?5?$AAt?$AAa?$AAr?$AAg?$AAe?$AAt?$AA?5?$AAU?$AAr?$AAl?$AA?5?$AAs?$AAh?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAb?$AAe?$AA?5?$AAN@ 0000000000019c20 IScsiDxe:IScsiConfig.obj
+ 0002:00001710 ??_C@_1DG@CLIBEBMD@?$AAi?$AAS?$AAC?$AAS?$AAI?$AA?5?$AAt?$AAa?$AAr?$AAg?$AAe?$AAt?$AA?5?$AAn?$AAa?$AAm?$AAe?$AA?5?$AAi?$AAs?$AA?5?$AAN?$AAU?$AAL?$AAL?$AA?$CB?$AA?$AA@ 0000000000019c70 IScsiDxe:IScsiConfig.obj
+ 0002:00001750 ??_C@_1EK@CICAMCED@?$AAC?$AAH?$AAA?$AAP?$AA?5?$AAN?$AAa?$AAm?$AAe?$AA?5?$AAo?$AAr?$AA?5?$AAC?$AAH?$AAA?$AAP?$AA?5?$AAS?$AAe?$AAc?$AAr?$AAe?$AAt?$AA?5?$AAi?$AAs?$AA?5?$AAi?$AAn?$AAv?$AAa@ 0000000000019cb0 IScsiDxe:IScsiConfig.obj
+ 0002:000017a0 ??_C@_1GK@ILMFAFOE@?$AAR?$AAe?$AAv?$AAe?$AAr?$AAs?$AAe?$AA?5?$AAC?$AAH?$AAA?$AAP?$AA?5?$AAN?$AAa?$AAm?$AAe?$AA?5?$AAo?$AAr?$AA?5?$AAR?$AAe?$AAv?$AAe?$AAr?$AAs?$AAe?$AA?5?$AAC?$AAH?$AAA@ 0000000000019d00 IScsiDxe:IScsiConfig.obj
+ 0002:00001810 ??_C@_1GK@DNBKIGEI@?$AAW?$AAa?$AAr?$AAn?$AAi?$AAn?$AAg?$AA?$CB?$AA?5?$AAA?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AA?5?$AA?$CC?$AA?$CF?$AAs?$AA?$CC?$AA?5?$AAu?$AAs?$AAe?$AAs?$AA?5?$AAs?$AAa?$AAm?$AAe?$AA?5@ 0000000000019d70 IScsiDxe:IScsiConfig.obj
+ 0002:00001880 ??_C@_0BI@IGFDHHON@ExistAttempt?5?$DN?$DN?5Attempt?$AA@ 0000000000019de0 IScsiDxe:IScsiConfig.obj
+ 0002:000018a0 ??_C@_1FK@ELEIPALG@?$AAW?$AAa?$AAr?$AAn?$AAi?$AAn?$AAg?$AA?$CB?$AA?5?$AA?$CC?$AA?$CF?$AAs?$AA?$CC?$AA?5?$AAu?$AAs?$AAe?$AAs?$AA?5?$AAs?$AAa?$AAm?$AAe?$AA?5?$AAN?$AAI?$AAC?$AA?5?$AAa?$AAs?$AA?5?$AAA@ 0000000000019e00 IScsiDxe:IScsiConfig.obj
+ 0002:00001900 ??_C@_1IA@OPOCHDEG@?$AAT?$AAh?$AAe?$AA?5?$AAm?$AAi?$AAn?$AAi?$AAm?$AAu?$AAm?$AA?5?$AAv?$AAa?$AAl?$AAu?$AAe?$AA?5?$AAi?$AAs?$AA?5?$AA0?$AA?5?$AAa?$AAn?$AAd?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAm@ 0000000000019e60 IScsiDxe:IScsiConfig.obj
+ 0002:00001980 ??_C@_1IK@OKCMAFBM@?$AAT?$AAh?$AAe?$AA?5?$AAm?$AAi?$AAn?$AAi?$AAm?$AAu?$AAm?$AA?5?$AAv?$AAa?$AAl?$AAu?$AAe?$AA?5?$AAi?$AAs?$AA?5?$AA1?$AA0?$AA0?$AA?5?$AAm?$AAi?$AAl?$AAl?$AAi?$AAs?$AAe@ 0000000000019ee0 IScsiDxe:IScsiConfig.obj
+ 0002:00001a10 ??_C@_1HK@PKNPBNOI@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AAu?$AAr?$AAa?$AAt?$AAi?$AAo?$AAn?$AA?0?$AA?5?$AAC?$AAh?$AAe?$AAc?$AAk?$AA?5?$AAv?$AAa?$AAl@ 0000000000019f70 IScsiDxe:IScsiConfig.obj
+ 0002:00001a90 ??_C@_1IC@POFCKNAH@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AAu?$AAr?$AAa?$AAt?$AAi?$AAo?$AAn?$AA?0?$AA?5?$AAC?$AAh?$AAe?$AAc?$AAk?$AA?5?$AAv?$AAa?$AAl@ 0000000000019ff0 IScsiDxe:IScsiConfig.obj
+ 0002:00001b18 ??_C@_1CI@LMPBJGDM@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAI?$AAP?$AA?5?$AAa?$AAd?$AAd?$AAr?$AAe?$AAs?$AAs?$AA?$CB?$AA?$AA@ 000000000001a078 IScsiDxe:IScsiConfig.obj
+ 0002:00001b40 ??_C@_1CK@EKOBMLHN@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAS?$AAu?$AAb?$AAn?$AAe?$AAt?$AA?5?$AAM?$AAa?$AAs?$AAk?$AA?$CB?$AA?$AA@ 000000000001a0a0 IScsiDxe:IScsiConfig.obj
+ 0002:00001b70 ??_C@_1CC@EECKCHGK@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAG?$AAa?$AAt?$AAe?$AAw?$AAa?$AAy?$AA?$CB?$AA?$AA@ 000000000001a0d0 IScsiDxe:IScsiConfig.obj
+ 0002:00001b98 ??_C@_1CI@GPNFKPNE@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAi?$AAS?$AAC?$AAS?$AAI?$AA?5?$AAN?$AAa?$AAm?$AAe?$AA?$CB?$AA?$AA@ 000000000001a0f8 IScsiDxe:IScsiConfig.obj
+ 0002:00001bc0 ??_C@_1KA@DCMDPHDG@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAL?$AAU?$AAN?$AA?5?$AAs?$AAt?$AAr?$AAi?$AAn?$AAg?$AA?0?$AA?5?$AAE?$AAx?$AAa?$AAm?$AAp?$AAl?$AAe?$AAs?$AA?5?$AAa?$AAr?$AAe@ 000000000001a120 IScsiDxe:IScsiConfig.obj
+ 0002:00001c60 ??_C@_1CM@KIGHCEPH@?$AAC?$AAH?$AAA?$AAP?$AA?5?$AAN?$AAa?$AAm?$AAe?$AA?5?$AAi?$AAs?$AA?5?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?$CB?$AA?$AA@ 000000000001a1c0 IScsiDxe:IScsiConfig.obj
+ 0002:00001c90 ??_C@_1HE@GHDDKPP@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AAu?$AAr?$AAa?$AAt?$AAi?$AAo?$AAn?$AA?0?$AA?5?$AAC?$AAh?$AAe?$AAc?$AAk?$AA?5?$AAv?$AAa?$AAl@ 000000000001a1f0 IScsiDxe:IScsiConfig.obj
+ 0002:00001d10 ??_C@_1JO@IECLLNNM@?$AAT?$AAh?$AAe?$AA?5?$AAC?$AAh?$AAa?$AAp?$AA?5?$AAS?$AAe?$AAc?$AAr?$AAe?$AAt?$AA?5?$AAm?$AAi?$AAn?$AAi?$AAm?$AAu?$AAm?$AA?5?$AAl?$AAe?$AAn?$AAg?$AAt?$AAh?$AA?5?$AAi@ 000000000001a270 IScsiDxe:IScsiConfig.obj
+ 0002:00001db0 ??_C@_1DM@EBKLMKDD@?$AAR?$AAe?$AAv?$AAe?$AAr?$AAs?$AAe?$AA?5?$AAC?$AAH?$AAA?$AAP?$AA?5?$AAN?$AAa?$AAm?$AAe?$AA?5?$AAi?$AAs?$AA?5?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?$CB?$AA?$AA@ 000000000001a310 IScsiDxe:IScsiConfig.obj
+ 0002:00001df0 ??_C@_1IO@JOOAFOHI@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AAu?$AAr?$AAa?$AAt?$AAi?$AAo?$AAn?$AA?0?$AA?5?$AAC?$AAh?$AAe?$AAc?$AAk?$AA?5?$AAv?$AAa?$AAl@ 000000000001a350 IScsiDxe:IScsiConfig.obj
+ 0002:00001e80 ??_C@_1KO@GCLOJAIA@?$AAT?$AAh?$AAe?$AA?5?$AAR?$AAe?$AAv?$AAe?$AAr?$AAs?$AAe?$AA?5?$AAC?$AAH?$AAA?$AAP?$AA?5?$AAS?$AAe?$AAc?$AAr?$AAe?$AAt?$AA?5?$AAm?$AAi?$AAn?$AAi?$AAm?$AAu?$AAm?$AA?5@ 000000000001a3e0 IScsiDxe:IScsiConfig.obj
+ 0002:00001f30 ??_C@_1O@NBNBLPAP@?$AAM?$AAA?$AAC?$AA?5?$AA?$CF?$AAs?$AA?$AA@ 000000000001a490 IScsiDxe:IScsiConfig.obj
+ 0002:00001f40 ??_C@_1DO@OOHFBPEO@?$AAP?$AAF?$AAA?$AA?3?$AA?5?$AAB?$AAu?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$HM?$AA?5?$AAD?$AAe?$AAv?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$HM?$AA?5?$AAF?$AAu?$AAn?$AAc?$AA?5?$AA?$CF?$AAd?$AA?$AA@ 000000000001a4a0 IScsiDxe:IScsiConfig.obj
+ 0002:00001f80 ??_C@_0CC@PIBHJFDN@StartOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 000000000001a4e0 IScsiDxe:IScsiConfig.obj
+ 0002:00001fa8 ??_C@_0CA@MFFPKHJH@Index?5?$DN?$DN?5mPrivate?9?$DOAttemptCount?$AA@ 000000000001a508 IScsiDxe:IScsiConfig.obj
+ 0002:00001fd0 ??_C@_1KO@CMAFGNCI@?$AAC?$AAa?$AAn?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAm?$AAo?$AAr?$AAe?$AA?5?$AAa?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AAs?$AA?0?$AA?5?$AAP?$AAl@ 000000000001a530 IScsiDxe:IScsiConfig.obj
+ 0002:00002080 ??_C@_0CC@NCPBIMNJ@AttemptConfigData?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 000000000001a5e0 IScsiDxe:IScsiConfig.obj
+ 0002:000020b0 ??_C@_1FA@BNOKFEIK@?$AAM?$AAA?$AAC?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?0?$AA?5?$AAP?$AAF?$AAA?$AA?3?$AA?5?$AAB?$AAu?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$HM?$AA?5?$AAD?$AAe?$AAv?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$HM?$AA?5@ 000000000001a610 IScsiDxe:IScsiConfig.obj
+ 0002:00002100 ??_C@_0DI@KOIDKGNG@Corresponding?5configuration?5data@ 000000000001a660 IScsiDxe:IScsiConfig.obj
+ 0002:00002138 ??_C@_1O@LFMAFHMH@?$AAO?$AAF?$AAF?$AAS?$AAE?$AAT?$AA?$AA@ 000000000001a698 IScsiDxe:IScsiConfig.obj
+ 0002:00002148 ??_C@_1DC@EPJEBJEB@?$AA?$CF?$AAs?$AA?$CG?$AAO?$AAF?$AAF?$AAS?$AAE?$AAT?$AA?$DN?$AA0?$AA?$CG?$AAW?$AAI?$AAD?$AAT?$AAH?$AA?$DN?$AA?$CF?$AA0?$AA1?$AA6?$AAL?$AAX?$AA?$AA@ 000000000001a6a8 IScsiDxe:IScsiConfig.obj
+ 0002:00002180 ??_C@_1BC@KLGPJAMP@?$AA?$CG?$AAO?$AAF?$AAF?$AAS?$AAE?$AAT?$AA?$DN?$AA?$AA@ 000000000001a6e0 IScsiDxe:IScsiConfig.obj
+ 0002:000021a0 ??_C@_1GI@FGGMGBGN@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?3?$AA?5?$AAp?$AAl?$AAe?$AAa?$AAs?$AAe?$AA?5?$AAc?$AAo?$AAn?$AAf?$AAi?$AAg?$AAu?$AAr?$AAe?$AA?5?$AAi?$AAS?$AAC?$AAS?$AAI?$AA?5?$AAi?$AAn@ 000000000001a700 IScsiDxe:IScsiConfig.obj
+ 0002:00002210 ??_C@_1EO@FLPILACC@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?3?$AA?5?$AAT?$AAh?$AAe?$AA?5?$AAa?$AAd?$AAd?$AA?5?$AAa?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AA?5?$AAl?$AAi?$AAs?$AAt?$AA?5?$AAi?$AAs?$AA?5?$AAi@ 000000000001a770 IScsiDxe:IScsiConfig.obj
+ 0002:00002260 ??_C@_1FE@DJKEEMLI@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?3?$AA?5?$AAT?$AAh?$AAe?$AA?5?$AAd?$AAe?$AAl?$AAe?$AAt?$AAe?$AA?5?$AAa?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AA?5?$AAl?$AAi?$AAs?$AAt?$AA?5?$AAi@ 000000000001a7c0 IScsiDxe:IScsiConfig.obj
+ 0002:000022c0 ??_C@_1FK@DCGFDFEP@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?3?$AA?5?$AAT?$AAh?$AAe?$AA?5?$AAn?$AAe?$AAw?$AA?5?$AAa?$AAt?$AAt?$AAe?$AAm?$AAp?$AAt?$AA?5?$AAo?$AAr?$AAd?$AAe?$AAr?$AA?5?$AAl?$AAi?$AAs@ 000000000001a820 IScsiDxe:IScsiConfig.obj
+ 0002:00002320 ??_C@_1EE@FFBFOLIE@?$AAC?$AAu?$AAr?$AAr?$AAe?$AAn?$AAt?$AA?5?$AAN?$AAI?$AAC?$AA?5?$AAd?$AAo?$AAe?$AAs?$AAn?$AA?8?$AAt?$AA?5?$AAS?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AA?5?$AAI?$AAP?$AAv?$AA6@ 000000000001a880 IScsiDxe:IScsiConfig.obj
+ 0002:00002368 ??_C@_1CI@GENBJJAB@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAL?$AAU?$AAN?$AA?5?$AAs?$AAt?$AAr?$AAi?$AAn?$AAg?$AA?$CB?$AA?$AA@ 000000000001a8c8 IScsiDxe:IScsiConfig.obj
+ 0002:00002390 ??_C@_0BM@FGCLBLHH@mPrivate?9?$DOAttemptCount?5?$DN?$DN?50?$AA@ 000000000001a8f0 IScsiDxe:IScsiConfig.obj
+ 0002:000023b0 ??_C@_0BI@MEJLBIAC@mPrivate?9?$DONicCount?5?$DN?$DN?50?$AA@ 000000000001a910 IScsiDxe:IScsiConfig.obj
+ 0002:000023d0 ??_C@_0EH@NJGCLBKC@The?5configuration?5of?5Target?5addr@ 000000000001a930 IScsiDxe:IScsiProto.obj
+ 0002:00002420 ??_C@_0EC@DDFIKPBA@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001a980 IScsiDxe:IScsiProto.obj
+ 0002:00002468 ??_C@_0BE@OAEFJCLC@Pdu?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001a9c8 IScsiDxe:IScsiProto.obj
+ 0002:00002480 ??_C@_0O@DMHNKPDD@TargetAddress?$AA@ 000000000001a9e0 IScsiDxe:IScsiProto.obj
+ 0002:00002490 ??_C@_0BE@MAANAFFD@Arg?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001a9f0 IScsiDxe:IScsiProto.obj
+ 0002:000024a8 ??_C@_0N@LDJCJGDI@HeaderDigest?$AA@ 000000000001aa08 IScsiDxe:IScsiProto.obj
+ 0002:000024b8 ??_C@_05MHNOECFO@CRC32?$AA@ 000000000001aa18 IScsiDxe:IScsiProto.obj
+ 0002:000024c0 ??_C@_0L@NIHDLAKD@DataDigest?$AA@ 000000000001aa20 IScsiDxe:IScsiProto.obj
+ 0002:000024d0 ??_C@_0BD@OAAHBPKN@ErrorRecoveryLevel?$AA@ 000000000001aa30 IScsiDxe:IScsiProto.obj
+ 0002:000024e8 ??_C@_0L@DHPBNECN@InitialR2T?$AA@ 000000000001aa48 IScsiDxe:IScsiProto.obj
+ 0002:000024f4 ??_C@_03CCLAEDDF@Yes?$AA@ 000000000001aa54 IScsiDxe:IScsiProto.obj
+ 0002:000024f8 ??_C@_0O@GKGOMOLB@ImmediateData?$AA@ 000000000001aa58 IScsiDxe:IScsiProto.obj
+ 0002:00002508 ??_C@_0BJ@FCLHOFCN@MaxRecvDataSegmentLength?$AA@ 000000000001aa68 IScsiDxe:IScsiProto.obj
+ 0002:00002528 ??_C@_0P@KOEHAIP@MaxBurstLength?$AA@ 000000000001aa88 IScsiDxe:IScsiProto.obj
+ 0002:00002538 ??_C@_0BB@IPNJPAAG@FirstBurstLength?$AA@ 000000000001aa98 IScsiDxe:IScsiProto.obj
+ 0002:00002550 ??_C@_0P@DDHINENC@MaxConnections?$AA@ 000000000001aab0 IScsiDxe:IScsiProto.obj
+ 0002:00002560 ??_C@_0P@BAPPFDGI@DataPDUInOrder?$AA@ 000000000001aac0 IScsiDxe:IScsiProto.obj
+ 0002:00002570 ??_C@_0BE@KICALKDN@DataSequenceInOrder?$AA@ 000000000001aad0 IScsiDxe:IScsiProto.obj
+ 0002:00002588 ??_C@_0BB@HADJICGK@DefaultTime2Wait?$AA@ 000000000001aae8 IScsiDxe:IScsiProto.obj
+ 0002:000025a0 ??_C@_0BD@BGMCDOLB@DefaultTime2Retain?$AA@ 000000000001ab00 IScsiDxe:IScsiProto.obj
+ 0002:000025b8 ??_C@_0BC@HPPCAHHC@MaxOutstandingR2T?$AA@ 000000000001ab18 IScsiDxe:IScsiProto.obj
+ 0002:000025d0 ??_C@_0M@PDHAICBK@TargetAlias?$AA@ 000000000001ab30 IScsiDxe:IScsiProto.obj
+ 0002:000025e0 ??_C@_0L@LNPOJIAE@None?0CRC32?$AA@ 000000000001ab40 IScsiDxe:IScsiProto.obj
+ 0002:000025ec ??_C@_02ECNOPIAA@?$CFa?$AA@ 000000000001ab4c IScsiDxe:IScsiProto.obj
+ 0002:000025f0 ??_C@_02JINPPBEP@No?$AA@ 000000000001ab50 IScsiDxe:IScsiProto.obj
+ 0002:000025f4 ??_C@_04DHDCDFCB@iqn?4?$AA@ 000000000001ab54 IScsiDxe:IScsiProto.obj
+ 0002:00002600 ??_C@_0BE@CLBLKENM@Tcb?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001ab60 IScsiDxe:IScsiProto.obj
+ 0002:00002618 ??_C@_0BE@MNMOFMCK@Session?9?$DOState?5?$CB?$DN?50?$AA@ 000000000001ab78 IScsiDxe:IScsiProto.obj
+ 0002:00002630 ??_C@_0BP@GEGOHMJ@?$CBIsListEmpty?5?$CI?$CGSession?9?$DOConns?$CJ?$AA@ 000000000001ab90 IScsiDxe:IScsiProto.obj
+ 0002:00002650 ??_C@_1O@PFAMAPCJ@?$AAI?$AA_?$AAN?$AAA?$AAM?$AAE?$AA?$AA@ 000000000001abb0 IScsiDxe:IScsiInitiatorName.obj
+ 0002:00002660 ??_C@_0CI@PJANFIEL@Attempt?9?$DOSessionConfigData?4Enabl@ 000000000001abc0 IScsiDxe:IScsiIbft.obj
+ 0002:00002690 ??_C@_0EB@EHAGKKMH@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001abf0 IScsiDxe:IScsiIbft.obj
+ 0002:000026d8 ??_C@_0BC@FEDIJHFF@?$CI?$CIBOOLEAN?$CJ?$CI0?$DN?$DN1?$CJ?$CJ?$AA@ 000000000001ac38 IScsiDxe:IScsiIbft.obj
+ 0002:000026ec ??_C@_06DELMHKOB@iscsi?3?$AA@ 000000000001ac4c IScsiDxe:IScsiDhcp6.obj
+ 0002:000026f8 ??_C@_0DA@NKGOKBK@?6?5?5Error?3?5Could?5not?5detect?5netwo@ 000000000001ac58 IScsiDxe:IScsiDhcp6.obj
+ 0002:00002730 ??_C@_0EM@OHHFFIDO@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001ac90 IScsiDxe:IScsiExtScsiPassThru.obj
+ 0002:00002780 ??_C@_0ED@MKGCMJG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 000000000001ace0 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:000027d0 ??_C@_0FF@LLAFLLDM@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001ad30 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00002828 ??_C@_0DO@MAOBOFEG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 000000000001ad88 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00002868 ??_C@_0DG@EEENIGGL@Length?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFFFFFULL@ 000000000001adc8 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0002:000028a0 ??_C@_0CC@JOEHDGKB@DestinationBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 000000000001ae00 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:000028d0 ??_C@_0FI@NCCCHAEB@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001ae30 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00002928 ??_C@_0BN@MDMCNBCC@SourceBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001ae88 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00002948 ??_C@_0BH@IACGKAP@Buffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001aea8 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:00002960 ??_C@_0FF@PKHNKPL@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001aec0 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:000029b8 ??_C@_0DI@DAGDPLPG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 000000000001af18 BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0002:000029f0 ??_C@_0FE@OAGIONNJ@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001af50 BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0002:00002a48 ??_C@_0CO@LECKNDNC@?$CI?$CI?$CIUINTN?$CJBuffer?$CJ?5?$CG?5?$CIsizeof?5?$CIValu@ 000000000001afa8 BaseMemoryLibRepStr:SetMem64Wrapper.obj
+ 0002:00002a78 ??_C@_0CF@LEICOABD@?$CILength?5?$CG?5?$CIsizeof?5?$CIValue?$CJ?5?9?51?$CJ?$CJ?5@ 000000000001afd8 BaseMemoryLibRepStr:SetMem64Wrapper.obj
+ 0002:00002aa0 ??_C@_0BF@NJNGJMPC@List?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b000 BaseLib:LinkedList.obj
+ 0002:00002ac0 ??_C@_0EF@PHMLHICE@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b020 BaseLib:LinkedList.obj
+ 0002:00002b08 ??_C@_0CC@KDLPLAED@List?9?$DOForwardLink?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 000000000001b068 BaseLib:LinkedList.obj
+ 0002:00002b30 ??_C@_0BP@IJJCCMAK@List?9?$DOBackLink?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b090 BaseLib:LinkedList.obj
+ 0002:00002b50 ??_C@_0BJ@NJABNCDK@ListHead?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b0b0 BaseLib:LinkedList.obj
+ 0002:00002b70 ??_C@_0CG@LGIALJFK@InternalBaseLibIsListValid?5?$CIList@ 000000000001b0d0 BaseLib:LinkedList.obj
+ 0002:00002b98 ??_C@_0BF@NMBJJECB@?$CBIsListEmpty?5?$CIEntry?$CJ?$AA@ 000000000001b0f8 BaseLib:LinkedList.obj
+ 0002:00002bb0 ??_C@_0BH@MAAHKCPC@String?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b110 BaseLib:String.obj
+ 0002:00002bd0 ??_C@_0EB@OHCINBMP@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b130 BaseLib:String.obj
+ 0002:00002c18 ??_C@_0CC@GFNLNIOC@?$CI?$CIUINTN?$CJString?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 000000000001b178 BaseLib:String.obj
+ 0002:00002c40 ??_C@_0DK@EOJCOAME@Length?5?$DM?5_gPcd_FixedAtBuild_PcdM@ 000000000001b1a0 BaseLib:String.obj
+ 0002:00002c80 ??_C@_0BL@JAAMOCAJ@StrSize?5?$CIFirstString?$CJ?5?$CB?$DN?50?$AA@ 000000000001b1e0 BaseLib:String.obj
+ 0002:00002ca0 ??_C@_0BM@DALBOILC@StrSize?5?$CISecondString?$CJ?5?$CB?$DN?50?$AA@ 000000000001b200 BaseLib:String.obj
+ 0002:00002cc0 ??_C@_0DL@LFIMEMJP@Length?5?$DM?$DN?5_gPcd_FixedAtBuild_Pcd@ 000000000001b220 BaseLib:String.obj
+ 0002:00002d00 ??_C@_0BG@KBNOLIGE@StrSize?5?$CIString?$CJ?5?$CB?$DN?50?$AA@ 000000000001b260 BaseLib:String.obj
+ 0002:00002d18 ??_C@_0BM@NNBLOHJD@StrSize?5?$CISearchString?$CJ?5?$CB?$DN?50?$AA@ 000000000001b278 BaseLib:String.obj
+ 0002:00002d38 ??_C@_0DI@MDIKFADO@Length?5?$DM?5_gPcd_FixedAtBuild_PcdM@ 000000000001b298 BaseLib:String.obj
+ 0002:00002d70 ??_C@_0BL@IKFBNFIL@AsciiStrSize?5?$CIFirstString?$CJ?$AA@ 000000000001b2d0 BaseLib:String.obj
+ 0002:00002d90 ??_C@_0BM@EDNOKLLE@AsciiStrSize?5?$CISecondString?$CJ?$AA@ 000000000001b2f0 BaseLib:String.obj
+ 0002:00002db0 ??_C@_0DJ@JJHGIFMP@Length?5?$DM?$DN?5_gPcd_FixedAtBuild_Pcd@ 000000000001b310 BaseLib:String.obj
+ 0002:00002df0 ??_C@_0EF@MFKKFBPN@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b350 BaseLib:SafeString.obj
+ 0002:00002e38 ??_C@_0CH@LALFPBMC@?$CI?$CIUINTN?$CJDestination?5?$CG?50x00000001@ 000000000001b398 BaseLib:SafeString.obj
+ 0002:00002e60 ??_C@_0CC@HEBCMBPF@?$CI?$CIUINTN?$CJSource?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 000000000001b3c0 BaseLib:SafeString.obj
+ 0002:00002e88 ??_C@_0BO@ECNIOIHG@?$CIDestination?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 000000000001b3e8 BaseLib:SafeString.obj
+ 0002:00002ea8 ??_C@_07KBGDFDAM@StrCpyS?$AA@ 000000000001b408 BaseLib:SafeString.obj
+ 0002:00002eb0 ??_C@_0EA@PDPDJJNN@?$CFa?$CI?$CFd?$CJ?5?$CFa?3?5SAFE_STRING_CONSTRAIN@ 000000000001b410 BaseLib:SafeString.obj
+ 0002:00002ef0 ??_C@_0BJ@EAEEJIP@?$CISource?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 000000000001b450 BaseLib:SafeString.obj
+ 0002:00002f10 ??_C@_0EA@BBALOHPI@?$CIDestMax?5?$DM?$DN?5?$CI_gPcd_FixedAtBuild_@ 000000000001b470 BaseLib:SafeString.obj
+ 0002:00002f50 ??_C@_0P@PMIMLIHM@?$CIDestMax?5?$CB?$DN?50?$CJ?$AA@ 000000000001b4b0 BaseLib:SafeString.obj
+ 0002:00002f60 ??_C@_0BG@EEGIIOKH@?$CIDestMax?5?$DO?5SourceLen?$CJ?$AA@ 000000000001b4c0 BaseLib:SafeString.obj
+ 0002:00002f80 ??_C@_0FH@PPBLBDBJ@InternalSafeStringNoStrOverlap?5?$CI@ 000000000001b4e0 BaseLib:SafeString.obj
+ 0002:00002fd8 ??_C@_08INOAHJON@StrnCpyS?$AA@ 000000000001b538 BaseLib:SafeString.obj
+ 0002:00002fe8 ??_C@_0DP@PBOJGJC@?$CILength?5?$DM?$DN?5?$CI_gPcd_FixedAtBuild_P@ 000000000001b548 BaseLib:SafeString.obj
+ 0002:00003028 ??_C@_07EBBOPAKF@StrCatS?$AA@ 000000000001b588 BaseLib:SafeString.obj
+ 0002:00003030 ??_C@_0P@BHOOOJPD@?$CICopyLen?5?$CB?$DN?50?$CJ?$AA@ 000000000001b590 BaseLib:SafeString.obj
+ 0002:00003040 ??_C@_0BG@BPGICNPK@?$CICopyLen?5?$DO?5SourceLen?$CJ?$AA@ 000000000001b5a0 BaseLib:SafeString.obj
+ 0002:00003058 ??_C@_0BJ@MBBOBCLN@?$CIString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 000000000001b5b8 BaseLib:SafeString.obj
+ 0002:00003078 ??_C@_0BD@NNBAKNOF@StrDecimalToUintnS?$AA@ 000000000001b5d8 BaseLib:SafeString.obj
+ 0002:00003090 ??_C@_0BH@JPMEDPAI@?$CIData?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 000000000001b5f0 BaseLib:SafeString.obj
+ 0002:000030b0 ??_C@_0IC@CFBPEAPC@?$CIStrnLenS?5?$CIString?0?5?$CI_gPcd_FixedA@ 000000000001b610 BaseLib:SafeString.obj
+ 0002:00003138 ??_C@_0P@FDCJFGP@StrHexToUintnS?$AA@ 000000000001b698 BaseLib:SafeString.obj
+ 0002:00003148 ??_C@_0BA@PLPLKCD@StrHexToUint64S?$AA@ 000000000001b6a8 BaseLib:SafeString.obj
+ 0002:00003158 ??_C@_0BK@PFCDEPEA@?$CIAddress?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 000000000001b6b8 BaseLib:SafeString.obj
+ 0002:00003180 ??_C@_0EK@OFPBBCEA@AddressIndex?5?$CL?51?5?$DM?5?$CIsizeof?5?$CIAddr@ 000000000001b6e0 BaseLib:SafeString.obj
+ 0002:000031d0 ??_C@_0BB@JCLCGCPJ@StrToIpv4Address?$AA@ 000000000001b730 BaseLib:SafeString.obj
+ 0002:000031e8 ??_C@_0BJ@CNKJJNE@?$CIBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 000000000001b748 BaseLib:SafeString.obj
+ 0002:00003208 ??_C@_0N@OMPODJLB@AsciiStrCpyS?$AA@ 000000000001b768 BaseLib:SafeString.obj
+ 0002:00003218 ??_C@_0DO@LJFOOPII@?$CIDestMax?5?$DM?$DN?5?$CI_gPcd_FixedAtBuild_@ 000000000001b778 BaseLib:SafeString.obj
+ 0002:00003260 ??_C@_0FL@CDANCHFO@InternalSafeStringNoAsciiStrOver@ 000000000001b7c0 BaseLib:SafeString.obj
+ 0002:000032c0 ??_C@_0BI@GIIHIIN@AsciiStrDecimalToUintnS?$AA@ 000000000001b820 BaseLib:SafeString.obj
+ 0002:000032e0 ??_C@_0ID@JMCCGBLD@?$CIAsciiStrnLenS?5?$CIString?0?5?$CI_gPcd_F@ 000000000001b840 BaseLib:SafeString.obj
+ 0002:00003368 ??_C@_0BE@KNBHPEHC@AsciiStrHexToUintnS?$AA@ 000000000001b8c8 BaseLib:SafeString.obj
+ 0002:00003380 ??_C@_0BF@GMBBPDJL@AsciiStrHexToUint64S?$AA@ 000000000001b8e0 BaseLib:SafeString.obj
+ 0002:00003398 ??_C@_0BG@ECBHNCII@UnicodeStrToAsciiStrS?$AA@ 000000000001b8f8 BaseLib:SafeString.obj
+ 0002:000033b0 ??_C@_0GH@OGMKEJDK@?$CBInternalSafeStringIsOverlap?5?$CIDe@ 000000000001b910 BaseLib:SafeString.obj
+ 0002:00003418 ??_C@_0BA@MFHLDCJH@?$CKSource?5?$DM?50x100?$AA@ 000000000001b978 BaseLib:SafeString.obj
+ 0002:00003428 ??_C@_0BG@MFINJFHO@AsciiStrToUnicodeStrS?$AA@ 000000000001b988 BaseLib:SafeString.obj
+ 0002:00003440 ??_C@_0GF@GCLJAOAI@?$CBInternalSafeStringIsOverlap?5?$CIDe@ 000000000001b9a0 BaseLib:SafeString.obj
+ 0002:000034a8 ??_C@_0BG@HJJNNPII@AsciiStrToIpv6Address?$AA@ 000000000001ba08 BaseLib:SafeString.obj
+ 0002:000034c0 ??_C@_0BG@FHGLPHAO@AsciiStrToIpv4Address?$AA@ 000000000001ba20 BaseLib:SafeString.obj
+ 0002:000034e0 ??_C@_0ED@GJHPOIEN@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001ba40 BaseLib:CheckSum.obj
+ 0002:00003528 ??_C@_0DI@FAOGOFLE@Length?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFFFFFULL@ 000000000001ba88 BaseLib:CheckSum.obj
+ 0002:00003560 ??_C@_0EE@FAJFAODK@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001bac0 BaseLib:Unaligned.obj
+ 0002:000035a8 ??_C@_0N@KGHEHMDL@Divisor?5?$CB?$DN?50?$AA@ 000000000001bb08 BaseLib:DivU64x32.obj
+ 0002:000035b8 ??_C@_0CI@BGLNHBLM@?$CI?$CI?$CIUINTN?$CJ?5?$CIStartOfBuffer?$CJ?$CJ?5?$CG?50x0@ 000000000001bb18 BasePrintLib:PrintLib.obj
+ 0002:000035e0 ??_C@_0EI@PHEOPKNG@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001bb40 BasePrintLib:PrintLib.obj
+ 0002:00003628 ??_C@_0CH@KJLBGOBB@?$CI?$CI?$CIUINTN?$CJ?5?$CIFormatString?$CJ?$CJ?5?$CG?50x01@ 000000000001bb88 BasePrintLib:PrintLib.obj
+ 0002:00003650 ??_C@_0CB@LDBAOPMG@?$CI?$CI?$CIUINTN?$CJ?5?$CIBuffer?$CJ?$CJ?5?$CG?50x01?$CJ?5?$DN?$DN?50@ 000000000001bbb0 BasePrintLib:PrintLib.obj
+ 0002:00003680 ??_C@_0FA@JGMHCDLA@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001bbe0 BasePrintLib:PrintLibInternal.obj
+ 0002:000036d0 ??_C@_0EB@HDGIDCIO@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 000000000001bc30 BasePrintLib:PrintLibInternal.obj
+ 0002:00003720 ??_C@_0FJ@HAEMOBLP@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 000000000001bc80 BasePrintLib:PrintLibInternal.obj
+ 0002:00003780 ??_C@_0N@PNKFBKME@?$CIWidth?5?$DM?538?$CJ?$AA@ 000000000001bce0 BasePrintLib:PrintLibInternal.obj
+ 0002:00003790 ??_C@_0CI@HPJOGFNE@?$CIBufferSize?5?$DO?$DN?5?$CIWidth?5?$CL?51?$CJ?5?$CK?5Inc@ 000000000001bcf0 BasePrintLib:PrintLibInternal.obj
+ 0002:000037b8 ??_C@_0BJ@PPAKKDJG@?$CIFormat?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 000000000001bd18 BasePrintLib:PrintLibInternal.obj
+ 0002:000037e0 ??_C@_0ED@LPDDCECB@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 000000000001bd40 BasePrintLib:PrintLibInternal.obj
+ 0002:00003830 ??_C@_0IM@BFJJFLGB@?$CIStrnLenS?5?$CI?$CICHAR16?5?$CK?$CJFormat?0?5?$CI_g@ 000000000001bd90 BasePrintLib:PrintLibInternal.obj
+ 0002:000038c0 ??_C@_0ID@PLGJGION@?$CIAsciiStrnLenS?5?$CIFormat?0?5?$CI_gPcd_F@ 000000000001be20 BasePrintLib:PrintLibInternal.obj
+ 0002:00003948 ??_C@_0O@MLOLIMFM@?$DMnull?5string?$DO?$AA@ 000000000001bea8 BasePrintLib:PrintLibInternal.obj
+ 0002:00003958 ??_C@_0M@BJJDNPHK@?$DMnull?5guid?$DO?$AA@ 000000000001beb8 BasePrintLib:PrintLibInternal.obj
+ 0002:00003968 ??_C@_0DB@PMLHLBMO@?$CF08x?9?$CF04x?9?$CF04x?9?$CF02x?$CF02x?9?$CF02x?$CF02x@ 000000000001bec8 BasePrintLib:PrintLibInternal.obj
+ 0002:000039a0 ??_C@_0M@LHGBCIKM@?$DMnull?5time?$DO?$AA@ 000000000001bf00 BasePrintLib:PrintLibInternal.obj
+ 0002:000039b0 ??_C@_0BK@FCPKCIDD@?$CF02d?1?$CF02d?1?$CF04d?5?5?$CF02d?3?$CF02d?$AA@ 000000000001bf10 BasePrintLib:PrintLibInternal.obj
+ 0002:000039cc ??_C@_04JIMNDDED@?$CF08X?$AA@ 000000000001bf2c BasePrintLib:PrintLibInternal.obj
+ 0002:000039d4 ??_C@_02PCIJFNDE@?$AN?6?$AA@ 000000000001bf34 BasePrintLib:PrintLibInternal.obj
+ 0002:000039d8 ??_C@_01LIIJDEN@?$AN?$AA@ 000000000001bf38 BasePrintLib:PrintLibInternal.obj
+ 0002:000039e0 mWarningString 000000000001bf40 BasePrintLib:PrintLibInternal.obj
+ 0002:00003a80 mErrorString 000000000001bfe0 BasePrintLib:PrintLibInternal.obj
+ 0002:00003d40 mHexStr 000000000001c2a0 BasePrintLib:PrintLibInternal.obj
+ 0002:00003d50 ??_C@_0BH@LKMBFCBF@Format?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c2b0 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00003d70 ??_C@_0FD@OABGLBHF@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c2d0 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00003dc8 ??_C@_0BE@ECBJLCDE@ASSERT?5?$CFa?$CI?$CFLu?$CJ?3?5?$CFa?6?$AA@ 000000000001c328 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00003de0 ??_C@_0BN@COECPDCC@gImageHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c340 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00003e00 ??_C@_0GE@FKBNDHHB@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c360 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00003e68 ??_C@_0BE@DGNHAHIL@gST?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c3c8 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00003e80 ??_C@_0BE@BDFJLGLN@gBS?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c3e0 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00003ea0 ??_C@_0FO@BEMDJMPM@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c400 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:00003f00 ??_C@_0DO@GEEICOOO@AllocationSize?5?$DM?$DN?5?$CI0xFFFFFFFFFFF@ 000000000001c460 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:00003f40 ??_C@_0BE@OBDFIHND@gRT?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c4a0 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:00003f60 ??_C@_0GK@FJIMGEPP@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c4c0 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:00003fd0 ??_C@_0GI@KEFAHLGJ@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c530 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00004038 ??_C@_0DC@CNNBPJA@mDevicePathLibDevicePathUtilitie@ 000000000001c598 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00004070 ??_C@_0BF@CBLMFKOC@Node?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c5d0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00004090 ??_C@_0EH@ENCEEKKL@?$CILength?5?$DO?$DN?5sizeof?5?$CIEFI_DEVICE_PA@ 000000000001c5f0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:000040d8 ??_C@_0BK@PPOBBAMB@TableGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c638 UefiLib:UefiLib.obj
+ 0002:00004100 ??_C@_0EC@DCGCAOKF@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c660 UefiLib:UefiLib.obj
+ 0002:00004148 ??_C@_0BG@JDKEGFNB@Table?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c6a8 UefiLib:UefiLib.obj
+ 0002:00004160 ??_C@_0EG@GOBFPEEP@Name?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5Guid?5?$CB?$DN?5@ 000000000001c6c0 UefiLib:UefiLib.obj
+ 0002:000041a8 ??_C@_0BH@FMEOEIBC@?$CKValue?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c708 UefiLib:UefiLib.obj
+ 0002:000041c0 ??_C@_0BO@MHFMIIAE@DriverBinding?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c720 UefiLib:UefiDriverModel.obj
+ 0002:000041e0 ??_C@_0EK@CMFOJGEC@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c740 UefiLib:UefiDriverModel.obj
+ 0002:00004230 ??_C@_0BD@BHENKNKP@NumberOfLines?5?$CB?$DN?50?$AA@ 000000000001c790 UefiLib:Console.obj
+ 0002:00004250 ??_C@_0EC@EJLIGNPA@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c7b0 UefiLib:Console.obj
+ 0002:00004298 ??_C@_0P@ICDOOCHP@MaxLength?5?$CB?$DN?50?$AA@ 000000000001c7f8 UefiLib:Console.obj
+ 0002:000042a8 ??_C@_0BF@DMEONNDO@Line?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c808 UefiLib:Console.obj
+ 0002:000042c0 ??_C@_0BK@IHAIHFJE@TmpString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c820 UefiLib:Console.obj
+ 0002:000042e0 ??_C@_17LGKOMLJ@?$AA?4?$AA?4?$AA?4?$AA?$AA@ 000000000001c840 UefiLib:Console.obj
+ 0002:000042f0 ??_C@_0EH@BHOPMLMJ@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c850 UefiLib:UefiLibPrint.obj
+ 0002:00004338 ??_C@_0BI@DIKLKBJC@Console?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c898 UefiLib:UefiLibPrint.obj
+ 0002:00004350 ??_C@_0ED@HPBEEAH@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c8b0 DxeHobLib:HobLib.obj
+ 0002:00004398 ??_C@_0BJ@OBFMLLDO@mHobList?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c8f8 DxeHobLib:HobLib.obj
+ 0002:000043b8 ??_C@_0BJ@NOLLDKJB@HobStart?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c918 DxeHobLib:HobLib.obj
+ 0002:000043d8 ??_C@_0BP@LHBKJBMC@PlatformInfoHob?5is?5not?5found?4?6?$AA@ 000000000001c938 DxeAcpiTimerLib:DxeAcpiTimerLib.obj
+ 0002:00004400 ??_C@_0FA@KOBOOOIF@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c960 DxeAcpiTimerLib:DxeAcpiTimerLib.obj
+ 0002:00004450 ??_C@_0BI@HAGPDMHJ@AcpiTimerLibConstructor?$AA@ 000000000001c9b0 DxeAcpiTimerLib:DxeAcpiTimerLib.obj
+ 0002:00004468 ??_C@_0CL@DGCOIACG@?$CFa?3?5Unknown?5Host?5Bridge?5Device?5I@ 000000000001c9c8 DxeAcpiTimerLib:DxeAcpiTimerLib.obj
+ 0002:000044a0 ??_C@_0FO@HNLMMFDN@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001ca00 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0002:00004500 ??_C@_0BK@KLJHMMPJ@HiiHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001ca60 UefiHiiLib:HiiString.obj
+ 0002:00004520 ??_C@_0EN@DDBLCGFI@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001ca80 UefiHiiLib:HiiString.obj
+ 0002:00004570 ??_C@_06PLDEFKP@x?9UEFI?$AA@ 000000000001cad0 UefiHiiLib:HiiString.obj
+ 0002:00004578 ??_C@_0CA@OEKIMLLB@PackageListGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cad8 UefiHiiLib:HiiString.obj
+ 0002:000045a0 ??_C@_0EK@CCOCGB@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001cb00 UefiHiiLib:HiiLib.obj
+ 0002:000045f0 ??_C@_0BN@EHPNHAIF@ConfigString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cb50 UefiHiiLib:HiiLib.obj
+ 0002:00004610 ??_C@_0BG@MJAHJKJ@Block?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cb70 UefiHiiLib:HiiLib.obj
+ 0002:00004628 ??_C@_1M@DPLGJLCD@?$AAG?$AAU?$AAI?$AAD?$AA?$DN?$AA?$AA@ 000000000001cb88 UefiHiiLib:HiiLib.obj
+ 0002:00004638 ??_C@_1O@FMIENBLJ@?$AA?$CG?$AAN?$AAA?$AAM?$AAE?$AA?$DN?$AA?$AA@ 000000000001cb98 UefiHiiLib:HiiLib.obj
+ 0002:00004648 ??_C@_1O@GGMHNGIF@?$AA?$CG?$AAP?$AAA?$AAT?$AAH?$AA?$DN?$AA?$AA@ 000000000001cba8 UefiHiiLib:HiiLib.obj
+ 0002:00004658 ??_C@_0BM@LENJOOBF@FirstString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cbb8 UefiHiiLib:HiiLib.obj
+ 0002:00004678 ??_C@_0BN@CGMEJHHH@SecondString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cbd8 UefiHiiLib:HiiLib.obj
+ 0002:00004698 ??_C@_0CC@BCKDEPBB@StartSearchString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 000000000001cbf8 UefiHiiLib:HiiLib.obj
+ 0002:000046c0 ??_C@_0CB@NPMPBLHL@StopSearchString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ@ 000000000001cc20 UefiHiiLib:HiiLib.obj
+ 0002:000046e8 ??_C@_0BK@LFDBOAFJ@ConfigHdr?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cc48 UefiHiiLib:HiiLib.obj
+ 0002:00004708 ??_C@_1M@IDEFLMF@?$AA?$CF?$AAs?$AA?$CG?$AA?$CF?$AAs?$AA?$AA@ 000000000001cc68 UefiHiiLib:HiiLib.obj
+ 0002:00004718 ??_C@_0BN@OKKMNGPH@OpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cc78 UefiHiiLib:HiiLib.obj
+ 0002:00004738 ??_C@_0BP@IOABAFLF@OpCodeTemplate?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cc98 UefiHiiLib:HiiLib.obj
+ 0002:00004758 ??_C@_0CF@DPHCOLMP@?$CIOpCodeSize?5?$CL?5ExtensionSize?$CJ?5?$DM?$DN?5@ 000000000001ccb8 UefiHiiLib:HiiLib.obj
+ 0002:00004780 ??_C@_0BK@JGHNIOOD@RawBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cce0 UefiHiiLib:HiiLib.obj
+ 0002:000047a0 ??_C@_0CA@JCKPEJCB@RawOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cd00 UefiHiiLib:HiiLib.obj
+ 0002:000047c0 ??_C@_0DG@CGCLKNEF@?$CIQuestionFlags?5?$CG?5?$CI?$HO?$CI0x01?5?$HM?50x04?5@ 000000000001cd20 UefiHiiLib:HiiLib.obj
+ 0002:000047f8 ??_C@_0CE@KJODLANI@OptionsOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ@ 000000000001cd58 UefiHiiLib:HiiLib.obj
+ 0002:00004820 mConfigHdrTemplate 000000000001cd80 UefiHiiLib:HiiLib.obj
+ 0002:00004890 mEndOfPakageList 000000000001cdf0 UefiHiiLib:HiiLib.obj
+ 0002:000048a0 ??_C@_0EP@LMJDKFAP@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001ce00 UefiHiiLib:HiiLanguage.obj
+ 0002:000048f0 ??_C@_0EK@GBBIEMHN@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001ce50 DxeNetLib:DxeNetLib.obj
+ 0002:00004940 ??_C@_0N@NMJPNKHJ@NetMask?5?$CB?$DN?50?$AA@ 000000000001cea0 DxeNetLib:DxeNetLib.obj
+ 0002:00004950 ??_C@_0CI@KOOBFNBF@?$CIMaskLength?5?$DO?$DN?50?$CJ?5?$CG?$CG?5?$CIMaskLength@ 000000000001ceb0 DxeNetLib:DxeNetLib.obj
+ 0002:00004978 ??_C@_0BE@FCBOEPIJ@Ip6?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001ced8 DxeNetLib:DxeNetLib.obj
+ 0002:00004990 ??_C@_0EH@NHBGDONK@?$CIIp1?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CIIp2?5?$CB?$DN@ 000000000001cef0 DxeNetLib:DxeNetLib.obj
+ 0002:000049d8 ??_C@_09EEFECIOP@Byte?5?$DM?516?$AA@ 000000000001cf38 DxeNetLib:DxeNetLib.obj
+ 0002:000049e8 ??_C@_0BF@FBEMMEEB@Head?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cf48 DxeNetLib:DxeNetLib.obj
+ 0002:00004a00 ??_C@_0EG@FMMHPKDI@?$CIServiceBindingGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ@ 000000000001cf60 DxeNetLib:DxeNetLib.obj
+ 0002:00004a48 ??_C@_0CD@PCCGAHJM@ServiceBindingGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?5@ 000000000001cfa8 DxeNetLib:DxeNetLib.obj
+ 0002:00004a70 ??_C@_0BL@PMLJBBIE@MacAddress?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cfd0 DxeNetLib:DxeNetLib.obj
+ 0002:00004a90 ??_C@_0BM@CDAGHOOA@AddressSize?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cff0 DxeNetLib:DxeNetLib.obj
+ 0002:00004ab0 ??_C@_0BN@NHNKBDLL@MediaPresent?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d010 DxeNetLib:DxeNetLib.obj
+ 0002:00004ad0 ??_C@_0BM@CPKMECHF@MCastFilter?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d030 DxeNetLib:DxeNetLib.obj
+ 0002:00004af0 gIp4AllMasks 000000000001d050 DxeNetLib:DxeNetLib.obj
+ 0002:00004b78 ??_C@_0BA@MDHFKOHH@BlockOpNum?5?$DO?$DN?51?$AA@ 000000000001d0d8 DxeNetLib:NetBuffer.obj
+ 0002:00004b90 ??_C@_0EK@HPDBBEBA@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d0f0 DxeNetLib:NetBuffer.obj
+ 0002:00004be0 ??_C@_07DJKBCKNJ@Len?5?$DO?50?$AA@ 000000000001d140 DxeNetLib:NetBuffer.obj
+ 0002:00004be8 ??_C@_0BH@HKOFEGGJ@Vector?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d148 DxeNetLib:NetBuffer.obj
+ 0002:00004c00 ??_C@_0GP@BJHFFKHJ@?$CI?$CIVector?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CI?$CI@ 000000000001d160 DxeNetLib:NetBuffer.obj
+ 0002:00004c70 ??_C@_0BD@DIPGLBBO@Vector?9?$DORefCnt?5?$DO?50?$AA@ 000000000001d1d0 DxeNetLib:NetBuffer.obj
+ 0002:00004c88 ??_C@_0BF@LJMLDKHP@Nbuf?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d1e8 DxeNetLib:NetBuffer.obj
+ 0002:00004ca0 ??_C@_0GL@IFMHLCLE@?$CI?$CINbuf?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CI?$CINb@ 000000000001d200 DxeNetLib:NetBuffer.obj
+ 0002:00004d10 ??_C@_0BB@DOGOGLPG@Nbuf?9?$DORefCnt?5?$DO?50?$AA@ 000000000001d270 DxeNetLib:NetBuffer.obj
+ 0002:00004d28 ??_C@_0BD@CJPEEIBJ@IsListEmpty?5?$CIHead?$CJ?$AA@ 000000000001d288 DxeNetLib:NetBuffer.obj
+ 0002:00004d40 ??_C@_0HL@FGMBHKJG@?$CI?$CINbuf?9?$DOVector?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ@ 000000000001d2a0 DxeNetLib:NetBuffer.obj
+ 0002:00004dc0 ??_C@_0BJ@KIFBBHL@Index?5?$DM?5Nbuf?9?$DOBlockOpNum?$AA@ 000000000001d320 DxeNetLib:NetBuffer.obj
+ 0002:00004de0 ??_C@_0EL@JHACLFKC@?$CIExtFragment?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG@ 000000000001d340 DxeNetLib:NetBuffer.obj
+ 0002:00004e30 ??_C@_0DE@CILPCCFL@?$CIBlockOp?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CIBl@ 000000000001d390 DxeNetLib:NetBuffer.obj
+ 0002:00004e64 ??_C@_04IFLCJLKB@Dest?$AA@ 000000000001d3c4 DxeNetLib:NetBuffer.obj
+ 0002:00004e70 ??_C@_0HB@ILKEBNKK@?$CI?$CINbufQue?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CI@ 000000000001d3d0 DxeNetLib:NetBuffer.obj
+ 0002:00004ee8 ??_C@_0BF@CPBCKIGP@Dest?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d448 DxeNetLib:NetBuffer.obj
+ 0002:00004f00 ??_C@_0BF@PJAONBJP@Tcp4?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d460 DxeTcpIoLib:DxeTcpIoLib.obj
+ 0002:00004f20 ??_C@_0EO@KLJCLEPI@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d480 DxeTcpIoLib:DxeTcpIoLib.obj
+ 0002:00004f70 ??_C@_0BF@PMNKLKBM@Tcp6?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d4d0 DxeTcpIoLib:DxeTcpIoLib.obj
+ 0002:00004f90 ??_C@_0EG@MAJBHDFF@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d4f0 DxePcdLib:DxePcdLib.obj
+ 0002:00004fd8 ??_C@_0BF@OOKDELHM@mPcd?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d538 DxePcdLib:DxePcdLib.obj
+ 0002:00004ff0 ??_C@_0FG@BHBOFAHM@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d550 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00005050 ??_C@_0EN@EIGKPMFG@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d5b0 BaseLib:DivU64x32Remainder.obj
+ 0002:000050a0 ??_C@_0EO@GMIANGPF@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d600 BaseIoLibIntrinsicSev:IoLibMsc.obj
+ 0002:000050f0 ??_C@_0BA@HCECIDGN@?$CIPort?5?$CG?53?$CJ?5?$DN?$DN?50?$AA@ 000000000001d650 BaseIoLibIntrinsicSev:IoLibMsc.obj
+ 0002:00005100 ??_C@_0FG@HPDLAHGH@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d660 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0002:00005158 ??_C@_0BD@OMMAJMCK@?$CIAddress?5?$CG?53?$CJ?5?$DN?$DN?50?$AA@ 000000000001d6b8 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0002:00005170 ??_C@_0BO@BAKALPJK@?$CI?$CIAddress?$CJ?5?$CG?5?$HO0xfffffff?$CJ?5?$DN?$DN?50?$AA@ 000000000001d6d0 BasePciExpressLib:PciExpressLib.obj
+ 0002:00005190 ??_C@_0FC@LBKCNALB@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d6f0 BasePciExpressLib:PciExpressLib.obj
+ 0002:000051f0 ??_C@_0EK@HKMCGMBJ@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d750 BasePciCf8Lib:PciCf8Lib.obj
+ 0002:00005240 ??_C@_0CG@EDKLCMBO@?$CI?$CIAddress?$CJ?5?$CG?5?$CI?$HO0xffff0ff?5?$HM?5?$CI3?$CJ?$CJ?$CJ@ 000000000001d7a0 BasePciCf8Lib:PciCf8Lib.obj
+ 0002:00005370 ??_C@_0CB@GEABOFIF@Failed?5call?5TDCALL_TDINFO?4?5?$CFllx?6@ 000000000001d8d0 TdxLib:TdInfo.obj
+ 0002:000053a0 ??_C@_0EL@KBHFHFOL@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d900 BaseIoLibIntrinsicSev:IoLib.obj
+ 0003:00000000 _fltused 000000000001dae0 BaseIntrinsicLib:MemoryIntrinsics.obj
+ 0003:00000008 gEfiLoadedImageProtocolGuid 000000000001dae8 IScsiDxe:AutoGen.obj
+ 0003:00000018 gEfiAdapterInfoUndiIpv6SupportGuid 000000000001daf8 IScsiDxe:AutoGen.obj
+ 0003:00000028 gEfiAuthenticationInfoProtocolGuid 000000000001db08 IScsiDxe:AutoGen.obj
+ 0003:00000038 gEfiDns4ServiceBindingProtocolGuid 000000000001db18 IScsiDxe:AutoGen.obj
+ 0003:00000048 gEfiDhcp6ServiceBindingProtocolGuid 000000000001db28 IScsiDxe:AutoGen.obj
+ 0003:00000058 gEfiIfrTianoGuid 000000000001db38 IScsiDxe:AutoGen.obj
+ 0003:00000068 gEfiExtScsiPassThruProtocolGuid 000000000001db48 IScsiDxe:AutoGen.obj
+ 0003:00000078 gEfiDns4ProtocolGuid 000000000001db58 IScsiDxe:AutoGen.obj
+ 0003:00000088 gEfiIScsiInitiatorNameProtocolGuid 000000000001db68 IScsiDxe:AutoGen.obj
+ 0003:00000098 gEfiComponentName2ProtocolGuid 000000000001db78 IScsiDxe:AutoGen.obj
+ 0003:000000a8 gPcdProtocolGuid 000000000001db88 IScsiDxe:AutoGen.obj
+ 0003:000000b8 gEfiAdapterInformationProtocolGuid 000000000001db98 IScsiDxe:AutoGen.obj
+ 0003:000000d0 IScsiDxeStrings 000000000001dbb0 IScsiDxe:AutoGen.obj
+ 0003:00001378 gEfiDhcp6ProtocolGuid 000000000001ee58 IScsiDxe:AutoGen.obj
+ 0003:00001388 gEfiNetworkInterfaceIdentifierProtocolGuid_31 000000000001ee68 IScsiDxe:AutoGen.obj
+ 0003:00001398 gEfiDhcp4ServiceBindingProtocolGuid 000000000001ee78 IScsiDxe:AutoGen.obj
+ 0003:000013a8 gEfiDevicePathProtocolGuid 000000000001ee88 IScsiDxe:AutoGen.obj
+ 0003:000013b8 gEfiPciIoProtocolGuid 000000000001ee98 IScsiDxe:AutoGen.obj
+ 0003:000013c8 gEfiIp6ConfigProtocolGuid 000000000001eea8 IScsiDxe:AutoGen.obj
+ 0003:000013d8 gEfiSimpleNetworkProtocolGuid 000000000001eeb8 IScsiDxe:AutoGen.obj
+ 0003:000013e8 gEfiHiiConfigRoutingProtocolGuid 000000000001eec8 IScsiDxe:AutoGen.obj
+ 0003:000013f8 gEfiAcpi10TableGuid 000000000001eed8 IScsiDxe:AutoGen.obj
+ 0003:00001408 gEfiDns6ServiceBindingProtocolGuid 000000000001eee8 IScsiDxe:AutoGen.obj
+ 0003:00001418 gUefiOvmfPkgPlatformInfoGuid 000000000001eef8 IScsiDxe:AutoGen.obj
+ 0003:00001428 gEfiAdapterInfoNetworkBootGuid 000000000001ef08 IScsiDxe:AutoGen.obj
+ 0003:00001438 gEfiAcpiTableGuid 000000000001ef18 IScsiDxe:AutoGen.obj
+ 0003:00001448 gEfiIp4Config2ProtocolGuid 000000000001ef28 IScsiDxe:AutoGen.obj
+ 0003:00001458 gEfiHiiImageProtocolGuid 000000000001ef38 IScsiDxe:AutoGen.obj
+ 0003:00001468 gEfiDevicePathUtilitiesProtocolGuid 000000000001ef48 IScsiDxe:AutoGen.obj
+ 0003:00001478 gEfiHiiDatabaseProtocolGuid 000000000001ef58 IScsiDxe:AutoGen.obj
+ 0003:00001488 gEfiHiiStringProtocolGuid 000000000001ef68 IScsiDxe:AutoGen.obj
+ 0003:00001498 gEfiAcpiTableProtocolGuid 000000000001ef78 IScsiDxe:AutoGen.obj
+ 0003:000014a8 gEfiDns6ProtocolGuid 000000000001ef88 IScsiDxe:AutoGen.obj
+ 0003:000014b8 gEfiHiiConfigAccessProtocolGuid 000000000001ef98 IScsiDxe:AutoGen.obj
+ 0003:000014c8 gEfiHobListGuid 000000000001efa8 IScsiDxe:AutoGen.obj
+ 0003:000014d8 gEfiAdapterInfoMediaStateGuid 000000000001efb8 IScsiDxe:AutoGen.obj
+ 0003:000014e8 gEfiManagedNetworkServiceBindingProtocolGuid 000000000001efc8 IScsiDxe:AutoGen.obj
+ 0003:000014f8 gEfiFormBrowser2ProtocolGuid 000000000001efd8 IScsiDxe:AutoGen.obj
+ 0003:00001508 gEfiDriverBindingProtocolGuid 000000000001efe8 IScsiDxe:AutoGen.obj
+ 0003:00001518 gEfiEventExitBootServicesGuid 000000000001eff8 IScsiDxe:AutoGen.obj
+ 0003:00001528 gEfiTcp4ServiceBindingProtocolGuid 000000000001f008 IScsiDxe:AutoGen.obj
+ 0003:00001540 gIScsiConfigGuid 000000000001f020 IScsiDxe:AutoGen.obj
+ 0003:00001550 gEfiComponentNameProtocolGuid 000000000001f030 IScsiDxe:AutoGen.obj
+ 0003:00001560 gEfiDhcp4ProtocolGuid 000000000001f040 IScsiDxe:AutoGen.obj
+ 0003:00001570 gEfiTcp6ServiceBindingProtocolGuid 000000000001f050 IScsiDxe:AutoGen.obj
+ 0003:00001580 gEfiManagedNetworkProtocolGuid 000000000001f060 IScsiDxe:AutoGen.obj
+ 0003:00001590 gEfiTcp6ProtocolGuid 000000000001f070 IScsiDxe:AutoGen.obj
+ 0003:000015a0 gEfiTcp4ProtocolGuid 000000000001f080 IScsiDxe:AutoGen.obj
+ 0003:000015b0 gEfiHiiFontProtocolGuid 000000000001f090 IScsiDxe:AutoGen.obj
+ 0003:000015c0 gIScsiV4PrivateGuid 000000000001f0a0 IScsiDxe:IScsiDriver.obj
+ 0003:000015d0 gIScsiIp6DriverBinding 000000000001f0b0 IScsiDxe:IScsiDriver.obj
+ 0003:00001600 gIScsiV6PrivateGuid 000000000001f0e0 IScsiDxe:IScsiDriver.obj
+ 0003:00001610 gIScsiIp4DriverBinding 000000000001f0f0 IScsiDxe:IScsiDriver.obj
+ 0003:00001640 gIScsiComponentName2 000000000001f120 IScsiDxe:ComponentName.obj
+ 0003:00001658 gIScsiComponentName 000000000001f138 IScsiDxe:ComponentName.obj
+ 0003:00001670 mIScsiDriverNameTable 000000000001f150 IScsiDxe:ComponentName.obj
+ 0003:00001690 mIScsiHiiVendorDevicePath 000000000001f170 IScsiDxe:IScsiConfig.obj
+ 0003:000016b0 mVendorStorageName 000000000001f190 IScsiDxe:IScsiConfig.obj
+ 0003:000016e0 gIScsiAuthenticationInfo 000000000001f1c0 IScsiDxe:IScsiAuthenticationInfo.obj
+ 0003:000016f0 gIScsiInitiatorName 000000000001f1d0 IScsiDxe:IScsiInitiatorName.obj
+ 0003:00001700 gIScsiExtScsiPassThruProtocolTemplate 000000000001f1e0 IScsiDxe:IScsiExtScsiPassThru.obj
+ 0003:00001740 IScsiConfigVfrBin 000000000001f220 IScsiDxe:IScsiConfigVfr.obj
+ 0003:00001c88 mPrivate 000000000001f768 IScsiDxe:IScsiDriver.obj
+ 0003:00001c90 gIScsiControllerNameTable 000000000001f770 IScsiDxe:ComponentName.obj
+ 0003:00001c98 mCallbackInfo 000000000001f778 IScsiDxe:IScsiConfig.obj
+ 0003:00001ca0 mDataSegPad 000000000001f780 IScsiDxe:IScsiProto.obj
+ 0003:00001ca4 mIbftInstalled 000000000001f784 IScsiDxe:IScsiIbft.obj
+ 0003:00001ca8 gST 000000000001f788 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00001cb0 gBS 000000000001f790 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00001cb8 gImageHandle 000000000001f798 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00001cc0 gRT 000000000001f7a0 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0003:00001cc8 mDevicePathLibDevicePathUtilities 000000000001f7a8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0003:00001cd0 mHobList 000000000001f7b0 DxeHobLib:HobLib.obj
+ 0003:00001cd8 gHiiConfigRouting 000000000001f7b8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00001ce0 gHiiString 000000000001f7c0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00001ce8 gHiiFont 000000000001f7c8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00001cf0 gHiiImage 000000000001f7d0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00001cf8 gHiiDatabase 000000000001f7d8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00001d00 mUefiFormBrowser2 000000000001f7e0 UefiHiiLib:HiiLib.obj
+ 0003:00001d08 mZeroIp4Addr 000000000001f7e8 DxeNetLib:DxeNetLib.obj
+ 0003:00001d10 mPcd 000000000001f7f0 DxePcdLib:DxePcdLib.obj
+ 0003:00001d18 mTdDataReturned 000000000001f7f8 TdxLib:TdInfo.obj
+ 0003:00001d20 mTdSharedPageMask 000000000001f800 TdxLib:TdInfo.obj
+ 0003:00001d38 mTableKey 000000000001f818 <common>
+
+ entry point at 0001:00000350
+
+ Static symbols
+
+ 0001:0000001a InternalMemCopyMem.0 00000000000002da BaseMemoryLibRepStr:CopyMem.obj
+ 0001:0000002a @CopyBackward 00000000000002ea BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000033 @CopyBytes 00000000000002f3 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:0000014a @UseRepIo 000000000000040a BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000014c @SevNoRepIo_Done 000000000000040c BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000164 @IoReadFifo8_NoRep 0000000000000424 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000166 @IoReadFifo8_Loop 0000000000000426 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000016e @IoReadFifo8_Done 000000000000042e BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000187 @IoReadFifo16_NoRep 0000000000000447 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000189 @IoReadFifo16_Loop 0000000000000449 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000194 @IoReadFifo16_Done 0000000000000454 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001ac @IoReadFifo32_NoRep 000000000000046c BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001ae @IoReadFifo32_Loop 000000000000046e BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001b7 @IoReadFifo32_Done 0000000000000477 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001cf @IoWriteFifo8_NoRep 000000000000048f BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001d1 @IoWriteFifo8_Loop 0000000000000491 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001d9 @IoWriteFifo8_Done 0000000000000499 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001f2 @IoWriteFifo16_NoRep 00000000000004b2 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001f4 @IoWriteFifo16_Loop 00000000000004b4 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001ff @IoWriteFifo16_Done 00000000000004bf BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000217 @IoWriteFifo32_NoRep 00000000000004d7 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000219 @IoWriteFifo32_Loop 00000000000004d9 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000222 @IoWriteFifo32_Done 00000000000004e2 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000028e TdVmCall.no_return_data 000000000000054e BaseLib:TdVmcall.obj
+ 0001:0000033b TdCall.exit 00000000000005fb BaseLib:TdCall.obj
+ 0001:00017dc4 sha256_block_data_order 0000000000018084 f OpensslLibCrypto:sha256.obj
+ 0002:00000440 mChapHash 00000000000189a0 IScsiDxe:IScsiCHAP.obj
+ 0002:00005270 K256 000000000001d7d0 OpensslLibCrypto:sha256.obj
+ 0003:00001c80 memset_func 000000000001f760 OpensslLibCrypto:mem_clr.obj
+ 0003:00001ca5 mDebugIoPortChecked 000000000001f785 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0003:00001ca6 mDebugIoPortFound 000000000001f786 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0003:00001d28 mChapHashListString 000000000001f808 IScsiDxe:IScsiCHAP.obj
+ 0003:00001d31 mRunningOnQ35 000000000001f811 DxePciLibI440FxQ35:PciLib.obj
+ 0004:00000000 $pdata$_ModuleEntryPoint 000000000001f820 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0004:0000000c $pdata$ProcessLibraryConstructorList 000000000001f82c IScsiDxe:AutoGen.obj
+ 0004:00000018 $pdata$IScsiCheckAip 000000000001f838 IScsiDxe:IScsiDriver.obj
+ 0004:00000024 $pdata$IScsiSupported 000000000001f844 IScsiDxe:IScsiDriver.obj
+ 0004:00000030 $pdata$IScsiStart 000000000001f850 IScsiDxe:IScsiDriver.obj
+ 0004:0000003c $pdata$IScsiStop 000000000001f85c IScsiDxe:IScsiDriver.obj
+ 0004:00000048 $pdata$IScsiIp4DriverBindingStart 000000000001f868 IScsiDxe:IScsiDriver.obj
+ 0004:00000054 $pdata$IScsiIp4DriverBindingStop 000000000001f874 IScsiDxe:IScsiDriver.obj
+ 0004:00000060 $pdata$IScsiIp6DriverBindingStart 000000000001f880 IScsiDxe:IScsiDriver.obj
+ 0004:0000006c $pdata$IScsiIp6DriverBindingStop 000000000001f88c IScsiDxe:IScsiDriver.obj
+ 0004:00000078 $pdata$IScsiUnload 000000000001f898 IScsiDxe:IScsiDriver.obj
+ 0004:00000084 $pdata$IScsiDriverEntryPoint 000000000001f8a4 IScsiDxe:IScsiDriver.obj
+ 0004:00000090 $pdata$IScsiCHAPCalculateResponse 000000000001f8b0 IScsiDxe:IScsiCHAP.obj
+ 0004:0000009c $pdata$IScsiCHAPAuthTarget 000000000001f8bc IScsiDxe:IScsiCHAP.obj
+ 0004:000000a8 $pdata$IScsiCHAPOnRspReceived 000000000001f8c8 IScsiDxe:IScsiCHAP.obj
+ 0004:000000b4 $pdata$IScsiCHAPToSendReq 000000000001f8d4 IScsiDxe:IScsiCHAP.obj
+ 0004:000000c0 $pdata$IScsiCHAPInitHashList 000000000001f8e0 IScsiDxe:IScsiCHAP.obj
+ 0004:000000cc $pdata$IScsiAsciiStrToLun 000000000001f8ec IScsiDxe:IScsiMisc.obj
+ 0004:000000d8 $pdata$IScsiLunToUnicodeStr 000000000001f8f8 IScsiDxe:IScsiMisc.obj
+ 0004:000000e4 $pdata$IScsiAsciiStrToIp 000000000001f904 IScsiDxe:IScsiMisc.obj
+ 0004:000000f0 $pdata$IScsiMacAddrToStr 000000000001f910 IScsiDxe:IScsiMisc.obj
+ 0004:000000fc $pdata$IScsiHexToBin 000000000001f91c IScsiDxe:IScsiMisc.obj
+ 0004:00000108 $pdata$IScsiNetNtoi 000000000001f928 IScsiDxe:IScsiMisc.obj
+ 0004:00000114 $pdata$IScsiGenRandom 000000000001f934 IScsiDxe:IScsiMisc.obj
+ 0004:00000120 $pdata$IScsiCheckIpv6Support 000000000001f940 IScsiDxe:IScsiMisc.obj
+ 0004:0000012c $pdata$IScsiAddNic 000000000001f94c IScsiDxe:IScsiMisc.obj
+ 0004:00000138 $pdata$IScsiRemoveNic 000000000001f958 IScsiDxe:IScsiMisc.obj
+ 0004:00000144 $pdata$IScsiCreateAttempts 000000000001f964 IScsiDxe:IScsiMisc.obj
+ 0004:00000150 $pdata$IScsiCreateKeywords 000000000001f970 IScsiDxe:IScsiMisc.obj
+ 0004:0000015c $pdata$IScsiGetVariableAndSize 000000000001f97c IScsiDxe:IScsiMisc.obj
+ 0004:00000168 $pdata$IScsiCreateDriverData 000000000001f988 IScsiDxe:IScsiMisc.obj
+ 0004:00000174 $pdata$IScsiCleanDriverData 000000000001f994 IScsiDxe:IScsiMisc.obj
+ 0004:00000180 $pdata$IScsiDhcpIsConfigured 000000000001f9a0 IScsiDxe:IScsiMisc.obj
+ 0004:0000018c $pdata$IScsiDnsIsConfigured 000000000001f9ac IScsiDxe:IScsiMisc.obj
+ 0004:00000198 $pdata$IScsiGetConfigData 000000000001f9b8 IScsiDxe:IScsiMisc.obj
+ 0004:000001a4 $pdata$IScsiGetTcpConnDevicePath 000000000001f9c4 IScsiDxe:IScsiMisc.obj
+ 0004:000001b0 $pdata$IScsiOnExitBootService 000000000001f9d0 IScsiDxe:IScsiMisc.obj
+ 0004:000001bc $pdata$IScsiTestManagedDevice 000000000001f9dc IScsiDxe:IScsiMisc.obj
+ 0004:000001c8 $pdata$IScsiComponentNameGetDriverName 000000000001f9e8 IScsiDxe:ComponentName.obj
+ 0004:000001d4 $pdata$UpdateName 000000000001f9f4 IScsiDxe:ComponentName.obj
+ 0004:000001e0 $pdata$IScsiComponentNameGetControllerName 000000000001fa00 IScsiDxe:ComponentName.obj
+ 0004:000001ec $pdata$IScsiIpToStr 000000000001fa0c IScsiDxe:IScsiConfig.obj
+ 0004:000001f8 $pdata$IpIsUnicast 000000000001fa18 IScsiDxe:IScsiConfig.obj
+ 0004:00000204 $pdata$IScsiParseIsIdFromString 000000000001fa24 IScsiDxe:IScsiConfig.obj
+ 0004:00000210 $pdata$IScsiConvertIsIdToString 000000000001fa30 IScsiDxe:IScsiConfig.obj
+ 0004:0000021c $pdata$IScsiGetValue 000000000001fa3c IScsiDxe:IScsiConfig.obj
+ 0004:00000228 $pdata$IScsiGetAttemptIndexList 000000000001fa48 IScsiDxe:IScsiConfig.obj
+ 0004:00000234 $pdata$IScsiConvertAttemptConfigDataToIfrNvData 000000000001fa54 IScsiDxe:IScsiConfig.obj
+ 0004:00000240 $pdata$IScsiConvertAttemptConfigDataToIfrNvDataByKeyword 000000000001fa60 IScsiDxe:IScsiConfig.obj
+ 0004:0000024c $pdata$IScsiConvertIfrNvDataToAttemptConfigData 000000000001fa6c IScsiDxe:IScsiConfig.obj
+ 0004:00000258 $pdata$IScsiConvertlfrNvDataToAttemptConfigDataByKeyword 000000000001fa78 IScsiDxe:IScsiConfig.obj
+ 0004:00000264 $pdata$IScsiCreateOpCode 000000000001fa84 IScsiDxe:IScsiConfig.obj
+ 0004:00000270 $pdata$IScsiConfigUpdateAttempt 000000000001fa90 IScsiDxe:IScsiConfig.obj
+ 0004:0000027c $pdata$IScsiConfigAddAttempt 000000000001fa9c IScsiDxe:IScsiConfig.obj
+ 0004:00000288 $pdata$IScsiConfigAddAttemptsByKeywords 000000000001faa8 IScsiDxe:IScsiConfig.obj
+ 0004:00000294 $pdata$IScsiConfigDeleteAttempts 000000000001fab4 IScsiDxe:IScsiConfig.obj
+ 0004:000002a0 $pdata$IScsiConfigDisplayDeleteAttempts 000000000001fac0 IScsiDxe:IScsiConfig.obj
+ 0004:000002ac $pdata$IScsiConfigDisplayOrderAttempts 000000000001facc IScsiDxe:IScsiConfig.obj
+ 0004:000002b8 $pdata$IScsiConfigOrderAttempts 000000000001fad8 IScsiDxe:IScsiConfig.obj
+ 0004:000002c4 $pdata$IScsiConfigProcessDefault 000000000001fae4 IScsiDxe:IScsiConfig.obj
+ 0004:000002d0 $pdata$IScsiFormExtractConfig 000000000001faf0 IScsiDxe:IScsiConfig.obj
+ 0004:000002dc $pdata$IScsiFormRouteConfig 000000000001fafc IScsiDxe:IScsiConfig.obj
+ 0004:000002e8 $pdata$IScsiFormCallback 000000000001fb08 IScsiDxe:IScsiConfig.obj
+ 0004:000002f4 $pdata$IScsiConfigFormInit 000000000001fb14 IScsiDxe:IScsiConfig.obj
+ 0004:00000300 $pdata$IScsiConfigFormUnload 000000000001fb20 IScsiDxe:IScsiConfig.obj
+ 0004:0000030c $pdata$IScsiConnReset 000000000001fb2c IScsiDxe:IScsiProto.obj
+ 0004:00000318 $pdata$IScsiCreateConnection 000000000001fb38 IScsiDxe:IScsiProto.obj
+ 0004:00000324 $pdata$IScsiGetIp6NicInfo 000000000001fb44 IScsiDxe:IScsiProto.obj
+ 0004:00000330 $pdata$IScsiSessionLogin 000000000001fb50 IScsiDxe:IScsiProto.obj
+ 0004:0000033c $pdata$IScsiSessionReLogin 000000000001fb5c IScsiDxe:IScsiProto.obj
+ 0004:00000348 $pdata$IScsiAddKeyValuePair 000000000001fb68 IScsiDxe:IScsiProto.obj
+ 0004:00000354 $pdata$IScsiPrepareLoginReq 000000000001fb74 IScsiDxe:IScsiProto.obj
+ 0004:00000360 $pdata$IScsiProcessLoginRsp 000000000001fb80 IScsiDxe:IScsiProto.obj
+ 0004:0000036c $pdata$IScsiUpdateTargetAddress 000000000001fb8c IScsiDxe:IScsiProto.obj
+ 0004:00000378 $pdata$IScsiFreeNbufList 000000000001fb98 IScsiDxe:IScsiProto.obj
+ 0004:00000384 $pdata$IScsiReceivePdu 000000000001fba4 IScsiDxe:IScsiProto.obj
+ 0004:00000390 $pdata$IScsiCheckOpParams 000000000001fbb0 IScsiDxe:IScsiProto.obj
+ 0004:0000039c $pdata$IScsiFillOpParams 000000000001fbbc IScsiDxe:IScsiProto.obj
+ 0004:000003a8 $pdata$IScsiBuildKeyValueList 000000000001fbc8 IScsiDxe:IScsiProto.obj
+ 0004:000003b4 $pdata$IScsiGetValueByKeyFromList 000000000001fbd4 IScsiDxe:IScsiProto.obj
+ 0004:000003c0 $pdata$IScsiFreeKeyValueList 000000000001fbe0 IScsiDxe:IScsiProto.obj
+ 0004:000003cc $pdata$IScsiNormalizeName 000000000001fbec IScsiDxe:IScsiProto.obj
+ 0004:000003d8 $pdata$IScsiNewTcb 000000000001fbf8 IScsiDxe:IScsiProto.obj
+ 0004:000003e4 $pdata$IScsiNewDataSegment 000000000001fc04 IScsiDxe:IScsiProto.obj
+ 0004:000003f0 $pdata$IScsiNewScsiCmdPdu 000000000001fc10 IScsiDxe:IScsiProto.obj
+ 0004:000003fc $pdata$IScsiNewDataOutPdu 000000000001fc1c IScsiDxe:IScsiProto.obj
+ 0004:00000408 $pdata$IScsiSendDataOutPduSequence 000000000001fc28 IScsiDxe:IScsiProto.obj
+ 0004:00000414 $pdata$IScsiOnDataInRcvd 000000000001fc34 IScsiDxe:IScsiProto.obj
+ 0004:00000420 $pdata$IScsiOnR2TRcvd 000000000001fc40 IScsiDxe:IScsiProto.obj
+ 0004:0000042c $pdata$IScsiOnScsiRspRcvd 000000000001fc4c IScsiDxe:IScsiProto.obj
+ 0004:00000438 $pdata$IScsiOnNopInRcvd 000000000001fc58 IScsiDxe:IScsiProto.obj
+ 0004:00000444 $pdata$IScsiExecuteScsiCommand 000000000001fc64 IScsiDxe:IScsiProto.obj
+ 0004:00000450 $pdata$IScsiSessionInit 000000000001fc70 IScsiDxe:IScsiProto.obj
+ 0004:0000045c $pdata$IScsiSessionAbort 000000000001fc7c IScsiDxe:IScsiProto.obj
+ 0004:00000468 $pdata$IScsiGetInitiatorName 000000000001fc88 IScsiDxe:IScsiInitiatorName.obj
+ 0004:00000474 $pdata$IScsiSetInitiatorName 000000000001fc94 IScsiDxe:IScsiInitiatorName.obj
+ 0004:00000480 $pdata$IScsiInitIbfTableHeader 000000000001fca0 IScsiDxe:IScsiIbft.obj
+ 0004:0000048c $pdata$IScsiAddHeapItem 000000000001fcac IScsiDxe:IScsiIbft.obj
+ 0004:00000498 $pdata$IScsiMapV4ToV6Addr 000000000001fcb8 IScsiDxe:IScsiIbft.obj
+ 0004:000004a4 $pdata$IScsiFillNICAndTargetSections 000000000001fcc4 IScsiDxe:IScsiIbft.obj
+ 0004:000004b0 $pdata$IScsiPublishIbft 000000000001fcd0 IScsiDxe:IScsiIbft.obj
+ 0004:000004bc $pdata$IScsiDhcp6ExtractRootPath 000000000001fcdc IScsiDxe:IScsiDhcp6.obj
+ 0004:000004c8 $pdata$IScsiDhcp6ParseReply 000000000001fce8 IScsiDxe:IScsiDhcp6.obj
+ 0004:000004d4 $pdata$IScsiDoDhcp6 000000000001fcf4 IScsiDxe:IScsiDhcp6.obj
+ 0004:000004e0 $pdata$IScsiDhcpExtractRootPath 000000000001fd00 IScsiDxe:IScsiDhcp.obj
+ 0004:000004ec $pdata$IScsiDhcpSelectOffer 000000000001fd0c IScsiDxe:IScsiDhcp.obj
+ 0004:000004f8 $pdata$IScsiParseDhcpAck 000000000001fd18 IScsiDxe:IScsiDhcp.obj
+ 0004:00000504 $pdata$IScsiDoDhcp 000000000001fd24 IScsiDxe:IScsiDhcp.obj
+ 0004:00000510 $pdata$IScsiExtScsiPassThruFunction 000000000001fd30 IScsiDxe:IScsiExtScsiPassThru.obj
+ 0004:0000051c $pdata$IScsiExtScsiPassThruGetNextTargetLun 000000000001fd3c IScsiDxe:IScsiExtScsiPassThru.obj
+ 0004:00000528 $pdata$IScsiExtScsiPassThruBuildDevicePath 000000000001fd48 IScsiDxe:IScsiExtScsiPassThru.obj
+ 0004:00000534 $pdata$IScsiExtScsiPassThruGetTargetLun 000000000001fd54 IScsiDxe:IScsiExtScsiPassThru.obj
+ 0004:00000540 $pdata$IScsiExtScsiPassThruGetNextTarget 000000000001fd60 IScsiDxe:IScsiExtScsiPassThru.obj
+ 0004:0000054c $pdata$IScsiDns4 000000000001fd6c IScsiDxe:IScsiDns.obj
+ 0004:00000558 $pdata$IScsiDns6 000000000001fd78 IScsiDxe:IScsiDns.obj
+ 0004:00000564 $pdata$CopyMem 000000000001fd84 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0004:00000570 $pdata$CopyGuid 000000000001fd90 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0004:0000057c $pdata$CompareGuid 000000000001fd9c BaseMemoryLibRepStr:MemLibGuid.obj
+ 0004:00000588 $pdata$CompareMem 000000000001fda8 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0004:00000594 $pdata$ZeroMem 000000000001fdb4 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0004:000005a0 $pdata$SetMem 000000000001fdc0 BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0004:000005ac $pdata$InternalBaseLibIsListValid 000000000001fdcc BaseLib:LinkedList.obj
+ 0004:000005b8 $pdata$InitializeListHead 000000000001fdd8 BaseLib:LinkedList.obj
+ 0004:000005c4 $pdata$InsertTailList 000000000001fde4 BaseLib:LinkedList.obj
+ 0004:000005d0 $pdata$IsListEmpty 000000000001fdf0 BaseLib:LinkedList.obj
+ 0004:000005dc $pdata$RemoveEntryList 000000000001fdfc BaseLib:LinkedList.obj
+ 0004:000005e8 $pdata$StrLen 000000000001fe08 BaseLib:String.obj
+ 0004:000005f4 $pdata$StrCmp 000000000001fe14 BaseLib:String.obj
+ 0004:00000600 $pdata$StrnCmp 000000000001fe20 BaseLib:String.obj
+ 0004:0000060c $pdata$StrStr 000000000001fe2c BaseLib:String.obj
+ 0004:00000618 $pdata$StrHexToUint64 000000000001fe38 BaseLib:String.obj
+ 0004:00000624 $pdata$AsciiStrLen 000000000001fe44 BaseLib:String.obj
+ 0004:00000630 $pdata$AsciiStrCmp 000000000001fe50 BaseLib:String.obj
+ 0004:0000063c $pdata$AsciiStrnCmp 000000000001fe5c BaseLib:String.obj
+ 0004:00000648 $pdata$AsciiStrHexToUint64 000000000001fe68 BaseLib:String.obj
+ 0004:00000654 $pdata$StrnLenS 000000000001fe74 BaseLib:SafeString.obj
+ 0004:00000660 $pdata$StrCpyS 000000000001fe80 BaseLib:SafeString.obj
+ 0004:0000066c $pdata$StrnCpyS 000000000001fe8c BaseLib:SafeString.obj
+ 0004:00000678 $pdata$StrCatS 000000000001fe98 BaseLib:SafeString.obj
+ 0004:00000684 $pdata$StrDecimalToUintnS 000000000001fea4 BaseLib:SafeString.obj
+ 0004:00000690 $pdata$StrHexToUintnS 000000000001feb0 BaseLib:SafeString.obj
+ 0004:0000069c $pdata$AsciiStrCpyS 000000000001febc BaseLib:SafeString.obj
+ 0004:000006a8 $pdata$AsciiStrDecimalToUintnS 000000000001fec8 BaseLib:SafeString.obj
+ 0004:000006b4 $pdata$AsciiStrHexToUintnS 000000000001fed4 BaseLib:SafeString.obj
+ 0004:000006c0 $pdata$UnicodeStrToAsciiStrS 000000000001fee0 BaseLib:SafeString.obj
+ 0004:000006cc $pdata$AsciiStrToUnicodeStrS 000000000001feec BaseLib:SafeString.obj
+ 0004:000006d8 $pdata$AsciiStrToIpv6Address 000000000001fef8 BaseLib:SafeString.obj
+ 0004:000006e4 $pdata$ReadUnaligned16 000000000001ff04 BaseLib:Unaligned.obj
+ 0004:000006f0 $pdata$WriteUnaligned16 000000000001ff10 BaseLib:Unaligned.obj
+ 0004:000006fc $pdata$ReadUnaligned32 000000000001ff1c BaseLib:Unaligned.obj
+ 0004:00000708 $pdata$WriteUnaligned32 000000000001ff28 BaseLib:Unaligned.obj
+ 0004:00000714 $pdata$ReadUnaligned64 000000000001ff34 BaseLib:Unaligned.obj
+ 0004:00000720 $pdata$UnicodeVSPrint 000000000001ff40 BasePrintLib:PrintLib.obj
+ 0004:0000072c $pdata$UnicodeSPrint 000000000001ff4c BasePrintLib:PrintLib.obj
+ 0004:00000738 $pdata$UnicodeVSPrintAsciiFormat 000000000001ff58 BasePrintLib:PrintLib.obj
+ 0004:00000744 $pdata$UnicodeValueToStringS 000000000001ff64 BasePrintLib:PrintLib.obj
+ 0004:00000750 $pdata$AsciiSPrint 000000000001ff70 BasePrintLib:PrintLib.obj
+ 0004:0000075c $pdata$BasePrintLibValueToString 000000000001ff7c BasePrintLib:PrintLibInternal.obj
+ 0004:00000768 $pdata$BasePrintLibConvertValueToStringS 000000000001ff88 BasePrintLib:PrintLibInternal.obj
+ 0004:00000774 $pdata$BasePrintLibSPrintMarker 000000000001ff94 BasePrintLib:PrintLibInternal.obj
+ 0004:00000780 $pdata$BasePrintLibSPrint 000000000001ffa0 BasePrintLib:PrintLibInternal.obj
+ 0004:0000078c $pdata$DebugPrint 000000000001ffac PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000798 $pdata$DebugPrintMarker 000000000001ffb8 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:000007a4 $pdata$DebugAssert 000000000001ffc4 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:000007b0 $pdata$PlatformDebugLibIoPortFound 000000000001ffd0 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0004:000007bc $pdata$InternalAllocatePool 000000000001ffdc UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:000007c8 $pdata$AllocateZeroPool 000000000001ffe8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:000007d4 $pdata$InternalAllocateCopyPool 000000000001fff4 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:000007e0 $pdata$InternalReallocatePool 0000000000020000 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:000007ec $pdata$FreePool 000000000002000c UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:000007f8 $pdata$DevicePathType 0000000000020018 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000804 $pdata$DevicePathSubType 0000000000020024 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000810 $pdata$DevicePathNodeLength 0000000000020030 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:0000081c $pdata$NextDevicePathNode 000000000002003c UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000828 $pdata$IsDevicePathEnd 0000000000020048 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000834 $pdata$SetDevicePathNodeLength 0000000000020054 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000840 $pdata$DevicePathFromHandle 0000000000020060 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:0000084c $pdata$CompareIso639LanguageCode 000000000002006c UefiLib:UefiLib.obj
+ 0004:00000858 $pdata$EfiGetSystemConfigurationTable 0000000000020078 UefiLib:UefiLib.obj
+ 0004:00000864 $pdata$EfiTestChildHandle 0000000000020084 UefiLib:UefiLib.obj
+ 0004:00000870 $pdata$IsLanguageSupported 0000000000020090 UefiLib:UefiLib.obj
+ 0004:0000087c $pdata$LookupUnicodeString2 000000000002009c UefiLib:UefiLib.obj
+ 0004:00000888 $pdata$AddUnicodeString2 00000000000200a8 UefiLib:UefiLib.obj
+ 0004:00000894 $pdata$FreeUnicodeStringTable 00000000000200b4 UefiLib:UefiLib.obj
+ 0004:000008a0 $pdata$GetVariable2 00000000000200c0 UefiLib:UefiLib.obj
+ 0004:000008ac $pdata$EfiLibInstallDriverBindingComponentName2 00000000000200cc UefiLib:UefiDriverModel.obj
+ 0004:000008b8 $pdata$EfiLibUninstallDriverBindingComponentName2 00000000000200d8 UefiLib:UefiDriverModel.obj
+ 0004:000008c4 $pdata$UefiLibGetStringWidth 00000000000200e4 UefiLib:Console.obj
+ 0004:000008d0 $pdata$CreatePopUp 00000000000200f0 UefiLib:Console.obj
+ 0004:000008dc $pdata$AsciiInternalPrint 00000000000200fc UefiLib:UefiLibPrint.obj
+ 0004:000008e8 $pdata$AsciiPrint 0000000000020108 UefiLib:UefiLibPrint.obj
+ 0004:000008f4 $pdata$GetHobList 0000000000020114 DxeHobLib:HobLib.obj
+ 0004:00000900 $pdata$GetNextHob 0000000000020120 DxeHobLib:HobLib.obj
+ 0004:0000090c $pdata$Md5Init 000000000002012c BaseCryptLib:CryptMd5.obj
+ 0004:00000918 $pdata$HiiSetString 0000000000020138 UefiHiiLib:HiiString.obj
+ 0004:00000924 $pdata$HiiAddPackages 0000000000020144 UefiHiiLib:HiiLib.obj
+ 0004:00000930 $pdata$InternalHiiBrowserCallback 0000000000020150 UefiHiiLib:HiiLib.obj
+ 0004:0000093c $pdata$HiiConstructConfigHdr 000000000002015c UefiHiiLib:HiiLib.obj
+ 0004:00000948 $pdata$InternalHiiCompareSubString 0000000000020168 UefiHiiLib:HiiLib.obj
+ 0004:00000954 $pdata$HiiIsConfigHdrMatch 0000000000020174 UefiHiiLib:HiiLib.obj
+ 0004:00000960 $pdata$HiiGetBrowserData 0000000000020180 UefiHiiLib:HiiLib.obj
+ 0004:0000096c $pdata$HiiSetBrowserData 000000000002018c UefiHiiLib:HiiLib.obj
+ 0004:00000978 $pdata$HiiAllocateOpCodeHandle 0000000000020198 UefiHiiLib:HiiLib.obj
+ 0004:00000984 $pdata$HiiFreeOpCodeHandle 00000000000201a4 UefiHiiLib:HiiLib.obj
+ 0004:00000990 $pdata$InternalHiiGrowOpCodeHandle 00000000000201b0 UefiHiiLib:HiiLib.obj
+ 0004:0000099c $pdata$InternalHiiCreateOpCodeExtended 00000000000201bc UefiHiiLib:HiiLib.obj
+ 0004:000009a8 $pdata$InternalHiiAppendOpCodes 00000000000201c8 UefiHiiLib:HiiLib.obj
+ 0004:000009b4 $pdata$HiiCreateEndOpCode 00000000000201d4 UefiHiiLib:HiiLib.obj
+ 0004:000009c0 $pdata$HiiCreateGuidOpCode 00000000000201e0 UefiHiiLib:HiiLib.obj
+ 0004:000009cc $pdata$HiiCreateGotoOpCode 00000000000201ec UefiHiiLib:HiiLib.obj
+ 0004:000009d8 $pdata$HiiCreateNumericOpCode 00000000000201f8 UefiHiiLib:HiiLib.obj
+ 0004:000009e4 $pdata$HiiCreateStringOpCode 0000000000020204 UefiHiiLib:HiiLib.obj
+ 0004:000009f0 $pdata$HiiCreateOrderedListOpCode 0000000000020210 UefiHiiLib:HiiLib.obj
+ 0004:000009fc $pdata$InternalHiiUpdateFormPackageData 000000000002021c UefiHiiLib:HiiLib.obj
+ 0004:00000a08 $pdata$HiiUpdateForm 0000000000020228 UefiHiiLib:HiiLib.obj
+ 0004:00000a14 $pdata$HiiGetSupportedLanguages 0000000000020234 UefiHiiLib:HiiLanguage.obj
+ 0004:00000a20 $pdata$NetIp4IsUnicast 0000000000020240 DxeNetLib:DxeNetLib.obj
+ 0004:00000a2c $pdata$NetListRemoveHead 000000000002024c DxeNetLib:DxeNetLib.obj
+ 0004:00000a38 $pdata$NetLibCreateServiceChild 0000000000020258 DxeNetLib:DxeNetLib.obj
+ 0004:00000a44 $pdata$NetLibDestroyServiceChild 0000000000020264 DxeNetLib:DxeNetLib.obj
+ 0004:00000a50 $pdata$NetLibGetSnpHandle 0000000000020270 DxeNetLib:DxeNetLib.obj
+ 0004:00000a5c $pdata$NetLibGetVlanId 000000000002027c DxeNetLib:DxeNetLib.obj
+ 0004:00000a68 $pdata$NetLibGetMacAddress 0000000000020288 DxeNetLib:DxeNetLib.obj
+ 0004:00000a74 $pdata$NetLibDetectMedia 0000000000020294 DxeNetLib:DxeNetLib.obj
+ 0004:00000a80 $pdata$NetLibDetectMediaWaitTimeout 00000000000202a0 DxeNetLib:DxeNetLib.obj
+ 0004:00000a8c $pdata$NetLibGetNicHandle 00000000000202ac DxeNetLib:DxeNetLib.obj
+ 0004:00000a98 $pdata$NetLibAsciiStrToIp4 00000000000202b8 DxeNetLib:DxeNetLib.obj
+ 0004:00000aa4 $pdata$NetLibStrToIp4 00000000000202c4 DxeNetLib:DxeNetLib.obj
+ 0004:00000ab0 $pdata$NetbufAllocStruct 00000000000202d0 DxeNetLib:NetBuffer.obj
+ 0004:00000abc $pdata$NetbufAlloc 00000000000202dc DxeNetLib:NetBuffer.obj
+ 0004:00000ac8 $pdata$NetbufFreeVector 00000000000202e8 DxeNetLib:NetBuffer.obj
+ 0004:00000ad4 $pdata$NetbufFree 00000000000202f4 DxeNetLib:NetBuffer.obj
+ 0004:00000ae0 $pdata$NetbufFreeList 0000000000020300 DxeNetLib:NetBuffer.obj
+ 0004:00000aec $pdata$NetbufGetByte 000000000002030c DxeNetLib:NetBuffer.obj
+ 0004:00000af8 $pdata$NetbufSetBlock 0000000000020318 DxeNetLib:NetBuffer.obj
+ 0004:00000b04 $pdata$NetbufFromExt 0000000000020324 DxeNetLib:NetBuffer.obj
+ 0004:00000b10 $pdata$NetbufBuildExt 0000000000020330 DxeNetLib:NetBuffer.obj
+ 0004:00000b1c $pdata$NetbufFromBufList 000000000002033c DxeNetLib:NetBuffer.obj
+ 0004:00000b28 $pdata$NetbufAllocSpace 0000000000020348 DxeNetLib:NetBuffer.obj
+ 0004:00000b34 $pdata$NetblockTrim 0000000000020354 DxeNetLib:NetBuffer.obj
+ 0004:00000b40 $pdata$NetbufTrim 0000000000020360 DxeNetLib:NetBuffer.obj
+ 0004:00000b4c $pdata$NetbufCopy 000000000002036c DxeNetLib:NetBuffer.obj
+ 0004:00000b58 $pdata$NetbufQueCopy 0000000000020378 DxeNetLib:NetBuffer.obj
+ 0004:00000b64 $pdata$NetbufQueFlush 0000000000020384 DxeNetLib:NetBuffer.obj
+ 0004:00000b70 $pdata$TcpIoGetMapping 0000000000020390 DxeTcpIoLib:DxeTcpIoLib.obj
+ 0004:00000b7c $pdata$TcpIoCreateSocket 000000000002039c DxeTcpIoLib:DxeTcpIoLib.obj
+ 0004:00000b88 $pdata$TcpIoDestroySocket 00000000000203a8 DxeTcpIoLib:DxeTcpIoLib.obj
+ 0004:00000b94 $pdata$TcpIoTransmit 00000000000203b4 DxeTcpIoLib:DxeTcpIoLib.obj
+ 0004:00000ba0 $pdata$TcpIoReceive 00000000000203c0 DxeTcpIoLib:DxeTcpIoLib.obj
+ 0004:00000bac $pdata$GetPcdProtocol 00000000000203cc DxePcdLib:DxePcdLib.obj
+ 0004:00000bb8 $pdata$SetMem16 00000000000203d8 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0004:00000bc4 $pdata$IoWriteFifo8 00000000000203e4 BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0004:00000bd0 $pdata$IoRead32 00000000000203f0 BaseIoLibIntrinsicSev:IoLibMsc.obj
+ 0004:00000bdc $pdata$IoWrite32 00000000000203fc BaseIoLibIntrinsicSev:IoLibMsc.obj
+ 0004:00000be8 $pdata$TdIoRead8 0000000000020408 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0004:00000bf4 $pdata$TdIoRead32 0000000000020414 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0004:00000c00 $pdata$TdIoWrite8 0000000000020420 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0004:00000c0c $pdata$TdIoWrite32 000000000002042c BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0004:00000c18 $pdata$PciExpressRead32 0000000000020438 BasePciExpressLib:PciExpressLib.obj
+ 0004:00000c24 $pdata$PciCf8Read32 0000000000020444 BasePciCf8Lib:PciCf8Lib.obj
+ 0004:00000c30 $pdata$MD5_Update 0000000000020450 OpensslLibCrypto:md5_dgst.obj
+ 0004:00000c3c $pdata$MD5_Final 000000000002045c OpensslLibCrypto:md5_dgst.obj
+ 0004:00000c48 $pdata$md5_block_data_order 0000000000020468 OpensslLibCrypto:md5_dgst.obj
+ 0004:00000c54 $pdata$SHA256_Init 0000000000020474 OpensslLibCrypto:sha256.obj
+ 0004:00000c60 $pdata$SHA256_Update 0000000000020480 OpensslLibCrypto:sha256.obj
+ 0004:00000c6c $pdata$SHA256_Final 000000000002048c OpensslLibCrypto:sha256.obj
+ 0004:00000c78 $pdata$sha256_block_data_order 0000000000020498 OpensslLibCrypto:sha256.obj
+ 0004:00000c84 $pdata$SaveAndDisableInterrupts 00000000000204a4 BaseLib:Cpu.obj
+ 0004:00000c90 $pdata$GetTdInfo 00000000000204b0 TdxLib:TdInfo.obj
+ 0004:00000c9c $pdata$TdSharedPageMask 00000000000204bc TdxLib:TdInfo.obj
+ 0004:00000ca8 $pdata$MmioRead32 00000000000204c8 BaseIoLibIntrinsicSev:IoLib.obj
+ 0005:00000000 $unwind$IScsiOnNopInRcvd 00000000000204e0 IScsiDxe:IScsiProto.obj
+ 0005:00000000 $unwind$ReadUnaligned32 00000000000204e0 BaseLib:Unaligned.obj
+ 0005:00000000 $unwind$IoRead32 00000000000204e0 BaseIoLibIntrinsicSev:IoLibMsc.obj
+ 0005:00000000 $unwind$_ModuleEntryPoint 00000000000204e0 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0005:00000000 $unwind$NetbufFree 00000000000204e0 DxeNetLib:NetBuffer.obj
+ 0005:00000000 $unwind$DevicePathType 00000000000204e0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000000 $unwind$InternalBaseLibIsListValid 00000000000204e0 BaseLib:LinkedList.obj
+ 0005:00000000 $unwind$ReadUnaligned16 00000000000204e0 BaseLib:Unaligned.obj
+ 0005:00000000 $unwind$HiiAllocateOpCodeHandle 00000000000204e0 UefiHiiLib:HiiLib.obj
+ 0005:00000000 $unwind$NetListRemoveHead 00000000000204e0 DxeNetLib:DxeNetLib.obj
+ 0005:00000000 $unwind$IsListEmpty 00000000000204e0 BaseLib:LinkedList.obj
+ 0005:00000000 $unwind$DevicePathSubType 00000000000204e0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000000 $unwind$IoWrite32 00000000000204e0 BaseIoLibIntrinsicSev:IoLibMsc.obj
+ 0005:00000000 $unwind$ReadUnaligned64 00000000000204e0 BaseLib:Unaligned.obj
+ 0005:00000000 $unwind$InitializeListHead 00000000000204e0 BaseLib:LinkedList.obj
+ 0005:00000000 $unwind$IScsiFreeNbufList 00000000000204e0 IScsiDxe:IScsiProto.obj
+ 0005:00000000 $unwind$GetNextHob 00000000000204e0 DxeHobLib:HobLib.obj
+ 0005:00000000 $unwind$HiiFreeOpCodeHandle 00000000000204e0 UefiHiiLib:HiiLib.obj
+ 0005:00000000 $unwind$IScsiFreeKeyValueList 00000000000204e0 IScsiDxe:IScsiProto.obj
+ 0005:00000000 $unwind$NextDevicePathNode 00000000000204e0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000000 $unwind$RemoveEntryList 00000000000204e0 BaseLib:LinkedList.obj
+ 0005:00000000 $unwind$AllocateZeroPool 00000000000204e0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000000 $unwind$SaveAndDisableInterrupts 00000000000204e0 BaseLib:Cpu.obj
+ 0005:00000000 $unwind$Md5Init 00000000000204e0 BaseCryptLib:CryptMd5.obj
+ 0005:00000000 $unwind$NetbufQueFlush 00000000000204e0 DxeNetLib:NetBuffer.obj
+ 0005:00000000 $unwind$SHA256_Init 00000000000204e0 OpensslLibCrypto:sha256.obj
+ 0005:00000000 $unwind$PciExpressRead32 00000000000204e0 BasePciExpressLib:PciExpressLib.obj
+ 0005:00000000 $unwind$IScsiOnExitBootService 00000000000204e0 IScsiDxe:IScsiMisc.obj
+ 0005:00000000 $unwind$DevicePathNodeLength 00000000000204e0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000008 $unwind$AsciiInternalPrint 00000000000204e8 UefiLib:UefiLibPrint.obj
+ 0005:00000008 $unwind$SHA256_Update 00000000000204e8 OpensslLibCrypto:sha256.obj
+ 0005:00000008 $unwind$LookupUnicodeString2 00000000000204e8 UefiLib:UefiLib.obj
+ 0005:00000008 $unwind$NetbufTrim 00000000000204e8 DxeNetLib:NetBuffer.obj
+ 0005:00000008 $unwind$ProcessLibraryConstructorList 00000000000204e8 IScsiDxe:AutoGen.obj
+ 0005:00000008 $unwind$MD5_Final 00000000000204e8 OpensslLibCrypto:md5_dgst.obj
+ 0005:00000008 $unwind$MD5_Update 00000000000204e8 OpensslLibCrypto:md5_dgst.obj
+ 0005:00000008 $unwind$EfiGetSystemConfigurationTable 00000000000204e8 UefiLib:UefiLib.obj
+ 0005:00000008 $unwind$InternalHiiCreateOpCodeExtended 00000000000204e8 UefiHiiLib:HiiLib.obj
+ 0005:00000008 $unwind$TcpIoTransmit 00000000000204e8 DxeTcpIoLib:DxeTcpIoLib.obj
+ 0005:00000008 $unwind$IScsiGetAttemptIndexList 00000000000204e8 IScsiDxe:IScsiConfig.obj
+ 0005:00000020 $unwind$IScsiCheckAip 0000000000020500 IScsiDxe:IScsiDriver.obj
+ 0005:00000034 $unwind$IScsiSupported 0000000000020514 IScsiDxe:IScsiDriver.obj
+ 0005:00000050 $unwind$IScsiStart 0000000000020530 IScsiDxe:IScsiDriver.obj
+ 0005:00000068 $unwind$IScsiStop 0000000000020548 IScsiDxe:IScsiDriver.obj
+ 0005:00000080 $unwind$GetHobList 0000000000020560 DxeHobLib:HobLib.obj
+ 0005:00000080 $unwind$IScsiNetNtoi 0000000000020560 IScsiDxe:IScsiMisc.obj
+ 0005:00000080 $unwind$DevicePathFromHandle 0000000000020560 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000080 $unwind$FreePool 0000000000020560 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000080 $unwind$InternalAllocatePool 0000000000020560 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000080 $unwind$IScsiIp4DriverBindingStart 0000000000020560 IScsiDxe:IScsiDriver.obj
+ 0005:00000080 $unwind$TdSharedPageMask 0000000000020560 TdxLib:TdInfo.obj
+ 0005:00000080 $unwind$GetPcdProtocol 0000000000020560 DxePcdLib:DxePcdLib.obj
+ 0005:00000080 $unwind$IScsiNormalizeName 0000000000020560 IScsiDxe:IScsiProto.obj
+ 0005:00000080 $unwind$IScsiIp6DriverBindingStart 0000000000020560 IScsiDxe:IScsiDriver.obj
+ 0005:00000080 $unwind$PlatformDebugLibIoPortFound 0000000000020560 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0005:00000088 $unwind$IScsiIp4DriverBindingStop 0000000000020568 IScsiDxe:IScsiDriver.obj
+ 0005:00000088 $unwind$TdIoRead8 0000000000020568 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:00000088 $unwind$HiiCreateEndOpCode 0000000000020568 UefiHiiLib:HiiLib.obj
+ 0005:00000088 $unwind$IScsiGetInitiatorName 0000000000020568 IScsiDxe:IScsiInitiatorName.obj
+ 0005:00000088 $unwind$IScsiComponentNameGetDriverName 0000000000020568 IScsiDxe:ComponentName.obj
+ 0005:00000088 $unwind$IScsiIp6DriverBindingStop 0000000000020568 IScsiDxe:IScsiDriver.obj
+ 0005:00000090 $unwind$IScsiUnload 0000000000020570 IScsiDxe:IScsiDriver.obj
+ 0005:000000a0 $unwind$IScsiDriverEntryPoint 0000000000020580 IScsiDxe:IScsiDriver.obj
+ 0005:000000ac $unwind$IScsiCheckOpParams 000000000002058c IScsiDxe:IScsiProto.obj
+ 0005:000000ac $unwind$IScsiLunToUnicodeStr 000000000002058c IScsiDxe:IScsiMisc.obj
+ 0005:000000ac $unwind$IScsiAddKeyValuePair 000000000002058c IScsiDxe:IScsiProto.obj
+ 0005:000000ac $unwind$IScsiCHAPCalculateResponse 000000000002058c IScsiDxe:IScsiCHAP.obj
+ 0005:000000c8 $unwind$IScsiCHAPAuthTarget 00000000000205a8 IScsiDxe:IScsiCHAP.obj
+ 0005:000000d8 $unwind$IScsiCHAPOnRspReceived 00000000000205b8 IScsiDxe:IScsiCHAP.obj
+ 0005:000000f4 $unwind$IScsiCHAPToSendReq 00000000000205d4 IScsiDxe:IScsiCHAP.obj
+ 0005:00000110 $unwind$IScsiCHAPInitHashList 00000000000205f0 IScsiDxe:IScsiCHAP.obj
+ 0005:00000128 $unwind$IScsiAsciiStrToLun 0000000000020608 IScsiDxe:IScsiMisc.obj
+ 0005:0000013c $unwind$NetbufGetByte 000000000002061c DxeNetLib:NetBuffer.obj
+ 0005:0000013c $unwind$FreeUnicodeStringTable 000000000002061c UefiLib:UefiLib.obj
+ 0005:0000013c $unwind$IsLanguageSupported 000000000002061c UefiLib:UefiLib.obj
+ 0005:0000013c $unwind$HiiIsConfigHdrMatch 000000000002061c UefiHiiLib:HiiLib.obj
+ 0005:0000013c $unwind$CopyGuid 000000000002061c BaseMemoryLibRepStr:MemLibGuid.obj
+ 0005:0000013c $unwind$IScsiSessionAbort 000000000002061c IScsiDxe:IScsiProto.obj
+ 0005:0000013c $unwind$NetbufAllocStruct 000000000002061c DxeNetLib:NetBuffer.obj
+ 0005:0000013c $unwind$SetMem16 000000000002061c BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0005:0000013c $unwind$IScsiAsciiStrToIp 000000000002061c IScsiDxe:IScsiMisc.obj
+ 0005:0000013c $unwind$IScsiConnReset 000000000002061c IScsiDxe:IScsiProto.obj
+ 0005:0000013c $unwind$SetMem 000000000002061c BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0005:0000013c $unwind$AsciiStrnCmp 000000000002061c BaseLib:String.obj
+ 0005:0000013c $unwind$NetIp4IsUnicast 000000000002061c DxeNetLib:DxeNetLib.obj
+ 0005:0000013c $unwind$StrStr 000000000002061c BaseLib:String.obj
+ 0005:0000013c $unwind$IoWriteFifo8 000000000002061c BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0005:0000013c $unwind$NetblockTrim 000000000002061c DxeNetLib:NetBuffer.obj
+ 0005:0000013c $unwind$InternalHiiGrowOpCodeHandle 000000000002061c UefiHiiLib:HiiLib.obj
+ 0005:0000013c $unwind$NetbufAlloc 000000000002061c DxeNetLib:NetBuffer.obj
+ 0005:0000013c $unwind$StrLen 000000000002061c BaseLib:String.obj
+ 0005:0000013c $unwind$IScsiOnDataInRcvd 000000000002061c IScsiDxe:IScsiProto.obj
+ 0005:0000013c $unwind$StrCmp 000000000002061c BaseLib:String.obj
+ 0005:0000013c $unwind$InternalHiiAppendOpCodes 000000000002061c UefiHiiLib:HiiLib.obj
+ 0005:0000013c $unwind$NetLibGetNicHandle 000000000002061c DxeNetLib:DxeNetLib.obj
+ 0005:0000013c $unwind$PciCf8Read32 000000000002061c BasePciCf8Lib:PciCf8Lib.obj
+ 0005:0000014c $unwind$WriteUnaligned16 000000000002062c BaseLib:Unaligned.obj
+ 0005:0000014c $unwind$NetbufFreeVector 000000000002062c DxeNetLib:NetBuffer.obj
+ 0005:0000014c $unwind$IScsiCleanDriverData 000000000002062c IScsiDxe:IScsiMisc.obj
+ 0005:0000014c $unwind$WriteUnaligned32 000000000002062c BaseLib:Unaligned.obj
+ 0005:0000014c $unwind$IScsiInitIbfTableHeader 000000000002062c IScsiDxe:IScsiIbft.obj
+ 0005:0000014c $unwind$NetLibGetVlanId 000000000002062c DxeNetLib:DxeNetLib.obj
+ 0005:0000014c $unwind$IScsiAddHeapItem 000000000002062c IScsiDxe:IScsiIbft.obj
+ 0005:0000014c $unwind$IScsiMapV4ToV6Addr 000000000002062c IScsiDxe:IScsiIbft.obj
+ 0005:0000014c $unwind$AsciiStrLen 000000000002062c BaseLib:String.obj
+ 0005:0000014c $unwind$IScsiMacAddrToStr 000000000002062c IScsiDxe:IScsiMisc.obj
+ 0005:0000014c $unwind$AsciiStrCmp 000000000002062c BaseLib:String.obj
+ 0005:0000014c $unwind$IScsiSessionInit 000000000002062c IScsiDxe:IScsiProto.obj
+ 0005:0000014c $unwind$InternalAllocateCopyPool 000000000002062c UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:0000014c $unwind$IpIsUnicast 000000000002062c IScsiDxe:IScsiConfig.obj
+ 0005:0000014c $unwind$ZeroMem 000000000002062c BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0005:0000014c $unwind$SetDevicePathNodeLength 000000000002062c UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:0000014c $unwind$IsDevicePathEnd 000000000002062c UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:0000014c $unwind$CompareIso639LanguageCode 000000000002062c UefiLib:UefiLib.obj
+ 0005:0000014c $unwind$InsertTailList 000000000002062c BaseLib:LinkedList.obj
+ 0005:0000014c $unwind$StrnLenS 000000000002062c BaseLib:SafeString.obj
+ 0005:0000014c $unwind$HiiGetSupportedLanguages 000000000002062c UefiHiiLib:HiiLanguage.obj
+ 0005:00000158 $unwind$IScsiHexToBin 0000000000020638 IScsiDxe:IScsiMisc.obj
+ 0005:0000016c $unwind$IScsiGenRandom 000000000002064c IScsiDxe:IScsiMisc.obj
+ 0005:0000017c $unwind$IScsiCheckIpv6Support 000000000002065c IScsiDxe:IScsiMisc.obj
+ 0005:00000190 $unwind$IScsiAddNic 0000000000020670 IScsiDxe:IScsiMisc.obj
+ 0005:000001a4 $unwind$IScsiRemoveNic 0000000000020684 IScsiDxe:IScsiMisc.obj
+ 0005:000001a4 $unwind$StrHexToUintnS 0000000000020684 BaseLib:SafeString.obj
+ 0005:000001b0 $unwind$IScsiCreateAttempts 0000000000020690 IScsiDxe:IScsiMisc.obj
+ 0005:000001c4 $unwind$IScsiCreateKeywords 00000000000206a4 IScsiDxe:IScsiMisc.obj
+ 0005:000001dc $unwind$IScsiGetVariableAndSize 00000000000206bc IScsiDxe:IScsiMisc.obj
+ 0005:000001f0 $unwind$IScsiExtScsiPassThruGetNextTargetLun 00000000000206d0 IScsiDxe:IScsiExtScsiPassThru.obj
+ 0005:000001f0 $unwind$EfiTestChildHandle 00000000000206d0 UefiLib:UefiLib.obj
+ 0005:000001f0 $unwind$IScsiConfigFormInit 00000000000206d0 IScsiDxe:IScsiConfig.obj
+ 0005:000001f0 $unwind$IScsiCreateDriverData 00000000000206d0 IScsiDxe:IScsiMisc.obj
+ 0005:000001f0 $unwind$UnicodeVSPrintAsciiFormat 00000000000206d0 BasePrintLib:PrintLib.obj
+ 0005:000001f0 $unwind$UnicodeValueToStringS 00000000000206d0 BasePrintLib:PrintLib.obj
+ 0005:00000200 $unwind$IScsiDhcpIsConfigured 00000000000206e0 IScsiDxe:IScsiMisc.obj
+ 0005:00000218 $unwind$IScsiDnsIsConfigured 00000000000206f8 IScsiDxe:IScsiMisc.obj
+ 0005:00000230 $unwind$IScsiGetConfigData 0000000000020710 IScsiDxe:IScsiMisc.obj
+ 0005:0000024c $unwind$IScsiGetTcpConnDevicePath 000000000002072c IScsiDxe:IScsiMisc.obj
+ 0005:00000260 $unwind$IScsiTestManagedDevice 0000000000020740 IScsiDxe:IScsiMisc.obj
+ 0005:00000260 $unwind$UnicodeVSPrint 0000000000020740 BasePrintLib:PrintLib.obj
+ 0005:00000274 $unwind$UpdateName 0000000000020754 IScsiDxe:ComponentName.obj
+ 0005:00000284 $unwind$IScsiComponentNameGetControllerName 0000000000020764 IScsiDxe:ComponentName.obj
+ 0005:00000298 $unwind$IScsiIpToStr 0000000000020778 IScsiDxe:IScsiConfig.obj
+ 0005:000002b0 $unwind$IScsiParseIsIdFromString 0000000000020790 IScsiDxe:IScsiConfig.obj
+ 0005:000002c4 $unwind$IScsiOnScsiRspRcvd 00000000000207a4 IScsiDxe:IScsiProto.obj
+ 0005:000002c4 $unwind$CompareGuid 00000000000207a4 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0005:000002c4 $unwind$CopyMem 00000000000207a4 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0005:000002c4 $unwind$IScsiOnR2TRcvd 00000000000207a4 IScsiDxe:IScsiProto.obj
+ 0005:000002c4 $unwind$InternalHiiCompareSubString 00000000000207a4 UefiHiiLib:HiiLib.obj
+ 0005:000002c4 $unwind$IScsiBuildKeyValueList 00000000000207a4 IScsiDxe:IScsiProto.obj
+ 0005:000002c4 $unwind$IScsiDhcpSelectOffer 00000000000207a4 IScsiDxe:IScsiDhcp.obj
+ 0005:000002c4 $unwind$BasePrintLibValueToString 00000000000207a4 BasePrintLib:PrintLibInternal.obj
+ 0005:000002c4 $unwind$IScsiExtScsiPassThruFunction 00000000000207a4 IScsiDxe:IScsiExtScsiPassThru.obj
+ 0005:000002c4 $unwind$IScsiPrepareLoginReq 00000000000207a4 IScsiDxe:IScsiProto.obj
+ 0005:000002c4 $unwind$IScsiConvertIsIdToString 00000000000207a4 IScsiDxe:IScsiConfig.obj
+ 0005:000002c4 $unwind$IScsiNewTcb 00000000000207a4 IScsiDxe:IScsiProto.obj
+ 0005:000002c4 $unwind$IScsiGetValueByKeyFromList 00000000000207a4 IScsiDxe:IScsiProto.obj
+ 0005:000002c4 $unwind$InternalReallocatePool 00000000000207a4 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:000002c4 $unwind$StrnCmp 00000000000207a4 BaseLib:String.obj
+ 0005:000002c4 $unwind$NetbufSetBlock 00000000000207a4 DxeNetLib:NetBuffer.obj
+ 0005:000002c4 $unwind$CompareMem 00000000000207a4 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0005:000002d8 $unwind$IScsiGetValue 00000000000207b8 IScsiDxe:IScsiConfig.obj
+ 0005:000002f4 $unwind$NetbufFromBufList 00000000000207d4 DxeNetLib:NetBuffer.obj
+ 0005:000002f4 $unwind$IScsiConvertAttemptConfigDataToIfrNvData 00000000000207d4 IScsiDxe:IScsiConfig.obj
+ 0005:0000030c $unwind$IScsiConvertAttemptConfigDataToIfrNvDataByKeyword 00000000000207ec IScsiDxe:IScsiConfig.obj
+ 0005:0000032c $unwind$IScsiConvertIfrNvDataToAttemptConfigData 000000000002080c IScsiDxe:IScsiConfig.obj
+ 0005:00000348 $unwind$IScsiConvertlfrNvDataToAttemptConfigDataByKeyword 0000000000020828 IScsiDxe:IScsiConfig.obj
+ 0005:00000364 $unwind$IScsiCreateOpCode 0000000000020844 IScsiDxe:IScsiConfig.obj
+ 0005:00000364 $unwind$SHA256_Final 0000000000020844 OpensslLibCrypto:sha256.obj
+ 0005:0000037c $unwind$IScsiConfigUpdateAttempt 000000000002085c IScsiDxe:IScsiConfig.obj
+ 0005:00000388 $unwind$IScsiConfigAddAttempt 0000000000020868 IScsiDxe:IScsiConfig.obj
+ 0005:00000398 $unwind$IScsiConfigAddAttemptsByKeywords 0000000000020878 IScsiDxe:IScsiConfig.obj
+ 0005:000003b4 $unwind$IScsiConfigDeleteAttempts 0000000000020894 IScsiDxe:IScsiConfig.obj
+ 0005:000003cc $unwind$IScsiConfigDisplayDeleteAttempts 00000000000208ac IScsiDxe:IScsiConfig.obj
+ 0005:000003e0 $unwind$IScsiConfigDisplayOrderAttempts 00000000000208c0 IScsiDxe:IScsiConfig.obj
+ 0005:000003f4 $unwind$IScsiConfigOrderAttempts 00000000000208d4 IScsiDxe:IScsiConfig.obj
+ 0005:00000410 $unwind$IScsiConfigProcessDefault 00000000000208f0 IScsiDxe:IScsiConfig.obj
+ 0005:00000428 $unwind$IScsiFormExtractConfig 0000000000020908 IScsiDxe:IScsiConfig.obj
+ 0005:00000444 $unwind$IScsiFormRouteConfig 0000000000020924 IScsiDxe:IScsiConfig.obj
+ 0005:00000460 $unwind$IScsiFormCallback 0000000000020940 IScsiDxe:IScsiConfig.obj
+ 0005:0000047c $unwind$IScsiConfigFormUnload 000000000002095c IScsiDxe:IScsiConfig.obj
+ 0005:0000047c $unwind$MmioRead32 000000000002095c BaseIoLibIntrinsicSev:IoLib.obj
+ 0005:0000047c $unwind$IScsiExtScsiPassThruGetNextTarget 000000000002095c IScsiDxe:IScsiExtScsiPassThru.obj
+ 0005:0000047c $unwind$TdIoWrite8 000000000002095c BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:0000047c $unwind$TdIoRead32 000000000002095c BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:00000484 $unwind$IScsiCreateConnection 0000000000020964 IScsiDxe:IScsiProto.obj
+ 0005:000004a0 $unwind$IScsiGetIp6NicInfo 0000000000020980 IScsiDxe:IScsiProto.obj
+ 0005:000004bc $unwind$IScsiSessionLogin 000000000002099c IScsiDxe:IScsiProto.obj
+ 0005:000004d4 $unwind$IScsiSessionReLogin 00000000000209b4 IScsiDxe:IScsiProto.obj
+ 0005:000004e4 $unwind$IScsiProcessLoginRsp 00000000000209c4 IScsiDxe:IScsiProto.obj
+ 0005:00000500 $unwind$IScsiUpdateTargetAddress 00000000000209e0 IScsiDxe:IScsiProto.obj
+ 0005:00000514 $unwind$IScsiReceivePdu 00000000000209f4 IScsiDxe:IScsiProto.obj
+ 0005:00000530 $unwind$IScsiFillOpParams 0000000000020a10 IScsiDxe:IScsiProto.obj
+ 0005:00000550 $unwind$IScsiNewDataSegment 0000000000020a30 IScsiDxe:IScsiProto.obj
+ 0005:00000558 $unwind$IScsiNewScsiCmdPdu 0000000000020a38 IScsiDxe:IScsiProto.obj
+ 0005:00000570 $unwind$IScsiNewDataOutPdu 0000000000020a50 IScsiDxe:IScsiProto.obj
+ 0005:00000588 $unwind$IScsiSendDataOutPduSequence 0000000000020a68 IScsiDxe:IScsiProto.obj
+ 0005:00000588 $unwind$HiiConstructConfigHdr 0000000000020a68 UefiHiiLib:HiiLib.obj
+ 0005:000005a4 $unwind$IScsiExecuteScsiCommand 0000000000020a84 IScsiDxe:IScsiProto.obj
+ 0005:000005bc $unwind$IScsiSetInitiatorName 0000000000020a9c IScsiDxe:IScsiInitiatorName.obj
+ 0005:000005bc $unwind$NetLibGetSnpHandle 0000000000020a9c DxeNetLib:DxeNetLib.obj
+ 0005:000005bc $unwind$TdIoWrite32 0000000000020a9c BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:000005c8 $unwind$IScsiFillNICAndTargetSections 0000000000020aa8 IScsiDxe:IScsiIbft.obj
+ 0005:000005e0 $unwind$IScsiPublishIbft 0000000000020ac0 IScsiDxe:IScsiIbft.obj
+ 0005:000005f0 $unwind$IScsiDhcp6ExtractRootPath 0000000000020ad0 IScsiDxe:IScsiDhcp6.obj
+ 0005:000005f0 $unwind$IScsiDhcpExtractRootPath 0000000000020ad0 IScsiDxe:IScsiDhcp.obj
+ 0005:00000608 $unwind$IScsiDhcp6ParseReply 0000000000020ae8 IScsiDxe:IScsiDhcp6.obj
+ 0005:00000620 $unwind$IScsiDoDhcp6 0000000000020b00 IScsiDxe:IScsiDhcp6.obj
+ 0005:00000638 $unwind$IScsiParseDhcpAck 0000000000020b18 IScsiDxe:IScsiDhcp.obj
+ 0005:00000654 $unwind$IScsiDoDhcp 0000000000020b34 IScsiDxe:IScsiDhcp.obj
+ 0005:0000066c $unwind$IScsiExtScsiPassThruBuildDevicePath 0000000000020b4c IScsiDxe:IScsiExtScsiPassThru.obj
+ 0005:00000688 $unwind$IScsiExtScsiPassThruGetTargetLun 0000000000020b68 IScsiDxe:IScsiExtScsiPassThru.obj
+ 0005:00000688 $unwind$NetbufFreeList 0000000000020b68 DxeNetLib:NetBuffer.obj
+ 0005:0000069c $unwind$IScsiDns6 0000000000020b7c IScsiDxe:IScsiDns.obj
+ 0005:0000069c $unwind$IScsiDns4 0000000000020b7c IScsiDxe:IScsiDns.obj
+ 0005:000006b8 $unwind$StrHexToUint64 0000000000020b98 BaseLib:String.obj
+ 0005:000006c4 $unwind$AsciiStrHexToUint64 0000000000020ba4 BaseLib:String.obj
+ 0005:000006cc $unwind$StrCpyS 0000000000020bac BaseLib:SafeString.obj
+ 0005:000006cc $unwind$UnicodeStrToAsciiStrS 0000000000020bac BaseLib:SafeString.obj
+ 0005:000006e4 $unwind$StrnCpyS 0000000000020bc4 BaseLib:SafeString.obj
+ 0005:000006fc $unwind$StrCatS 0000000000020bdc BaseLib:SafeString.obj
+ 0005:00000718 $unwind$HiiCreateGotoOpCode 0000000000020bf8 UefiHiiLib:HiiLib.obj
+ 0005:00000718 $unwind$EfiLibInstallDriverBindingComponentName2 0000000000020bf8 UefiLib:UefiDriverModel.obj
+ 0005:00000718 $unwind$StrDecimalToUintnS 0000000000020bf8 BaseLib:SafeString.obj
+ 0005:00000728 $unwind$AsciiStrHexToUintnS 0000000000020c08 BaseLib:SafeString.obj
+ 0005:00000728 $unwind$AsciiStrCpyS 0000000000020c08 BaseLib:SafeString.obj
+ 0005:00000728 $unwind$AsciiStrDecimalToUintnS 0000000000020c08 BaseLib:SafeString.obj
+ 0005:00000728 $unwind$EfiLibUninstallDriverBindingComponentName2 0000000000020c08 UefiLib:UefiDriverModel.obj
+ 0005:00000730 $unwind$AsciiStrToUnicodeStrS 0000000000020c10 BaseLib:SafeString.obj
+ 0005:00000730 $unwind$NetLibDestroyServiceChild 0000000000020c10 DxeNetLib:DxeNetLib.obj
+ 0005:00000730 $unwind$NetLibCreateServiceChild 0000000000020c10 DxeNetLib:DxeNetLib.obj
+ 0005:00000744 $unwind$AsciiStrToIpv6Address 0000000000020c24 BaseLib:SafeString.obj
+ 0005:0000075c $unwind$UnicodeSPrint 0000000000020c3c BasePrintLib:PrintLib.obj
+ 0005:00000764 $unwind$AsciiSPrint 0000000000020c44 BasePrintLib:PrintLib.obj
+ 0005:0000076c $unwind$BasePrintLibConvertValueToStringS 0000000000020c4c BasePrintLib:PrintLibInternal.obj
+ 0005:00000784 $unwind$BasePrintLibSPrintMarker 0000000000020c64 BasePrintLib:PrintLibInternal.obj
+ 0005:000007a0 $unwind$BasePrintLibSPrint 0000000000020c80 BasePrintLib:PrintLibInternal.obj
+ 0005:000007a8 $unwind$DebugPrint 0000000000020c88 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:000007b0 $unwind$DebugPrintMarker 0000000000020c90 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:000007c4 $unwind$DebugAssert 0000000000020ca4 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:000007d0 $unwind$AddUnicodeString2 0000000000020cb0 UefiLib:UefiLib.obj
+ 0005:000007e8 $unwind$GetVariable2 0000000000020cc8 UefiLib:UefiLib.obj
+ 0005:000007f4 $unwind$UefiLibGetStringWidth 0000000000020cd4 UefiLib:Console.obj
+ 0005:00000808 $unwind$CreatePopUp 0000000000020ce8 UefiLib:Console.obj
+ 0005:00000820 $unwind$AsciiPrint 0000000000020d00 UefiLib:UefiLibPrint.obj
+ 0005:00000828 $unwind$HiiSetString 0000000000020d08 UefiHiiLib:HiiString.obj
+ 0005:00000844 $unwind$HiiAddPackages 0000000000020d24 UefiHiiLib:HiiLib.obj
+ 0005:00000858 $unwind$InternalHiiBrowserCallback 0000000000020d38 UefiHiiLib:HiiLib.obj
+ 0005:00000868 $unwind$HiiGetBrowserData 0000000000020d48 UefiHiiLib:HiiLib.obj
+ 0005:00000878 $unwind$HiiSetBrowserData 0000000000020d58 UefiHiiLib:HiiLib.obj
+ 0005:0000088c $unwind$HiiCreateGuidOpCode 0000000000020d6c UefiHiiLib:HiiLib.obj
+ 0005:00000894 $unwind$HiiCreateNumericOpCode 0000000000020d74 UefiHiiLib:HiiLib.obj
+ 0005:000008ac $unwind$HiiCreateStringOpCode 0000000000020d8c UefiHiiLib:HiiLib.obj
+ 0005:000008c4 $unwind$HiiCreateOrderedListOpCode 0000000000020da4 UefiHiiLib:HiiLib.obj
+ 0005:000008d0 $unwind$InternalHiiUpdateFormPackageData 0000000000020db0 UefiHiiLib:HiiLib.obj
+ 0005:000008e8 $unwind$HiiUpdateForm 0000000000020dc8 UefiHiiLib:HiiLib.obj
+ 0005:00000900 $unwind$NetLibGetMacAddress 0000000000020de0 DxeNetLib:DxeNetLib.obj
+ 0005:00000918 $unwind$NetLibDetectMedia 0000000000020df8 DxeNetLib:DxeNetLib.obj
+ 0005:00000930 $unwind$NetLibDetectMediaWaitTimeout 0000000000020e10 DxeNetLib:DxeNetLib.obj
+ 0005:00000948 $unwind$NetLibAsciiStrToIp4 0000000000020e28 DxeNetLib:DxeNetLib.obj
+ 0005:00000958 $unwind$NetLibStrToIp4 0000000000020e38 DxeNetLib:DxeNetLib.obj
+ 0005:0000096c $unwind$NetbufQueCopy 0000000000020e4c DxeNetLib:NetBuffer.obj
+ 0005:0000096c $unwind$NetbufCopy 0000000000020e4c DxeNetLib:NetBuffer.obj
+ 0005:0000096c $unwind$NetbufFromExt 0000000000020e4c DxeNetLib:NetBuffer.obj
+ 0005:00000988 $unwind$NetbufBuildExt 0000000000020e68 DxeNetLib:NetBuffer.obj
+ 0005:00000990 $unwind$NetbufAllocSpace 0000000000020e70 DxeNetLib:NetBuffer.obj
+ 0005:000009a0 $unwind$TcpIoGetMapping 0000000000020e80 DxeTcpIoLib:DxeTcpIoLib.obj
+ 0005:000009b0 $unwind$TcpIoCreateSocket 0000000000020e90 DxeTcpIoLib:DxeTcpIoLib.obj
+ 0005:000009cc $unwind$TcpIoDestroySocket 0000000000020eac DxeTcpIoLib:DxeTcpIoLib.obj
+ 0005:000009e4 $unwind$TcpIoReceive 0000000000020ec4 DxeTcpIoLib:DxeTcpIoLib.obj
+ 0005:000009fc $unwind$md5_block_data_order 0000000000020edc OpensslLibCrypto:md5_dgst.obj
+ 0005:00000a14 $unwind$sha256_block_data_order 0000000000020ef4 OpensslLibCrypto:sha256.obj
+ 0005:00000a2c $unwind$GetTdInfo 0000000000020f0c TdxLib:TdInfo.obj
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxe.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxe.txt
new file mode 100644
index 000000000000..9bfbe457e893
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxe.txt
@@ -0,0 +1,2 @@
+MODULE_SIZE = 135040
+TIME_STAMP = 0
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxe.uni b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxe.uni
new file mode 100644
index 000000000000..e95381efb3cc
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxe.uni
@@ -0,0 +1,17 @@
+// /** @file
+// Client-side iSCSI service.
+//
+// The iSCSI driver provides iSCSI service in the preboot environment and supports
+// booting over iSCSI.
+//
+// Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
+//
+// SPDX-License-Identifier: BSD-2-Clause-Patent
+//
+// **/
+
+
+#string STR_MODULE_ABSTRACT #language en-US "Client-side iSCSI service"
+
+#string STR_MODULE_DESCRIPTION #language en-US "The iSCSI driver provides iSCSI service in the preboot environment and supports booting over iSCSI."
+
--git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxeExtra.uni b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxeExtra.uni
new file mode 100644
index 000000000000..4ff92077875a
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxeExtra.uni
@@ -0,0 +1,14 @@
+// /** @file
+// IScsiDxe Localized Strings and Content
+//
+// Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.<BR>
+//
+// SPDX-License-Identifier: BSD-2-Clause-Patent
+//
+// **/
+
+#string STR_PROPERTIES_MODULE_NAME
+#language en-US
+"iSCSI DXE"
+
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxeOffset.bin b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxeOffset.bin
new file mode 100644
index 0000000000000000000000000000000000000000..222db11aa3bab3a735f20878b410a27aa9c4ed19
GIT binary patch
literal 48
ycmaEGRJik-ahvb#kIwHq|FETPxXs7_0$XbKTyW2d_gp1d$nJKFZIQw!h&TWrXcC+N
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxeStrDefs.hpk b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxeStrDefs.hpk
new file mode 100644
index 0000000000000000000000000000000000000000..9ca702b2c6c3cb7c639e88c2336860e151a32056
GIT binary patch
literal 4772
zcmd6r+fE}#5QYnh7l_0I4EJla90DYF2E$@y0cQ;txdhvQwYDMH=J59Uzb?0@+a3;)
zauJa6%yb?9`m4H!t6yw&$ISSA^s{2UQSGvAYezP+TN_y4#&##IwZ66OP@kq1`o7ol
zjTUchYL9kh6J7I6f{TkiDNJO8@6^bH)KDF2WunicJZ=0dPp4K_D20ORDbk*G(lAn2
zO-0rZi$r=aSB0I;Tr1*>S#-}~X<%J@mUved3#EtZ-}>fmG*c=hd87OHooq<rTsi}L
z)m78}l+!|b1Td7PNw6^1-z&x5k%tF8>&f#H4s|WCGz=n@(cdXXtd3-_jFT)V)F{}E
z-n}B!7T>Aq;Mq%vN(pIUKXgA)=p=&#&`c;;#BUh<^c4k>6!s+BgBfz}>uc~gQidfb
zi1|gDQOhMaZC5B1h6W5FFQOgEaiJh$DDT93B!!6-uje!dhFhs$1b4lVLzV$F#v92|
zoje1OCC9<cAn-u?ZeT8Eo#h|nu&KN}vubNp<ufR41uJ7koJOLO)D;vUI~{WNgypp6
zA2f7B=4mhZSE%Ju)iL$Y1waHrZ?j?e=04|HP&^c1M0i_anbvt!4h#nQNIUIRHdzR+
zp^Mj;#`z*gjIQ^dludAIEw$x&l_A;A?JPa0G{dCvVFn0LsHOPtb#)&~G{9HYIBH4|
zj3^uI9_yF+!r!r44l2|B$gsxfjXe#mnJ+E%3=DO2=pH;#GT7_^q+^?^L}`FaF(!(>
z_z(O=n1`@_v5Ist{pjqA10%OY3qFPtdq?$k@6kSKOCmcYI`%UZuOH^>jh@gMlr&BX
zGRZj<t&nwTB}@dsV80XAprVVnL6|Sny_B!7Xz=7)8h!n$u^ag2R^Afyt?Vuo;CBUe
zXeR={6%zX+KzSYh-YZ-Hk2{gKjN*t2x;)b=fa<c4=-Zs}R*#%{N4zZ>TnC#J;#4V)
z1^P_kTgbSlN?$2kJ%s(vWQVzmoRp-iIDH~?t)@Fh5kr*G@8g>CMleHh$mc>2OIG|R
zn{hm3q=cgh&XtL8!EEHCu&sQ06JCyW3GWoCJgwz+1~DiJ^}o!npszFGQhV%o-KEiO
z*k4+m>M3l94N*2-c?zSQ8#-dN_05*>IB(zTIC#niH&VsW_10sUJj}K~8a2j5gE11A
z)^Aj?719VBDzF{s7H$;E=~8itR3~!uBA1IafxQnh&)oAKEGZMuTCuzs0}Rd>-cA(x
zDA?tA#MEGF!mpmuhC8-rzuK1Qxvh5Gv148BN_S7|H9bGJ-}FmE?&{gLBx<^^*`~C1
zRSd4Sw1UKruJ`p6iCLG#y$1A8)blMCzR5PJr(^_T<}by2(lziVDqt1|KsI#ZD8N5t
zrdZymsY2Xune|iI9wg=zP_C#4r=iF$saw3~5hP8yyvUim6A;c0P>V+&iUDIN9_dpU
zz$^s+tDeSEy?@xLwnE>OR_2@})*mwLdl!64QL0GlZQ+F^4}>cFRNVF0+VR6aF%7A;
zB*9@uc(!#(2skfKIpNp?^0bqmW3T6JlJE0=miPMj`0}y9Zkrm6(ZIBy!67|Bq&;s`
z1;cTDs9#=!76YPF9DaHT2`Mx}t=I-RgMCV+8D0(>XrHS^n`)7CjxqOmdu+%WZ9uc7
z^@H4u1-AaF5+Km@`0efNGVy3aWH*YC<k->tbugcH`3?Xu4*j+?O7_HY5sxzERE^!e
zJY*OxQw^N1Y{Fz-R_dC12dem?@@!}*9cj26YsHUA>H4vx_cTPlsvkTO$0g3*bUkpJ
z8ZMsR;!K1q9hu2fj~fZ@{mq0x{T#`grYcoe^q^SJ7Aj8ll>+p$lZ|)63XwCx^1QUP
zaJ0Xe1(zN_BUeDZ@xNw;P&{0*)qQ>Q`RHfGUTT*|$IaSkY-^Vxv;O>l5pALAjcc~P
zn!fZjRr>rt808>a-%lku*L742f00m$OIZD3MVU$wux8pqk`Dya;^(5@!|(|FDlO+C
K>AT(firGIDXcO1~
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxeUni.json b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxeUni.json
new file mode 100644
index 000000000000..7f4f7dfb48a9
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiDxeUni.json
@@ -0,0 +1,90 @@
+{
+ "LanguageDef": [
+ [
+ "en-US",
+ "English"
+ ],
+ [
+ "x-UEFI-ns",
+ "UefiNameSpace"
+ ]
+ ],
+ "UniString": {
+ "en-US": {
+ "$LANGUAGE_NAME": "en-US",
+ "$PRINTABLE_LANGUAGE_NAME": "English",
+ "STR_ISCSI_CONFIG_FORM_TITLE": "iSCSI Configuration",
+ "STR_ISCSI_CONFIG_FORM_HELP": "Configure the iSCSI parameters.",
+ "STR_ISCSI_MAIN_FORM_TITLE": "iSCSI Configuration",
+ "STR_ISCSI_MAC_FORM_TITLE": "MAC Selection",
+ "STR_ISCSI_CONFIG_INIT_NAME": "iSCSI Initiator Name",
+ "STR_ISCSI_CONFIG_INIT_NAME_HELP": "The worldwide unique name of iSCSI Initiator. Only IQN format is accepted.",
+ "STR_ISCSI_ATTEMPT_NAME": "iSCSI Attempt Name",
+ "STR_ISCSI_ATTEMPT_NAME_HELP": "The human name defined for this attempt.",
+ "STR_ISCSI_CONFIG_RETRY": "Connection Retry Count",
+ "STR_ISCSI_CONFIG_RETRY_HELP": "The minimum value is 0 and the maximum is 16. 0 means no retry.",
+ "STR_ISCSI_CONFIG_TIMEOUT": "Connection Establishing Timeout",
+ "STR_ISCSI_CONFIG_TIMEOUT_HELP": "The timeout value in milliseconds. The minimum value is 100 milliseconds and the maximum is 20 seconds.",
+ "STR_ADD_ATTEMPT_ENTRY": "Add an Attempt",
+ "STR_ISCSI_ATTEMPT_FORM_TITLE": "Attempt Configuration",
+ "STR_DEL_ATTEMPT_ENTRY": "Delete Attempts",
+ "STR_DEL_ATTEMPT_ENTRY_HELP": "Delete one or more attempts",
+ "STR_ORDER_ATTEMPT_ENTRY": "Change Attempt Order",
+ "STR_ISCSI_MODE_PROMPT": "iSCSI Mode",
+ "STR_ISCSI_MODE_HELP": "Disabled, Enabled, Enabled for MPIO",
+ "STR_ISCSI_MODE_DISABLED": "Disabled",
+ "STR_ISCSI_MODE_ENABLED": "Enabled",
+ "STR_ISCSI_MODE_ENABLED_FOR_MPIO": "Enabled for MPIO",
+ "STR_IP_MODE_PROMPT": "Internet Protocol",
+ "STR_IP_MODE_HELP": "Initiator IP address is system assigned in IP6 mode. In Autoconfigure mode, iSCSI driver will attempt to connect iSCSI target via IPv4 stack, if failed then attempt IPv6 stack.",
+ "STR_IP_MODE_IP4": "IP4",
+ "STR_IP_MODE_IP6": "IP6",
+ "STR_IP_MODE_AUTOCONFIG": "Autoconfigure",
+ "STR_AUTHEN_TYPE_PROMPT": "Authentication Type",
+ "STR_AUTHEN_TYPE_HELP": "Authentication method: CHAP, Kerberos, or None",
+ "STR_AUTHEN_TYPE_CHAP": "CHAP",
+ "STR_AUTHEN_TYPE_KERBEROS": "Kerberos",
+ "STR_AUTHEN_TYPE_NONE": "None",
+ "STR_ISCSI_LOCAL_IP_ADDRESS": " Initiator IP Address",
+ "STR_ISCSI_LOCAL_MASK": " Initiator Subnet Mask",
+ "STR_ISCSI_LOCAL_GATEWAY": " Gateway",
+ "STR_ISCSI_IP_ADDRESS_HELP": "Enter IP address in dotted-decimal notation.",
+ "STR_ISCSI_TARGET_NAME": " Target Name",
+ "STR_ISCSI_TARGET_NAME_HELP": "The worldwide unique name of the target. Only iqn. format is accepted.",
+ "STR_ISCSI_TARGET_ADDRESS": " Target Address",
+ "STR_ISCSI_TARGET_ADDRESS_HELP": "Enter Target address in IPv4,IPv6 or URL format.You need to configure DNS server address in advance if input a URL string.",
+ "STR_ISCSI_TARGET_PORT": " Target Port",
+ "STR_ISCSI_BOOT_LUN": " Boot LUN",
+ "STR_ISCSI_BOOT_LUN_HELP": "Hexadecimal representation of the LU number. Examples are: 4752-3A4F-6b7e-2F99, 6734-9-156f-127, 4186-9",
+ "STR_ISCSI_ENABLE_DHCP": "Enable DHCP",
+ "STR_ISCSI_ENABLE_DHCP_ON_TARGET": "Get target info via DHCP",
+ "STR_CHAP_TYPE_PROMPT": " CHAP Type",
+ "STR_CHAP_TYPE_HELP": "None, One way CHAP or mutual CHAP",
+ "STR_CHAP_TYPE_UNI": "One way",
+ "STR_CHAP_TYPE_MUTUAL": "Mutual",
+ "STR_ISCSI_CHAP_NAME": " CHAP Name",
+ "STR_ISCSI_CHAP_SECRET": " CHAP Secret",
+ "STR_ISCSI_CHAP_SECRET_HELP": "The minimum length is 12 bytes and the maximum length is 16 bytes.",
+ "STR_ISCSI_REVERSE_CHAP_NAME": " Reverse CHAP Name",
+ "STR_ISCSI_REVERSE_CHAP_SECRET": " Reverse CHAP Secret",
+ "STR_RETURN_MAIN_FORM": "Back to Previous Page",
+ "STR_SAVE_CHANGES": "Save Changes",
+ "STR_SAVE_CHANGES_HELP": "Must reboot system manually for changes to take place.",
+ "STR_NULL": "",
+ "STR_SAVE_AND_EXIT": "Commit Changes and Exit",
+ "STR_NO_SAVE_AND_EXIT": "Discard Changes and Exit",
+ "STR_ISCSI_CONFIG_ISID": "ISID",
+ "STR_ISCSI_CONFIG_ISID_HELP": "OUI-format ISID in 6 bytes, default value are derived from MAC address. Only last 3 bytes are configurable. Example: update 0ABBCCDDEEFF to 0ABBCCF07901 by input F07901.",
+ "STR_ISCSI_MAC_PROMPT": "Configure the mac address for the attempt",
+ "STR_ISCSI_ADD_ATTEMPTS": "Add Attempts",
+ "STR_ISCSI_DELETE_ATTEMPTS": "Delete Attempts",
+ "STR_ISCSI_DISPLAY_ATTEMPTS": "Display Attempts",
+ "STR_ISCSI_ATTEMPT_ORDER": "New Attempt Order",
+ "STR_ISCSI_ISID_HELP": "The iSCSI ISID. Default value are derived from MAC address. Only last 3 bytes are configurable."
+ },
+ "x-UEFI-ns": {
+ "$LANGUAGE_NAME": "x-UEFI-ns",
+ "$PRINTABLE_LANGUAGE_NAME": "UefiNameSpace"
+ }
+ }
+}
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiExtScsiPassThru.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiExtScsiPassThru.c.deps
new file mode 100644
index 000000000000..97533de7c22b
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiExtScsiPassThru.c.deps
@@ -0,0 +1,102 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiExtScsiPassThru.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\iscsidxe\iscsidxe\debug\IScsiDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiImpl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6Config.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AuthenticationInfo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IScsiInitiatorName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ScsiPassThruExt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AdapterInformation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/NetworkInterfaceIdentifier.h" \
+"c:\users\mliang2x\workspace\edk2\CryptoPkg\Include\Library/BaseCryptLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/SafeIntLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/TcpIoLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/EventGroup.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfigNVDataStruc.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/IScsiConfigHii.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDriver.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiProto.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiCHAP.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiIbft.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/IScsiBootFirmwareTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/PciIo.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiMisc.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDns.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfig.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiIbft.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiIbft.c.deps
new file mode 100644
index 000000000000..5f853e89001b
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiIbft.c.deps
@@ -0,0 +1,102 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiIbft.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\iscsidxe\iscsidxe\debug\IScsiDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiImpl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6Config.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AuthenticationInfo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IScsiInitiatorName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ScsiPassThruExt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AdapterInformation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/NetworkInterfaceIdentifier.h" \
+"c:\users\mliang2x\workspace\edk2\CryptoPkg\Include\Library/BaseCryptLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/SafeIntLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/TcpIoLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/EventGroup.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfigNVDataStruc.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/IScsiConfigHii.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDriver.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiProto.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiCHAP.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiIbft.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/IScsiBootFirmwareTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/PciIo.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiMisc.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDns.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfig.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiInitiatorName.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiInitiatorName.c.deps
new file mode 100644
index 000000000000..cac9caf3d26b
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiInitiatorName.c.deps
@@ -0,0 +1,102 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiInitiatorName.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\iscsidxe\iscsidxe\debug\IScsiDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiImpl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6Config.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AuthenticationInfo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IScsiInitiatorName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ScsiPassThruExt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AdapterInformation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/NetworkInterfaceIdentifier.h" \
+"c:\users\mliang2x\workspace\edk2\CryptoPkg\Include\Library/BaseCryptLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/SafeIntLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/TcpIoLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/EventGroup.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfigNVDataStruc.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/IScsiConfigHii.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDriver.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiProto.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiCHAP.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiIbft.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/IScsiBootFirmwareTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/PciIo.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiMisc.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDns.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfig.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiMisc.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiMisc.c.deps
new file mode 100644
index 000000000000..04f32e55f96e
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiMisc.c.deps
@@ -0,0 +1,102 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiMisc.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\iscsidxe\iscsidxe\debug\IScsiDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiImpl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6Config.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AuthenticationInfo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IScsiInitiatorName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ScsiPassThruExt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AdapterInformation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/NetworkInterfaceIdentifier.h" \
+"c:\users\mliang2x\workspace\edk2\CryptoPkg\Include\Library/BaseCryptLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/SafeIntLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/TcpIoLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/EventGroup.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfigNVDataStruc.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/IScsiConfigHii.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDriver.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiProto.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiCHAP.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiIbft.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/IScsiBootFirmwareTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/PciIo.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiMisc.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDns.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfig.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiProto.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiProto.c.deps
new file mode 100644
index 000000000000..44a1c912491a
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/IScsiProto.c.deps
@@ -0,0 +1,102 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiProto.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\iscsidxe\iscsidxe\debug\IScsiDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiImpl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6Config.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AuthenticationInfo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IScsiInitiatorName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ScsiPassThruExt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AdapterInformation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/NetworkInterfaceIdentifier.h" \
+"c:\users\mliang2x\workspace\edk2\CryptoPkg\Include\Library/BaseCryptLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/SafeIntLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/TcpIoLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/EventGroup.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfigNVDataStruc.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/IScsiConfigHii.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDriver.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiProto.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiCHAP.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp6.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiIbft.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/IScsiBootFirmwareTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/PciIo.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiMisc.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDns.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfig.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/cc_resp_14.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/cc_resp_14.txt
new file mode 100644
index 000000000000..52f0cf258a41
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/cc_resp_14.txt
@@ -0,0 +1 @@
+ c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiMisc.c c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiAuthenticationInfo.c c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiIbft.c c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiExtScsiPassThru.c c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiInitiatorName.c c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\IScsiConfigVfr.c c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\ComponentName.c c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiDhcp6.c c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiCHAP.c c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiDriver.c c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiDhcp.c c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiProto.c c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\AutoGen.c c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiDns.c c:\users\mliang2x\workspace\edk2\NetworkPkg\IScsiDxe\IScsiConfig.c
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/object_files.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/object_files.lst
new file mode 100644
index 000000000000..f3a0907fdecb
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/object_files.lst
@@ -0,0 +1,15 @@
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/IScsiDxe/IScsiDxe/OUTPUT/ComponentName.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/IScsiDxe/IScsiDxe/OUTPUT/IScsiAuthenticationInfo.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/IScsiDxe/IScsiDxe/OUTPUT/IScsiCHAP.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/IScsiDxe/IScsiDxe/OUTPUT/IScsiConfig.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/IScsiDxe/IScsiDxe/OUTPUT/IScsiConfigVfr.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/IScsiDxe/IScsiDxe/OUTPUT/IScsiDhcp.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/IScsiDxe/IScsiDxe/OUTPUT/IScsiDhcp6.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/IScsiDxe/IScsiDxe/OUTPUT/IScsiDns.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/IScsiDxe/IScsiDxe/OUTPUT/IScsiDriver.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/IScsiDxe/IScsiDxe/OUTPUT/IScsiExtScsiPassThru.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/IScsiDxe/IScsiDxe/OUTPUT/IScsiIbft.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/IScsiDxe/IScsiDxe/OUTPUT/IScsiInitiatorName.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/IScsiDxe/IScsiDxe/OUTPUT/IScsiMisc.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/IScsiDxe/IScsiDxe/OUTPUT/IScsiProto.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/IScsiDxe/IScsiDxe/OUTPUT/AutoGen.obj
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/static_library_files.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/static_library_files.lst
new file mode 100644
index 000000000000..bebeb00e51ba
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/OUTPUT/static_library_files.lst
@@ -0,0 +1,31 @@
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/RegisterFilterLibNull/RegisterFilterLibNull/OUTPUT/FilterLibNull.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/DxePcdLib/DxePcdLib/OUTPUT/DxePcdLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr/OUTPUT/BaseMemoryLibRepStr.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BaseLib/BaseLib/OUTPUT/BaseLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/TdxLib/TdxLib/OUTPUT/TdxLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/OvmfPkg/Library/CcProbeLib/CcProbeLib/OUTPUT/CcProbeLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib/OUTPUT/BaseDebugPrintErrorLevelLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsicSev/OUTPUT/BaseIoLibIntrinsicSev.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BasePrintLib/BasePrintLib/OUTPUT/BasePrintLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort/OUTPUT/PlatformDebugLibIoPort.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib/OUTPUT/UefiBootServicesTableLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib/OUTPUT/UefiMemoryAllocationLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib/OUTPUT/UefiRuntimeServicesTableLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol/OUTPUT/UefiDevicePathLibDevicePathProtocol.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiLib/UefiLib/OUTPUT/UefiLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BasePciExpressLib/BasePciExpressLib/OUTPUT/BasePciExpressLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib/OUTPUT/BasePciCf8Lib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/DxeHobLib/DxeHobLib/OUTPUT/DxeHobLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35/OUTPUT/DxePciLibI440FxQ35.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib/OUTPUT/DxeAcpiTimerLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib/OUTPUT/BaseRngLibTimerLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/CryptoPkg/Library/IntrinsicLib/IntrinsicLib/OUTPUT/BaseIntrinsicLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/CryptoPkg/Library/OpensslLib/OpensslLibCrypto/OUTPUT/OpensslLibCrypto.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib/OUTPUT/UefiHiiServicesLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/CryptoPkg/Library/BaseCryptLib/BaseCryptLib/OUTPUT/BaseCryptLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdeModulePkg/Library/UefiHiiLib/UefiHiiLib/OUTPUT/UefiHiiLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/Library/DxeNetLib/DxeNetLib/OUTPUT/DxeNetLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib/OUTPUT/BaseSafeIntLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/Library/DxeTcpIoLib/DxeTcpIoLib/OUTPUT/DxeTcpIoLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint/OUTPUT/UefiDriverEntryPoint.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/IScsiDxe/IScsiDxe/OUTPUT/IScsiDxe.lib
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/dependency b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/dependency
new file mode 100644
index 000000000000..16c703d5f294
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/dependency
@@ -0,0 +1,67 @@
+
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\IScsiConfigVfr.vfr.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\IScsiConfigVfr.vfr.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\AutoGen.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\AutoGen.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\ComponentName.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\ComponentName.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiAuthenticationInfo.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiAuthenticationInfo.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiCHAP.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiCHAP.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiConfig.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiConfig.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiConfigVfr.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiConfigVfr.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiDhcp.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiDhcp.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiDhcp6.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiDhcp6.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiDns.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiDns.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiDriver.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiDriver.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiExtScsiPassThru.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiExtScsiPassThru.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiIbft.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiIbft.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiInitiatorName.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiInitiatorName.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiMisc.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiMisc.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiProto.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\OUTPUT\IScsiProto.c.deps
+!ENDIF
+
+
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/deps.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/deps.txt
new file mode 100644
index 000000000000..5befccb06108
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/deps.txt
@@ -0,0 +1,104 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\AutoGen.h
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\IScsiDxeStrDefs.h
+c:\users\mliang2x\workspace\edk2\CryptoPkg\Include\Library/BaseCryptLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/Acpi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/EventGroup.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/IScsiBootFirmwareTable.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/SafeIntLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiTable.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AdapterInformation.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AuthenticationInfo.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp6.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns4.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns6.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IScsiInitiatorName.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6Config.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/NetworkInterfaceIdentifier.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/PciIo.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ScsiPassThruExt.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp4.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp6.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/IScsiConfigHii.h
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/TcpIoLib.h
+c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\iscsidxe\iscsidxe\debug\AutoGen.h
+c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\iscsidxe\iscsidxe\debug\IScsiDxeStrDefs.h
+c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiCHAP.h
+c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfig.h
+c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfigNVDataStruc.h
+c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp.h
+c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp6.h
+c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDns.h
+c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDriver.h
+c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiIbft.h
+c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiImpl.h
+c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiMisc.h
+c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiProto.h
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/deps_target b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/deps_target
new file mode 100644
index 000000000000..8b2f64092282
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/IScsiDxe/deps_target
@@ -0,0 +1,104 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\AutoGen.h:
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\IScsiDxe\IScsiDxe\DEBUG\IScsiDxeStrDefs.h:
+c:\users\mliang2x\workspace\edk2\CryptoPkg\Include\Library/BaseCryptLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/Acpi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/EventGroup.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/IScsiBootFirmwareTable.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/SafeIntLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiTable.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AdapterInformation.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AuthenticationInfo.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp6.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns4.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dns6.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IScsiInitiatorName.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6Config.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/NetworkInterfaceIdentifier.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/PciIo.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ScsiPassThruExt.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp4.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Tcp6.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h:
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/IScsiConfigHii.h:
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h:
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/TcpIoLib.h:
+c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\iscsidxe\iscsidxe\debug\AutoGen.h:
+c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\iscsidxe\iscsidxe\debug\IScsiDxeStrDefs.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiCHAP.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfig.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiConfigNVDataStruc.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDhcp6.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDns.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiDriver.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiIbft.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiImpl.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiMisc.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\iscsidxe\IScsiProto.h:
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/AutoGenTimeStamp b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/AutoGenTimeStamp
new file mode 100644
index 000000000000..f357f2efca70
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/AutoGenTimeStamp
@@ -0,0 +1,51 @@
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Route.h
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Output.c
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\ComponentName.c
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Icmp.c
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BasePrintLib\BasePrintLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Igmp.h
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\Ip4DxeStrDefs.h
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Driver.c
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Dxe.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Common.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Driver.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib.inf
+c:\users\mliang2x\workspace\edk2\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\DxePcdLib\DxePcdLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Config2Nv.c
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Config2Impl.c
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Config2.vfr
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Impl.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Config2Impl.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Output.h
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Library\DxeDpcLib\DxeDpcLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4If.c
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Option.c
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Option.h
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Common.c
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiLib\UefiLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Igmp.c
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Route.c
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseLib\BaseLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4NvData.h
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Config2Nv.h
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\AutoGen.h
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4DxeStrings.uni
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\CcProbeLibNull\CcProbeLibNull.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Input.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\TdxLib\TdxLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Library\DxeNetLib\DxeNetLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Icmp.h
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Impl.c
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Input.c
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4If.h
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Config2.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Config2.lst
new file mode 100644
index 000000000000..a077073f79cf
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Config2.lst
@@ -0,0 +1,378 @@
+//
+// VFR compiler version 2.01 (UEFI 2.4) Developer Build based on Revision: Unknown
+//
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\Ip4Dxe\\Ip4Config2.vfr"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\NetworkPkg\\Ip4Dxe\\Ip4Dxe\\DEBUG\\Ip4DxeStrDefs.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern unsigned char Ip4DxeStrings[];
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 67 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\NetworkPkg\\Ip4Dxe\\Ip4Dxe\\DEBUG\\Ip4DxeStrDefs.h"
+
+#line 69 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\NetworkPkg\\Ip4Dxe\\Ip4Dxe\\DEBUG\\Ip4DxeStrDefs.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\Ip4Dxe\\Ip4Config2.vfr"
+
+
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\networkpkg\\ip4dxe\\Ip4NvData.h"
+
+
+
+
+
+
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\Include\\Guid/Ip4Config2Hii.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern EFI_GUID { 0x9b942747, 0x154e, 0x4d29, { 0xa4, 0x36, 0xbf, 0x71, 0x0, 0xc8, 0xb5, 0x3b }};
+
+#line 20 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\Include\\Guid/Ip4Config2Hii.h"
+#line 13 "c:\\users\\mliang2x\\workspace\\edk2\\networkpkg\\ip4dxe\\Ip4NvData.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct {
+ UINT8 Configure;
+ UINT8 DhcpEnable;
+ CHAR16 StationAddress[16];
+ CHAR16 SubnetMask[16];
+ CHAR16 GatewayAddress[16];
+ CHAR16 DnsAddress[255];
+} IP4_CONFIG2_IFR_NVDATA;
+
+#line 45 "c:\\users\\mliang2x\\workspace\\edk2\\networkpkg\\ip4dxe\\Ip4NvData.h"
+#line 9 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\Ip4Dxe\\Ip4Config2.vfr"
+
+
+
+formset
+>00000000: 0E A7 47 27 94 9B 4E 15 29 4D A4 36 BF 71 00 C8 B5 3B 02 00 03 00 01 71 99 03 93 45 85 04 4B B4 5E 32 EB 83 26 04 0E
+>00000051: 5C 06 00 00 00 00
+>00000057: 5C 06 00 00 01 00
+ guid = { 0x9b942747, 0x154e, 0x4d29, { 0xa4, 0x36, 0xbf, 0x71, 0x0, 0xc8, 0xb5, 0x3b } },
+ title = STRING_TOKEN(0x0002),
+ help = STRING_TOKEN(0x0003),
+ class = 0x04,
+>00000027: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 03 04 00
+ subclass = 0x03,
+>0000003C: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 04 03 00
+
+ varstore IP4_CONFIG2_IFR_NVDATA,
+>0000005D: 24 2D 47 27 94 9B 4E 15 29 4D A4 36 BF 71 00 C8 B5 3B 01 00 60 02 49 50 34 5F 43 4F 4E 46 49 47 32 5F 49 46 52 5F 4E 56 44 41 54 41 00
+ name = IP4_CONFIG2_IFR_NVDATA,
+ guid = { 0x9b942747, 0x154e, 0x4d29, { 0xa4, 0x36, 0xbf, 0x71, 0x0, 0xc8, 0xb5, 0x3b } };
+
+ form formid = 1,
+>0000008A: 01 86 01 00 04 00
+ title = STRING_TOKEN(0x0004);
+
+ checkbox varid = IP4_CONFIG2_IFR_NVDATA.Configure,
+>00000090: 06 8E 06 00 07 00 00 01 01 00 00 00 04 00
+ prompt = STRING_TOKEN(0x0006),
+ help = STRING_TOKEN(0x0007),
+ flags = INTERACTIVE,
+ key = 0x100,
+ endcheckbox;
+>0000009E: 29 02
+
+ suppressif ideqval IP4_CONFIG2_IFR_NVDATA.Configure == 0x00;
+>000000A0: 0A 82
+>000000A2: 12 06 00 01 00 00
+
+ checkbox varid = IP4_CONFIG2_IFR_NVDATA.DhcpEnable,
+>000000A8: 06 8E 08 00 08 00 01 01 01 00 01 00 04 00
+ prompt = STRING_TOKEN(0x0008),
+ help = STRING_TOKEN(0x0008),
+ flags = INTERACTIVE,
+ key = 0x101,
+ endcheckbox;
+>000000B6: 29 02
+ endif;
+>000000B8: 29 02
+
+ suppressif ideqval IP4_CONFIG2_IFR_NVDATA.DhcpEnable == 0x01 OR ideqval IP4_CONFIG2_IFR_NVDATA.Configure == 0x00;
+>000000BA: 0A 82
+>000000BC: 12 86 01 01 01 00
+>000000C2: 12 06 00 01 00 00
+>000000C8: 16 02
+>000000CA: 29 02
+
+ string varid = IP4_CONFIG2_IFR_NVDATA.StationAddress,
+>000000CC: 1C 90 09 00 0A 00 02 01 01 00 02 00 04 07 0F 00
+ prompt = STRING_TOKEN(0x0009),
+ help = STRING_TOKEN(0x000A),
+ flags = INTERACTIVE,
+ key = 0x102,
+ minsize = 7,
+ maxsize = 15,
+ endstring;
+>000000DC: 29 02
+
+ string varid = IP4_CONFIG2_IFR_NVDATA.SubnetMask,
+>000000DE: 1C 90 0B 00 0C 00 03 01 01 00 22 00 04 07 0F 00
+ prompt = STRING_TOKEN(0x000B),
+ help = STRING_TOKEN(0x000C),
+ flags = INTERACTIVE,
+ key = 0x103,
+ minsize = 7,
+ maxsize = 15,
+ endstring;
+>000000EE: 29 02
+
+ string varid = IP4_CONFIG2_IFR_NVDATA.GatewayAddress,
+>000000F0: 1C 90 0D 00 0E 00 04 01 01 00 42 00 04 07 0F 00
+ prompt = STRING_TOKEN(0x000D),
+ help = STRING_TOKEN(0x000E),
+ flags = INTERACTIVE,
+ key = 0x104,
+ minsize = 7,
+ maxsize = 15,
+ endstring;
+>00000100: 29 02
+
+ string varid = IP4_CONFIG2_IFR_NVDATA.DnsAddress,
+>00000102: 1C 90 0F 00 10 00 05 01 01 00 62 00 04 07 FF 00
+ prompt = STRING_TOKEN(0x000F),
+ help = STRING_TOKEN(0x0010),
+ flags = INTERACTIVE,
+ key = 0x105,
+ minsize = 7,
+ maxsize = 255,
+ endstring;
+>00000112: 29 02
+
+ endif;
+>00000114: 29 02
+
+ subtitle text = STRING_TOKEN(0x0012);
+>00000116: 02 87 12 00 00 00 00
+>0000011D: 29 02
+
+ text
+ help = STRING_TOKEN(0x0011),
+ text = STRING_TOKEN(0x0011),
+ flags = INTERACTIVE,
+>0000011F: 0C 8F 11 00 11 00 06 01 00 00 FF FF 04 00 00
+ key = 0x106;
+>0000012E: 29 02
+
+ endform;
+>00000130: 29 02
+
+endformset;
+>00000132: 29 02
+
+
+//
+// All Opcode Record List
+//
+>00000000: 0E A7 47 27 94 9B 4E 15 29 4D A4 36 BF 71 00 C8 B5 3B 02 00 03 00 01 71 99 03 93 45 85 04 4B B4 5E 32 EB 83 26 04 0E
+>00000027: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 03 04 00
+>0000003C: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 04 03 00
+>00000051: 5C 06 00 00 00 00
+>00000057: 5C 06 00 00 01 00
+>0000005D: 24 2D 47 27 94 9B 4E 15 29 4D A4 36 BF 71 00 C8 B5 3B 01 00 60 02 49 50 34 5F 43 4F 4E 46 49 47 32 5F 49 46 52 5F 4E 56 44 41 54 41 00
+>0000008A: 01 86 01 00 04 00
+>00000090: 06 8E 06 00 07 00 00 01 01 00 00 00 04 00
+>0000009E: 29 02
+>000000A0: 0A 82
+>000000A2: 12 06 00 01 00 00
+>000000A8: 06 8E 08 00 08 00 01 01 01 00 01 00 04 00
+>000000B6: 29 02
+>000000B8: 29 02
+>000000BA: 0A 82
+>000000BC: 12 86 01 01 01 00
+>000000C2: 12 06 00 01 00 00
+>000000C8: 16 02
+>000000CA: 29 02
+>000000CC: 1C 90 09 00 0A 00 02 01 01 00 02 00 04 07 0F 00
+>000000DC: 29 02
+>000000DE: 1C 90 0B 00 0C 00 03 01 01 00 22 00 04 07 0F 00
+>000000EE: 29 02
+>000000F0: 1C 90 0D 00 0E 00 04 01 01 00 42 00 04 07 0F 00
+>00000100: 29 02
+>00000102: 1C 90 0F 00 10 00 05 01 01 00 62 00 04 07 FF 00
+>00000112: 29 02
+>00000114: 29 02
+>00000116: 02 87 12 00 00 00 00
+>0000011D: 29 02
+>0000011F: 0C 8F 11 00 11 00 06 01 00 00 FF FF 04 00 00
+>0000012E: 29 02
+>00000130: 29 02
+>00000132: 29 02
+
+Total Size of all record is 0x00000134
+
+
+***************************************************************
+ mPackAlign = 8
+ struct IP4_CONFIG2_IFR_NVDATA : mAlign [2] mTotalSize [0x260]
+
+ struct IP4_CONFIG2_IFR_NVDATA {
+ +00000000[00000000] Configure <UINT8>
+ +00000001[00000001] DhcpEnable <UINT8>
+ +00000002[00000002] StationAddress[16] <UINT16>
+ +00000034[00000022] SubnetMask[16] <UINT16>
+ +00000066[00000042] GatewayAddress[16] <UINT16>
+ +00000098[00000062] DnsAddress[255] <UINT16>
+ };
+---------------------------------------------------------------
+ struct EFI_HII_REF : mAlign [16] mTotalSize [0x16]
+
+ struct EFI_HII_REF {
+ +00000000[00000000] QuestionId <UINT16>
+ +00000002[00000002] FormId <UINT16>
+ +00000004[00000004] FormSetGuid <(null)>
+ +00000020[00000014] DevicePath <EFI_STRING_ID>
+ };
+---------------------------------------------------------------
+ struct EFI_HII_TIME : mAlign [1] mTotalSize [0x3]
+
+ struct EFI_HII_TIME {
+ +00000000[00000000] Hours <UINT8>
+ +00000001[00000001] Minutes <UINT8>
+ +00000002[00000002] Seconds <UINT8>
+ };
+---------------------------------------------------------------
+ struct EFI_STRING_ID : mAlign [2] mTotalSize [0x2]
+
+ struct EFI_STRING_ID {
+ };
+---------------------------------------------------------------
+ struct EFI_HII_DATE : mAlign [2] mTotalSize [0x4]
+
+ struct EFI_HII_DATE {
+ +00000000[00000000] Year <UINT16>
+ +00000002[00000002] Month <UINT8>
+ +00000003[00000003] Day <UINT8>
+ };
+---------------------------------------------------------------
+ struct BOOLEAN : mAlign [1] mTotalSize [0x1]
+
+ struct BOOLEAN {
+ };
+---------------------------------------------------------------
+ struct UINT8 : mAlign [1] mTotalSize [0x1]
+
+ struct UINT8 {
+ };
+---------------------------------------------------------------
+ struct UINT16 : mAlign [2] mTotalSize [0x2]
+
+ struct UINT16 {
+ };
+---------------------------------------------------------------
+ struct UINT32 : mAlign [4] mTotalSize [0x4]
+
+ struct UINT32 {
+ };
+---------------------------------------------------------------
+ struct UINT64 : mAlign [8] mTotalSize [0x8]
+
+ struct UINT64 {
+ };
+---------------------------------------------------------------
+***************************************************************
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Config2.vfr.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Config2.vfr.deps
new file mode 100644
index 000000000000..9861620b0d88
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Config2.vfr.deps
@@ -0,0 +1,4 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\Ip4Config2.c: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\Ip4DxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4NvData.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/Ip4Config2Hii.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Config2Compiled.yml b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Config2Compiled.yml
new file mode 100644
index 000000000000..e9acbe18737f
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Config2Compiled.yml
@@ -0,0 +1,105 @@
+## DO NOT REMOVE -- YAML Mode
+include:
+- Ip4NvData.h
+
+formset:
+ guid: '{0x9b942747, 0x154e, 0x4d29, { 0xa4, 0x36, 0xbf, 0x71, 0x0, 0xc8, 0xb5, 0x3b }}'
+ help: 'Configure network parameters.'
+ title: 'IPv4 Network Configuration'
+ class: 4
+ subclass: 3
+ component:
+ - varstore:
+ guid: '{0x9b942747, 0x154e, 0x4d29, { 0xa4, 0x36, 0xbf, 0x71, 0x0, 0xc8, 0xb5, 0x3b }}'
+ varid: 0x0001 # Optional Input
+ size: 608 # Need to Compute
+ name: IP4_CONFIG2_IFR_NVDATA
+ - form:
+ formid: 1
+ title: ''
+ component:
+ - checkbox:
+ position: 'IP4_CONFIG2_NVDATA_GUID.FORMID_MAIN_FORM.IP4_CONFIG2_IFR_NVDATA.Configure' # for reference
+ questionid: 1
+ varstoreid: 1 # Optional Input
+ varname: 0 # Question VarName
+ varoffset: 0 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Configured'
+ help: 'Indicate whether network address configured successfully or not.'
+ opcodeflags: 0x0 # optional input
+ - checkbox:
+ condition: 'suppressif ideqval IP4_CONFIG2_IFR_NVDATA.Configure == 0x00'
+ position: 'IP4_CONFIG2_NVDATA_GUID.FORMID_MAIN_FORM.IP4_CONFIG2_IFR_NVDATA.DhcpEnable' # for reference
+ questionid: 2
+ varstoreid: 1 # Optional Input
+ varname: 1 # Question VarName
+ varoffset: 1 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Enable DHCP'
+ help: 'Enable DHCP'
+ opcodeflags: 0x0 # optional input
+ - string:
+ condition: 'suppressif ideqval IP4_CONFIG2_IFR_NVDATA.DhcpEnable == 0x01 OR ideqval IP4_CONFIG2_IFR_NVDATA.Configure == 0x00'
+ position: 'IP4_CONFIG2_NVDATA_GUID.FORMID_MAIN_FORM.IP4_CONFIG2_IFR_NVDATA.StationAddress' # for reference
+ questionid: 258
+ varstoreid: 1 # Optional Input
+ varname: 2 # Question VarName
+ varoffset: 2 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Local IP Address'
+ help: 'Enter IP address in dotted-decimal notation. Example: 192.168.10.12
+'
+ opcodeflags: 0x0 # optional input
+ minsize: 7
+ maxsize: 15
+ - string:
+ condition: 'suppressif ideqval IP4_CONFIG2_IFR_NVDATA.DhcpEnable == 0x01 OR ideqval IP4_CONFIG2_IFR_NVDATA.Configure == 0x00'
+ position: 'IP4_CONFIG2_NVDATA_GUID.FORMID_MAIN_FORM.IP4_CONFIG2_IFR_NVDATA.SubnetMask' # for reference
+ questionid: 259
+ varstoreid: 1 # Optional Input
+ varname: 34 # Question VarName
+ varoffset: 34 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Local NetMask'
+ help: 'Enter NetMask in dotted-decimal notation. Example: 255.255.255.0
+'
+ opcodeflags: 0x0 # optional input
+ minsize: 7
+ maxsize: 15
+ - string:
+ condition: 'suppressif ideqval IP4_CONFIG2_IFR_NVDATA.DhcpEnable == 0x01 OR ideqval IP4_CONFIG2_IFR_NVDATA.Configure == 0x00'
+ position: 'IP4_CONFIG2_NVDATA_GUID.FORMID_MAIN_FORM.IP4_CONFIG2_IFR_NVDATA.GatewayAddress' # for reference
+ questionid: 260
+ varstoreid: 1 # Optional Input
+ varname: 66 # Question VarName
+ varoffset: 66 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Local Gateway'
+ help: 'Enter Gateway in dotted-decimal notation. Example: 192.168.10.1
+'
+ opcodeflags: 0x0 # optional input
+ minsize: 7
+ maxsize: 15
+ - string:
+ condition: 'suppressif ideqval IP4_CONFIG2_IFR_NVDATA.DhcpEnable == 0x01 OR ideqval IP4_CONFIG2_IFR_NVDATA.Configure == 0x00'
+ position: 'IP4_CONFIG2_NVDATA_GUID.FORMID_MAIN_FORM.IP4_CONFIG2_IFR_NVDATA.DnsAddress' # for reference
+ questionid: 261
+ varstoreid: 1 # Optional Input
+ varname: 98 # Question VarName
+ varoffset: 98 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Local DNS Servers'
+ help: 'Enter DNS Servers in dotted-decimal notation. Example: 192.168.10.8 192.168.10.9
+'
+ opcodeflags: 0x0 # optional input
+ minsize: 7
+ maxsize: 255
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - text:
+ help: 'Save Changes and Exit'
+ prompt: 'Save Changes and Exit'
+ flags: 4 # Optional Input, Question Flags
+ key: 0x0106 # Optional Input, Question QuestionId
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Config2Processed.yml b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Config2Processed.yml
new file mode 100644
index 000000000000..f4013b54cf8a
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Config2Processed.yml
@@ -0,0 +1,74 @@
+defines:
+ EFI_NETWORK_DEVICE_CLASS: 4
+formset:
+ class: 4
+ component:
+ - varstore:
+ guid: '{0x9b942747, 0x154e, 0x4d29, {0xa4, 0x36, 0xbf, 0x71, 0x0, 0xc8, 0xb5, 0x3b}}'
+ name: IP4_CONFIG2_IFR_NVDATA
+ type: IP4_CONFIG2_IFR_NVDATA
+ - form:
+ component:
+ - checkbox:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0007)
+ prompt: STRING_TOKEN(0x0006)
+ varid: IP4_CONFIG2_IFR_NVDATA.Configure
+ - suppressif:
+ component:
+ - checkbox:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0008)
+ prompt: STRING_TOKEN(0x0008)
+ varid: IP4_CONFIG2_IFR_NVDATA.DhcpEnable
+ expression: ideqval IP4_CONFIG2_IFR_NVDATA.Configure == 0x00
+ - suppressif:
+ component:
+ - string:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x000A)
+ key: 258
+ maxsize: 15
+ minsize: 7
+ prompt: STRING_TOKEN(0x0009)
+ varid: IP4_CONFIG2_IFR_NVDATA.StationAddress
+ - string:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x000C)
+ key: 259
+ maxsize: 15
+ minsize: 7
+ prompt: STRING_TOKEN(0x000B)
+ varid: IP4_CONFIG2_IFR_NVDATA.SubnetMask
+ - string:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x000E)
+ key: 260
+ maxsize: 15
+ minsize: 7
+ prompt: STRING_TOKEN(0x000D)
+ varid: IP4_CONFIG2_IFR_NVDATA.GatewayAddress
+ - string:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0010)
+ key: 261
+ maxsize: 255
+ minsize: 7
+ prompt: STRING_TOKEN(0x000F)
+ varid: IP4_CONFIG2_IFR_NVDATA.DnsAddress
+ expression: ideqval IP4_CONFIG2_IFR_NVDATA.DhcpEnable == 0x01 OR ideqval IP4_CONFIG2_IFR_NVDATA.Configure == 0x00
+ - subtitle:
+ text: STRING_TOKEN(0x0012)
+ - text:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0011)
+ key: 262
+ prompt: STRING_TOKEN(0x0011)
+ formid: 1
+ title: STRING_TOKEN(0x0004)
+ guid: '{0x9b942747, 0x154e, 0x4d29, {0xa4, 0x36, 0xbf, 0x71, 0x0, 0xc8, 0xb5, 0x3b}}'
+ help: STRING_TOKEN(0x0003)
+ subclass: 3
+ title: STRING_TOKEN(0x0002)
+include:
+- Ip4NvData.h
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Dxe.dll b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Dxe.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e1d8730a0ec88457c83380ad0ffb955b48093b16
GIT binary patch
literal 87968
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
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Dxe.efi b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Dxe.efi
new file mode 100644
index 0000000000000000000000000000000000000000..5352fb821c0c5f144f4a937d2bbaed7a2cea5b32
GIT binary patch
literal 87968
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
L)$3Mwt=|6u3?v{_
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Dxe.map b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Dxe.map
new file mode 100644
index 000000000000..6c72529b136a
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/DEBUG/Ip4Dxe.map
@@ -0,0 +1,1059 @@
+ Ip4Dxe
+
+ Timestamp is 64881a46 (Tue Jun 13 15:27:02 2023)
+
+ Preferred load address is 0000000000000000
+
+ Start Length Name Class
+ 0001:00000000 00000318H .text CODE
+ 0001:00000318 000103a1H .text$mn CODE
+ 0002:00000000 00003114H .rdata DATA
+ 0002:00003114 0000012cH .rdata$zzzdbg DATA
+ 0003:00000000 000008e0H .data DATA
+ 0003:000008e0 000000c0H .bss DATA
+ 0004:00000000 00000a68H .pdata DATA
+ 0005:00000000 0000076cH .xdata DATA
+
+ Address Publics by Value Rva+Base Lib:Object
+
+ 0000:00000000 __guard_longjmp_table 0000000000000000 <absolute>
+ 0000:00000000 __dynamic_value_reloc_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_longjmp_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_iat_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_iat_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_flags 0000000000000000 <absolute>
+ 0001:00000000 InternalMemZeroMem 00000000000002c0 BaseMemoryLibRepStr:ZeroMem.obj
+ 0001:00000020 InternalMemCopyMem 00000000000002e0 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000060 InternalMemCompareMem 0000000000000320 BaseMemoryLibRepStr:CompareMem.obj
+ 0001:00000080 InternalMemSetMem 0000000000000340 BaseMemoryLibRepStr:SetMem.obj
+ 0001:000000a0 InternalMemSetMem16 0000000000000360 BaseMemoryLibRepStr:SetMem16.obj
+ 0001:000000c0 InternalMemSetMem64 0000000000000380 BaseMemoryLibRepStr:SetMem64.obj
+ 0001:000000e0 InternalMemSetMem32 00000000000003a0 BaseMemoryLibRepStr:SetMem32.obj
+ 0001:00000100 CpuPause 00000000000003c0 BaseLib:CpuPause.obj
+ 0001:00000110 SevNoRepIo 00000000000003d0 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000150 SevIoReadFifo8 0000000000000410 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000172 SevIoReadFifo16 0000000000000432 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000198 SevIoReadFifo32 0000000000000458 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001bb SevIoWriteFifo8 000000000000047b BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001dd SevIoWriteFifo16 000000000000049d BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000203 SevIoWriteFifo32 00000000000004c3 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000230 TdVmCall 00000000000004f0 BaseLib:TdVmcall.obj
+ 0001:000002c0 TdCall 0000000000000580 BaseLib:TdCall.obj
+ 0001:00000318 _DriverUnloadHandler 00000000000005d8 f UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0001:0000049c _ModuleEntryPoint 000000000000075c f UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0001:00000518 ProcessLibraryConstructorList 00000000000007d8 f Ip4Dxe:AutoGen.obj
+ 0001:000007e8 ProcessModuleEntryPointList 0000000000000aa8 f Ip4Dxe:AutoGen.obj
+ 0001:000008b4 IpSec2InstalledCallback 0000000000000b74 f Ip4Dxe:Ip4Driver.obj
+ 0001:00000904 Ip4DriverBindingSupported 0000000000000bc4 f Ip4Dxe:Ip4Driver.obj
+ 0001:0000097c Ip4CreateService 0000000000000c3c f Ip4Dxe:Ip4Driver.obj
+ 0001:00000cfc Ip4CleanService 0000000000000fbc f Ip4Dxe:Ip4Driver.obj
+ 0001:00000e64 Ip4DestroyChildEntryInHandleBuffer 0000000000001124 f Ip4Dxe:Ip4Driver.obj
+ 0001:00000f00 Ip4DriverBindingStart 00000000000011c0 f Ip4Dxe:Ip4Driver.obj
+ 0001:00001188 Ip4DriverBindingStop 0000000000001448 f Ip4Dxe:Ip4Driver.obj
+ 0001:00001414 Ip4ServiceBindingCreateChild 00000000000016d4 f Ip4Dxe:Ip4Driver.obj
+ 0001:00001580 Ip4ServiceBindingDestroyChild 0000000000001840 f Ip4Dxe:Ip4Driver.obj
+ 0001:000017a4 EfiIp4GetModeData 0000000000001a64 f Ip4Dxe:Ip4Impl.obj
+ 0001:00001978 Ip4ServiceConfigMnp 0000000000001c38 f Ip4Dxe:Ip4Impl.obj
+ 0001:00001a24 Ip4InitProtocol 0000000000001ce4 f Ip4Dxe:Ip4Impl.obj
+ 0001:00001b10 Ip4ConfigProtocol 0000000000001dd0 f Ip4Dxe:Ip4Impl.obj
+ 0001:00001dd4 Ip4CleanProtocol 0000000000002094 f Ip4Dxe:Ip4Impl.obj
+ 0001:00001f04 EfiIp4Configure 00000000000021c4 f Ip4Dxe:Ip4Impl.obj
+ 0001:000020c8 Ip4Groups 0000000000002388 f Ip4Dxe:Ip4Impl.obj
+ 0001:00002544 EfiIp4Groups 0000000000002804 f Ip4Dxe:Ip4Impl.obj
+ 0001:00002670 EfiIp4Routes 0000000000002930 f Ip4Dxe:Ip4Impl.obj
+ 0001:00002884 Ip4TokenExist 0000000000002b44 f Ip4Dxe:Ip4Impl.obj
+ 0001:000028a4 Ip4TxTokenValid 0000000000002b64 f Ip4Dxe:Ip4Impl.obj
+ 0001:00002a8c Ip4FreeTxToken 0000000000002d4c f Ip4Dxe:Ip4Impl.obj
+ 0001:00002b04 Ip4OnPacketSent 0000000000002dc4 f Ip4Dxe:Ip4Impl.obj
+ 0001:00002b48 EfiIp4Transmit 0000000000002e08 f Ip4Dxe:Ip4Impl.obj
+ 0001:00002f80 EfiIp4Receive 0000000000003240 f Ip4Dxe:Ip4Impl.obj
+ 0001:00003088 Ip4CancelTxTokens 0000000000003348 f Ip4Dxe:Ip4Impl.obj
+ 0001:00003100 Ip4CancelRxTokens 00000000000033c0 f Ip4Dxe:Ip4Impl.obj
+ 0001:00003164 Ip4Cancel 0000000000003424 f Ip4Dxe:Ip4Impl.obj
+ 0001:00003244 EfiIp4Cancel 0000000000003504 f Ip4Dxe:Ip4Impl.obj
+ 0001:0000330c EfiIp4Poll 00000000000035cc f Ip4Dxe:Ip4Impl.obj
+ 0001:00003380 Ip4SentPacketTicking 0000000000003640 f Ip4Dxe:Ip4Impl.obj
+ 0001:000033e8 Ip4TimerTicking 00000000000036a8 f Ip4Dxe:Ip4Impl.obj
+ 0001:0000356c Ip4TimerReconfigChecking 000000000000382c f Ip4Dxe:Ip4Impl.obj
+ 0001:00003624 Ip4FreeAssembleEntry 00000000000038e4 f Ip4Dxe:Ip4Input.obj
+ 0001:00003684 Ip4CleanAssembleTable 0000000000003944 f Ip4Dxe:Ip4Input.obj
+ 0001:000036f4 Ip4TrimPacket 00000000000039b4 f Ip4Dxe:Ip4Input.obj
+ 0001:000037b4 Ip4OnFreeFragments 0000000000003a74 f Ip4Dxe:Ip4Input.obj
+ 0001:000037bc Ip4Reassemble 0000000000003a7c f Ip4Dxe:Ip4Input.obj
+ 0001:00003b7c Ip4IpSecFree 0000000000003e3c f Ip4Dxe:Ip4Input.obj
+ 0001:00003bb0 Ip4IpSecProcessPacket 0000000000003e70 f Ip4Dxe:Ip4Input.obj
+ 0001:00003eb8 Ip4PreProcessPacket 0000000000004178 f Ip4Dxe:Ip4Input.obj
+ 0001:0000405c Ip4AccpetFrame 000000000000431c f Ip4Dxe:Ip4Input.obj
+ 0001:00004268 Ip4OnRecyclePacket 0000000000004528 f Ip4Dxe:Ip4Input.obj
+ 0001:000042ec Ip4WrapRxData 00000000000045ac f Ip4Dxe:Ip4Input.obj
+ 0001:00004438 Ip4InstanceDeliverPacket 00000000000046f8 f Ip4Dxe:Ip4Input.obj
+ 0001:00004648 Ip4InterfaceEnquePacket 0000000000004908 f Ip4Dxe:Ip4Input.obj
+ 0001:0000495c Ip4Demultiplex 0000000000004c1c f Ip4Dxe:Ip4Input.obj
+ 0001:00004a30 Ip4ComponentNameGetDriverName 0000000000004cf0 f Ip4Dxe:ComponentName.obj
+ 0001:00004a64 UpdateName 0000000000004d24 f Ip4Dxe:ComponentName.obj
+ 0001:00004b58 Ip4ComponentNameGetControllerName 0000000000004e18 f Ip4Dxe:ComponentName.obj
+ 0001:00004c80 Ip4FreeLinkTxToken 0000000000004f40 f Ip4Dxe:Ip4If.obj
+ 0001:00004ccc Ip4FreeArpQue 0000000000004f8c f Ip4Dxe:Ip4If.obj
+ 0001:00004d34 Ip4FreeFrameRxToken 0000000000004ff4 f Ip4Dxe:Ip4If.obj
+ 0001:00004d80 Ip4CancelFrameArp 0000000000005040 f Ip4Dxe:Ip4If.obj
+ 0001:00004e1c Ip4CancelFrames 00000000000050dc f Ip4Dxe:Ip4If.obj
+ 0001:00004ef0 Ip4CreateInterface 00000000000051b0 f Ip4Dxe:Ip4If.obj
+ 0001:0000500c Ip4SetAddress 00000000000052cc f Ip4Dxe:Ip4If.obj
+ 0001:000051c0 Ip4CancelInstanceFrame 0000000000005480 f Ip4Dxe:Ip4If.obj
+ 0001:000051c8 Ip4CancelReceive 0000000000005488 f Ip4Dxe:Ip4If.obj
+ 0001:0000522c Ip4FreeInterface 00000000000054ec f Ip4Dxe:Ip4If.obj
+ 0001:00005398 Ip4SendFrameToDefaultRoute 0000000000005658 f Ip4Dxe:Ip4If.obj
+ 0001:00005524 Ip4OnArpResolvedDpc 00000000000057e4 f Ip4Dxe:Ip4If.obj
+ 0001:00005684 Ip4OnArpResolved 0000000000005944 f Ip4Dxe:Ip4If.obj
+ 0001:000056a0 Ip4OnFrameSentDpc 0000000000005960 f Ip4Dxe:Ip4If.obj
+ 0001:00005704 Ip4OnFrameSent 00000000000059c4 f Ip4Dxe:Ip4If.obj
+ 0001:00005720 Ip4SendFrame 00000000000059e0 f Ip4Dxe:Ip4If.obj
+ 0001:00005aec Ip4RecycleFrame 0000000000005dac f Ip4Dxe:Ip4If.obj
+ 0001:00005b3c Ip4OnFrameReceivedDpc 0000000000005dfc f Ip4Dxe:Ip4If.obj
+ 0001:00005c50 Ip4OnFrameReceived 0000000000005f10 f Ip4Dxe:Ip4If.obj
+ 0001:00005c6c Ip4ReceiveFrame 0000000000005f2c f Ip4Dxe:Ip4If.obj
+ 0001:00005d84 Ip4Config2DestroyDhcp4 0000000000006044 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00005e58 Ip4Config2OnPolicyChanged 0000000000006118 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00005f40 Ip4Config2SignalEvent 0000000000006200 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00005f5c Ip4Config2ReadConfigData 000000000000621c f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:0000610c Ip4Config2WriteConfigData 00000000000063cc f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00006244 Ip4Config2BuildDefaultRouteTable 0000000000006504 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00006344 Ip4Config2OnDhcp4SbInstalled 0000000000006604 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00006368 Ip4Config2SetDefaultAddr 0000000000006628 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00006540 Ip4Config2SetDnsServerWorker 0000000000006800 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:0000673c Ip4Config2OnDhcp4Complete 00000000000069fc f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00006a00 Ip4StartAutoConfig 0000000000006cc0 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00006c9c Ip4Config2GetIfInfo 0000000000006f5c f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00006dd8 Ip4Config2SetPolicy 0000000000007098 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00006f9c Ip4Config2SetManualAddress 000000000000725c f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00007240 Ip4Config2SetGateway 0000000000007500 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:0000755c Ip4Config2SetDnsServer 000000000000781c f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:000075e4 EfiIp4Config2SetData 00000000000078a4 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00007794 EfiIp4Config2GetData 0000000000007a54 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:000078b8 EfiIp4Config2RegisterDataNotify 0000000000007b78 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:000079b0 EfiIp4Config2UnregisterDataNotify 0000000000007c70 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00007aa0 Ip4Config2InitInstance 0000000000007d60 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00007cd4 Ip4Config2CleanInstance 0000000000007f94 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00007d8c Ip4AutoReconfigCallBackDpc 000000000000804c f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00007de0 Ip4AutoReconfigCallBack 00000000000080a0 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00007dfc Ip4InitIgmp 00000000000080bc f Ip4Dxe:Ip4Igmp.obj
+ 0001:00007ed8 Ip4SendIgmpMessage 0000000000008198 f Ip4Dxe:Ip4Igmp.obj
+ 0001:00007fec Ip4IgmpHandle 00000000000082ac f Ip4Dxe:Ip4Igmp.obj
+ 0001:00008174 Ip4FreeRouteEntry 0000000000008434 f Ip4Dxe:Ip4Route.obj
+ 0001:000081b4 Ip4FreeRouteCacheEntry 0000000000008474 f Ip4Dxe:Ip4Route.obj
+ 0001:000081f4 Ip4CreateRouteTable 00000000000084b4 f Ip4Dxe:Ip4Route.obj
+ 0001:00008274 Ip4FreeRouteTable 0000000000008534 f Ip4Dxe:Ip4Route.obj
+ 0001:0000835c Ip4AddRoute 000000000000861c f Ip4Dxe:Ip4Route.obj
+ 0001:00008444 Ip4DelRoute 0000000000008704 f Ip4Dxe:Ip4Route.obj
+ 0001:0000853c Ip4FindRouteCache 00000000000087fc f Ip4Dxe:Ip4Route.obj
+ 0001:00008594 Ip4Route 0000000000008854 f Ip4Dxe:Ip4Route.obj
+ 0001:0000874c Ip4BuildEfiRouteTable 0000000000008a0c f Ip4Dxe:Ip4Route.obj
+ 0001:000088b8 Ip4PrependHead 0000000000008b78 f Ip4Dxe:Ip4Output.obj
+ 0001:00008a30 Ip4SysPacketSent 0000000000008cf0 f Ip4Dxe:Ip4Output.obj
+ 0001:00008a38 Ip4Output 0000000000008cf8 f Ip4Dxe:Ip4Output.obj
+ 0001:00008e14 Ip4CancelPacketFragments 00000000000090d4 f Ip4Dxe:Ip4Output.obj
+ 0001:00008e28 Ip4ProcessIcmpRedirect 00000000000090e8 f Ip4Dxe:Ip4Icmp.obj
+ 0001:00008f90 Ip4IcmpReplyEcho 0000000000009250 f Ip4Dxe:Ip4Icmp.obj
+ 0001:000090a4 Ip4IcmpHandle 0000000000009364 f Ip4Dxe:Ip4Icmp.obj
+ 0001:000091d4 Ip4GetHostCast 0000000000009494 f Ip4Dxe:Ip4Common.obj
+ 0001:000092d0 Ip4NtohHead 0000000000009590 f Ip4Dxe:Ip4Common.obj
+ 0001:0000933c Ip4StationAddressValid 00000000000095fc f Ip4Dxe:Ip4Common.obj
+ 0001:00009398 Ip4OptionIsValid 0000000000009658 f Ip4Dxe:Ip4Option.obj
+ 0001:00009468 Ip4CopyOption 0000000000009728 f Ip4Dxe:Ip4Option.obj
+ 0001:00009584 Ip4Config2StrToIp 0000000000009844 f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:00009624 Ip4Config2StrToIpList 00000000000098e4 f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:00009860 Ip4Config2IpToStr 0000000000009b20 f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:000098a0 Ip4Config2IpListToStr 0000000000009b60 f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:000099ac Ip4Config2ManualAddressNotify 0000000000009c6c f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:000099b0 Ip4Config2ConvertConfigNvDataToIfrNvData 0000000000009c70 f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:00009c00 Ip4Config2ConvertIfrNvDataToConfigNvData 0000000000009ec0 f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:0000a134 Ip4FormExtractConfig 000000000000a3f4 f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:0000a364 Ip4FormRouteConfig 000000000000a624 f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:0000a4bc Ip4FormCallback 000000000000a77c f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:0000a7cc Ip4Config2FormInit 000000000000aa8c f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:0000aa60 Ip4Config2FormUnload 000000000000ad20 f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:0000abcc ZeroMem 000000000000ae8c f BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0001:0000ac30 CopyMem 000000000000aef0 f BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0001:0000accc CompareMem 000000000000af8c f BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0001:0000ada4 CopyGuid 000000000000b064 f BaseMemoryLibRepStr:MemLibGuid.obj
+ 0001:0000ae28 InternalBaseLibIsListValid 000000000000b0e8 f BaseLib:LinkedList.obj
+ 0001:0000ae94 InitializeListHead 000000000000b154 f BaseLib:LinkedList.obj
+ 0001:0000aecc InsertHeadList 000000000000b18c f BaseLib:LinkedList.obj
+ 0001:0000af1c InsertTailList 000000000000b1dc f BaseLib:LinkedList.obj
+ 0001:0000af70 IsListEmpty 000000000000b230 f BaseLib:LinkedList.obj
+ 0001:0000afa8 RemoveEntryList 000000000000b268 f BaseLib:LinkedList.obj
+ 0001:0000aff0 StrLen 000000000000b2b0 f BaseLib:String.obj
+ 0001:0000b084 StrnCmp 000000000000b344 f BaseLib:String.obj
+ 0001:0000b16c StrStr 000000000000b42c f BaseLib:String.obj
+ 0001:0000b234 AsciiStrLen 000000000000b4f4 f BaseLib:String.obj
+ 0001:0000b2a0 AsciiStrnCmp 000000000000b560 f BaseLib:String.obj
+ 0001:0000b36c ReadUnaligned32 000000000000b62c f BaseLib:Unaligned.obj
+ 0001:0000b39c ReadUnaligned64 000000000000b65c f BaseLib:Unaligned.obj
+ 0001:0000b3cc StrnLenS 000000000000b68c f BaseLib:SafeString.obj
+ 0001:0000b434 StrCpyS 000000000000b6f4 f BaseLib:SafeString.obj
+ 0001:0000b5c4 StrnCpyS 000000000000b884 f BaseLib:SafeString.obj
+ 0001:0000b79c StrCatS 000000000000ba5c f BaseLib:SafeString.obj
+ 0001:0000b984 AsciiStrnLenS 000000000000bc44 f BaseLib:SafeString.obj
+ 0001:0000b9a8 UnicodeSPrint 000000000000bc68 f BasePrintLib:PrintLib.obj
+ 0001:0000ba28 UnicodeValueToStringS 000000000000bce8 f BasePrintLib:PrintLib.obj
+ 0001:0000ba88 AsciiSPrint 000000000000bd48 f BasePrintLib:PrintLib.obj
+ 0001:0000bab0 BasePrintLibFillBuffer 000000000000bd70 f BasePrintLib:PrintLibInternal.obj
+ 0001:0000bae4 BasePrintLibValueToString 000000000000bda4 f BasePrintLib:PrintLibInternal.obj
+ 0001:0000bb5c BasePrintLibConvertValueToStringS 000000000000be1c f BasePrintLib:PrintLibInternal.obj
+ 0001:0000bd10 BasePrintLibSPrintMarker 000000000000bfd0 f BasePrintLib:PrintLibInternal.obj
+ 0001:0000cb94 BasePrintLibSPrint 000000000000ce54 f BasePrintLib:PrintLibInternal.obj
+ 0001:0000cbb8 DebugPrint 000000000000ce78 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:0000cbdc DebugPrintMarker 000000000000ce9c f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:0000cc8c DebugAssert 000000000000cf4c f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:0000cd24 InternalAllocatePool 000000000000cfe4 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:0000cd54 AllocateZeroPool 000000000000d014 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:0000cd80 InternalAllocateCopyPool 000000000000d040 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:0000cdf8 FreePool 000000000000d0b8 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:0000ce3c DevicePathSubType 000000000000d0fc f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:0000ce6c DevicePathNodeLength 000000000000d12c f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:0000ceb8 NextDevicePathNode 000000000000d178 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:0000cef0 IsDevicePathEndType 000000000000d1b0 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:0000cf3c IsDevicePathEnd 000000000000d1fc f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:0000cf90 SetDevicePathNodeLength 000000000000d250 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:0000cfe0 DevicePathFromHandle 000000000000d2a0 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:0000d014 CompareIso639LanguageCode 000000000000d2d4 f UefiLib:UefiLib.obj
+ 0001:0000d07c EfiCreateProtocolNotifyEvent 000000000000d33c f UefiLib:UefiLib.obj
+ 0001:0000d1b8 EfiAcquireLockOrFail 000000000000d478 f UefiLib:UefiLib.obj
+ 0001:0000d230 EfiReleaseLock 000000000000d4f0 f UefiLib:UefiLib.obj
+ 0001:0000d290 IsLanguageSupported 000000000000d550 f UefiLib:UefiLib.obj
+ 0001:0000d310 LookupUnicodeString2 000000000000d5d0 f UefiLib:UefiLib.obj
+ 0001:0000d41c AddUnicodeString2 000000000000d6dc f UefiLib:UefiLib.obj
+ 0001:0000d5f0 FreeUnicodeStringTable 000000000000d8b0 f UefiLib:UefiLib.obj
+ 0001:0000d658 GetEfiGlobalVariable2 000000000000d918 f UefiLib:UefiLib.obj
+ 0001:0000d750 GetBestLanguage 000000000000da10 f UefiLib:UefiLib.obj
+ 0001:0000d894 UefiLibGetStringWidth 000000000000db54 f UefiLib:Console.obj
+ 0001:0000d93c CreatePopUp 000000000000dbfc f UefiLib:Console.obj
+ 0001:0000dd00 NetGetIpClass 000000000000dfc0 f DxeNetLib:DxeNetLib.obj
+ 0001:0000dd38 NetIp4IsUnicast 000000000000dff8 f DxeNetLib:DxeNetLib.obj
+ 0001:0000ddd0 NetListRemoveHead 000000000000e090 f DxeNetLib:DxeNetLib.obj
+ 0001:0000de28 NetListInsertBefore 000000000000e0e8 f DxeNetLib:DxeNetLib.obj
+ 0001:0000de7c NetDestroyLinkList 000000000000e13c f DxeNetLib:DxeNetLib.obj
+ 0001:0000df88 NetMapInit 000000000000e248 f DxeNetLib:DxeNetLib.obj
+ 0001:0000dfcc NetMapClean 000000000000e28c f DxeNetLib:DxeNetLib.obj
+ 0001:0000e0b4 NetMapIsEmpty 000000000000e374 f DxeNetLib:DxeNetLib.obj
+ 0001:0000e0e8 NetMapAllocItem 000000000000e3a8 f DxeNetLib:DxeNetLib.obj
+ 0001:0000e16c NetMapInsertTail 000000000000e42c f DxeNetLib:DxeNetLib.obj
+ 0001:0000e1e8 NetMapFindKey 000000000000e4a8 f DxeNetLib:DxeNetLib.obj
+ 0001:0000e23c NetMapRemoveItem 000000000000e4fc f DxeNetLib:DxeNetLib.obj
+ 0001:0000e2e4 NetMapIterate 000000000000e5a4 f DxeNetLib:DxeNetLib.obj
+ 0001:0000e36c NetLibCreateServiceChild 000000000000e62c f DxeNetLib:DxeNetLib.obj
+ 0001:0000e400 NetLibDestroyServiceChild 000000000000e6c0 f DxeNetLib:DxeNetLib.obj
+ 0001:0000e490 NetLibGetSnpHandle 000000000000e750 f DxeNetLib:DxeNetLib.obj
+ 0001:0000e558 NetLibGetVlanId 000000000000e818 f DxeNetLib:DxeNetLib.obj
+ 0001:0000e5ac NetLibGetMacString 000000000000e86c f DxeNetLib:DxeNetLib.obj
+ 0001:0000e7fc NetLibGetNicHandle 000000000000eabc f DxeNetLib:DxeNetLib.obj
+ 0001:0000e8a4 NetbufAllocStruct 000000000000eb64 f DxeNetLib:NetBuffer.obj
+ 0001:0000e95c NetbufAlloc 000000000000ec1c f DxeNetLib:NetBuffer.obj
+ 0001:0000ea04 NetbufFreeVector 000000000000ecc4 f DxeNetLib:NetBuffer.obj
+ 0001:0000ead0 NetbufFree 000000000000ed90 f DxeNetLib:NetBuffer.obj
+ 0001:0000eb58 NetbufClone 000000000000ee18 f DxeNetLib:NetBuffer.obj
+ 0001:0000ec40 NetbufDuplicate 000000000000ef00 f DxeNetLib:NetBuffer.obj
+ 0001:0000ece4 NetbufGetByte 000000000000efa4 f DxeNetLib:NetBuffer.obj
+ 0001:0000ed88 NetbufSetBlock 000000000000f048 f DxeNetLib:NetBuffer.obj
+ 0001:0000ee6c NetbufSetBlockOp 000000000000f12c f DxeNetLib:NetBuffer.obj
+ 0001:0000ef18 NetbufGetFragmentFree 000000000000f1d8 f DxeNetLib:NetBuffer.obj
+ 0001:0000ef20 NetbufGetFragment 000000000000f1e0 f DxeNetLib:NetBuffer.obj
+ 0001:0000f18c NetbufFromExt 000000000000f44c f DxeNetLib:NetBuffer.obj
+ 0001:0000f40c NetbufBuildExt 000000000000f6cc f DxeNetLib:NetBuffer.obj
+ 0001:0000f480 NetbufReserve 000000000000f740 f DxeNetLib:NetBuffer.obj
+ 0001:0000f570 NetbufAllocSpace 000000000000f830 f DxeNetLib:NetBuffer.obj
+ 0001:0000f730 NetblockTrim 000000000000f9f0 f DxeNetLib:NetBuffer.obj
+ 0001:0000f78c NetbufTrim 000000000000fa4c f DxeNetLib:NetBuffer.obj
+ 0001:0000f868 NetbufCopy 000000000000fb28 f DxeNetLib:NetBuffer.obj
+ 0001:0000f9e8 NetblockChecksum 000000000000fca8 f DxeNetLib:NetBuffer.obj
+ 0001:0000fa2c NetbufChecksum 000000000000fcec f DxeNetLib:NetBuffer.obj
+ 0001:0000facc NetIpSecNetbufFree 000000000000fd8c f DxeNetLib:NetBuffer.obj
+ 0001:0000fba8 HiiSetString 000000000000fe68 f UefiHiiLib:HiiString.obj
+ 0001:0000fcf8 HiiGetString 000000000000ffb8 f UefiHiiLib:HiiString.obj
+ 0001:0000fe54 HiiAddPackages 0000000000010114 f UefiHiiLib:HiiLib.obj
+ 0001:0000ff90 InternalHiiBrowserCallback 0000000000010250 f UefiHiiLib:HiiLib.obj
+ 0001:00010084 HiiConstructConfigHdr 0000000000010344 f UefiHiiLib:HiiLib.obj
+ 0001:000102c8 InternalHiiCompareSubString 0000000000010588 f UefiHiiLib:HiiLib.obj
+ 0001:000103e4 HiiIsConfigHdrMatch 00000000000106a4 f UefiHiiLib:HiiLib.obj
+ 0001:0001047c HiiGetBrowserData 000000000001073c f UefiHiiLib:HiiLib.obj
+ 0001:00010550 HiiGetSupportedLanguages 0000000000010810 f UefiHiiLib:HiiLanguage.obj
+ 0001:000105f4 SetMem16 00000000000108b4 f BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00000000 ??_C@_0CB@DMEJJJHA@?6ASSERT_EFI_ERROR?5?$CIStatus?5?$DN?5?$CFr?$CJ?6@ 0000000000010980 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:00000028 ??_C@_0CH@BBNBJKHK@?$CB?$CI?$CI?$CIINTN?$CJ?$CIRETURN_STATUS?$CJ?$CIStatus?$CJ@ 00000000000109a8 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:00000050 ??_C@_0FI@PIDCFOGG@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000109d0 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:000000b0 ??_C@_0GN@CFDCLHHH@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000010a30 Ip4Dxe:AutoGen.obj
+ 0002:00000120 ??_C@_0BI@KMGFDNBP@Service?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010aa0 Ip4Dxe:Ip4Driver.obj
+ 0002:00000138 ??_C@_0DP@EJPHFFMK@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000010ab8 Ip4Dxe:Ip4Driver.obj
+ 0002:00000178 ??_C@_0BF@NDBIKIKC@CR?5has?5Bad?5Signature?$AA@ 0000000000010af8 Ip4Dxe:Ip4Driver.obj
+ 0002:00000190 ??_C@_0BF@EKNEMLIP@IpSb?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010b10 Ip4Dxe:Ip4Driver.obj
+ 0002:000001a8 ??_C@_0DN@EENBJKBM@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000010b28 Ip4Dxe:Ip4Impl.obj
+ 0002:000001e8 ??_C@_0DH@GPPCAEPK@?$CIIpSb?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CIIpIns@ 0000000000010b68 Ip4Dxe:Ip4Impl.obj
+ 0002:00000220 ??_C@_0BN@KGHJECMC@GroupAddress?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010ba0 Ip4Dxe:Ip4Impl.obj
+ 0002:00000240 ??_C@_0CD@NKJCDDFI@IpInstance?9?$DOGroups?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?5@ 0000000000010bc0 Ip4Dxe:Ip4Impl.obj
+ 0002:00000268 ??_C@_0L@BCBMKFKO@Index?5?$DN?$DN?51?$AA@ 0000000000010be8 Ip4Dxe:Ip4Impl.obj
+ 0002:00000278 ??_C@_0BM@HFKMLLMO@Ip4Instance?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010bf8 Ip4Dxe:Ip4Impl.obj
+ 0002:00000298 ??_C@_0BF@HCDENPCL@Wrap?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010c18 Ip4Dxe:Ip4Impl.obj
+ 0002:000002b0 ??_C@_0GL@OOIFHKIL@?$CI?$CIIpSb?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CI?$CIIp@ 0000000000010c30 Ip4Dxe:Ip4Impl.obj
+ 0002:00000320 ??_C@_0CI@EHDAHPG@Info?9?$DOStart?5?$CL?5Info?9?$DOLength?5?$DN?$DN?5In@ 0000000000010ca0 Ip4Dxe:Ip4Input.obj
+ 0002:00000348 ??_C@_0DO@NKHPKLIK@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000010cc8 Ip4Dxe:Ip4Input.obj
+ 0002:00000388 ??_C@_0CL@KNPFBFFJ@?$CIInfo?9?$DOStart?5?$DM?5End?$CJ?5?$CG?$CG?5?$CIStart?5?$DM?5@ 0000000000010d08 Ip4Dxe:Ip4Input.obj
+ 0002:000003b8 ??_C@_0BH@BHMOGOAJ@IpHead?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010d38 Ip4Dxe:Ip4Input.obj
+ 0002:000003d0 ??_C@_0BP@DJKJLKPN@Assemble?9?$DOHead?5?$DN?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010d50 Ip4Dxe:Ip4Input.obj
+ 0002:000003f0 ??_C@_0BP@GCONLHGI@Assemble?9?$DOInfo?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010d70 Ip4Dxe:Ip4Input.obj
+ 0002:00000410 ??_C@_0BH@BFPFAGHP@mIpSec?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010d90 Ip4Dxe:Ip4Input.obj
+ 0002:00000428 ??_C@_0BF@FBEMMEEB@Head?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010da8 Ip4Dxe:Ip4Input.obj
+ 0002:00000440 ??_C@_0BH@CELONLOG@Packet?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010dc0 Ip4Dxe:Ip4Input.obj
+ 0002:00000460 ??_C@_0EI@IDGMIBFC@?$CB?$CI?$CI?$CIWrap?9?$DOPacket?$CJ?9?$DORefCnt?5?$DO?51?$CJ?5?$HM@ 0000000000010de0 Ip4Dxe:Ip4Input.obj
+ 0002:000004a8 ??_C@_0BP@IOBAJECI@Packet?9?$DOIp?4Ip4?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010e28 Ip4Dxe:Ip4Input.obj
+ 0002:000004c8 ??_C@_0BL@COBOANOI@IpInstance?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010e48 Ip4Dxe:Ip4Input.obj
+ 0002:000004f0 ??_C@_0HH@EHPECKLJ@?$CI?$CIIpInstance?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG@ 0000000000010e70 Ip4Dxe:Ip4Input.obj
+ 0002:00000568 ??_C@_03LKLGDMJI@eng?$AA@ 0000000000010ee8 Ip4Dxe:ComponentName.obj
+ 0002:0000056c ??_C@_02LFNMGJAP@en?$AA@ 0000000000010eec Ip4Dxe:ComponentName.obj
+ 0002:00000570 ??_C@_06DALJLGPG@eng?$DLen?$AA@ 0000000000010ef0 Ip4Dxe:ComponentName.obj
+ 0002:00000578 ??_C@_1DG@IHGHICFA@?$AAI?$AAP?$AA4?$AA?5?$AAN?$AAe?$AAt?$AAw?$AAo?$AAr?$AAk?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAD?$AAr?$AAi?$AAv?$AAe?$AAr?$AA?$AA@ 0000000000010ef8 Ip4Dxe:ComponentName.obj
+ 0002:000005b0 ??_C@_1CG@HLBCDCEC@?$AAI?$AAP?$AAv?$AA4?$AA?5?$AA?$CI?$AAN?$AAo?$AAt?$AA?5?$AAs?$AAt?$AAa?$AAr?$AAt?$AAe?$AAd?$AA?$CJ?$AA?$AA@ 0000000000010f30 Ip4Dxe:ComponentName.obj
+ 0002:000005d8 ??_C@_1DC@IHJIMGND@?$AAI?$AAP?$AAv?$AA4?$AA?5?$AA?$CI?$AAS?$AAr?$AAc?$AAI?$AAP?$AA?$DN?$AA?$CF?$AAd?$AA?4?$AA?$CF?$AAd?$AA?4?$AA?$CF?$AAd?$AA?4?$AA?$CF?$AAd?$AA?$CJ?$AA?$AA@ 0000000000010f58 Ip4Dxe:ComponentName.obj
+ 0002:00000610 ??_C@_0GN@IKEMILK@?$CI?$CIToken?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CI?$CIT@ 0000000000010f90 Ip4Dxe:Ip4If.obj
+ 0002:00000680 ??_C@_0DL@DNEDBNPK@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011000 Ip4Dxe:Ip4If.obj
+ 0002:000006c0 ??_C@_0GP@EBANMBBK@?$CI?$CIArpQue?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CI?$CI@ 0000000000011040 Ip4Dxe:Ip4If.obj
+ 0002:00000730 ??_C@_0GN@IMIHFFGP@?$CI?$CIToken?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CI?$CIT@ 00000000000110b0 Ip4Dxe:Ip4If.obj
+ 0002:000007a0 ??_C@_0HF@BCLJGKCD@?$CI?$CIInterface?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG@ 0000000000011120 Ip4Dxe:Ip4If.obj
+ 0002:00000818 ??_C@_0BG@GIHMNBOJ@Interface?9?$DORefCnt?5?$DO?50?$AA@ 0000000000011198 Ip4Dxe:Ip4If.obj
+ 0002:00000830 ??_C@_0CG@NMHHEINA@IsListEmpty?5?$CI?$CGInterface?9?$DOIpInsta@ 00000000000111b0 Ip4Dxe:Ip4If.obj
+ 0002:00000858 ??_C@_0CC@PBDGGCNK@IsListEmpty?5?$CI?$CGInterface?9?$DOArpQues@ 00000000000111d8 Ip4Dxe:Ip4If.obj
+ 0002:00000880 ??_C@_0CF@NKNPBNCD@IsListEmpty?5?$CI?$CGInterface?9?$DOSentFra@ 0000000000011200 Ip4Dxe:Ip4If.obj
+ 0002:000008a8 ??_C@_0CM@EEMPOMGF@Token?9?$DOInterface?9?$DOSubnetMask?5?$DN?$DN?5@ 0000000000011228 Ip4Dxe:Ip4If.obj
+ 0002:000008d8 ??_C@_0BG@NDDKKKPP@Interface?9?$DOConfigured?$AA@ 0000000000011258 Ip4Dxe:Ip4If.obj
+ 0002:000008f0 ??_C@_0GN@EGABJGOB@?$CI?$CIFrame?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CI?$CIF@ 0000000000011270 Ip4Dxe:Ip4If.obj
+ 0002:00000960 ??_C@_0BG@GNOLCPMK@Dhcp4?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000112e0 Ip4Dxe:Ip4Config2Impl.obj
+ 0002:00000980 ??_C@_0EE@HODHJNKL@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011300 Ip4Dxe:Ip4Config2Impl.obj
+ 0002:000009c8 ??_C@_0BF@CPCLDMPH@IpIf?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000011348 Ip4Dxe:Ip4Config2Impl.obj
+ 0002:000009e0 ??_C@_0CA@KCKONDIO@Instance?9?$DODhcp4?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000011360 Ip4Dxe:Ip4Config2Impl.obj
+ 0002:00000a00 ??_C@_0GN@BBICCNJK@Instance?9?$DODataItem?$FLIp4Config2Dat@ 0000000000011380 Ip4Dxe:Ip4Config2Impl.obj
+ 0002:00000a70 ??_C@_1M@CLFCEILF@?$AAe?$AAt?$AAh?$AA?$CF?$AAd?$AA?$AA@ 00000000000113f0 Ip4Dxe:Ip4Config2Impl.obj
+ 0002:00000a80 ??_C@_0BG@MBPIHGMN@Group?9?$DODelayTime?5?$DO?$DN?50?$AA@ 0000000000011400 Ip4Dxe:Ip4Igmp.obj
+ 0002:00000a98 ??_C@_0DN@GHPFACGO@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011418 Ip4Dxe:Ip4Igmp.obj
+ 0002:00000ad8 ??_C@_0BE@BIEHCDCK@RtEntry?9?$DORefCnt?5?$DO?50?$AA@ 0000000000011458 Ip4Dxe:Ip4Route.obj
+ 0002:00000af0 ??_C@_0DO@NINBAFLK@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011470 Ip4Dxe:Ip4Route.obj
+ 0002:00000b30 ??_C@_0BJ@BEAIDGAO@RtCacheEntry?9?$DORefCnt?5?$DO?50?$AA@ 00000000000114b0 Ip4Dxe:Ip4Route.obj
+ 0002:00000b50 ??_C@_0BE@EPNEIHAH@RtTable?9?$DORefCnt?5?$DO?50?$AA@ 00000000000114d0 Ip4Dxe:Ip4Route.obj
+ 0002:00000b68 ??_C@_0BI@BOMBGFOB@RtTable?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000114e8 Ip4Dxe:Ip4Route.obj
+ 0002:00000b80 ??_C@_0CE@ONMACAEH@?$CI?$CILen?5?$CF?54?$CJ?5?$DN?$DN?50?$CJ?5?$CG?$CG?5?$CIHeadLen?5?$DM?$DN?5@ 0000000000011500 Ip4Dxe:Ip4Output.obj
+ 0002:00000ba8 ??_C@_0DP@FELMBEED@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011528 Ip4Dxe:Ip4Output.obj
+ 0002:00000be8 ??_C@_0BF@IPHHEBHD@Icmp?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000011568 Ip4Dxe:Ip4Icmp.obj
+ 0002:00000c00 ??_C@_0DN@PMGEEAHI@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011580 Ip4Dxe:Ip4Icmp.obj
+ 0002:00000c40 ??_C@_0CO@COLIIPDN@?$CIBufLen?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CIOpt@ 00000000000115c0 Ip4Dxe:Ip4Option.obj
+ 0002:00000c70 ??_C@_0DP@CNHBHBKM@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000115f0 Ip4Dxe:Ip4Option.obj
+ 0002:00000cb0 ??_C@_1BI@FCMLLAGN@?$AA?$CF?$AAd?$AA?4?$AA?$CF?$AAd?$AA?4?$AA?$CF?$AAd?$AA?4?$AA?$CF?$AAd?$AA?$AA@ 0000000000011630 Ip4Dxe:Ip4Config2Nv.obj
+ 0002:00000cd0 ??_C@_0HD@IDNAAOPJ@?$CI?$CIInstance?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5@ 0000000000011650 Ip4Dxe:Ip4Config2Nv.obj
+ 0002:00000d50 ??_C@_0EC@DKJAMHIH@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000116d0 Ip4Dxe:Ip4Config2Nv.obj
+ 0002:00000d98 ??_C@_1CK@EKOBMLHN@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAS?$AAu?$AAb?$AAn?$AAe?$AAt?$AA?5?$AAM?$AAa?$AAs?$AAk?$AA?$CB?$AA?$AA@ 0000000000011718 Ip4Dxe:Ip4Config2Nv.obj
+ 0002:00000dc8 ??_C@_1CI@LMPBJGDM@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAI?$AAP?$AA?5?$AAa?$AAd?$AAd?$AAr?$AAe?$AAs?$AAs?$AA?$CB?$AA?$AA@ 0000000000011748 Ip4Dxe:Ip4Config2Nv.obj
+ 0002:00000df0 ??_C@_1CC@EECKCHGK@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAG?$AAa?$AAt?$AAe?$AAw?$AAa?$AAy?$AA?$CB?$AA?$AA@ 0000000000011770 Ip4Dxe:Ip4Config2Nv.obj
+ 0002:00000e18 ??_C@_1CI@GPLCPIIC@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAD?$AAn?$AAs?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAe?$AAr?$AA?$CB?$AA?$AA@ 0000000000011798 Ip4Dxe:Ip4Config2Nv.obj
+ 0002:00000e40 ??_C@_1O@LFMAFHMH@?$AAO?$AAF?$AAF?$AAS?$AAE?$AAT?$AA?$AA@ 00000000000117c0 Ip4Dxe:Ip4Config2Nv.obj
+ 0002:00000e50 ??_C@_1DC@EPJEBJEB@?$AA?$CF?$AAs?$AA?$CG?$AAO?$AAF?$AAF?$AAS?$AAE?$AAT?$AA?$DN?$AA0?$AA?$CG?$AAW?$AAI?$AAD?$AAT?$AAH?$AA?$DN?$AA?$CF?$AA0?$AA1?$AA6?$AAL?$AAX?$AA?$AA@ 00000000000117d0 Ip4Dxe:Ip4Config2Nv.obj
+ 0002:00000e88 ??_C@_1BI@OKMKAGND@?$AA?$CF?$AAs?$AA?5?$AA?$CI?$AAM?$AAA?$AAC?$AA?3?$AA?$CF?$AAs?$AA?$CJ?$AA?$AA@ 0000000000011808 Ip4Dxe:Ip4Config2Nv.obj
+ 0002:00000ea0 ??_C@_1O@DMKKJCOM@?$AAM?$AAA?$AAC?$AA?3?$AA?$CF?$AAs?$AA?$AA@ 0000000000011820 Ip4Dxe:Ip4Config2Nv.obj
+ 0002:00000eb0 ??_C@_0BH@IACGKAP@Buffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000011830 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:00000ed0 ??_C@_0FF@PKHNKPL@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011850 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:00000f28 ??_C@_0DG@EEENIGGL@Length?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFFFFFULL@ 00000000000118a8 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:00000f60 ??_C@_0ED@MKGCMJG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 00000000000118e0 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00000fb0 ??_C@_0FF@LLAFLLDM@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011930 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00001008 ??_C@_0DO@MAOBOFEG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 0000000000011988 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00001048 ??_C@_0CC@JOEHDGKB@DestinationBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 00000000000119c8 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00001070 ??_C@_0FI@NCCCHAEB@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000119f0 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:000010c8 ??_C@_0BN@MDMCNBCC@SourceBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000011a48 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:000010e8 ??_C@_0BF@NJNGJMPC@List?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000011a68 BaseLib:LinkedList.obj
+ 0002:00001100 ??_C@_0EF@PHMLHICE@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011a80 BaseLib:LinkedList.obj
+ 0002:00001148 ??_C@_0CC@KDLPLAED@List?9?$DOForwardLink?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 0000000000011ac8 BaseLib:LinkedList.obj
+ 0002:00001170 ??_C@_0BP@IJJCCMAK@List?9?$DOBackLink?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000011af0 BaseLib:LinkedList.obj
+ 0002:00001190 ??_C@_0BJ@NJABNCDK@ListHead?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000011b10 BaseLib:LinkedList.obj
+ 0002:000011b0 ??_C@_0CG@LGIALJFK@InternalBaseLibIsListValid?5?$CIList@ 0000000000011b30 BaseLib:LinkedList.obj
+ 0002:000011d8 ??_C@_0CC@JLDICICM@InternalBaseLibIsListValid?5?$CIList@ 0000000000011b58 BaseLib:LinkedList.obj
+ 0002:00001200 ??_C@_0BF@NMBJJECB@?$CBIsListEmpty?5?$CIEntry?$CJ?$AA@ 0000000000011b80 BaseLib:LinkedList.obj
+ 0002:00001218 ??_C@_0BH@MAAHKCPC@String?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000011b98 BaseLib:String.obj
+ 0002:00001230 ??_C@_0EB@OHCINBMP@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011bb0 BaseLib:String.obj
+ 0002:00001278 ??_C@_0CC@GFNLNIOC@?$CI?$CIUINTN?$CJString?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 0000000000011bf8 BaseLib:String.obj
+ 0002:000012a0 ??_C@_0DK@EOJCOAME@Length?5?$DM?5_gPcd_FixedAtBuild_PcdM@ 0000000000011c20 BaseLib:String.obj
+ 0002:000012e0 ??_C@_0BL@JAAMOCAJ@StrSize?5?$CIFirstString?$CJ?5?$CB?$DN?50?$AA@ 0000000000011c60 BaseLib:String.obj
+ 0002:00001300 ??_C@_0BM@DALBOILC@StrSize?5?$CISecondString?$CJ?5?$CB?$DN?50?$AA@ 0000000000011c80 BaseLib:String.obj
+ 0002:00001320 ??_C@_0DL@LFIMEMJP@Length?5?$DM?$DN?5_gPcd_FixedAtBuild_Pcd@ 0000000000011ca0 BaseLib:String.obj
+ 0002:00001360 ??_C@_0BG@KBNOLIGE@StrSize?5?$CIString?$CJ?5?$CB?$DN?50?$AA@ 0000000000011ce0 BaseLib:String.obj
+ 0002:00001378 ??_C@_0BM@NNBLOHJD@StrSize?5?$CISearchString?$CJ?5?$CB?$DN?50?$AA@ 0000000000011cf8 BaseLib:String.obj
+ 0002:00001398 ??_C@_0DI@MDIKFADO@Length?5?$DM?5_gPcd_FixedAtBuild_PcdM@ 0000000000011d18 BaseLib:String.obj
+ 0002:000013d0 ??_C@_0BL@IKFBNFIL@AsciiStrSize?5?$CIFirstString?$CJ?$AA@ 0000000000011d50 BaseLib:String.obj
+ 0002:000013f0 ??_C@_0BM@EDNOKLLE@AsciiStrSize?5?$CISecondString?$CJ?$AA@ 0000000000011d70 BaseLib:String.obj
+ 0002:00001410 ??_C@_0DJ@JJHGIFMP@Length?5?$DM?$DN?5_gPcd_FixedAtBuild_Pcd@ 0000000000011d90 BaseLib:String.obj
+ 0002:00001450 ??_C@_0EE@FAJFAODK@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011dd0 BaseLib:Unaligned.obj
+ 0002:000014a0 ??_C@_0EF@MFKKFBPN@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011e20 BaseLib:SafeString.obj
+ 0002:000014e8 ??_C@_0CH@LALFPBMC@?$CI?$CIUINTN?$CJDestination?5?$CG?50x00000001@ 0000000000011e68 BaseLib:SafeString.obj
+ 0002:00001510 ??_C@_0CC@HEBCMBPF@?$CI?$CIUINTN?$CJSource?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 0000000000011e90 BaseLib:SafeString.obj
+ 0002:00001538 ??_C@_0BO@ECNIOIHG@?$CIDestination?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 0000000000011eb8 BaseLib:SafeString.obj
+ 0002:00001558 ??_C@_07KBGDFDAM@StrCpyS?$AA@ 0000000000011ed8 BaseLib:SafeString.obj
+ 0002:00001560 ??_C@_0EA@PDPDJJNN@?$CFa?$CI?$CFd?$CJ?5?$CFa?3?5SAFE_STRING_CONSTRAIN@ 0000000000011ee0 BaseLib:SafeString.obj
+ 0002:000015a0 ??_C@_0BJ@EAEEJIP@?$CISource?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 0000000000011f20 BaseLib:SafeString.obj
+ 0002:000015c0 ??_C@_0EA@BBALOHPI@?$CIDestMax?5?$DM?$DN?5?$CI_gPcd_FixedAtBuild_@ 0000000000011f40 BaseLib:SafeString.obj
+ 0002:00001600 ??_C@_0P@PMIMLIHM@?$CIDestMax?5?$CB?$DN?50?$CJ?$AA@ 0000000000011f80 BaseLib:SafeString.obj
+ 0002:00001610 ??_C@_0BG@EEGIIOKH@?$CIDestMax?5?$DO?5SourceLen?$CJ?$AA@ 0000000000011f90 BaseLib:SafeString.obj
+ 0002:00001630 ??_C@_0FH@PPBLBDBJ@InternalSafeStringNoStrOverlap?5?$CI@ 0000000000011fb0 BaseLib:SafeString.obj
+ 0002:00001688 ??_C@_08INOAHJON@StrnCpyS?$AA@ 0000000000012008 BaseLib:SafeString.obj
+ 0002:00001698 ??_C@_0DP@PBOJGJC@?$CILength?5?$DM?$DN?5?$CI_gPcd_FixedAtBuild_P@ 0000000000012018 BaseLib:SafeString.obj
+ 0002:000016d8 ??_C@_07EBBOPAKF@StrCatS?$AA@ 0000000000012058 BaseLib:SafeString.obj
+ 0002:000016e0 ??_C@_0P@BHOOOJPD@?$CICopyLen?5?$CB?$DN?50?$CJ?$AA@ 0000000000012060 BaseLib:SafeString.obj
+ 0002:000016f0 ??_C@_0BG@BPGICNPK@?$CICopyLen?5?$DO?5SourceLen?$CJ?$AA@ 0000000000012070 BaseLib:SafeString.obj
+ 0002:00001708 ??_C@_0BJ@CNKJJNE@?$CIBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 0000000000012088 BaseLib:SafeString.obj
+ 0002:00001728 ??_C@_0N@KGHEHMDL@Divisor?5?$CB?$DN?50?$AA@ 00000000000120a8 BaseLib:DivU64x32.obj
+ 0002:00001738 ??_C@_0CI@BGLNHBLM@?$CI?$CI?$CIUINTN?$CJ?5?$CIStartOfBuffer?$CJ?$CJ?5?$CG?50x0@ 00000000000120b8 BasePrintLib:PrintLib.obj
+ 0002:00001760 ??_C@_0EI@PHEOPKNG@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000120e0 BasePrintLib:PrintLib.obj
+ 0002:000017a8 ??_C@_0CH@KJLBGOBB@?$CI?$CI?$CIUINTN?$CJ?5?$CIFormatString?$CJ?$CJ?5?$CG?50x01@ 0000000000012128 BasePrintLib:PrintLib.obj
+ 0002:000017d0 ??_C@_0CB@LDBAOPMG@?$CI?$CI?$CIUINTN?$CJ?5?$CIBuffer?$CJ?$CJ?5?$CG?50x01?$CJ?5?$DN?$DN?50@ 0000000000012150 BasePrintLib:PrintLib.obj
+ 0002:00001800 ??_C@_0FA@JGMHCDLA@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000012180 BasePrintLib:PrintLibInternal.obj
+ 0002:00001850 ??_C@_0EB@HDGIDCIO@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 00000000000121d0 BasePrintLib:PrintLibInternal.obj
+ 0002:000018a0 ??_C@_0FJ@HAEMOBLP@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 0000000000012220 BasePrintLib:PrintLibInternal.obj
+ 0002:00001900 ??_C@_0N@PNKFBKME@?$CIWidth?5?$DM?538?$CJ?$AA@ 0000000000012280 BasePrintLib:PrintLibInternal.obj
+ 0002:00001910 ??_C@_0CI@HPJOGFNE@?$CIBufferSize?5?$DO?$DN?5?$CIWidth?5?$CL?51?$CJ?5?$CK?5Inc@ 0000000000012290 BasePrintLib:PrintLibInternal.obj
+ 0002:00001938 ??_C@_0BJ@PPAKKDJG@?$CIFormat?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 00000000000122b8 BasePrintLib:PrintLibInternal.obj
+ 0002:00001960 ??_C@_0ED@LPDDCECB@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 00000000000122e0 BasePrintLib:PrintLibInternal.obj
+ 0002:000019b0 ??_C@_0IM@BFJJFLGB@?$CIStrnLenS?5?$CI?$CICHAR16?5?$CK?$CJFormat?0?5?$CI_g@ 0000000000012330 BasePrintLib:PrintLibInternal.obj
+ 0002:00001a40 ??_C@_0ID@PLGJGION@?$CIAsciiStrnLenS?5?$CIFormat?0?5?$CI_gPcd_F@ 00000000000123c0 BasePrintLib:PrintLibInternal.obj
+ 0002:00001ac8 ??_C@_0O@MLOLIMFM@?$DMnull?5string?$DO?$AA@ 0000000000012448 BasePrintLib:PrintLibInternal.obj
+ 0002:00001ad8 ??_C@_0M@BJJDNPHK@?$DMnull?5guid?$DO?$AA@ 0000000000012458 BasePrintLib:PrintLibInternal.obj
+ 0002:00001ae8 ??_C@_0DB@PMLHLBMO@?$CF08x?9?$CF04x?9?$CF04x?9?$CF02x?$CF02x?9?$CF02x?$CF02x@ 0000000000012468 BasePrintLib:PrintLibInternal.obj
+ 0002:00001b20 ??_C@_0M@LHGBCIKM@?$DMnull?5time?$DO?$AA@ 00000000000124a0 BasePrintLib:PrintLibInternal.obj
+ 0002:00001b30 ??_C@_0BK@FCPKCIDD@?$CF02d?1?$CF02d?1?$CF04d?5?5?$CF02d?3?$CF02d?$AA@ 00000000000124b0 BasePrintLib:PrintLibInternal.obj
+ 0002:00001b4c ??_C@_04JIMNDDED@?$CF08X?$AA@ 00000000000124cc BasePrintLib:PrintLibInternal.obj
+ 0002:00001b54 ??_C@_02PCIJFNDE@?$AN?6?$AA@ 00000000000124d4 BasePrintLib:PrintLibInternal.obj
+ 0002:00001b58 ??_C@_01LIIJDEN@?$AN?$AA@ 00000000000124d8 BasePrintLib:PrintLibInternal.obj
+ 0002:00001b60 mWarningString 00000000000124e0 BasePrintLib:PrintLibInternal.obj
+ 0002:00001c00 mErrorString 0000000000012580 BasePrintLib:PrintLibInternal.obj
+ 0002:00001ec0 mHexStr 0000000000012840 BasePrintLib:PrintLibInternal.obj
+ 0002:00001ed0 ??_C@_0BH@LKMBFCBF@Format?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012850 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00001ef0 ??_C@_0FD@OABGLBHF@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000012870 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00001f48 ??_C@_0BE@ECBJLCDE@ASSERT?5?$CFa?$CI?$CFLu?$CJ?3?5?$CFa?6?$AA@ 00000000000128c8 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00001f60 ??_C@_0BN@COECPDCC@gImageHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000128e0 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00001f80 ??_C@_0GE@FKBNDHHB@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000012900 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00001fe8 ??_C@_0BE@DGNHAHIL@gST?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012968 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00002000 ??_C@_0BE@BDFJLGLN@gBS?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012980 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00002020 ??_C@_0FO@BEMDJMPM@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000129a0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:00002080 ??_C@_0DO@GEEICOOO@AllocationSize?5?$DM?$DN?5?$CI0xFFFFFFFFFFF@ 0000000000012a00 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:000020c0 ??_C@_0GI@KEFAHLGJ@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000012a40 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00002128 ??_C@_0DC@CNNBPJA@mDevicePathLibDevicePathUtilitie@ 0000000000012aa8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00002160 ??_C@_0BF@CBLMFKOC@Node?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012ae0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00002178 ??_C@_0BE@OBDFIHND@gRT?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012af8 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:00002190 ??_C@_0GK@FJIMGEPP@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000012b10 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:00002200 ??_C@_0EC@DCGCAOKF@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000012b80 UefiLib:UefiLib.obj
+ 0002:00002248 ??_C@_0BN@HHGHCLME@ProtocolGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012bc8 UefiLib:UefiLib.obj
+ 0002:00002268 ??_C@_0BP@DEIEJICI@NotifyFunction?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012be8 UefiLib:UefiLib.obj
+ 0002:00002288 ??_C@_0BN@OMCJCPAI@Registration?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012c08 UefiLib:UefiLib.obj
+ 0002:000022a8 ??_C@_0BF@JGGLMCFN@Lock?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012c28 UefiLib:UefiLib.obj
+ 0002:000022c0 ??_C@_0CD@PGOFFOAH@Lock?9?$DOLock?5?$CB?$DN?5EfiLockUninitializ@ 0000000000012c40 UefiLib:UefiLib.obj
+ 0002:000022e8 ??_C@_0BO@FHNOFLFJ@Lock?9?$DOLock?5?$DN?$DN?5EfiLockAcquired?$AA@ 0000000000012c68 UefiLib:UefiLib.obj
+ 0002:00002310 ??_C@_0EG@GOBFPEEP@Name?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5Guid?5?$CB?$DN?5@ 0000000000012c90 UefiLib:UefiLib.obj
+ 0002:00002358 ??_C@_0BH@FMEOEIBC@?$CKValue?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012cd8 UefiLib:UefiLib.obj
+ 0002:00002370 ??_C@_0CD@OLFKAJF@SupportedLanguages?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?5@ 0000000000012cf0 UefiLib:UefiLib.obj
+ 0002:000023a0 ??_C@_0EK@CMFOJGEC@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000012d20 UefiLib:UefiDriverModel.obj
+ 0002:000023f0 ??_C@_0BD@BHENKNKP@NumberOfLines?5?$CB?$DN?50?$AA@ 0000000000012d70 UefiLib:Console.obj
+ 0002:00002410 ??_C@_0EC@EJLIGNPA@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000012d90 UefiLib:Console.obj
+ 0002:00002458 ??_C@_0P@ICDOOCHP@MaxLength?5?$CB?$DN?50?$AA@ 0000000000012dd8 UefiLib:Console.obj
+ 0002:00002468 ??_C@_0BF@DMEONNDO@Line?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012de8 UefiLib:Console.obj
+ 0002:00002480 ??_C@_0BK@IHAIHFJE@TmpString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012e00 UefiLib:Console.obj
+ 0002:000024a0 ??_C@_17LGKOMLJ@?$AA?4?$AA?4?$AA?4?$AA?$AA@ 0000000000012e20 UefiLib:Console.obj
+ 0002:000024b0 ??_C@_0FO@HNLMMFDN@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000012e30 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0002:00002510 ??_C@_0EK@GBBIEMHN@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000012e90 DxeNetLib:DxeNetLib.obj
+ 0002:00002560 ??_C@_0N@NMJPNKHJ@NetMask?5?$CB?$DN?50?$AA@ 0000000000012ee0 DxeNetLib:DxeNetLib.obj
+ 0002:00002570 ??_C@_0CI@KOOBFNBF@?$CIMaskLength?5?$DO?$DN?50?$CJ?5?$CG?$CG?5?$CIMaskLength@ 0000000000012ef0 DxeNetLib:DxeNetLib.obj
+ 0002:00002598 ??_C@_0DG@FBNPJOEF@PostEntry?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5New@ 0000000000012f18 DxeNetLib:DxeNetLib.obj
+ 0002:000025d0 ??_C@_0BE@GMKCNDGH@Map?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012f50 DxeNetLib:DxeNetLib.obj
+ 0002:000025e8 ??_C@_0CO@MHIOADDG@?$CIMap?9?$DOCount?5?$DN?$DN?50?$CJ?5?$CG?$CG?5IsListEmpty@ 0000000000012f68 DxeNetLib:DxeNetLib.obj
+ 0002:00002618 ??_C@_0BN@JFJNMPHO@IsListEmpty?5?$CI?$CGMap?9?$DORecycled?$CJ?$AA@ 0000000000012f98 DxeNetLib:DxeNetLib.obj
+ 0002:00002638 ??_C@_0CL@KMKICODD@Map?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5Key?5?$CB?$DN?5?$CI?$CI@ 0000000000012fb8 DxeNetLib:DxeNetLib.obj
+ 0002:00002668 ??_C@_0CM@FAAJCOOB@Map?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5Item?5?$CB?$DN?5?$CI@ 0000000000012fe8 DxeNetLib:DxeNetLib.obj
+ 0002:00002698 ??_C@_0DA@EGCKNGAF@?$CIMap?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CIItem?5?$CB@ 0000000000013018 DxeNetLib:DxeNetLib.obj
+ 0002:000026c8 ??_C@_0BJ@KPMFLONP@NetItemInMap?5?$CIMap?0?5Item?$CJ?$AA@ 0000000000013048 DxeNetLib:DxeNetLib.obj
+ 0002:000026e8 ??_C@_0CB@DNKJKBEA@Map?5?$CG?$CG?5?$CBIsListEmpty?5?$CI?$CGMap?9?$DOUsed?$CJ@ 0000000000013068 DxeNetLib:DxeNetLib.obj
+ 0002:00002710 ??_C@_0DE@HCAAMLMB@?$CIMap?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CICallBa@ 0000000000013090 DxeNetLib:DxeNetLib.obj
+ 0002:00002750 ??_C@_0EG@FMMHPKDI@?$CIServiceBindingGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ@ 00000000000130d0 DxeNetLib:DxeNetLib.obj
+ 0002:00002798 ??_C@_0CD@PCCGAHJM@ServiceBindingGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?5@ 0000000000013118 DxeNetLib:DxeNetLib.obj
+ 0002:000027c0 ??_C@_0BK@GPKNKKJO@MacString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000013140 DxeNetLib:DxeNetLib.obj
+ 0002:000027e0 gIp4AllMasks 0000000000013160 DxeNetLib:DxeNetLib.obj
+ 0002:00002868 ??_C@_0BA@MDHFKOHH@BlockOpNum?5?$DO?$DN?51?$AA@ 00000000000131e8 DxeNetLib:NetBuffer.obj
+ 0002:00002880 ??_C@_0EK@HPDBBEBA@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000013200 DxeNetLib:NetBuffer.obj
+ 0002:000028d0 ??_C@_07DJKBCKNJ@Len?5?$DO?50?$AA@ 0000000000013250 DxeNetLib:NetBuffer.obj
+ 0002:000028d8 ??_C@_0BH@HKOFEGGJ@Vector?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000013258 DxeNetLib:NetBuffer.obj
+ 0002:000028f0 ??_C@_0GP@BJHFFKHJ@?$CI?$CIVector?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CI?$CI@ 0000000000013270 DxeNetLib:NetBuffer.obj
+ 0002:00002960 ??_C@_0BD@DIPGLBBO@Vector?9?$DORefCnt?5?$DO?50?$AA@ 00000000000132e0 DxeNetLib:NetBuffer.obj
+ 0002:00002978 ??_C@_0BF@LJMLDKHP@Nbuf?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000132f8 DxeNetLib:NetBuffer.obj
+ 0002:00002990 ??_C@_0GL@IFMHLCLE@?$CI?$CINbuf?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CI?$CINb@ 0000000000013310 DxeNetLib:NetBuffer.obj
+ 0002:00002a00 ??_C@_0BB@DOGOGLPG@Nbuf?9?$DORefCnt?5?$DO?50?$AA@ 0000000000013380 DxeNetLib:NetBuffer.obj
+ 0002:00002a20 ??_C@_0HL@FGMBHKJG@?$CI?$CINbuf?9?$DOVector?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ@ 00000000000133a0 DxeNetLib:NetBuffer.obj
+ 0002:00002aa0 ??_C@_0BJ@KIFBBHL@Index?5?$DM?5Nbuf?9?$DOBlockOpNum?$AA@ 0000000000013420 DxeNetLib:NetBuffer.obj
+ 0002:00002ac0 ??_C@_0O@GCGIAIEL@Last?5?$DO?$DN?5First?$AA@ 0000000000013440 DxeNetLib:NetBuffer.obj
+ 0002:00002ad0 ??_C@_0EL@JHACLFKC@?$CIExtFragment?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG@ 0000000000013450 DxeNetLib:NetBuffer.obj
+ 0002:00002b20 ??_C@_0DC@MGLKJFKO@?$CINbuf?9?$DOBlockOpNum?5?$DN?$DN?51?$CJ?5?$CG?$CG?5?$CINbuf@ 00000000000134a0 DxeNetLib:NetBuffer.obj
+ 0002:00002b60 ??_C@_0ED@NCEEIHFB@?$CINbuf?9?$DOVector?9?$DOFree?5?$DN?$DN?5?$CI?$CIvoid?5?$CK?$CJ@ 00000000000134e0 DxeNetLib:NetBuffer.obj
+ 0002:00002ba8 ??_C@_0DE@FGAADEGF@Nbuf?9?$DOBlockOp?$FL0?$FN?4Tail?5?$DM?$DN?5Nbuf?9?$DOB@ 0000000000013528 DxeNetLib:NetBuffer.obj
+ 0002:00002be0 ??_C@_0DE@CILPCCFL@?$CIBlockOp?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CIBl@ 0000000000013560 DxeNetLib:NetBuffer.obj
+ 0002:00002c14 ??_C@_04IFLCJLKB@Dest?$AA@ 0000000000013594 DxeNetLib:NetBuffer.obj
+ 0002:00002c20 ??_C@_0BJ@IHHEPCDD@Nbuf?9?$DOVector?9?$DORefCnt?5?$DO?50?$AA@ 00000000000135a0 DxeNetLib:NetBuffer.obj
+ 0002:00002c40 ??_C@_0EH@NHHMJFMK@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000135c0 DxeDpcLib:DpcLib.obj
+ 0002:00002c88 ??_C@_0BK@KLJHMMPJ@HiiHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000013608 UefiHiiLib:HiiString.obj
+ 0002:00002cb0 ??_C@_0EN@DDBLCGFI@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000013630 UefiHiiLib:HiiString.obj
+ 0002:00002d00 ??_C@_06PLDEFKP@x?9UEFI?$AA@ 0000000000013680 UefiHiiLib:HiiString.obj
+ 0002:00002d08 ??_C@_0CA@OEKIMLLB@PackageListGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000013688 UefiHiiLib:HiiString.obj
+ 0002:00002d28 ??_C@_1BK@GGGENMOA@?$AAP?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AAL?$AAa?$AAn?$AAg?$AA?$AA@ 00000000000136a8 UefiHiiLib:HiiString.obj
+ 0002:00002d42 ??_C@_00CNPNBAHC@?$AA@ 00000000000136c2 UefiHiiLib:HiiString.obj
+ 0002:00002d50 ??_C@_0EK@CCOCGB@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000136d0 UefiHiiLib:HiiLib.obj
+ 0002:00002da0 ??_C@_0BN@EHPNHAIF@ConfigString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000013720 UefiHiiLib:HiiLib.obj
+ 0002:00002dc0 ??_C@_1M@DPLGJLCD@?$AAG?$AAU?$AAI?$AAD?$AA?$DN?$AA?$AA@ 0000000000013740 UefiHiiLib:HiiLib.obj
+ 0002:00002dd0 ??_C@_1O@FMIENBLJ@?$AA?$CG?$AAN?$AAA?$AAM?$AAE?$AA?$DN?$AA?$AA@ 0000000000013750 UefiHiiLib:HiiLib.obj
+ 0002:00002de0 ??_C@_1O@GGMHNGIF@?$AA?$CG?$AAP?$AAA?$AAT?$AAH?$AA?$DN?$AA?$AA@ 0000000000013760 UefiHiiLib:HiiLib.obj
+ 0002:00002df0 ??_C@_0BM@LENJOOBF@FirstString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000013770 UefiHiiLib:HiiLib.obj
+ 0002:00002e10 ??_C@_0BN@CGMEJHHH@SecondString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000013790 UefiHiiLib:HiiLib.obj
+ 0002:00002e30 ??_C@_0CC@BCKDEPBB@StartSearchString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 00000000000137b0 UefiHiiLib:HiiLib.obj
+ 0002:00002e58 ??_C@_0CB@NPMPBLHL@StopSearchString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ@ 00000000000137d8 UefiHiiLib:HiiLib.obj
+ 0002:00002e80 ??_C@_0BK@LFDBOAFJ@ConfigHdr?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000013800 UefiHiiLib:HiiLib.obj
+ 0002:00002ea0 ??_C@_1M@IDEFLMF@?$AA?$CF?$AAs?$AA?$CG?$AA?$CF?$AAs?$AA?$AA@ 0000000000013820 UefiHiiLib:HiiLib.obj
+ 0002:00002eb0 mConfigHdrTemplate 0000000000013830 UefiHiiLib:HiiLib.obj
+ 0002:00002f20 mEndOfPakageList 00000000000138a0 UefiHiiLib:HiiLib.obj
+ 0002:00002f30 ??_C@_0EP@LMJDKFAP@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000138b0 UefiHiiLib:HiiLanguage.obj
+ 0002:00002f80 ??_C@_0DI@DAGDPLPG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 0000000000013900 BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0002:00002fc0 ??_C@_0FG@BHBOFAHM@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000013940 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00003018 ??_C@_0CO@LECKNDNC@?$CI?$CI?$CIUINTN?$CJBuffer?$CJ?5?$CG?5?$CIsizeof?5?$CIValu@ 0000000000013998 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00003048 ??_C@_0CF@LEICOABD@?$CILength?5?$CG?5?$CIsizeof?5?$CIValue?$CJ?5?9?51?$CJ?$CJ?5@ 00000000000139c8 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00003070 ??_C@_0EN@EIGKPMFG@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000139f0 BaseLib:DivU64x32Remainder.obj
+ 0003:00000000 gEfiLoadedImageProtocolGuid 0000000000013bc0 Ip4Dxe:AutoGen.obj
+ 0003:00000010 gEfiGlobalVariableGuid 0000000000013bd0 Ip4Dxe:AutoGen.obj
+ 0003:00000020 gEfiComponentName2ProtocolGuid 0000000000013be0 Ip4Dxe:AutoGen.obj
+ 0003:00000030 gIp4Config2NvDataGuid 0000000000013bf0 Ip4Dxe:AutoGen.obj
+ 0003:00000040 gEfiDhcp4ServiceBindingProtocolGuid 0000000000013c00 Ip4Dxe:AutoGen.obj
+ 0003:00000050 gEfiDevicePathProtocolGuid 0000000000013c10 Ip4Dxe:AutoGen.obj
+ 0003:00000060 gEfiSimpleNetworkProtocolGuid 0000000000013c20 Ip4Dxe:AutoGen.obj
+ 0003:00000070 gEfiIpSec2ProtocolGuid 0000000000013c30 Ip4Dxe:AutoGen.obj
+ 0003:00000080 gEfiHiiConfigRoutingProtocolGuid 0000000000013c40 Ip4Dxe:AutoGen.obj
+ 0003:00000090 gEfiIp4Config2ProtocolGuid 0000000000013c50 Ip4Dxe:AutoGen.obj
+ 0003:000000a0 gEfiHiiImageProtocolGuid 0000000000013c60 Ip4Dxe:AutoGen.obj
+ 0003:000000b0 gEfiDevicePathUtilitiesProtocolGuid 0000000000013c70 Ip4Dxe:AutoGen.obj
+ 0003:000000c0 gEfiIp4ServiceBindingProtocolGuid 0000000000013c80 Ip4Dxe:AutoGen.obj
+ 0003:000000d0 gEfiHiiDatabaseProtocolGuid 0000000000013c90 Ip4Dxe:AutoGen.obj
+ 0003:000000e0 gEfiHiiStringProtocolGuid 0000000000013ca0 Ip4Dxe:AutoGen.obj
+ 0003:000000f0 gEfiHiiConfigAccessProtocolGuid 0000000000013cb0 Ip4Dxe:AutoGen.obj
+ 0003:00000100 gEfiIp4ProtocolGuid 0000000000013cc0 Ip4Dxe:AutoGen.obj
+ 0003:00000110 gEfiManagedNetworkServiceBindingProtocolGuid 0000000000013cd0 Ip4Dxe:AutoGen.obj
+ 0003:00000120 gEfiFormBrowser2ProtocolGuid 0000000000013ce0 Ip4Dxe:AutoGen.obj
+ 0003:00000130 gEfiDriverBindingProtocolGuid 0000000000013cf0 Ip4Dxe:AutoGen.obj
+ 0003:00000140 Ip4DxeStrings 0000000000013d00 Ip4Dxe:AutoGen.obj
+ 0003:000005b0 gEfiArpServiceBindingProtocolGuid 0000000000014170 Ip4Dxe:AutoGen.obj
+ 0003:000005c0 gEfiComponentNameProtocolGuid 0000000000014180 Ip4Dxe:AutoGen.obj
+ 0003:000005d0 gEfiDpcProtocolGuid 0000000000014190 Ip4Dxe:AutoGen.obj
+ 0003:000005e0 gEfiCallerIdGuid 00000000000141a0 Ip4Dxe:AutoGen.obj
+ 0003:000005f0 gEfiDhcp4ProtocolGuid 00000000000141b0 Ip4Dxe:AutoGen.obj
+ 0003:00000600 gEfiManagedNetworkProtocolGuid 00000000000141c0 Ip4Dxe:AutoGen.obj
+ 0003:00000610 gEfiArpProtocolGuid 00000000000141d0 Ip4Dxe:AutoGen.obj
+ 0003:00000620 gEfiHiiFontProtocolGuid 00000000000141e0 Ip4Dxe:AutoGen.obj
+ 0003:00000630 gIp4DriverBinding 00000000000141f0 Ip4Dxe:Ip4Driver.obj
+ 0003:00000660 mEfiIp4ProtocolTemplete 0000000000014220 Ip4Dxe:Ip4Impl.obj
+ 0003:000006a0 gIp4ComponentName 0000000000014260 Ip4Dxe:ComponentName.obj
+ 0003:000006b8 gIp4ComponentName2 0000000000014278 Ip4Dxe:ComponentName.obj
+ 0003:000006d0 mIp4DriverNameTable 0000000000014290 Ip4Dxe:ComponentName.obj
+ 0003:000006f0 mIp4Config2InstanceList 00000000000142b0 Ip4Dxe:Ip4Config2Impl.obj
+ 0003:00000700 mRouteAlertOption 00000000000142c0 Ip4Dxe:Ip4Igmp.obj
+ 0003:00000708 mIp4SupportedIcmp 00000000000142c8 Ip4Dxe:Ip4Icmp.obj
+ 0003:00000738 mIcmpClass 00000000000142f8 Ip4Dxe:Ip4Icmp.obj
+ 0003:00000760 mIp4Config2StorageName 0000000000014320 Ip4Dxe:Ip4Config2Nv.obj
+ 0003:00000790 Ip4Config2Bin 0000000000014350 Ip4Dxe:Ip4Config2.obj
+ 0003:000008e0 mIpSec2Installed 00000000000144a0 Ip4Dxe:Ip4Driver.obj
+ 0003:000008e8 mIpSec 00000000000144a8 Ip4Dxe:Ip4Impl.obj
+ 0003:000008f0 gIp4ControllerNameTable 00000000000144b0 Ip4Dxe:ComponentName.obj
+ 0003:00000900 gST 00000000000144c0 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00000908 gBS 00000000000144c8 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00000910 gImageHandle 00000000000144d0 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00000918 mDevicePathLibDevicePathUtilities 00000000000144d8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0003:00000920 gRT 00000000000144e0 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0003:00000928 gHiiConfigRouting 00000000000144e8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000930 gHiiString 00000000000144f0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000938 gHiiFont 00000000000144f8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000940 gHiiImage 0000000000014500 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000948 gHiiDatabase 0000000000014508 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000950 mUefiFormBrowser2 0000000000014510 UefiHiiLib:HiiLib.obj
+ 0003:00000958 mDpc 0000000000014518 <common>
+ 0003:00000960 mIp4Id 0000000000014520 <common>
+ 0003:00000980 mZeroMacAddress 0000000000014540 <common>
+
+ entry point at 0001:0000049c
+
+ Static symbols
+
+ 0001:0000003a InternalMemCopyMem.0 00000000000002fa BaseMemoryLibRepStr:CopyMem.obj
+ 0001:0000004a @CopyBackward 000000000000030a BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000053 @CopyBytes 0000000000000313 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:0000014a @UseRepIo 000000000000040a BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000014c @SevNoRepIo_Done 000000000000040c BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000164 @IoReadFifo8_NoRep 0000000000000424 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000166 @IoReadFifo8_Loop 0000000000000426 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000016e @IoReadFifo8_Done 000000000000042e BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000187 @IoReadFifo16_NoRep 0000000000000447 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000189 @IoReadFifo16_Loop 0000000000000449 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000194 @IoReadFifo16_Done 0000000000000454 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001ac @IoReadFifo32_NoRep 000000000000046c BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001ae @IoReadFifo32_Loop 000000000000046e BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001b7 @IoReadFifo32_Done 0000000000000477 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001cf @IoWriteFifo8_NoRep 000000000000048f BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001d1 @IoWriteFifo8_Loop 0000000000000491 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001d9 @IoWriteFifo8_Done 0000000000000499 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001f2 @IoWriteFifo16_NoRep 00000000000004b2 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001f4 @IoWriteFifo16_Loop 00000000000004b4 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001ff @IoWriteFifo16_Done 00000000000004bf BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000217 @IoWriteFifo32_NoRep 00000000000004d7 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000219 @IoWriteFifo32_Loop 00000000000004d9 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000222 @IoWriteFifo32_Done 00000000000004e2 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000028e TdVmCall.no_return_data 000000000000054e BaseLib:TdVmcall.obj
+ 0001:0000030b TdCall.exit 00000000000005cb BaseLib:TdCall.obj
+ 0003:000008f8 mDebugIoPortChecked 00000000000144b8 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0003:000008f9 mDebugIoPortFound 00000000000144b9 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0004:00000000 $pdata$_DriverUnloadHandler 0000000000014560 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0004:0000000c $pdata$_ModuleEntryPoint 000000000001456c UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0004:00000018 $pdata$ProcessLibraryConstructorList 0000000000014578 Ip4Dxe:AutoGen.obj
+ 0004:00000024 $pdata$ProcessModuleEntryPointList 0000000000014584 Ip4Dxe:AutoGen.obj
+ 0004:00000030 $pdata$IpSec2InstalledCallback 0000000000014590 Ip4Dxe:Ip4Driver.obj
+ 0004:0000003c $pdata$Ip4DriverBindingSupported 000000000001459c Ip4Dxe:Ip4Driver.obj
+ 0004:00000048 $pdata$Ip4CreateService 00000000000145a8 Ip4Dxe:Ip4Driver.obj
+ 0004:00000054 $pdata$Ip4CleanService 00000000000145b4 Ip4Dxe:Ip4Driver.obj
+ 0004:00000060 $pdata$Ip4DestroyChildEntryInHandleBuffer 00000000000145c0 Ip4Dxe:Ip4Driver.obj
+ 0004:0000006c $pdata$Ip4DriverBindingStart 00000000000145cc Ip4Dxe:Ip4Driver.obj
+ 0004:00000078 $pdata$Ip4DriverBindingStop 00000000000145d8 Ip4Dxe:Ip4Driver.obj
+ 0004:00000084 $pdata$Ip4ServiceBindingCreateChild 00000000000145e4 Ip4Dxe:Ip4Driver.obj
+ 0004:00000090 $pdata$Ip4ServiceBindingDestroyChild 00000000000145f0 Ip4Dxe:Ip4Driver.obj
+ 0004:0000009c $pdata$EfiIp4GetModeData 00000000000145fc Ip4Dxe:Ip4Impl.obj
+ 0004:000000a8 $pdata$Ip4ServiceConfigMnp 0000000000014608 Ip4Dxe:Ip4Impl.obj
+ 0004:000000b4 $pdata$Ip4InitProtocol 0000000000014614 Ip4Dxe:Ip4Impl.obj
+ 0004:000000c0 $pdata$Ip4ConfigProtocol 0000000000014620 Ip4Dxe:Ip4Impl.obj
+ 0004:000000cc $pdata$Ip4CleanProtocol 000000000001462c Ip4Dxe:Ip4Impl.obj
+ 0004:000000d8 $pdata$EfiIp4Configure 0000000000014638 Ip4Dxe:Ip4Impl.obj
+ 0004:000000e4 $pdata$Ip4Groups 0000000000014644 Ip4Dxe:Ip4Impl.obj
+ 0004:000000f0 $pdata$EfiIp4Groups 0000000000014650 Ip4Dxe:Ip4Impl.obj
+ 0004:000000fc $pdata$EfiIp4Routes 000000000001465c Ip4Dxe:Ip4Impl.obj
+ 0004:00000108 $pdata$Ip4TxTokenValid 0000000000014668 Ip4Dxe:Ip4Impl.obj
+ 0004:00000114 $pdata$Ip4FreeTxToken 0000000000014674 Ip4Dxe:Ip4Impl.obj
+ 0004:00000120 $pdata$Ip4OnPacketSent 0000000000014680 Ip4Dxe:Ip4Impl.obj
+ 0004:0000012c $pdata$EfiIp4Transmit 000000000001468c Ip4Dxe:Ip4Impl.obj
+ 0004:00000138 $pdata$EfiIp4Receive 0000000000014698 Ip4Dxe:Ip4Impl.obj
+ 0004:00000144 $pdata$Ip4CancelTxTokens 00000000000146a4 Ip4Dxe:Ip4Impl.obj
+ 0004:00000150 $pdata$Ip4CancelRxTokens 00000000000146b0 Ip4Dxe:Ip4Impl.obj
+ 0004:0000015c $pdata$Ip4Cancel 00000000000146bc Ip4Dxe:Ip4Impl.obj
+ 0004:00000168 $pdata$EfiIp4Cancel 00000000000146c8 Ip4Dxe:Ip4Impl.obj
+ 0004:00000174 $pdata$EfiIp4Poll 00000000000146d4 Ip4Dxe:Ip4Impl.obj
+ 0004:00000180 $pdata$Ip4SentPacketTicking 00000000000146e0 Ip4Dxe:Ip4Impl.obj
+ 0004:0000018c $pdata$Ip4TimerTicking 00000000000146ec Ip4Dxe:Ip4Impl.obj
+ 0004:00000198 $pdata$Ip4TimerReconfigChecking 00000000000146f8 Ip4Dxe:Ip4Impl.obj
+ 0004:000001a4 $pdata$Ip4FreeAssembleEntry 0000000000014704 Ip4Dxe:Ip4Input.obj
+ 0004:000001b0 $pdata$Ip4CleanAssembleTable 0000000000014710 Ip4Dxe:Ip4Input.obj
+ 0004:000001bc $pdata$Ip4TrimPacket 000000000001471c Ip4Dxe:Ip4Input.obj
+ 0004:000001c8 $pdata$Ip4Reassemble 0000000000014728 Ip4Dxe:Ip4Input.obj
+ 0004:000001d4 $pdata$Ip4IpSecFree 0000000000014734 Ip4Dxe:Ip4Input.obj
+ 0004:000001e0 $pdata$Ip4IpSecProcessPacket 0000000000014740 Ip4Dxe:Ip4Input.obj
+ 0004:000001ec $pdata$Ip4PreProcessPacket 000000000001474c Ip4Dxe:Ip4Input.obj
+ 0004:000001f8 $pdata$Ip4AccpetFrame 0000000000014758 Ip4Dxe:Ip4Input.obj
+ 0004:00000204 $pdata$Ip4OnRecyclePacket 0000000000014764 Ip4Dxe:Ip4Input.obj
+ 0004:00000210 $pdata$Ip4WrapRxData 0000000000014770 Ip4Dxe:Ip4Input.obj
+ 0004:0000021c $pdata$Ip4InstanceDeliverPacket 000000000001477c Ip4Dxe:Ip4Input.obj
+ 0004:00000228 $pdata$Ip4InterfaceEnquePacket 0000000000014788 Ip4Dxe:Ip4Input.obj
+ 0004:00000234 $pdata$Ip4Demultiplex 0000000000014794 Ip4Dxe:Ip4Input.obj
+ 0004:00000240 $pdata$Ip4ComponentNameGetDriverName 00000000000147a0 Ip4Dxe:ComponentName.obj
+ 0004:0000024c $pdata$UpdateName 00000000000147ac Ip4Dxe:ComponentName.obj
+ 0004:00000258 $pdata$Ip4ComponentNameGetControllerName 00000000000147b8 Ip4Dxe:ComponentName.obj
+ 0004:00000264 $pdata$Ip4FreeLinkTxToken 00000000000147c4 Ip4Dxe:Ip4If.obj
+ 0004:00000270 $pdata$Ip4FreeArpQue 00000000000147d0 Ip4Dxe:Ip4If.obj
+ 0004:0000027c $pdata$Ip4FreeFrameRxToken 00000000000147dc Ip4Dxe:Ip4If.obj
+ 0004:00000288 $pdata$Ip4CancelFrameArp 00000000000147e8 Ip4Dxe:Ip4If.obj
+ 0004:00000294 $pdata$Ip4CancelFrames 00000000000147f4 Ip4Dxe:Ip4If.obj
+ 0004:000002a0 $pdata$Ip4CreateInterface 0000000000014800 Ip4Dxe:Ip4If.obj
+ 0004:000002ac $pdata$Ip4SetAddress 000000000001480c Ip4Dxe:Ip4If.obj
+ 0004:000002b8 $pdata$Ip4CancelReceive 0000000000014818 Ip4Dxe:Ip4If.obj
+ 0004:000002c4 $pdata$Ip4FreeInterface 0000000000014824 Ip4Dxe:Ip4If.obj
+ 0004:000002d0 $pdata$Ip4SendFrameToDefaultRoute 0000000000014830 Ip4Dxe:Ip4If.obj
+ 0004:000002dc $pdata$Ip4OnArpResolvedDpc 000000000001483c Ip4Dxe:Ip4If.obj
+ 0004:000002e8 $pdata$Ip4OnFrameSentDpc 0000000000014848 Ip4Dxe:Ip4If.obj
+ 0004:000002f4 $pdata$Ip4SendFrame 0000000000014854 Ip4Dxe:Ip4If.obj
+ 0004:00000300 $pdata$Ip4RecycleFrame 0000000000014860 Ip4Dxe:Ip4If.obj
+ 0004:0000030c $pdata$Ip4OnFrameReceivedDpc 000000000001486c Ip4Dxe:Ip4If.obj
+ 0004:00000318 $pdata$Ip4ReceiveFrame 0000000000014878 Ip4Dxe:Ip4If.obj
+ 0004:00000324 $pdata$Ip4Config2DestroyDhcp4 0000000000014884 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:00000330 $pdata$Ip4Config2OnPolicyChanged 0000000000014890 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:0000033c $pdata$Ip4Config2SignalEvent 000000000001489c Ip4Dxe:Ip4Config2Impl.obj
+ 0004:00000348 $pdata$Ip4Config2ReadConfigData 00000000000148a8 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:00000354 $pdata$Ip4Config2WriteConfigData 00000000000148b4 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:00000360 $pdata$Ip4Config2BuildDefaultRouteTable 00000000000148c0 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:0000036c $pdata$Ip4Config2OnDhcp4SbInstalled 00000000000148cc Ip4Dxe:Ip4Config2Impl.obj
+ 0004:00000378 $pdata$Ip4Config2SetDefaultAddr 00000000000148d8 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:00000384 $pdata$Ip4Config2SetDnsServerWorker 00000000000148e4 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:00000390 $pdata$Ip4Config2OnDhcp4Complete 00000000000148f0 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:0000039c $pdata$Ip4StartAutoConfig 00000000000148fc Ip4Dxe:Ip4Config2Impl.obj
+ 0004:000003a8 $pdata$Ip4Config2GetIfInfo 0000000000014908 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:000003b4 $pdata$Ip4Config2SetPolicy 0000000000014914 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:000003c0 $pdata$Ip4Config2SetManualAddress 0000000000014920 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:000003cc $pdata$Ip4Config2SetGateway 000000000001492c Ip4Dxe:Ip4Config2Impl.obj
+ 0004:000003d8 $pdata$Ip4Config2SetDnsServer 0000000000014938 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:000003e4 $pdata$EfiIp4Config2SetData 0000000000014944 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:000003f0 $pdata$EfiIp4Config2GetData 0000000000014950 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:000003fc $pdata$EfiIp4Config2RegisterDataNotify 000000000001495c Ip4Dxe:Ip4Config2Impl.obj
+ 0004:00000408 $pdata$EfiIp4Config2UnregisterDataNotify 0000000000014968 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:00000414 $pdata$Ip4Config2InitInstance 0000000000014974 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:00000420 $pdata$Ip4Config2CleanInstance 0000000000014980 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:0000042c $pdata$Ip4AutoReconfigCallBackDpc 000000000001498c Ip4Dxe:Ip4Config2Impl.obj
+ 0004:00000438 $pdata$Ip4InitIgmp 0000000000014998 Ip4Dxe:Ip4Igmp.obj
+ 0004:00000444 $pdata$Ip4SendIgmpMessage 00000000000149a4 Ip4Dxe:Ip4Igmp.obj
+ 0004:00000450 $pdata$Ip4IgmpHandle 00000000000149b0 Ip4Dxe:Ip4Igmp.obj
+ 0004:0000045c $pdata$Ip4FreeRouteEntry 00000000000149bc Ip4Dxe:Ip4Route.obj
+ 0004:00000468 $pdata$Ip4FreeRouteCacheEntry 00000000000149c8 Ip4Dxe:Ip4Route.obj
+ 0004:00000474 $pdata$Ip4CreateRouteTable 00000000000149d4 Ip4Dxe:Ip4Route.obj
+ 0004:00000480 $pdata$Ip4FreeRouteTable 00000000000149e0 Ip4Dxe:Ip4Route.obj
+ 0004:0000048c $pdata$Ip4AddRoute 00000000000149ec Ip4Dxe:Ip4Route.obj
+ 0004:00000498 $pdata$Ip4DelRoute 00000000000149f8 Ip4Dxe:Ip4Route.obj
+ 0004:000004a4 $pdata$Ip4Route 0000000000014a04 Ip4Dxe:Ip4Route.obj
+ 0004:000004b0 $pdata$Ip4BuildEfiRouteTable 0000000000014a10 Ip4Dxe:Ip4Route.obj
+ 0004:000004bc $pdata$Ip4PrependHead 0000000000014a1c Ip4Dxe:Ip4Output.obj
+ 0004:000004c8 $pdata$Ip4Output 0000000000014a28 Ip4Dxe:Ip4Output.obj
+ 0004:000004d4 $pdata$Ip4ProcessIcmpRedirect 0000000000014a34 Ip4Dxe:Ip4Icmp.obj
+ 0004:000004e0 $pdata$Ip4IcmpReplyEcho 0000000000014a40 Ip4Dxe:Ip4Icmp.obj
+ 0004:000004ec $pdata$Ip4IcmpHandle 0000000000014a4c Ip4Dxe:Ip4Icmp.obj
+ 0004:000004f8 $pdata$Ip4GetHostCast 0000000000014a58 Ip4Dxe:Ip4Common.obj
+ 0004:00000504 $pdata$Ip4StationAddressValid 0000000000014a64 Ip4Dxe:Ip4Common.obj
+ 0004:00000510 $pdata$Ip4OptionIsValid 0000000000014a70 Ip4Dxe:Ip4Option.obj
+ 0004:0000051c $pdata$Ip4CopyOption 0000000000014a7c Ip4Dxe:Ip4Option.obj
+ 0004:00000528 $pdata$Ip4Config2StrToIp 0000000000014a88 Ip4Dxe:Ip4Config2Nv.obj
+ 0004:00000534 $pdata$Ip4Config2StrToIpList 0000000000014a94 Ip4Dxe:Ip4Config2Nv.obj
+ 0004:00000540 $pdata$Ip4Config2IpToStr 0000000000014aa0 Ip4Dxe:Ip4Config2Nv.obj
+ 0004:0000054c $pdata$Ip4Config2IpListToStr 0000000000014aac Ip4Dxe:Ip4Config2Nv.obj
+ 0004:00000558 $pdata$Ip4Config2ConvertConfigNvDataToIfrNvData 0000000000014ab8 Ip4Dxe:Ip4Config2Nv.obj
+ 0004:00000564 $pdata$Ip4Config2ConvertIfrNvDataToConfigNvData 0000000000014ac4 Ip4Dxe:Ip4Config2Nv.obj
+ 0004:00000570 $pdata$Ip4FormExtractConfig 0000000000014ad0 Ip4Dxe:Ip4Config2Nv.obj
+ 0004:0000057c $pdata$Ip4FormRouteConfig 0000000000014adc Ip4Dxe:Ip4Config2Nv.obj
+ 0004:00000588 $pdata$Ip4FormCallback 0000000000014ae8 Ip4Dxe:Ip4Config2Nv.obj
+ 0004:00000594 $pdata$Ip4Config2FormInit 0000000000014af4 Ip4Dxe:Ip4Config2Nv.obj
+ 0004:000005a0 $pdata$Ip4Config2FormUnload 0000000000014b00 Ip4Dxe:Ip4Config2Nv.obj
+ 0004:000005ac $pdata$ZeroMem 0000000000014b0c BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0004:000005b8 $pdata$CopyMem 0000000000014b18 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0004:000005c4 $pdata$CompareMem 0000000000014b24 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0004:000005d0 $pdata$CopyGuid 0000000000014b30 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0004:000005dc $pdata$InternalBaseLibIsListValid 0000000000014b3c BaseLib:LinkedList.obj
+ 0004:000005e8 $pdata$InitializeListHead 0000000000014b48 BaseLib:LinkedList.obj
+ 0004:000005f4 $pdata$InsertHeadList 0000000000014b54 BaseLib:LinkedList.obj
+ 0004:00000600 $pdata$InsertTailList 0000000000014b60 BaseLib:LinkedList.obj
+ 0004:0000060c $pdata$IsListEmpty 0000000000014b6c BaseLib:LinkedList.obj
+ 0004:00000618 $pdata$RemoveEntryList 0000000000014b78 BaseLib:LinkedList.obj
+ 0004:00000624 $pdata$StrLen 0000000000014b84 BaseLib:String.obj
+ 0004:00000630 $pdata$StrnCmp 0000000000014b90 BaseLib:String.obj
+ 0004:0000063c $pdata$StrStr 0000000000014b9c BaseLib:String.obj
+ 0004:00000648 $pdata$AsciiStrLen 0000000000014ba8 BaseLib:String.obj
+ 0004:00000654 $pdata$AsciiStrnCmp 0000000000014bb4 BaseLib:String.obj
+ 0004:00000660 $pdata$ReadUnaligned32 0000000000014bc0 BaseLib:Unaligned.obj
+ 0004:0000066c $pdata$ReadUnaligned64 0000000000014bcc BaseLib:Unaligned.obj
+ 0004:00000678 $pdata$StrnLenS 0000000000014bd8 BaseLib:SafeString.obj
+ 0004:00000684 $pdata$StrCpyS 0000000000014be4 BaseLib:SafeString.obj
+ 0004:00000690 $pdata$StrnCpyS 0000000000014bf0 BaseLib:SafeString.obj
+ 0004:0000069c $pdata$StrCatS 0000000000014bfc BaseLib:SafeString.obj
+ 0004:000006a8 $pdata$UnicodeSPrint 0000000000014c08 BasePrintLib:PrintLib.obj
+ 0004:000006b4 $pdata$UnicodeValueToStringS 0000000000014c14 BasePrintLib:PrintLib.obj
+ 0004:000006c0 $pdata$AsciiSPrint 0000000000014c20 BasePrintLib:PrintLib.obj
+ 0004:000006cc $pdata$BasePrintLibValueToString 0000000000014c2c BasePrintLib:PrintLibInternal.obj
+ 0004:000006d8 $pdata$BasePrintLibConvertValueToStringS 0000000000014c38 BasePrintLib:PrintLibInternal.obj
+ 0004:000006e4 $pdata$BasePrintLibSPrintMarker 0000000000014c44 BasePrintLib:PrintLibInternal.obj
+ 0004:000006f0 $pdata$BasePrintLibSPrint 0000000000014c50 BasePrintLib:PrintLibInternal.obj
+ 0004:000006fc $pdata$DebugPrint 0000000000014c5c PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000708 $pdata$DebugPrintMarker 0000000000014c68 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000714 $pdata$DebugAssert 0000000000014c74 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000720 $pdata$InternalAllocatePool 0000000000014c80 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:0000072c $pdata$AllocateZeroPool 0000000000014c8c UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000738 $pdata$InternalAllocateCopyPool 0000000000014c98 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000744 $pdata$FreePool 0000000000014ca4 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000750 $pdata$DevicePathSubType 0000000000014cb0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:0000075c $pdata$DevicePathNodeLength 0000000000014cbc UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000768 $pdata$NextDevicePathNode 0000000000014cc8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000774 $pdata$IsDevicePathEndType 0000000000014cd4 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000780 $pdata$IsDevicePathEnd 0000000000014ce0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:0000078c $pdata$SetDevicePathNodeLength 0000000000014cec UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000798 $pdata$DevicePathFromHandle 0000000000014cf8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000007a4 $pdata$CompareIso639LanguageCode 0000000000014d04 UefiLib:UefiLib.obj
+ 0004:000007b0 $pdata$EfiCreateProtocolNotifyEvent 0000000000014d10 UefiLib:UefiLib.obj
+ 0004:000007bc $pdata$EfiAcquireLockOrFail 0000000000014d1c UefiLib:UefiLib.obj
+ 0004:000007c8 $pdata$EfiReleaseLock 0000000000014d28 UefiLib:UefiLib.obj
+ 0004:000007d4 $pdata$IsLanguageSupported 0000000000014d34 UefiLib:UefiLib.obj
+ 0004:000007e0 $pdata$LookupUnicodeString2 0000000000014d40 UefiLib:UefiLib.obj
+ 0004:000007ec $pdata$AddUnicodeString2 0000000000014d4c UefiLib:UefiLib.obj
+ 0004:000007f8 $pdata$FreeUnicodeStringTable 0000000000014d58 UefiLib:UefiLib.obj
+ 0004:00000804 $pdata$GetEfiGlobalVariable2 0000000000014d64 UefiLib:UefiLib.obj
+ 0004:00000810 $pdata$GetBestLanguage 0000000000014d70 UefiLib:UefiLib.obj
+ 0004:0000081c $pdata$UefiLibGetStringWidth 0000000000014d7c UefiLib:Console.obj
+ 0004:00000828 $pdata$CreatePopUp 0000000000014d88 UefiLib:Console.obj
+ 0004:00000834 $pdata$NetIp4IsUnicast 0000000000014d94 DxeNetLib:DxeNetLib.obj
+ 0004:00000840 $pdata$NetListRemoveHead 0000000000014da0 DxeNetLib:DxeNetLib.obj
+ 0004:0000084c $pdata$NetListInsertBefore 0000000000014dac DxeNetLib:DxeNetLib.obj
+ 0004:00000858 $pdata$NetDestroyLinkList 0000000000014db8 DxeNetLib:DxeNetLib.obj
+ 0004:00000864 $pdata$NetMapInit 0000000000014dc4 DxeNetLib:DxeNetLib.obj
+ 0004:00000870 $pdata$NetMapClean 0000000000014dd0 DxeNetLib:DxeNetLib.obj
+ 0004:0000087c $pdata$NetMapIsEmpty 0000000000014ddc DxeNetLib:DxeNetLib.obj
+ 0004:00000888 $pdata$NetMapAllocItem 0000000000014de8 DxeNetLib:DxeNetLib.obj
+ 0004:00000894 $pdata$NetMapInsertTail 0000000000014df4 DxeNetLib:DxeNetLib.obj
+ 0004:000008a0 $pdata$NetMapFindKey 0000000000014e00 DxeNetLib:DxeNetLib.obj
+ 0004:000008ac $pdata$NetMapRemoveItem 0000000000014e0c DxeNetLib:DxeNetLib.obj
+ 0004:000008b8 $pdata$NetMapIterate 0000000000014e18 DxeNetLib:DxeNetLib.obj
+ 0004:000008c4 $pdata$NetLibCreateServiceChild 0000000000014e24 DxeNetLib:DxeNetLib.obj
+ 0004:000008d0 $pdata$NetLibDestroyServiceChild 0000000000014e30 DxeNetLib:DxeNetLib.obj
+ 0004:000008dc $pdata$NetLibGetSnpHandle 0000000000014e3c DxeNetLib:DxeNetLib.obj
+ 0004:000008e8 $pdata$NetLibGetVlanId 0000000000014e48 DxeNetLib:DxeNetLib.obj
+ 0004:000008f4 $pdata$NetLibGetMacString 0000000000014e54 DxeNetLib:DxeNetLib.obj
+ 0004:00000900 $pdata$NetLibGetNicHandle 0000000000014e60 DxeNetLib:DxeNetLib.obj
+ 0004:0000090c $pdata$NetbufAllocStruct 0000000000014e6c DxeNetLib:NetBuffer.obj
+ 0004:00000918 $pdata$NetbufAlloc 0000000000014e78 DxeNetLib:NetBuffer.obj
+ 0004:00000924 $pdata$NetbufFreeVector 0000000000014e84 DxeNetLib:NetBuffer.obj
+ 0004:00000930 $pdata$NetbufFree 0000000000014e90 DxeNetLib:NetBuffer.obj
+ 0004:0000093c $pdata$NetbufClone 0000000000014e9c DxeNetLib:NetBuffer.obj
+ 0004:00000948 $pdata$NetbufDuplicate 0000000000014ea8 DxeNetLib:NetBuffer.obj
+ 0004:00000954 $pdata$NetbufGetByte 0000000000014eb4 DxeNetLib:NetBuffer.obj
+ 0004:00000960 $pdata$NetbufSetBlock 0000000000014ec0 DxeNetLib:NetBuffer.obj
+ 0004:0000096c $pdata$NetbufSetBlockOp 0000000000014ecc DxeNetLib:NetBuffer.obj
+ 0004:00000978 $pdata$NetbufGetFragment 0000000000014ed8 DxeNetLib:NetBuffer.obj
+ 0004:00000984 $pdata$NetbufFromExt 0000000000014ee4 DxeNetLib:NetBuffer.obj
+ 0004:00000990 $pdata$NetbufBuildExt 0000000000014ef0 DxeNetLib:NetBuffer.obj
+ 0004:0000099c $pdata$NetbufReserve 0000000000014efc DxeNetLib:NetBuffer.obj
+ 0004:000009a8 $pdata$NetbufAllocSpace 0000000000014f08 DxeNetLib:NetBuffer.obj
+ 0004:000009b4 $pdata$NetblockTrim 0000000000014f14 DxeNetLib:NetBuffer.obj
+ 0004:000009c0 $pdata$NetbufTrim 0000000000014f20 DxeNetLib:NetBuffer.obj
+ 0004:000009cc $pdata$NetbufCopy 0000000000014f2c DxeNetLib:NetBuffer.obj
+ 0004:000009d8 $pdata$NetbufChecksum 0000000000014f38 DxeNetLib:NetBuffer.obj
+ 0004:000009e4 $pdata$NetIpSecNetbufFree 0000000000014f44 DxeNetLib:NetBuffer.obj
+ 0004:000009f0 $pdata$HiiSetString 0000000000014f50 UefiHiiLib:HiiString.obj
+ 0004:000009fc $pdata$HiiGetString 0000000000014f5c UefiHiiLib:HiiString.obj
+ 0004:00000a08 $pdata$HiiAddPackages 0000000000014f68 UefiHiiLib:HiiLib.obj
+ 0004:00000a14 $pdata$InternalHiiBrowserCallback 0000000000014f74 UefiHiiLib:HiiLib.obj
+ 0004:00000a20 $pdata$HiiConstructConfigHdr 0000000000014f80 UefiHiiLib:HiiLib.obj
+ 0004:00000a2c $pdata$InternalHiiCompareSubString 0000000000014f8c UefiHiiLib:HiiLib.obj
+ 0004:00000a38 $pdata$HiiIsConfigHdrMatch 0000000000014f98 UefiHiiLib:HiiLib.obj
+ 0004:00000a44 $pdata$HiiGetBrowserData 0000000000014fa4 UefiHiiLib:HiiLib.obj
+ 0004:00000a50 $pdata$HiiGetSupportedLanguages 0000000000014fb0 UefiHiiLib:HiiLanguage.obj
+ 0004:00000a5c $pdata$SetMem16 0000000000014fbc BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0005:00000000 $unwind$_DriverUnloadHandler 0000000000014fe0 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0005:00000010 $unwind$Ip4RecycleFrame 0000000000014ff0 Ip4Dxe:Ip4If.obj
+ 0005:00000010 $unwind$NextDevicePathNode 0000000000014ff0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000010 $unwind$InternalBaseLibIsListValid 0000000000014ff0 BaseLib:LinkedList.obj
+ 0005:00000010 $unwind$NetMapInit 0000000000014ff0 DxeNetLib:DxeNetLib.obj
+ 0005:00000010 $unwind$InitializeListHead 0000000000014ff0 BaseLib:LinkedList.obj
+ 0005:00000010 $unwind$Ip4OnPacketSent 0000000000014ff0 Ip4Dxe:Ip4Impl.obj
+ 0005:00000010 $unwind$SetDevicePathNodeLength 0000000000014ff0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000010 $unwind$NetIpSecNetbufFree 0000000000014ff0 DxeNetLib:NetBuffer.obj
+ 0005:00000010 $unwind$IpSec2InstalledCallback 0000000000014ff0 Ip4Dxe:Ip4Driver.obj
+ 0005:00000010 $unwind$Ip4FreeTxToken 0000000000014ff0 Ip4Dxe:Ip4Impl.obj
+ 0005:00000010 $unwind$RemoveEntryList 0000000000014ff0 BaseLib:LinkedList.obj
+ 0005:00000010 $unwind$NetbufFree 0000000000014ff0 DxeNetLib:NetBuffer.obj
+ 0005:00000010 $unwind$IsListEmpty 0000000000014ff0 BaseLib:LinkedList.obj
+ 0005:00000010 $unwind$Ip4FreeFrameRxToken 0000000000014ff0 Ip4Dxe:Ip4If.obj
+ 0005:00000010 $unwind$Ip4CleanService 0000000000014ff0 Ip4Dxe:Ip4Driver.obj
+ 0005:00000010 $unwind$IsDevicePathEndType 0000000000014ff0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000010 $unwind$Ip4CleanProtocol 0000000000014ff0 Ip4Dxe:Ip4Impl.obj
+ 0005:00000010 $unwind$Ip4FreeLinkTxToken 0000000000014ff0 Ip4Dxe:Ip4If.obj
+ 0005:00000010 $unwind$Ip4SentPacketTicking 0000000000014ff0 Ip4Dxe:Ip4Impl.obj
+ 0005:00000010 $unwind$NetMapIsEmpty 0000000000014ff0 DxeNetLib:DxeNetLib.obj
+ 0005:00000010 $unwind$Ip4FreeRouteCacheEntry 0000000000014ff0 Ip4Dxe:Ip4Route.obj
+ 0005:00000010 $unwind$DevicePathSubType 0000000000014ff0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000010 $unwind$DevicePathNodeLength 0000000000014ff0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000010 $unwind$EfiIp4Poll 0000000000014ff0 Ip4Dxe:Ip4Impl.obj
+ 0005:00000010 $unwind$ReadUnaligned32 0000000000014ff0 BaseLib:Unaligned.obj
+ 0005:00000010 $unwind$Ip4IpSecFree 0000000000014ff0 Ip4Dxe:Ip4Input.obj
+ 0005:00000010 $unwind$ReadUnaligned64 0000000000014ff0 BaseLib:Unaligned.obj
+ 0005:00000010 $unwind$Ip4FreeRouteEntry 0000000000014ff0 Ip4Dxe:Ip4Route.obj
+ 0005:00000010 $unwind$NetListRemoveHead 0000000000014ff0 DxeNetLib:DxeNetLib.obj
+ 0005:00000010 $unwind$AllocateZeroPool 0000000000014ff0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000010 $unwind$EfiAcquireLockOrFail 0000000000014ff0 UefiLib:UefiLib.obj
+ 0005:00000010 $unwind$Ip4AutoReconfigCallBackDpc 0000000000014ff0 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000010 $unwind$Ip4OnRecyclePacket 0000000000014ff0 Ip4Dxe:Ip4Input.obj
+ 0005:00000010 $unwind$EfiReleaseLock 0000000000014ff0 UefiLib:UefiLib.obj
+ 0005:00000010 $unwind$_ModuleEntryPoint 0000000000014ff0 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0005:00000018 $unwind$CompareMem 0000000000014ff8 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0005:00000018 $unwind$LookupUnicodeString2 0000000000014ff8 UefiLib:UefiLib.obj
+ 0005:00000018 $unwind$EfiIp4Config2GetData 0000000000014ff8 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000018 $unwind$ProcessLibraryConstructorList 0000000000014ff8 Ip4Dxe:AutoGen.obj
+ 0005:00000018 $unwind$EfiIp4Config2UnregisterDataNotify 0000000000014ff8 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000018 $unwind$Ip4ProcessIcmpRedirect 0000000000014ff8 Ip4Dxe:Ip4Icmp.obj
+ 0005:00000018 $unwind$NetbufTrim 0000000000014ff8 DxeNetLib:NetBuffer.obj
+ 0005:00000018 $unwind$Ip4CleanAssembleTable 0000000000014ff8 Ip4Dxe:Ip4Input.obj
+ 0005:00000030 $unwind$ProcessModuleEntryPointList 0000000000015010 Ip4Dxe:AutoGen.obj
+ 0005:00000038 $unwind$Ip4Config2FormUnload 0000000000015018 Ip4Dxe:Ip4Config2Nv.obj
+ 0005:00000038 $unwind$Ip4DriverBindingSupported 0000000000015018 Ip4Dxe:Ip4Driver.obj
+ 0005:00000038 $unwind$NetLibGetSnpHandle 0000000000015018 DxeNetLib:DxeNetLib.obj
+ 0005:00000044 $unwind$NetbufGetFragment 0000000000015024 DxeNetLib:NetBuffer.obj
+ 0005:00000044 $unwind$HiiConstructConfigHdr 0000000000015024 UefiHiiLib:HiiLib.obj
+ 0005:00000044 $unwind$Ip4Config2WriteConfigData 0000000000015024 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000044 $unwind$Ip4CreateService 0000000000015024 Ip4Dxe:Ip4Driver.obj
+ 0005:00000060 $unwind$AsciiStrnCmp 0000000000015040 BaseLib:String.obj
+ 0005:00000060 $unwind$NetbufGetByte 0000000000015040 DxeNetLib:NetBuffer.obj
+ 0005:00000060 $unwind$NetbufDuplicate 0000000000015040 DxeNetLib:NetBuffer.obj
+ 0005:00000060 $unwind$NetbufReserve 0000000000015040 DxeNetLib:NetBuffer.obj
+ 0005:00000060 $unwind$Ip4ServiceConfigMnp 0000000000015040 Ip4Dxe:Ip4Impl.obj
+ 0005:00000060 $unwind$Ip4CancelReceive 0000000000015040 Ip4Dxe:Ip4If.obj
+ 0005:00000060 $unwind$CopyGuid 0000000000015040 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0005:00000060 $unwind$HiiIsConfigHdrMatch 0000000000015040 UefiHiiLib:HiiLib.obj
+ 0005:00000060 $unwind$NetbufAllocStruct 0000000000015040 DxeNetLib:NetBuffer.obj
+ 0005:00000060 $unwind$SetMem16 0000000000015040 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0005:00000060 $unwind$StrStr 0000000000015040 BaseLib:String.obj
+ 0005:00000060 $unwind$NetblockTrim 0000000000015040 DxeNetLib:NetBuffer.obj
+ 0005:00000060 $unwind$Ip4CancelRxTokens 0000000000015040 Ip4Dxe:Ip4Impl.obj
+ 0005:00000060 $unwind$NetLibGetNicHandle 0000000000015040 DxeNetLib:DxeNetLib.obj
+ 0005:00000060 $unwind$NetMapInsertTail 0000000000015040 DxeNetLib:DxeNetLib.obj
+ 0005:00000060 $unwind$NetMapClean 0000000000015040 DxeNetLib:DxeNetLib.obj
+ 0005:00000060 $unwind$Ip4DestroyChildEntryInHandleBuffer 0000000000015040 Ip4Dxe:Ip4Driver.obj
+ 0005:00000060 $unwind$Ip4Config2CleanInstance 0000000000015040 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000060 $unwind$NetIp4IsUnicast 0000000000015040 DxeNetLib:DxeNetLib.obj
+ 0005:00000060 $unwind$StrLen 0000000000015040 BaseLib:String.obj
+ 0005:00000060 $unwind$FreeUnicodeStringTable 0000000000015040 UefiLib:UefiLib.obj
+ 0005:00000060 $unwind$Ip4CreateRouteTable 0000000000015040 Ip4Dxe:Ip4Route.obj
+ 0005:00000060 $unwind$EfiIp4Cancel 0000000000015040 Ip4Dxe:Ip4Impl.obj
+ 0005:00000060 $unwind$NetbufAlloc 0000000000015040 DxeNetLib:NetBuffer.obj
+ 0005:00000060 $unwind$IsLanguageSupported 0000000000015040 UefiLib:UefiLib.obj
+ 0005:00000070 $unwind$Ip4DriverBindingStart 0000000000015050 Ip4Dxe:Ip4Driver.obj
+ 0005:00000088 $unwind$Ip4DriverBindingStop 0000000000015068 Ip4Dxe:Ip4Driver.obj
+ 0005:000000a4 $unwind$Ip4ServiceBindingCreateChild 0000000000015084 Ip4Dxe:Ip4Driver.obj
+ 0005:000000b8 $unwind$Ip4ServiceBindingDestroyChild 0000000000015098 Ip4Dxe:Ip4Driver.obj
+ 0005:000000c8 $unwind$EfiIp4GetModeData 00000000000150a8 Ip4Dxe:Ip4Impl.obj
+ 0005:000000e0 $unwind$NetbufChecksum 00000000000150c0 DxeNetLib:NetBuffer.obj
+ 0005:000000e0 $unwind$InsertTailList 00000000000150c0 BaseLib:LinkedList.obj
+ 0005:000000e0 $unwind$InternalAllocateCopyPool 00000000000150c0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:000000e0 $unwind$CompareIso639LanguageCode 00000000000150c0 UefiLib:UefiLib.obj
+ 0005:000000e0 $unwind$NetbufFreeVector 00000000000150c0 DxeNetLib:NetBuffer.obj
+ 0005:000000e0 $unwind$Ip4CancelTxTokens 00000000000150c0 Ip4Dxe:Ip4Impl.obj
+ 0005:000000e0 $unwind$ZeroMem 00000000000150c0 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0005:000000e0 $unwind$Ip4FreeArpQue 00000000000150c0 Ip4Dxe:Ip4If.obj
+ 0005:000000e0 $unwind$Ip4Config2SetDnsServer 00000000000150c0 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:000000e0 $unwind$InsertHeadList 00000000000150c0 BaseLib:LinkedList.obj
+ 0005:000000e0 $unwind$NetLibGetVlanId 00000000000150c0 DxeNetLib:DxeNetLib.obj
+ 0005:000000e0 $unwind$AsciiStrLen 00000000000150c0 BaseLib:String.obj
+ 0005:000000e0 $unwind$IsDevicePathEnd 00000000000150c0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:000000e0 $unwind$NetMapFindKey 00000000000150c0 DxeNetLib:DxeNetLib.obj
+ 0005:000000e0 $unwind$NetMapRemoveItem 00000000000150c0 DxeNetLib:DxeNetLib.obj
+ 0005:000000e0 $unwind$NetbufClone 00000000000150c0 DxeNetLib:NetBuffer.obj
+ 0005:000000e0 $unwind$NetListInsertBefore 00000000000150c0 DxeNetLib:DxeNetLib.obj
+ 0005:000000e0 $unwind$Ip4Config2DestroyDhcp4 00000000000150c0 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:000000e0 $unwind$HiiGetSupportedLanguages 00000000000150c0 UefiHiiLib:HiiLanguage.obj
+ 0005:000000e0 $unwind$StrnLenS 00000000000150c0 BaseLib:SafeString.obj
+ 0005:000000e0 $unwind$Ip4InitProtocol 00000000000150c0 Ip4Dxe:Ip4Impl.obj
+ 0005:000000e0 $unwind$NetMapAllocItem 00000000000150c0 DxeNetLib:DxeNetLib.obj
+ 0005:000000ec $unwind$Ip4ConfigProtocol 00000000000150cc Ip4Dxe:Ip4Impl.obj
+ 0005:00000100 $unwind$EfiIp4Configure 00000000000150e0 Ip4Dxe:Ip4Impl.obj
+ 0005:00000114 $unwind$Ip4Groups 00000000000150f4 Ip4Dxe:Ip4Impl.obj
+ 0005:0000012c $unwind$EfiIp4Groups 000000000001510c Ip4Dxe:Ip4Impl.obj
+ 0005:00000140 $unwind$EfiIp4Routes 0000000000015120 Ip4Dxe:Ip4Impl.obj
+ 0005:00000158 $unwind$Ip4TxTokenValid 0000000000015138 Ip4Dxe:Ip4Impl.obj
+ 0005:00000168 $unwind$EfiIp4Transmit 0000000000015148 Ip4Dxe:Ip4Impl.obj
+ 0005:00000180 $unwind$EfiIp4Receive 0000000000015160 Ip4Dxe:Ip4Impl.obj
+ 0005:00000180 $unwind$Ip4Config2OnPolicyChanged 0000000000015160 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000180 $unwind$BasePrintLibValueToString 0000000000015160 BasePrintLib:PrintLibInternal.obj
+ 0005:00000180 $unwind$Ip4Cancel 0000000000015160 Ip4Dxe:Ip4Impl.obj
+ 0005:00000180 $unwind$InternalHiiCompareSubString 0000000000015160 UefiHiiLib:HiiLib.obj
+ 0005:00000180 $unwind$StrnCmp 0000000000015160 BaseLib:String.obj
+ 0005:00000180 $unwind$CopyMem 0000000000015160 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0005:00000180 $unwind$Ip4TrimPacket 0000000000015160 Ip4Dxe:Ip4Input.obj
+ 0005:00000180 $unwind$NetbufSetBlock 0000000000015160 DxeNetLib:NetBuffer.obj
+ 0005:00000180 $unwind$NetDestroyLinkList 0000000000015160 DxeNetLib:DxeNetLib.obj
+ 0005:00000180 $unwind$NetMapIterate 0000000000015160 DxeNetLib:DxeNetLib.obj
+ 0005:00000180 $unwind$NetbufSetBlockOp 0000000000015160 DxeNetLib:NetBuffer.obj
+ 0005:00000180 $unwind$EfiIp4Config2RegisterDataNotify 0000000000015160 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000194 $unwind$NetbufCopy 0000000000015174 DxeNetLib:NetBuffer.obj
+ 0005:00000194 $unwind$EfiIp4Config2SetData 0000000000015174 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000194 $unwind$Ip4TimerTicking 0000000000015174 Ip4Dxe:Ip4Impl.obj
+ 0005:00000194 $unwind$Ip4AddRoute 0000000000015174 Ip4Dxe:Ip4Route.obj
+ 0005:00000194 $unwind$Ip4FreeRouteTable 0000000000015174 Ip4Dxe:Ip4Route.obj
+ 0005:00000194 $unwind$Ip4BuildEfiRouteTable 0000000000015174 Ip4Dxe:Ip4Route.obj
+ 0005:000001ac $unwind$Ip4TimerReconfigChecking 000000000001518c Ip4Dxe:Ip4Impl.obj
+ 0005:000001bc $unwind$Ip4FreeAssembleEntry 000000000001519c Ip4Dxe:Ip4Input.obj
+ 0005:000001d0 $unwind$Ip4Reassemble 00000000000151b0 Ip4Dxe:Ip4Input.obj
+ 0005:000001ec $unwind$Ip4IpSecProcessPacket 00000000000151cc Ip4Dxe:Ip4Input.obj
+ 0005:0000020c $unwind$Ip4Route 00000000000151ec Ip4Dxe:Ip4Route.obj
+ 0005:0000020c $unwind$Ip4InstanceDeliverPacket 00000000000151ec Ip4Dxe:Ip4Input.obj
+ 0005:0000020c $unwind$Ip4PreProcessPacket 00000000000151ec Ip4Dxe:Ip4Input.obj
+ 0005:0000020c $unwind$Ip4CancelFrames 00000000000151ec Ip4Dxe:Ip4If.obj
+ 0005:0000020c $unwind$Ip4DelRoute 00000000000151ec Ip4Dxe:Ip4Route.obj
+ 0005:00000228 $unwind$Ip4AccpetFrame 0000000000015208 Ip4Dxe:Ip4Input.obj
+ 0005:00000238 $unwind$Ip4WrapRxData 0000000000015218 Ip4Dxe:Ip4Input.obj
+ 0005:0000024c $unwind$Ip4InterfaceEnquePacket 000000000001522c Ip4Dxe:Ip4Input.obj
+ 0005:00000260 $unwind$Ip4Demultiplex 0000000000015240 Ip4Dxe:Ip4Input.obj
+ 0005:00000260 $unwind$Ip4CancelFrameArp 0000000000015240 Ip4Dxe:Ip4If.obj
+ 0005:0000027c $unwind$Ip4ComponentNameGetDriverName 000000000001525c Ip4Dxe:ComponentName.obj
+ 0005:00000284 $unwind$UpdateName 0000000000015264 Ip4Dxe:ComponentName.obj
+ 0005:0000028c $unwind$Ip4ComponentNameGetControllerName 000000000001526c Ip4Dxe:ComponentName.obj
+ 0005:000002a0 $unwind$Ip4CreateInterface 0000000000015280 Ip4Dxe:Ip4If.obj
+ 0005:000002b8 $unwind$Ip4SetAddress 0000000000015298 Ip4Dxe:Ip4If.obj
+ 0005:000002cc $unwind$Ip4FreeInterface 00000000000152ac Ip4Dxe:Ip4If.obj
+ 0005:000002dc $unwind$StrCpyS 00000000000152bc BaseLib:SafeString.obj
+ 0005:000002dc $unwind$Ip4SendFrameToDefaultRoute 00000000000152bc Ip4Dxe:Ip4If.obj
+ 0005:000002f4 $unwind$Ip4OnArpResolvedDpc 00000000000152d4 Ip4Dxe:Ip4If.obj
+ 0005:0000030c $unwind$Ip4OnFrameSentDpc 00000000000152ec Ip4Dxe:Ip4If.obj
+ 0005:00000314 $unwind$Ip4SendFrame 00000000000152f4 Ip4Dxe:Ip4If.obj
+ 0005:00000314 $unwind$Ip4Config2SetGateway 00000000000152f4 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:0000032c $unwind$Ip4OnFrameReceivedDpc 000000000001530c Ip4Dxe:Ip4If.obj
+ 0005:0000033c $unwind$UnicodeValueToStringS 000000000001531c BasePrintLib:PrintLib.obj
+ 0005:0000033c $unwind$Ip4ReceiveFrame 000000000001531c Ip4Dxe:Ip4If.obj
+ 0005:0000034c $unwind$FreePool 000000000001532c UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:0000034c $unwind$DevicePathFromHandle 000000000001532c UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:0000034c $unwind$InternalAllocatePool 000000000001532c UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:0000034c $unwind$Ip4Config2SignalEvent 000000000001532c Ip4Dxe:Ip4Config2Impl.obj
+ 0005:0000034c $unwind$Ip4StationAddressValid 000000000001532c Ip4Dxe:Ip4Common.obj
+ 0005:0000034c $unwind$Ip4Config2OnDhcp4SbInstalled 000000000001532c Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000354 $unwind$Ip4Config2ReadConfigData 0000000000015334 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:0000036c $unwind$Ip4Config2BuildDefaultRouteTable 000000000001534c Ip4Dxe:Ip4Config2Impl.obj
+ 0005:0000036c $unwind$UefiLibGetStringWidth 000000000001534c UefiLib:Console.obj
+ 0005:00000380 $unwind$Ip4Config2SetDefaultAddr 0000000000015360 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000398 $unwind$Ip4Config2SetDnsServerWorker 0000000000015378 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:000003b0 $unwind$Ip4Config2OnDhcp4Complete 0000000000015390 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:000003cc $unwind$Ip4StartAutoConfig 00000000000153ac Ip4Dxe:Ip4Config2Impl.obj
+ 0005:000003e8 $unwind$Ip4Config2GetIfInfo 00000000000153c8 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:000003fc $unwind$Ip4Config2SetPolicy 00000000000153dc Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000410 $unwind$Ip4Config2SetManualAddress 00000000000153f0 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000410 $unwind$Ip4Config2InitInstance 00000000000153f0 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:0000042c $unwind$Ip4InitIgmp 000000000001540c Ip4Dxe:Ip4Igmp.obj
+ 0005:00000444 $unwind$Ip4IcmpReplyEcho 0000000000015424 Ip4Dxe:Ip4Icmp.obj
+ 0005:00000444 $unwind$Ip4SendIgmpMessage 0000000000015424 Ip4Dxe:Ip4Igmp.obj
+ 0005:0000045c $unwind$Ip4IgmpHandle 000000000001543c Ip4Dxe:Ip4Igmp.obj
+ 0005:0000046c $unwind$Ip4PrependHead 000000000001544c Ip4Dxe:Ip4Output.obj
+ 0005:00000488 $unwind$Ip4Output 0000000000015468 Ip4Dxe:Ip4Output.obj
+ 0005:000004a0 $unwind$Ip4IcmpHandle 0000000000015480 Ip4Dxe:Ip4Icmp.obj
+ 0005:000004b0 $unwind$Ip4GetHostCast 0000000000015490 Ip4Dxe:Ip4Common.obj
+ 0005:000004b0 $unwind$Ip4OptionIsValid 0000000000015490 Ip4Dxe:Ip4Option.obj
+ 0005:000004bc $unwind$Ip4CopyOption 000000000001549c Ip4Dxe:Ip4Option.obj
+ 0005:000004d8 $unwind$NetbufBuildExt 00000000000154b8 DxeNetLib:NetBuffer.obj
+ 0005:000004d8 $unwind$Ip4Config2StrToIp 00000000000154b8 Ip4Dxe:Ip4Config2Nv.obj
+ 0005:000004e0 $unwind$Ip4Config2StrToIpList 00000000000154c0 Ip4Dxe:Ip4Config2Nv.obj
+ 0005:000004f8 $unwind$Ip4Config2IpToStr 00000000000154d8 Ip4Dxe:Ip4Config2Nv.obj
+ 0005:00000500 $unwind$Ip4Config2IpListToStr 00000000000154e0 Ip4Dxe:Ip4Config2Nv.obj
+ 0005:0000051c $unwind$Ip4Config2ConvertConfigNvDataToIfrNvData 00000000000154fc Ip4Dxe:Ip4Config2Nv.obj
+ 0005:00000530 $unwind$Ip4Config2ConvertIfrNvDataToConfigNvData 0000000000015510 Ip4Dxe:Ip4Config2Nv.obj
+ 0005:00000548 $unwind$Ip4FormExtractConfig 0000000000015528 Ip4Dxe:Ip4Config2Nv.obj
+ 0005:00000564 $unwind$Ip4FormRouteConfig 0000000000015544 Ip4Dxe:Ip4Config2Nv.obj
+ 0005:00000578 $unwind$Ip4FormCallback 0000000000015558 Ip4Dxe:Ip4Config2Nv.obj
+ 0005:00000590 $unwind$Ip4Config2FormInit 0000000000015570 Ip4Dxe:Ip4Config2Nv.obj
+ 0005:000005a4 $unwind$StrnCpyS 0000000000015584 BaseLib:SafeString.obj
+ 0005:000005bc $unwind$StrCatS 000000000001559c BaseLib:SafeString.obj
+ 0005:000005d8 $unwind$UnicodeSPrint 00000000000155b8 BasePrintLib:PrintLib.obj
+ 0005:000005e4 $unwind$AsciiSPrint 00000000000155c4 BasePrintLib:PrintLib.obj
+ 0005:000005ec $unwind$BasePrintLibConvertValueToStringS 00000000000155cc BasePrintLib:PrintLibInternal.obj
+ 0005:00000604 $unwind$BasePrintLibSPrintMarker 00000000000155e4 BasePrintLib:PrintLibInternal.obj
+ 0005:00000620 $unwind$BasePrintLibSPrint 0000000000015600 BasePrintLib:PrintLibInternal.obj
+ 0005:00000628 $unwind$DebugPrint 0000000000015608 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:00000630 $unwind$DebugPrintMarker 0000000000015610 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:00000644 $unwind$DebugAssert 0000000000015624 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:0000064c $unwind$EfiCreateProtocolNotifyEvent 000000000001562c UefiLib:UefiLib.obj
+ 0005:00000660 $unwind$AddUnicodeString2 0000000000015640 UefiLib:UefiLib.obj
+ 0005:00000678 $unwind$GetEfiGlobalVariable2 0000000000015658 UefiLib:UefiLib.obj
+ 0005:00000684 $unwind$GetBestLanguage 0000000000015664 UefiLib:UefiLib.obj
+ 0005:00000698 $unwind$CreatePopUp 0000000000015678 UefiLib:Console.obj
+ 0005:000006b0 $unwind$NetLibDestroyServiceChild 0000000000015690 DxeNetLib:DxeNetLib.obj
+ 0005:000006b0 $unwind$NetLibCreateServiceChild 0000000000015690 DxeNetLib:DxeNetLib.obj
+ 0005:000006c4 $unwind$NetLibGetMacString 00000000000156a4 DxeNetLib:DxeNetLib.obj
+ 0005:000006e0 $unwind$NetbufFromExt 00000000000156c0 DxeNetLib:NetBuffer.obj
+ 0005:000006f8 $unwind$NetbufAllocSpace 00000000000156d8 DxeNetLib:NetBuffer.obj
+ 0005:0000070c $unwind$HiiSetString 00000000000156ec UefiHiiLib:HiiString.obj
+ 0005:00000724 $unwind$HiiGetString 0000000000015704 UefiHiiLib:HiiString.obj
+ 0005:00000734 $unwind$HiiAddPackages 0000000000015714 UefiHiiLib:HiiLib.obj
+ 0005:00000748 $unwind$InternalHiiBrowserCallback 0000000000015728 UefiHiiLib:HiiLib.obj
+ 0005:00000758 $unwind$HiiGetBrowserData 0000000000015738 UefiHiiLib:HiiLib.obj
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/Ip4Dxe.makefile b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/Ip4Dxe.makefile
new file mode 100644
index 000000000000..1aecb579ef9d
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/Ip4Dxe.makefile
@@ -0,0 +1 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\Makefile
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/Makefile b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/Makefile
new file mode 100644
index 000000000000..a1e9dca659f9
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/Makefile
@@ -0,0 +1,464 @@
+#
+# DO NOT EDIT
+# This file is auto-generated by build utility
+#
+# Module Name:
+#
+# Makefile
+#
+# Abstract:
+#
+# Auto-generated makefile for building modules, libraries or platform
+#
+
+
+#
+# Platform Macro Definition
+#
+PLATFORM_NAME = Ovmf
+PLATFORM_GUID = 5a9e7754-d81b-49ea-85ad-69eaa7b1539b
+PLATFORM_VERSION = 0.1
+PLATFORM_RELATIVE_DIR = OvmfPkg
+PLATFORM_DIR = c:\users\mliang2x\workspace\edk2\OvmfPkg
+PLATFORM_OUTPUT_DIR = Build\Ovmf3264
+
+#
+# Module Macro Definition
+#
+MODULE_NAME = Ip4Dxe
+MODULE_GUID = 9FB1A1F3-3B71-4324-B39A-745CBB015FFF
+MODULE_NAME_GUID = Ip4Dxe
+MODULE_VERSION = 1.0
+MODULE_TYPE = UEFI_DRIVER
+MODULE_FILE = Ip4Dxe.inf
+MODULE_FILE_BASE_NAME = Ip4Dxe
+BASE_NAME = $(MODULE_NAME)
+MODULE_RELATIVE_DIR = NetworkPkg\Ip4Dxe
+PACKAGE_RELATIVE_DIR = Ip4Dxe
+MODULE_DIR = c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe
+FFS_OUTPUT_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\FV\Ffs\9FB1A1F3-3B71-4324-B39A-745CBB015FFFIp4Dxe
+
+MODULE_ENTRY_POINT = Ip4DriverEntryPoint
+ARCH_ENTRY_POINT = Ip4DriverEntryPoint
+IMAGE_ENTRY_POINT = _ModuleEntryPoint
+
+INF_VERSION = 0x00010005
+BASE_NAME = Ip4Dxe
+MODULE_UNI_FILE = Ip4Dxe.uni
+FILE_GUID = 9FB1A1F3-3B71-4324-B39A-745CBB015FFF
+MODULE_TYPE = UEFI_DRIVER
+VERSION_STRING = 1.0
+
+#
+# Build Configuration Macro Definition
+#
+ARCH = X64
+TOOLCHAIN = VS2015x86
+TOOLCHAIN_TAG = VS2015x86
+TARGET = DEBUG
+
+#
+# Build Directory Macro Definition
+#
+# PLATFORM_BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86
+BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86
+BIN_DIR = $(BUILD_DIR)\X64
+LIB_DIR = $(BIN_DIR)
+MODULE_BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe
+OUTPUT_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT
+DEBUG_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG
+DEST_DIR_OUTPUT = $(OUTPUT_DIR)
+DEST_DIR_DEBUG = $(DEBUG_DIR)
+
+#
+# Shell Command Macro
+#
+CP = copy /y
+MV = move /y
+RM = del /f /q
+MD = mkdir
+RD = rmdir /s /q
+
+
+#
+# Tools definitions specific to this module
+#
+APP_FLAGS = /nologo /E /TC
+APP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASL_FLAGS =
+ASL_OUTFLAGS = -p
+ASL = C:\ASL\iasl.exe
+
+ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable
+ASLCC = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE
+ASLDLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\link.exe
+
+ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h
+ASLPP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+ASM = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\ml64.exe
+
+ASM16 = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\ml.exe
+
+ASMLINK_FLAGS = /nologo /tiny
+ASMLINK = C:\WINDDK\3790.1830\bin\bin16\link16.exe
+
+BROTLI_GUID = 3D532050-5CDA-4FD0-879E-0F7F630D5AFB
+BROTLI = BrotliCompress
+
+CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /D DISABLE_NEW_DEPRECATED_INTERFACES /D ENABLE_MD5_DEPRECATED_INTERFACES
+CC = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+CRC32_GUID = FC1BCDB0-7D31-49AA-936A-A4600D9DD083
+CRC32 = GenCrc32
+
+DEPS_FLAGS = /showIncludes
+
+DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+DLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\link.exe
+
+DLINK2_FLAGS =
+
+DTC_FLAGS = -H epapr
+DTC = dtc
+
+DTCPP = cpp
+
+GENFW_FLAGS =
+GENFW = GenFw
+
+LZMA_GUID = EE4E5898-3914-4259-9D6E-DC7BD79403CF
+LZMA = LzmaCompress
+
+LZMAF86_GUID = D42AE6BD-1352-4bfb-909A-CA72A6EAE889
+LZMAF86 = LzmaF86Compress
+
+MAKE = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\nmake.exe
+
+NASM_FLAGS = -Ox -f win64 -g
+NASM = C:\nasm\nasm
+
+NASMB_FLAGS = -f bin
+
+OBJCOPY_ADDDEBUGFLAG = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_NAME).debug
+OBJCOPY_FLAGS = objcopy not needed for
+OBJCOPY = echo
+OBJCOPY_STRIPFLAG = --strip-unneeded -R .eh_frame
+
+OPTROM_FLAGS = -e
+OPTROM = EfiRom
+
+PKCS7SIGN_GUID = 4AAFD29D-68DF-49EE-8AA9-347D375665A7
+PKCS7SIGN = Pkcs7Sign
+
+PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+PP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+PYVFR = PyVfrCompile
+
+RC = c:\Program Files (x86)\Windows Kits\8.1\bin\x64\rc.exe
+
+RSA2048SHA256SIGN_GUID = A7717414-C616-4977-9420-844712A735BF
+RSA2048SHA256SIGN = Rsa2048Sha256Sign
+
+SLINK_FLAGS = /NOLOGO /LTCG
+SLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\lib.exe
+
+SYMRENAME_FLAGS = Symbol renaming not needed for
+SYMRENAME = echo
+
+TIANO_GUID = A31280AD-481E-41B6-95E8-127F4C984779
+TIANO = TianoCompress
+
+VFR_FLAGS = -l -n
+VFR = VfrCompile
+
+VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+VFRPP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+VPDTOOL_GUID = 8C3D856A-9BE6-468E-850A-24F7A8D38E08
+VPDTOOL = BPDG
+
+cc_resp_14 = @c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\cc_resp_14.txt
+
+MAKE_FILE = $(MODULE_BUILD_DIR)\Makefile
+
+#
+# Build Macro
+#
+OBJECT_FILES = \
+ $(OUTPUT_DIR)\AutoGen.obj \
+ $(OUTPUT_DIR)\ComponentName.obj \
+ $(OUTPUT_DIR)\Ip4Common.obj \
+ $(OUTPUT_DIR)\Ip4Config2.obj \
+ $(OUTPUT_DIR)\Ip4Config2Impl.obj \
+ $(OUTPUT_DIR)\Ip4Config2Nv.obj \
+ $(OUTPUT_DIR)\Ip4Driver.obj \
+ $(OUTPUT_DIR)\Ip4Icmp.obj \
+ $(OUTPUT_DIR)\Ip4If.obj \
+ $(OUTPUT_DIR)\Ip4Igmp.obj \
+ $(OUTPUT_DIR)\Ip4Impl.obj \
+ $(OUTPUT_DIR)\Ip4Input.obj \
+ $(OUTPUT_DIR)\Ip4Option.obj \
+ $(OUTPUT_DIR)\Ip4Output.obj \
+ $(OUTPUT_DIR)\Ip4Route.obj
+
+STATIC_LIBRARY_FILES = \
+ $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\OUTPUT\UefiHiiLib.lib \
+ $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\OUTPUT\UefiHiiServicesLib.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\OUTPUT\BaseDebugPrintErrorLevelLib.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\OUTPUT\BaseIoLibIntrinsicSev.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\OUTPUT\BaseLib.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\OUTPUT\BaseMemoryLibRepStr.lib \
+ $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\OUTPUT\BasePrintLib.lib \
+ $(BIN_DIR)\MdePkg\Library\CcProbeLibNull\CcProbeLibNull\OUTPUT\CcProbeLibNull.lib \
+ $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\OUTPUT\DxePcdLib.lib \
+ $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\OUTPUT\FilterLibNull.lib \
+ $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\OUTPUT\TdxLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\OUTPUT\UefiBootServicesTableLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\OUTPUT\UefiDevicePathLibDevicePathProtocol.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint\OUTPUT\UefiDriverEntryPoint.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\OUTPUT\UefiLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\OUTPUT\UefiMemoryAllocationLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\OUTPUT\UefiRuntimeServicesTableLib.lib \
+ $(BIN_DIR)\NetworkPkg\Library\DxeDpcLib\DxeDpcLib\OUTPUT\DxeDpcLib.lib \
+ $(BIN_DIR)\NetworkPkg\Library\DxeNetLib\DxeNetLib\OUTPUT\DxeNetLib.lib \
+ $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\OUTPUT\PlatformDebugLibIoPort.lib \
+ $(OUTPUT_DIR)\Ip4Dxe.lib
+
+INC = \
+ /I$(WORKSPACE)\NetworkPkg\Ip4Dxe \
+ /I$(DEBUG_DIR) \
+ /I$(WORKSPACE)\MdePkg \
+ /I$(WORKSPACE)\MdePkg\Include \
+ /I$(WORKSPACE)\MdePkg\Test\UnitTest\Include \
+ /I$(WORKSPACE)\MdePkg\Include\X64 \
+ /I$(WORKSPACE)\MdeModulePkg \
+ /I$(WORKSPACE)\MdeModulePkg\Include \
+ /I$(WORKSPACE)\NetworkPkg \
+ /I$(WORKSPACE)\NetworkPkg\Include
+
+OBJECT_FILES_LIST = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\object_files.lst
+STATIC_LIBRARY_FILES_LIST = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\static_library_files.lst
+OBJLIST_0 = $(OUTPUT_DIR)\Ip4Common.obj $(OUTPUT_DIR)\AutoGen.obj $(OUTPUT_DIR)\Ip4Igmp.obj $(OUTPUT_DIR)\Ip4Input.obj $(OUTPUT_DIR)\Ip4Driver.obj $(OUTPUT_DIR)\Ip4Icmp.obj $(OUTPUT_DIR)\Ip4Output.obj $(OUTPUT_DIR)\Ip4If.obj $(OUTPUT_DIR)\Ip4Config2Nv.obj $(OUTPUT_DIR)\Ip4Config2Impl.obj $(OUTPUT_DIR)\Ip4Route.obj $(OUTPUT_DIR)\Ip4Config2.obj $(OUTPUT_DIR)\Ip4Option.obj $(OUTPUT_DIR)\Ip4Impl.obj $(OUTPUT_DIR)\ComponentName.obj
+
+
+#
+# Overridable Target Macro Definitions
+#
+FORCE_REBUILD = force_build
+INIT_TARGET = init
+PCH_TARGET =
+BC_TARGET =
+CODA_TARGET = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Dxe.efi \
+ $(FFS_OUTPUT_DIR)\$(MODULE_GUID).map \
+ $(FFS_OUTPUT_DIR)\$(MODULE_GUID).ffs \
+
+
+#
+# Default target, which will build dependent libraries in addition to source files
+#
+
+all: mbuild
+
+
+#
+# Target used when called from platform makefile, which will bypass the build of dependent libraries
+#
+
+pbuild: $(INIT_TARGET) $(BC_TARGET) $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# ModuleTarget
+#
+
+mbuild: $(INIT_TARGET) $(BC_TARGET) gen_libs $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# Build Target used in multi-thread build mode, which will bypass the init and gen_libs targets
+#
+
+tbuild: $(BC_TARGET) $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# Phony target which is used to force executing commands for a target
+#
+force_build:
+ -@
+
+#
+# Target to update the FD
+#
+
+fds: mbuild gen_fds
+
+#
+# Initialization target: print build information and create necessary directories
+#
+init: info dirs
+
+info:
+ -@echo Building ... $(MODULE_DIR)\$(MODULE_FILE) [$(ARCH)]
+
+dirs:
+ -@if not exist $(DEBUG_DIR) $(MD) $(DEBUG_DIR)
+ -@if not exist $(OUTPUT_DIR) $(MD) $(OUTPUT_DIR)
+
+
+strdefs:
+ -@$(CP) $(DEBUG_DIR)\AutoGen.h $(DEBUG_DIR)\$(MODULE_NAME)StrDefs.h
+
+#
+# GenLibsTarget
+#
+gen_libs:
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\CcProbeLibNull\CcProbeLibNull\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\NetworkPkg\Library\DxeNetLib\DxeNetLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\NetworkPkg\Library\DxeDpcLib\DxeDpcLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\Makefile
+ @cd $(MODULE_BUILD_DIR)
+
+#
+# Build Flash Device Image
+#
+gen_fds:
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BUILD_DIR)\Makefile fds
+ @cd $(MODULE_BUILD_DIR)
+
+!INCLUDE $(MODULE_BUILD_DIR)\dependency
+!INCLUDE $(MODULE_BUILD_DIR)\deps_target
+
+#
+# Individual Object Build Targets
+#
+$(OBJLIST_0): \
+ $(MAKE_FILE) \
+ $(WORKSPACE)\NetworkPkg\Ip4Dxe\Ip4Input.c \
+ $(DEBUG_DIR)\AutoGen.h \
+ $(DEBUG_DIR)\Ip4DxeStrDefs.h \
+ $(WORKSPACE)\NetworkPkg\Ip4Dxe\ComponentName.c \
+ $(WORKSPACE)\NetworkPkg\Ip4Dxe\Ip4Driver.c \
+ $(WORKSPACE)\NetworkPkg\Ip4Dxe\Ip4Impl.c \
+ $(WORKSPACE)\NetworkPkg\Ip4Dxe\Ip4Option.c \
+ $(DEBUG_DIR)\AutoGen.c \
+ $(WORKSPACE)\NetworkPkg\Ip4Dxe\Ip4Common.c \
+ $(WORKSPACE)\NetworkPkg\Ip4Dxe\Ip4Route.c \
+ $(WORKSPACE)\NetworkPkg\Ip4Dxe\Ip4If.c \
+ $(WORKSPACE)\NetworkPkg\Ip4Dxe\Ip4Config2Impl.c \
+ $(WORKSPACE)\NetworkPkg\Ip4Dxe\Ip4Igmp.c \
+ $(WORKSPACE)\NetworkPkg\Ip4Dxe\Ip4Icmp.c \
+ $(WORKSPACE)\NetworkPkg\Ip4Dxe\Ip4Config2Nv.c \
+ $(WORKSPACE)\NetworkPkg\Ip4Dxe\Ip4Output.c \
+ $(DEBUG_DIR)\Ip4Config2.c
+ "$(CC)" /Foc:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\.\ $(DEPS_FLAGS) $(CC_FLAGS) $(INC) $(cc_resp_14)
+
+$(OUTPUT_DIR)\Ip4Dxe.lib : $(OBJECT_FILES)
+$(OUTPUT_DIR)\Ip4Dxe.lib : $(OBJECT_FILES_LIST)
+ "$(SLINK)" $(SLINK_FLAGS) /OUT:c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Dxe.lib @$(OBJECT_FILES_LIST)
+
+$(DEBUG_DIR)\Ip4Dxe.dll : $(MAKE_FILE)
+$(DEBUG_DIR)\Ip4Dxe.dll : $(STATIC_LIBRARY_FILES)
+$(DEBUG_DIR)\Ip4Dxe.dll : $(STATIC_LIBRARY_FILES_LIST)
+ "$(DLINK)" /OUT:c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\Ip4Dxe.dll $(DLINK_FLAGS) $(DLINK2_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST)
+ "$(DLINK)" /OUT:c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\Ip4Dxe.dll $(DLINK_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST)
+
+$(OUTPUT_DIR)\Ip4Dxe.efi : $(DEBUG_DIR)\Ip4Dxe.dll
+ "$(GENFW)" -e $(MODULE_TYPE) -o c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Dxe.efi c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\Ip4Dxe.dll $(GENFW_FLAGS)
+ $(CP) c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Dxe.efi $(DEBUG_DIR)
+ $(CP) c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Dxe.efi $(BIN_DIR)\$(MODULE_NAME_GUID).efi
+ -$(CP) $(DEBUG_DIR)\*.map $(OUTPUT_DIR)
+ -$(CP) $(DEBUG_DIR)\*.pdb $(OUTPUT_DIR)
+
+$(DEBUG_DIR)\Ip4Dxe.efi : $(OUTPUT_DIR)\Ip4Dxe.efi
+
+
+$(OUTPUT_DIR)\Ip4Dxe.map : $(OUTPUT_DIR)\Ip4Dxe.efi
+
+
+$(DEBUG_DIR)\Ip4Config2.c : $(MAKE_FILE)
+$(DEBUG_DIR)\Ip4Config2.c : $(DEBUG_DIR)\AutoGen.h
+$(DEBUG_DIR)\Ip4Config2.c : $(DEBUG_DIR)\Ip4DxeStrDefs.h
+$(DEBUG_DIR)\Ip4Config2.c : $(WORKSPACE)\NetworkPkg\Ip4Dxe\Ip4Config2.vfr
+ "$(VFRPP)" $(DEPS_FLAGS) $(VFRPP_FLAGS) $(INC) c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Config2.vfr > $(OUTPUT_DIR)\Ip4Config2.i
+ "$(VFR)" $(VFR_FLAGS) --string-db $(OUTPUT_DIR)\$(MODULE_NAME)StrDefs.hpk --output-directory c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\. $(OUTPUT_DIR)\Ip4Config2.i
+ "$(PYVFR)" c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Config2.vfr -i $(INC) -m $(MODULE_NAME) -o $(OUTPUT_DIR) --vfr
+
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID).map : $(OUTPUT_DIR)\Ip4Dxe.map
+ if exist $(OUTPUT_DIR)\Ip4Dxe.map $(CP) $(OUTPUT_DIR)\Ip4Dxe.map $(FFS_OUTPUT_DIR)\$(MODULE_GUID).map
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID).ffs : $(FFS_OUTPUT_DIR)\Ip4DxeOffset.raw $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.1.pe32 $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ui $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC4.ver
+ GenFfs -t EFI_FV_FILETYPE_DRIVER -g $(MODULE_GUID) -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID).ffs -oi $(FFS_OUTPUT_DIR)\Ip4DxeOffset.raw -oi $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.1.pe32 -oi $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ui -oi $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC4.ver
+$(FFS_OUTPUT_DIR)\Ip4DxeOffset.raw : $(FFS_OUTPUT_DIR)\Ip4Dxe.offset
+ if exist $(FFS_OUTPUT_DIR)\Ip4Dxe.offset GenSec -s EFI_SECTION_RAW -o $(FFS_OUTPUT_DIR)\Ip4DxeOffset.raw $(FFS_OUTPUT_DIR)\Ip4Dxe.offset
+$(FFS_OUTPUT_DIR)\Ip4Dxe.offset : $(DEBUG_DIR)\Ip4Dxe.efi
+ Trim --Vfr-Uni-Offset -o $(FFS_OUTPUT_DIR)\Ip4Dxe.offset --ModuleName=Ip4Dxe --DebugDir=c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.1.pe32 : $(OUTPUT_DIR)\Ip4Dxe.efi
+ if exist $(OUTPUT_DIR)\Ip4Dxe.efi GenSec -s EFI_SECTION_PE32 -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.1.pe32 $(OUTPUT_DIR)\Ip4Dxe.efi
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ui : $(MODULE_DIR)\$(MODULE_FILE)
+ GenSec -s EFI_SECTION_USER_INTERFACE -n $(MODULE_NAME) -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ui
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC4.ver : $(MODULE_DIR)\$(MODULE_FILE)
+ GenSec -s EFI_SECTION_VERSION -n 1.0 -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC4.ver
+
+
+#
+# clean all intermediate files
+#
+clean:
+ if exist $(OUTPUT_DIR) $(RD) $(OUTPUT_DIR)
+ $(RM) AutoGenTimeStamp
+
+#
+# clean all generated files
+#
+cleanall:
+ if exist $(DEBUG_DIR) $(RD) $(DEBUG_DIR)
+ if exist $(OUTPUT_DIR) $(RD) $(OUTPUT_DIR)
+ $(RM) *.pdb *.idb > NUL 2>&1
+ $(RM) $(BIN_DIR)\$(MODULE_NAME).efi
+ $(RM) AutoGenTimeStamp
+
+#
+# clean all dependent libraries built
+#
+cleanlib:
+ -@if exist $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\CcProbeLibNull\CcProbeLibNull\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\CcProbeLibNull\CcProbeLibNull\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint\Makefile cleanall
+ -@if exist $(BIN_DIR)\NetworkPkg\Library\DxeNetLib\DxeNetLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\NetworkPkg\Library\DxeNetLib\DxeNetLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\NetworkPkg\Library\DxeDpcLib\DxeDpcLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\NetworkPkg\Library\DxeDpcLib\DxeDpcLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\Makefile cleanall
+ @cd $(MODULE_BUILD_DIR)
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/AutoGen.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/AutoGen.c.deps
new file mode 100644
index 000000000000..d24e396c3d99
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/AutoGen.c.deps
@@ -0,0 +1,32 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\AutoGen.c: \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\networkpkg\ip4dxe\ip4dxe\debug\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\networkpkg\ip4dxe\ip4dxe\debug\Ip4DxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/ComponentName.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/ComponentName.c.deps
new file mode 100644
index 000000000000..c1ec40c20411
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/ComponentName.c.deps
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\ComponentName.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\networkpkg\ip4dxe\ip4dxe\debug\Ip4DxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSecConfig.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Arp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/DpcLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Protocol/Dpc.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Common.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Driver.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ServiceBinding.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4If.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Icmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Option.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Igmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Route.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Input.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Output.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Nv.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4NvData.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/Ip4Config2Hii.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Common.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Common.c.deps
new file mode 100644
index 000000000000..572fd36485aa
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Common.c.deps
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Common.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\networkpkg\ip4dxe\ip4dxe\debug\Ip4DxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSecConfig.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Arp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/DpcLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Protocol/Dpc.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Common.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Driver.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ServiceBinding.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4If.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Icmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Option.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Igmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Route.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Input.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Output.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Nv.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4NvData.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/Ip4Config2Hii.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Config2.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Config2.c.deps
new file mode 100644
index 000000000000..5d8045fd12db
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Config2.c.deps
@@ -0,0 +1,28 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Config2.obj: \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\networkpkg\ip4dxe\ip4dxe\debug\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\networkpkg\ip4dxe\ip4dxe\debug\Ip4DxeStrDefs.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Config2.i b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Config2.i
new file mode 100644
index 000000000000..a5191e493857
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Config2.i
@@ -0,0 +1,230 @@
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\Ip4Dxe\\Ip4Config2.vfr"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\NetworkPkg\\Ip4Dxe\\Ip4Dxe\\DEBUG\\Ip4DxeStrDefs.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern unsigned char Ip4DxeStrings[];
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 67 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\NetworkPkg\\Ip4Dxe\\Ip4Dxe\\DEBUG\\Ip4DxeStrDefs.h"
+
+#line 69 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\NetworkPkg\\Ip4Dxe\\Ip4Dxe\\DEBUG\\Ip4DxeStrDefs.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\Ip4Dxe\\Ip4Config2.vfr"
+
+
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\networkpkg\\ip4dxe\\Ip4NvData.h"
+
+
+
+
+
+
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\Include\\Guid/Ip4Config2Hii.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern EFI_GUID { 0x9b942747, 0x154e, 0x4d29, { 0xa4, 0x36, 0xbf, 0x71, 0x0, 0xc8, 0xb5, 0x3b }};
+
+#line 20 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\Include\\Guid/Ip4Config2Hii.h"
+#line 13 "c:\\users\\mliang2x\\workspace\\edk2\\networkpkg\\ip4dxe\\Ip4NvData.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct {
+ UINT8 Configure;
+ UINT8 DhcpEnable;
+ CHAR16 StationAddress[16];
+ CHAR16 SubnetMask[16];
+ CHAR16 GatewayAddress[16];
+ CHAR16 DnsAddress[255];
+} IP4_CONFIG2_IFR_NVDATA;
+
+#line 45 "c:\\users\\mliang2x\\workspace\\edk2\\networkpkg\\ip4dxe\\Ip4NvData.h"
+#line 9 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\Ip4Dxe\\Ip4Config2.vfr"
+
+
+
+formset
+ guid = { 0x9b942747, 0x154e, 0x4d29, { 0xa4, 0x36, 0xbf, 0x71, 0x0, 0xc8, 0xb5, 0x3b } },
+ title = STRING_TOKEN(0x0002),
+ help = STRING_TOKEN(0x0003),
+ class = 0x04,
+ subclass = 0x03,
+
+ varstore IP4_CONFIG2_IFR_NVDATA,
+ name = IP4_CONFIG2_IFR_NVDATA,
+ guid = { 0x9b942747, 0x154e, 0x4d29, { 0xa4, 0x36, 0xbf, 0x71, 0x0, 0xc8, 0xb5, 0x3b } };
+
+ form formid = 1,
+ title = STRING_TOKEN(0x0004);
+
+ checkbox varid = IP4_CONFIG2_IFR_NVDATA.Configure,
+ prompt = STRING_TOKEN(0x0006),
+ help = STRING_TOKEN(0x0007),
+ flags = INTERACTIVE,
+ key = 0x100,
+ endcheckbox;
+
+ suppressif ideqval IP4_CONFIG2_IFR_NVDATA.Configure == 0x00;
+
+ checkbox varid = IP4_CONFIG2_IFR_NVDATA.DhcpEnable,
+ prompt = STRING_TOKEN(0x0008),
+ help = STRING_TOKEN(0x0008),
+ flags = INTERACTIVE,
+ key = 0x101,
+ endcheckbox;
+ endif;
+
+ suppressif ideqval IP4_CONFIG2_IFR_NVDATA.DhcpEnable == 0x01 OR ideqval IP4_CONFIG2_IFR_NVDATA.Configure == 0x00;
+
+ string varid = IP4_CONFIG2_IFR_NVDATA.StationAddress,
+ prompt = STRING_TOKEN(0x0009),
+ help = STRING_TOKEN(0x000A),
+ flags = INTERACTIVE,
+ key = 0x102,
+ minsize = 7,
+ maxsize = 15,
+ endstring;
+
+ string varid = IP4_CONFIG2_IFR_NVDATA.SubnetMask,
+ prompt = STRING_TOKEN(0x000B),
+ help = STRING_TOKEN(0x000C),
+ flags = INTERACTIVE,
+ key = 0x103,
+ minsize = 7,
+ maxsize = 15,
+ endstring;
+
+ string varid = IP4_CONFIG2_IFR_NVDATA.GatewayAddress,
+ prompt = STRING_TOKEN(0x000D),
+ help = STRING_TOKEN(0x000E),
+ flags = INTERACTIVE,
+ key = 0x104,
+ minsize = 7,
+ maxsize = 15,
+ endstring;
+
+ string varid = IP4_CONFIG2_IFR_NVDATA.DnsAddress,
+ prompt = STRING_TOKEN(0x000F),
+ help = STRING_TOKEN(0x0010),
+ flags = INTERACTIVE,
+ key = 0x105,
+ minsize = 7,
+ maxsize = 255,
+ endstring;
+
+ endif;
+
+ subtitle text = STRING_TOKEN(0x0012);
+
+ text
+ help = STRING_TOKEN(0x0011),
+ text = STRING_TOKEN(0x0011),
+ flags = INTERACTIVE,
+ key = 0x106;
+
+ endform;
+
+endformset;
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Config2Impl.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Config2Impl.c.deps
new file mode 100644
index 000000000000..afe263cdf638
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Config2Impl.c.deps
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Config2Impl.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\networkpkg\ip4dxe\ip4dxe\debug\Ip4DxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSecConfig.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Arp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/DpcLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Protocol/Dpc.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Common.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Driver.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ServiceBinding.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4If.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Icmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Option.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Igmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Route.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Input.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Output.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Nv.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4NvData.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/Ip4Config2Hii.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Config2Nv.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Config2Nv.c.deps
new file mode 100644
index 000000000000..d801758f7398
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Config2Nv.c.deps
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Config2Nv.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\networkpkg\ip4dxe\ip4dxe\debug\Ip4DxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSecConfig.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Arp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/DpcLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Protocol/Dpc.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Common.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Driver.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ServiceBinding.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4If.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Icmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Option.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Igmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Route.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Input.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Output.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Nv.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4NvData.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/Ip4Config2Hii.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Driver.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Driver.c.deps
new file mode 100644
index 000000000000..f3b00367ed51
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Driver.c.deps
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Driver.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\networkpkg\ip4dxe\ip4dxe\debug\Ip4DxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSecConfig.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Arp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/DpcLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Protocol/Dpc.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Common.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Driver.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ServiceBinding.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4If.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Icmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Option.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Igmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Route.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Input.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Output.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Nv.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4NvData.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/Ip4Config2Hii.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Dxe.efi b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Dxe.efi
new file mode 100644
index 0000000000000000000000000000000000000000..5352fb821c0c5f144f4a937d2bbaed7a2cea5b32
GIT binary patch
literal 87968
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
L)$3Mwt=|6u3?v{_
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Dxe.lib b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Dxe.lib
new file mode 100644
index 0000000000000000000000000000000000000000..f7e8c58f48e182f5d07f5940077ff126d76c262a
GIT binary patch
literal 941768
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�t2C2jbp5((GZHMdQ&wA~thZo&q-(Za
z7f{~JWJSMLTTA_2Et5Kdn^M(DA$(%EwiZ@L^t^EZ3?!L;pK8i!WMueyG>`EPi*CEH
zz|q=xRZ1Uozevec+B#<8ew#7V4Llflmj#x`Lblqwx~l&0bK$obU16LN?QgNG1Iz2U
zGp(mWyv&Lb9W$(wO*qXQ;q=DJ(PPdYVHD+f2=oIk%6DnfhyOPSeW&SNT*wO1-O?}V
zgAjz}6`^RTKE%#DeP|$8*=*Mnc7#vll;c_d<;Pr=#9)qmE93aX(xuR#!lA4`Tp5K)
z05QiXiiEvLBk;*G{cKG>5VaY5lduxJKuIWx1Cg<v@<|4*F}k(TxRK*Ux5sv$2ra2r
zM!|{gH<3=}mL!zvgtnV9h0u;BAvagx;Gu>FHii0_iiVk+S*ZWaY`}Eqi#jCtDnAbY
z8;fs_@uzk86gj=KcoG8N!if4?BsPRRG16%$%g3xN?aRoYuza3WNsMEewlTU4i-Jwy
zr2R6o7OO1BSPGV@z802<rs?P~zFcMMG3>F_h2Uxo$>5)oEOM0-xW;MlSsfh|AAsBw
zIsWt<v@$q)FqCSpaw#)qwr$zT-OeWDX^YYbLqCMip;HorknWzZ8@p=Md87f;DbmQ(
ziL&3ZsD4dTWb!K{l1Aod26uq{2ZhLwBkjml4q~PV(juwJ41KMay>s%XB}e6zmGHN%
zPE|8Qe$|&6ERD#4_X>{sBCR}w>Zszb;?$eiN??E{2fxBbUCn8KWNZ(qhtL7l4GjLM
zZl{g$Ad=>A(u-WSO14s#_H+{`Mz}fG!J9{CZ8e0iKrZf~(uPcG6uovu!^rUy8;nkd
zzPvZLkmR?KX~=TKtIF#t2k73*BV4gLEC{PXBNszf%RFY~?3@h48Fx4C-Kmiot<^AJ
zM}x<knZB3l6H5M)g_4-hD6ip~re11LoV}eHnG_l6Y@Kf5JQFNcW)au1T#PfTsR)Mh
zLdIfD+TNhg10`LFhSZeDsJa(0<`tq-5CaV{uBkc+skb84UC-r|r{Uu4Tztw>caQ#y
zV&2BZ^f7PT!Y~Ta#dintJCwD;GFoO#<YB`Z4Wj!9riUq1b6#3__D)plLZ&vH+;=qE
z&hA1nB{qEcga$g-7re2tQ!)1i-WD<R@hJ^Y=Wa2V{Z3ndNA<3|Ia`4tSDDG(*e*1(
zt89oYZ95FU-7C3NC=xq@h6D?cb~khRQ^sax_;pet?`NKW;rhbBq`tNeAN?YSIq@K;
z3}H7F!#>!vJGkm`R+OA;(RIeAB@ZE+dnryYW#^Z__l%ig!+f0!89dDV9bBe=@fyS)
zV`ANmN*DG=Sdhm#?Nnw&4v;>uiAIdDYX{Pl4{)6U5#%Zl*g$GdkmY@nk=<=e)O8qn
zg-^23mdsU%L2GRtS-TBfi8rT1gv4-8RPuFc>B!2*9xMBCQh7XH6{C}~^eL(k<9)&6
zSc-GJ^)cAPmK3|od2#<xf1FjT5A$U~`TSqyb8f}aP)%e=-AU-{gb)7`3*of1>9CVC
zy6bfUjy_v}PxYZ3uX1(_xTzC?k6T-ZNa5R*o3My`g8~1g8*Ib~$ND@yMsFEn0MH>_
zBid!_@YkgGK;8RL*G+7K(0fdJxy8a6ny()jt4o7MG`Y&_7SIf%k6h&$3qbnlVW}lG
zy*tlUuC}Dx#}dt!6!|Glyu-pee6A(QnEqbD?4DyuvVTSq0~yZjXNZ)~3PLhs{`XKL
zwK~PV<|^N&*tcSuEYIX2Z%zYDnf+gv24Hk3){#!GvLX$TTb*T=CReF5V65LJR1!P5
z<y07{cJT|Nyd$GA%<5xo%?NI2kZfYYc5coHYdgvkQeVZjwlX8Eu8<P#rwsabMo@d%
z#41G}hHPmb<gi1jWrV8h*i(Vy7ac@>H60n8s~o_I)F0JVRg->j?7l`UxFX;!9Gz!G
zOYdVVM@QMWN*!T#;)*$@CBF;)C@1UVD?`i0BF{_Q<JczOS#RoMVt!vYgml1eu5vI#
zvwN2^PNQRGbCt>5%gGrh%je{vLY#hbYilC8${I1F#8Z?8uXOZkuCkbuFrqNWk@#FF
z5*BiT^^0tn@!%$UgTMxV6ascJ@K|yUds}eOxt6)gnVCGsTxCR#&9^_1`^ers*#SJ-
zXb^fo4I%}==6=_3G%b@z`k3x0RNBHWMDs2Kfwed8LKvF#(Fso%=viqd<}S|KTOGn0
z2M;oZc&_qte+;|yc}BhWJAzf^{g$g6{Qncw9m+W&WvuD_>FcRtL`g?=bWHGYm{!PW
zsWw;njJrX!NqGMHDiW|A0c^QSccx1I)rsYiszDeMiVEq<sSg<Lnj8$-mZE^9hy+sA
zhZgL`{DVF`7wh2iEh;&BtA~j0Wf7gtELo&e#v<6x%*f$|v8r(tvvNJF%L$>ndYduE
z)aF9gY#!9vQ)!kBJa*&!7hC!aLwQAa@^)Wx#^P1S*I;1{6OywSA<vD930i@tJL9>Q
z`7oFhOD-oE+LCUa-OKeE8u=z%#wnUZA%F*2Hix&;kS}b(-2A|t<BNIlR_v=GuUI@N
zyWSn_VRfax(o!K}W`8~NV$4bD>E`5A50=TIj7u#rGMM~3*;s4o$*}XXJBM0Jmik&|
zrA6<%7ZW(20io!XgQ7fT&tI*?JAs_K!cLwSXKc<hUW~y(?PDk45J&n>&~%3wF7<%!
zK8pHr|>`gp>3{5Xt2CN@l(B)$}8UH*KGtMWL(GcOm)#ljNiqLJ&#m=TaY{X`yn
zju-VIKN4*&mx__;NJG=CZdf12`i7`|%fJ)b-<OkmrMri(GjqGzy}ZRPCs}ti5%<aF
z5`pnqE`5%M);^x$;=jZzl>B}Itw+;54AytXiUnWkv4cbUkX^1)!|c#xEuzYq>2Yi&
zQUP}|pfnPeHGE{NKsI-T4SXekRYQ)mjhPJkLelfhTh!(PB5yw?c}~ud4DT5n(9)>o
zCZk3&cvLaQ`mn|JSS)ZYC(cW?v6%R)D;JaJ)uH}iZ6L#SW+c|Bl|eN|%S@Rq-g2Di
zfqI)Sj-0?q7P0WmQEV&A>L+uit1RrNIO$1Sb4nR#zQXm-T?W^^Ln*;(SVi2j8g?ev
z{dH_p2M#zn9)ftx{vXDD-Ep!rO)JW4rrh<J)>D|>(`Y_}#>)G;hf!OeZ~-@D*$J(L
z3aq4te3+R1r#CpuCrxS?JM3)v9YwuIr_XGyBFH=S4qwdR(u?B8ke*%$Ud<YHzrjy`
zbOHn8sJPRapV>AUS?0rraPkgrwRPnotS*Sjhch_-MFXF?W-JQ0#D<W^3bqk?J7r~t
zS#bH*qq%fKFEn)I&O|mQ-MoYIq0GYV=`Pwc23Puk0MLT1=`9S!C#R{9{^5Il#I_~t
zV7;C4X@=t96`?U>Cy%vE=jWh2ADO<F@Z0cCmT5x88z=X2sWSMgcX2`{Uv(y@=sha+
z`3_}+Wr;%fdNR(z<tokG>c~S8Z%7Pd>2BqUKd~IkQ)nYbe?6QNudJXJ+;3nd@n2ch
zPs|31g@B7VV|G`5HFGOg+GW?W6uJxto->k%SBJNsqUH3a#Y}F2CsCUr-?=lE(=ztv
z7BPy~RJwAZNS*DT;|S*e1#bIr0Pu<nsCXc<TxBn-w#j!EDh5?o^YUN==PNKoB^}X`
zh;}IJgs{sePH08c{W8qK6tK>wzUXAODq5h)Rn8LqlBJyFl)69T?gXE1O`mGq$nE}Q
z!7;sng@TUeQhdfWz<!o#foY`VeoD6`up$%j%7rm^IRS>`OCW5gtjVD5#yjB_eW$ks
zpJ7vA^UC$P1@VH|p&83=Sg13Z-8-4x3}Y{MTig4D`quz;Pp1sJvzdj^G4s&)B(pZG
zvu7_`ltXt5ma`K+u(qzAym0sl-3*t7Ua;d~_}g4jHy*=H!@f!-7y8fU^338cwW6-}
zL^uya(3kSuD0-7q4C`flQ3rK4jx$X;hI^WRcDxpK5UXFe8z^{yfDZ@gGvE^#&F!h(
zxqPRjwnlX3=P=Y5``GoXd@52F4b}0BsgX$;%4WU=iZV_$7)+U3Igcq{no)X#29o5f
zXpUDbkGyGM!K@Z3_63~#2_u?|MV;J*oUp&40JbTUnFhSxUFfCx4`;h7r>?4gP+bjI
zv0S`4)IepOlldm2h%(PKoo7%@O`pP4XBp{PUAD^&kj#uX8R@n!nLr-Xn8f);dd6C4
zG?FuOILb&j#;TVx-cyZ)bpQWEBQ0IKCmCre2*+ohbGgib&s09%myC%BC$4t<(^k1Q
zq__^?1$))gNA1#uc0a2B45-}#ILdb>68p8f+iVwhpSD$I0oDGMbt?8Ts@TS;8oL-l
zW@s2`v_CNe3%?^x)u&5}j?2dB%823`YXOrx15Y)lT=bVwY_F4@b|ei6Cr=WDZAu;J
z((U|UH~Zh9XjJ`|+NF0OK++i;Ra|)uN+Z5EUZ9M?E3|E~FHmuv)ujt<01TuSCZK8>
z1k7ng#~I~U`;geXbSVrK1_*iKz(V!dW7S}QpAg?u#>b6#BzGqsz{H-D4I%eEe|sdb
zM*@2!utx%WB(O&UdnB+&0{?RosLfBf4^ov{HSxPr+oSzyot$kCYu6=lKT+JL*4a0w
z)^S9wqe~n?T-!RJy6C)6w02)ScCB?3)jE!>b#&AI6-u5Ln%*=;?J<2y=fn;2@Snoz
zO|#W*)0?hPi|Hp)>*yZ%Zz!&{^(~v)NyX{{rY)ku8KHRcU&wp~GB-8lDQd|zfKdR`
z)`eZQfYGiE4VvEcyxOC=ys`VB=~I2$Oc4={)aL}Q3Dvs;GeY&Qz`sL12ye-MLxKN<
zY8^ccv{O2F0WYtDmuYvY%YXnIUVvAo1NRkb6x{W+WN3#BuTh5iGDAKx2nGQ^S53{^
zE2{uRCS3wYYZr#>0+1QIPH*})4-}^Q5(9EXZMzWnv5L4Uot47orXTXUHCId~AtbQ+
z5LXYg3u%@qq@!&@k_7q*Y^{>3tiZuML>Lk|R=X&aEb&cm`U;hUnpJ6EA^sqoSzZWd
zlSfE%6G`(zRN}`1ZnUWZw|JldO?ePnQ=S#%jLaa~hQk4RtH&zN8JR(&#Sj*ltVmuI
z!d+Jq6U)jQoE?IGR*Lv?q?KL(edq@jnT@a-h0>On3C<70+~O|K($-71EQQQc0&5|&
z$U)~kmX)%hG);LZVQorD2G%?49RZZ7Q~!FU9-k8V<Bwfv#b?wy216`o#I-r0>Y^J$
zMc2uOJhav^tk!X6@;aje2cUxIp@N%MqCUA%1{ab@&$7S_1k6H$S#7{9BABzacl(RB
z+l^#vBDG{d6|d$dH#RNZDEVqqz;S5Xi%@41w1`C7!;aL#DUhyYq!YDn{YC8t0W1(A
zajDlrEK|NoY3T+tD~Xv#D9}PMbFOyS08zp!J2NLiBrkbE>NzjjlZ&*uA<Yj~z!&x`
z+hG&g)W;N9B8&Q1*i4*nwvD%`GS;aezfOgQfhc(RS8^_DRj<bU;9XQj|1P}=#rO}3
za~Hxy0xepb7t-D)R#$`731F2la1|t`AUQb?SoDg{4=yGwiK&z?o2Ug@qfQb{0A{j@
zX}AOF#YDQ9aGNC-wIW&8i;%d4=q&Yvxouu0aURK0FVvLI?I80VB=c?7>J6H)R1=Bm
zb~-{8Wuc6MUP^T8rRpTi>H_knJgsm**Xh%K^D2Yr*Q!*hCB?xF)-oLgR%YgPgLNX~
z<jgO*J7g)bJ=KvPToMZ0&C<Oh6B@Gqu+CFDQ=zT|1O&N+1bHn%-w<jpZ&te!3;_b$
zJ&bB5618;$M4M<b3&u8G?`^>5G#`pOh1(Dg%VFgA5c1h{PbLRyvs)%7u@E_d;8p~r
zG4vSM9)|gOFjRDZsOVm4ff9?5VCiT^gPDtc=wRl_4rU&8F!w_TFYyu69f?^>$HH~I
z7&uryZ1I;8<4X|5jN@td7=H#if#695#5g_1wKed5lA)qUb*`TkK+lQbc@exIf)_>b
zk_cWF!5av)Wg%IM+<PV7q_`(T$xi5Iui?^BD|n4czt|_LY%!|L&^V~#GV1DY%QK>W
z$kW!!{^?Q3XaV)M3-a_{Ch-9%B%h={lHCjGT_o~@AF+0<AO@ZaX#*?J!r*`<-XING
zM)2fEkRf=B`q{)Mgy$&`cngRKGC%k+V_1m<M!gqq@R#5kc!FwR6&_*3Kc@RNxZj16
zN)n>g?PgIw2MJMBi#t&A30$s<Wz)PK9K~altt*@<We|QOJ-A1=<e_!rH_A<@Ls!aS
zv?fIjt_TG_;R1g}C26h@od7KcTX|+>{FWFotCV_%6;!47%PPI!UZt!NByGBJ5my;&
zlxkrIFte~b;0AvdVeiBvguQ}<{R{5n+A|hiD}6T<SRSG%&~fy_PbBbeDESOkv{9|F
zP=!;WJl&>xJzbHYc!Te7k$(j~ZCGEaBCDAFsXl0$EwdY$*Z2fZYN&Z`EK5SBmwUBm
zNokw%SUSHGvZq7IB$R22%4X;lMA07v^@R_>6xj}5?>1kz=JK^Zt_Gt{Pa?F?%g<Ra
z@o`2a`7}^{&dui_@Nf$X(8*#6bGy>WAh<GQful~~HW+4%Cj>dS;be2kRe(c~_&gDt
zfHnwAms1RVzp=hefK&Ivy#;4>+9j)4jP334)YPYW>`gC?8@&~>FPP|%2?P7sdZS#;
zlsW-U@Y@-8^=$*IiTC~JzD-~i-5-E^?YWSt{}_Ns;!5E(QUWvpyWkyeC&d139x391
zl-;Hg897frhno48Ow#3Ei=;%!nQv1s4hBjKjHsbBtkUmK9Aby2P60+y^pL`~9tw#1
z97rMX4n~RK8AsQ((s2I)2*zRBuzbSe3VcK|^Wa_>7&F~V>C`>K;_Y59Lx&gx=}`!%
zm!ZeFwjSN%+ECFNy_e}JfO?6bw+N0FK~MxGA}AFBeIro&oSV5@m(_8Ii))`*&B4}C
z;Oh`Yp#?~Dur-wYOz$Uhyuoi+k@^z4FG9(+SsJUJWlCpzvn)ft<QFY9OQ&d-CGM~V
zPE;c`OQX3fUVxB*%FUAHS+bZd*|`t$k#bf55|ab&Fzzeq-d*~2DDVxY2@p|5Xf~$y
zc%P^Dc+~(*ZbT8x9xsO(>5qi;9&ZC_$N-||3gi&wFcJDPBvFVVev;{sd9yaAh?SCV
zgoQ4{5>ts{fJmvqouR-_DK)s$UV}Th25X3oKT(6V#MCa;V4K!!unh}tAh808m{`rq
z6Ef+j+n3`B)Mj5Y=Hed6L}#}vFgai9=12BDaYDOEuM?svJ1xDQb?I{#NY=#AL+;IJ
zxWFn_Ptw^0?5nxk5uKH23^1B&eM&L?Qq>KzLyCSTV`11SDMt5C*-o%$6E<0v$EH#)
z_Ed^ttts0{lr6O|J&@?=B~|HUK%jB7Ar(D^?%kz7g#tT7;}~quuCO~`)5Oy<LD)Sk
z)^XFr65M3*u!<#DLx5KM%IXMb^qOSRxYH1Ai8O#1wEInKP&28X@F*f-^V<YxW)C!m
z%Jvmm0=DnmqR&Je+jl(eo_+r}aze%zARzNak8v$GTwSzRxTtMdOrs|LBY^%Zf`kaB
zh@c5UvTazOSfjRLn{&wzdbn9l16;aOm`4?SF_K`9JakW=K-TsNXTvBwE-}xjE8(TY
z!9HQAB<nza(8~lb%TDleLC{MCX9|KseWY5?MqFI$7^X-SZKN?$dO$d^Usy&tdQ(*3
zfN-*77<Zi27u=tzUdLJ6w@?7;J$86SR-@f^BzKWoI(e5nXqsf37tMH^H&S|VIB;NC
z1IG3c@-~d?GXMn+)|0afE<0T{co6e`J&B@&j!E<dRAmZH^L__wLBG^~Zv<d+FR-)B
zD+F(pgYA!Caca}A=pQjBtZ0P=%OF{NJ($KJ9gy!k=?3dl#+Jy#3>P<-1{qPkmglri
zldNQGG)?q2>^HTJz1=QgR}JQE*yoX8_klW9Om_5=I(9SS>f4ka7!Dj1uEz>SVm?K<
zOZN*0_7AfUumBOPTinjMrQAv|<j3J@_uBb`$O$6%BA|9ok8$l>_;Cf{BA?#Q9}+-I
z5ole)$pX|=Qy%JYib{1qg=XvcOzLD8q)ZW`qV%b6;pD3&UBgzmXD|e!KS(Iy$AHN?
z3#0~*2nV{d4n6_erG?ZmpTr%k!Vz@;6mevm9ugeDD$2>ArwN)QgS@*ZnRk&BB;G_o
zlA*`A)&mx>d${PRa8Z#ioc9FW`y%*21RsjvBN2Qof)yfIi9qWeP8LB}V%33qemQ9k
zdGhRMVilkQ$AweZoQ8zs$==AQ&x@)hX8^{w<}@^n;)^vW#zLKpZQbdNFoxPgpiF^d
z!(!d(xNx8k$#V^e8tA8VHq|zH6xq@I;IObI*>7ldvb&y4qWYAun57dFg`}|<fr<IQ
zwSX{HxF?ZbhbV9~jP5ts5hTjw#E&sN4i0Cf*l34K>tod52!`7PIQ!hb$(<z=#3ttU
z6JKUREc6!@Bqo=?0u1Chf*9UH1Z?yCCIL(3f`FLkPkc=ovQ0p@lJ^@sa{|A?oY0=_
zguiz<We(p&oOKT00+MYG-vZLw9Dd?E;?=6J`N0ORlJAj_J`7<^_yI`}Yy%1QCo0D=
z;cOH9I|%(TXb$EC|42r^lk#Pgui(e5jGqCVg_mED1YSlGFTW8nv+zRhvT#PT{hbKg
zXZ-cz+h_buL_zM_!Ok{bdrACZry~?pmeSBZ1*<3a8GnHgXj+=_Pc6CwXwd40Q~6xD
zx0FvbTXXh5IEp3f&IHA6S#R7q0_P~g*%tR&udsH6T$^xVkAg53)Da4+!gp52^pSr%
zBGoGl^JVxEnA981Z0u#EaWBY<v$r5Tnh57nx+!@Q;xs?pr}=ULL=BE%Je>fi1;a-3
zneU~}tTSTcT8Y)zC6<eRD%}w~J{+hG6L1L>F`FZHyq;`f%8pVE4rGq@BaV&^r!2J#
z+@|l9Xa_B!Kk~trdZmx3`%P3IwA4PZg{Afc5wi6SvH-N)4vg|CJ4w0RzLX`lKXKg)
zg*2Dk50V^0^tVCu(>|9gBA;VLgcxkc6@N5@wv@eBYEafScWp^Ed5m3Bql01aG|fYk
zvzUNfCzlV*x~8$06_2r+fKLZx(5Ew5>i;m(Onu5n9A+HPBz;opKBu%c92kh+6A>PY
za0SLtqK12|G%VCvsCTaJpLU_Nl~VmRs6TmoV)mXpO%_5ab)S4^nuUxV(^0^d)<#K~
zM%UWS4q@**xwkLIgfc04F(A3&nkDXmDE5}no_5b$8i1U@S%H9D0D6pTli)3#6D}Gb
zE*cvyI!kw$LIN}_f+zy*+*EZx3tBNnwdkI{)<^38r`{|{5Fxv|3nKd4C9RRPzFm?y
zp17V<E#3wSkWm|NRN+|tE?UyWx>W~Y?q3knpIG;3B+ZE<3R=`e_k#%M<S=|pv3Axq
z3)<wl5YERc)c<2zEf=$fCm?fja;mMI#`I4#(zvFX@JWL3G$MQ&rJqAwvu>)vi#glr
zh_-32fFU(CblA9&Oi_c)sJJ5py^D$7NZgx>$Lx%vWOCE-w0nv-899M-A_7u8dW>t+
zp?J-@zMU%|$XC%WOI5VyzhBXakX_LP5na(*BWY8#3xO;ta*%8@yrCwCRlzx2X&3DR
ze72X$S|kH?6YrWO{!Jt-cD}_|t1e?*W!6U{AN{46=cENB%bO*}t5p^b)5n+W`tTy%
zw3dWmboKmRU*clGq6N+&#k?dXUpft4*f+7Trvu*pK33}t8t-GZUTmvmvIvihdv!}}
z8^slCa8x7|_a-XtwJG@);aOJDRpJ!|y|{C^xHAdftoRA2$a|<`zgc$dH`A*Q773)|
zGplG;OSDsXo()*=JePRBj_%1&T)Ml4;sN9Yg1Zrrp`gdOb{h=Ef^gCNaM3*7Ts$b?
z9umRBB3LSdM?~<b2p$tbQUs5S;0X~dLy(+L_LwZcyAA!~1<{woW+YxhcqtrsnML~)
zz`2WXiz*OZ#O+k#r;&uxzeM-X;$B-4PR?Vi#jVP=`b;ry`mwKPJxAFVg_8@AjVErd
z;)$E9*bR7|5*LP(OOPm*p~(?@fSl#4RE#$S)C&Z)*uuR#NAG%Gq@=s72&e}T>(g9#
z1M($;yj#pU=w8Sxh)XUeK_%~^Up4p&OXO98y(es6U>3q7<4W#tP?5ZuEh6MB;$
ze2p=@js%ve?cENR=^IGGu<kXI>6>)#Dt$E^5QN{tGYF^X;M)upc$IRzgZsF4Cr<-o
z0t_8+>Eq$RV_}NIlU$K}Je<6fi^YZW29wOxyM*1gG{hpJA|)505Lc-p7uTfQi3Wog
z5bmWJ9k~ef9wD$zoZf5r8{Dbpm%I_q4p1?fU%Jc>z8(&|!5n=Agf{u9!8bYKW1?hR
zau8BBd07DnILL33P*&oerHzpOEE>Fuz;Xhw6WAKuC+`l!1r5H%R5l=@^f5~MOn|*b
z_g~;XuH9i3@iXDTQ(=lSMf^-Sd55Vv-r&=WaU=3-*Wi5*Oo%6XlE;l4ZkF&uAz{vB
zm2g(kM+piI^=-zynRtDg_}fCfwhg>Z_g~X}o6@Jkfv3fc?N&rs8OskY=j`7iUaG%C
zSO0C4IVZ535N)S>H-r&LikaT;2@wmc<Q>`cEX~wxW%<E(n7|H#H`{SXZicKBdRyHI
z2(Bf3^D3p5ekSU!(s#oFf$SGTW^Gq$@I9vTtDOp23;9Ny-d()UaK8c0u0JMgmQ1EP
z{Z1U@1l}iEC@x!31iWO&X!;HSp&7qN8C<xxH!RawNW;gC$s(VOOt|fYg^&d*U5Gh$
zkPKpO0|?W@Ws`#~0c6JCC0^UnJ#}J8**$Of5aa}c0}xOrMvrlA1v;^h!bKnGJ=mcF
z=r9o+E`ooEAYTNk2s|S2iohp=0tDL1aPlLzsTglfu}t%8NDORDo0k3+)6y#eKSiYm
zlif=#`7L#}`ghB0H6gco&a_M7H=3>fm1e6ym$TIy!+|eIj7JcotHZ4k7VBb<kf$<7
zZizSqo{F}LC||F(oE;!=d-a+x0>$KNGC9^6sXtiVk3?GO7UJtD+=1Oc=)ODgxC%y#
zxM*&AoR&D=FkkO-=LeMt)g*mTSX*N^+%n%l%K{Vaqo4tpvHaD8@_m{y-@jVQ*OT(C
z&6w}}mh$zce5=D4+KWMI9~z{t)q9}ir^ekH<4))W1c@aXU64luO}Zc*EQ%n~gdj_B
zhst-*Y{hXzc)jcpAOVW&OK}^_uKHefXv!&eSJa{mmg_lEi^ru}l#&Cx0cw0Njjr!i
zK@TC`Q56-)?_!hHM85lId(aXBTe4dkQ~~Bh!PyM!Z?vjGCzrhv$)fE2aEG!xshrhR
zq77l~WZQeL>q)}=z8|4#$2}amMM4VwiI6CZ?iRV2!~latNRV(5i3pMSzbdpSl_jm&
zxw$woV%+AX7!@czrW!y9nbzVCGIdjdkH>vnTW3+I(x1bD9bt~r*JA@ehm-3_%t;ou
zH@K6V`XJ<$vK7gOHE2ic_0Wua*bdSgC@JrAw#g6XFyANaA`VA74p%PsEow>I$gXga
z0RudmHjzMEX5>ULQo56D)k(O6Q`3gTa|-S;IuebXPE6kwO7sHm>wdO%^y84P&|>?P
zsFN0jWwObxn$>C$L#G;S4kk9+1ac_$G`i0z-4PD#6w|Upi0>BFVJIN1HvblQ9o(p?
zu4sbP@Xdx1a#uhhLL+b=VC&vM6sCv88`Lq9Oe(7*3F3CNRSfwOwSeGJ`Y6Iio&G1g
z+v%T=oM2%x0_rO05t@rP`rAe1i#Qhuhzmt<kqG`Jf`5zPKO#sV&~hUws|)QSfBSSR
z5wi8=NkK%P1#69@Z5C`QkR@}$q*yPvFHI@_;8Co}O@K1JuDz++rXdPdcof}VMo0u%
zc2cs>?sQ{xm#3q<LZItL=&r)O)-j^JEcfHpkt$?H|GfwO#4R3U>c=ce)^%75NVcgT
zy)T_j<?0xLwsDt&C;Cg|2fK4IZlq)jUkP2`G1#=u^5h4L8GcSn@LE+L`5yhCl;Tb|
z(SGPhai@7CQ8<v;aDf=COP(9TPNXYo=?1@4Rqa?s<Q7G9Ouqm;z)%;HoNuLjSD-uH
z-%h-7Q4NcW6~P|N_Z>zW&vJA1-zoC;puCGHeHY}Q275BTy9mCu*{&AxahbX8FBW|C
zBtGuOJ@m$cI?>unSw~(PYF#BPO(d&gSvbDItg?^%s3v1gP2b6CflY5LqI9|vK1|X|
ztC?Ob$)!|c+qTu#5&z9?g#`a3v6zi=%5=|DMsZAKdKz(1#9oB!MJiHW#EQ-$&6K_4
ziI)f(Rh|b6Mw`X6jY!%@AXJP<1RU-yLywmUNBfA#oN*x0n}z)f!L5+p6MY0z^2pUC
zN-1iNit!qNQ!M7|h(alQQ}VlnYadCIyGJzHqxGqa_smq$cM~R;p8CF-n#nC7Sfiu;
zz=U<NyJN%jp_xi=@}ZMP-Zna&k0`Z+;E{yG9+-vcdua~y9v&EcOrS!9W&G-rU_uTi
zR+y<YF|fi9tcEwek`iq-*bXph+w3KFO8bP2Aa>hls>@Ztmfl#7=K5PrX{Om}dE@%u
zViJtim27PT{;b>v&&KRClEwe`&3Q8k%EGd({Ta<!Eb@Gv0&BBo2CSG*-b%1+$;_tz
zE#lB9j;2QO1Mcnio92jC(m3)Oxe#&<jUz3rSr$T8ky>1(_l?{V(ONV0ilm$g1twaI
z_tCu*^<NF{tUX|mRp&S2Y^!y%tl$Au<lB(H8@bK0{ed`?ElAiMSbngpIZbY@rn23t
z3V+s{y=>B*;6i28dwiBWgWi`g^DZLYBJ=b;N=wU_0M62vpE66`${Fi$4&llMo1zf(
z1@u&fXoolmt%QWOH>H~`Q8=f<w7?z_L@prG2L$aAOJIsw7aa&KjS=9z?B2v+A##F}
z7XghC=rOL9MXHOAixeFjDJs=R3S9(TKm`93!4V?pDuN>sXcehLgwnr%h(LtwLj*xY
zA0o6y(l$gminy*sKY(LM66^ufK1<PPx+5)FVGJLrz1sF7sKL`%2a5%cY@pUn2FAQg
zo?G9z)dRVq6Q@y)_achNf}&UkOIDJ5?hT&KWO|#4B0=Z#Xe8LCg;+Dn31LtmKb`LT
z;9lz&NecP!SSD>15O`8o0gt0>RgvUzV2f7)H~1l;rVW0=*_RU2)}<1<BzZ{Q4;jrB
zLUR{8wklO2X#<%yIp@+3=qzHS4mIUejv*|HDk57Qv9DK|HD$|ZeIMC22U?wxcQ>n6
zHMvv<gCvyE@F5<su-bpOSTNstwy`i^w^%qkg@q7uLvw~uMMQ9Kkz58{J%c3|B{(5=
zD%AvbXtHIrYOelbTFj2%d{ogUzo{J9QEqEXP7Dy1c}ZcG@e6;o$c_y`qEk4F{7jP>
zfeUWKGB2c$%^;#iagR5asE`AZ83jIr?(1-Gnn70fI3<%A#MADX!LyJPI7cENGf0nd
zZ4}I4L!@YUq-dya2G167V?{7d1QQS>hwB4rw;H^ZC4CN}SriEAPpoW?Cf+9^3gx(z
z?i+Ehjfo^1^yZcDE4-fp8-<$L|2!8E$uSYz9tWo{co|bU4~a}g4$3T4&KFcJBPtiB
z;7ASyxhX0efoGV#w5=5R!ONM#MJZXii&9Ijidb>jX2WPFdhp6f;404lFP%f%+9Au~
z-^8Iia3yj0AG&vyUJ(fhvQ2o_&a@FpvsTV@Yc&nol4oYJIHG%2gI6<G7ZZBhgkQ!?
zrfF&>{@j79iP!0wh@^D?m)c>dL8k20zRV8MQ9w{fq#tyk8~DossXbLD8qGOqG=dg0
zhr>nS27cqG$&qjTmZGb`x19{u6+Uh}R}zv|1nNo`=v8(u$+V^{+s<HtUQOtCN1!v1
z0Ro*t0=+g9kraW>w8LZ&=qx)#3j&=D$iFPm>j_CK0?qJN%?)-gGYIq=7U+$Hes=^q
z2N@vHYe=ATGZ9G<=sY`227%sehiE~d^8xvn1-gL9r5HLK>2ocM<5oK_;@k<cMb3le
zi^;bE0`Ec0j08lEMU=y0=WL@l9-In+sKHrG;V!`2hY}()nvfg^EhY*%fmtNs`%<u5
z25YwYQ8hT5vENVd<^X*H+EMy2#KLVlKGPOG&=T#GT7FRQJezoai0<8inRNd!-Ma!;
z(ETI0*Un0H-32q~zyG#l`k0X2br(c**S$58HrM@8;(AU<tf)*TS3>B{AnGZTXQ2<!
z-*%=lCIM~L23xNua~fUl696`y3+}6)L=-z0c-lSZVg+)7f%g%Rb3u=BZ7!UPIgz3p
zB1PBf&c!DJZlwrTiD0z|)`;L!5v&!#IuWcF!Dk4x`54K-nI?Zr92N69#oiL(!sy+}
z7Zi7!2`MHpHd5>zW~|r|wuxfzG-Kr^Hj2GHRbj4UpW<&-n6E&{t}ud#t}v~Uv?<IM
zAPYPaN!=T{A`(vuJnRm&;AK#{FoJYi2fJPPybS#%)RIqt*tVf^C5<8EhDsuBD+j%z
z@<{}ZaYY2J@ZpHqQ29tCu#}Yb8-OQo&|OL##I!16KDLu@g(8ylX)9pU{mglU=368I
z`zpHMPADzKe1`c>^ZHm()Zl7H{hf}wod6cjC8Pdcpk7U=f5bgB&x*YTAsVW=gE*Q4
zooSK>d#S-SmSUpRYnY3jg#PA;1ciF-fQLM_`6qud{SX7c5X1uea1c4Dx@aw3-^88v
z7R;}d@79d@ted~n@;UJSg?$^xtr1KI^K#1q{VrOvmf3d#INd{MA-a$R6<AAU*o$!9
z7STrNFKhgVESeAx^ax{7)(27|bHQtGWJ=y<5n+CC9TUyfiP~ObWuke4=sF_Wf%4Bs
z{<QJA-Zidgbo&6#?u%s1WcE-U1(Eecq*Ep$l4~e~us)sbK*AXjMb^#Mes&OxH=;K}
z9r6HzydA}or?c8N0^8Q=4+JF4qkZ#ChRT%KP(aJ(nS(Pil)QzSt<K4znLtvG`U!4`
zSn42~eE}4;_QMFFwZ_%pXPj_2mBi*Q3MjKq{s9PBozJLFR6Ae72{pP7Q6(ONcLz2Q
zyqE4>rJqIuqD^X<^4ol>&zY-2z}dNKMRB?aqMsAde`X?*!sHQl7@;?|-ma@1!lE{*
z!>sNEX{wEF7Ku7lHTVS=s@M)kG*jjUH!@rgz}feYo5(GhP(yP6c+X6TjRK3Vw-;bg
ziyKKmM-u_t{&AClg?kW?`^QTtL$>|Rt>i7WGbivH%n5Jd7-G&H_=1@0L$qw?#+n39
zg2*iA#wIEV_Krx(zH<{k>$0>3WVE>~ZQaIcsnAx>j!jfj8SjAM(9cQ84{qYB?1uz4
z;_3FZ3P~vQCMt7(D#x9XZ2Qh>H)8Tmpf~rOf63@WlrLMo2!6~;3<Ed|FA*exmoJHz
z7!fn&BkD^Q4rW(WSPc=j?>pCvZ{K%rA_}7J<oUBauTX2JBNSVf5_E*t4kS9ZlV$}%
zwochknoTYGAUmytz>4jp+07A4iS4NvNPZOwY-VwvkO_@68e-|?L_k20Uy&eBqI*~1
zQ@THea<YZzId<+)Po;F4cEr=}jSMb8P9SYWK(?J8<JxwN48DyNeG@6#qK^zN6mS=b
z;9ny6j|l!Nf`kaBh+wJ+nnW;71Q&~-Sp?G&Xgf{EUhLPolwyBQjlGOwe-l2czJPu?
z#r<xNyMp5WFmsE3<SN7_zp*&8#ZmK7-{KT3j*<wj25h=B`yGjX29i(>#ZlZ}ODMOX
zAx%-)XK&e=?ZK#L>ZonbETf(!Q1>9z*Wq6KK6Pj#X#K528zN*I637DSLz~t}+J-ha
z5Z6CMtTIV+!81(m-ALJXMv^~3l%@-qx`}HJLH%NdqDG!+r`B9R#<ia;!_CtDqJd6P
zih@@pw>a$=P5wmcko<*yy}{00KerH-w523oj!EtWf7s&0xv0Y3`WB}jX^bToj}{Pu
z&n#Q!?aM<y8jd;n>BbIZ<0kn%hzN%<W9Ph((2GW3yn(U^ahP)I6b*Ea@*zu$5s~~B
zh|DofPm8w0h3LtJT|&ryj!01Gm33>~-IVxi#L`HNt#J1sDMi4CMFWSV2>38vz`qIs
zAIdcECA3)t{PV5|_<kU;NXg=1P@R}dTyhNAJE|3zS+=^H^39r)YNn-Hi<b1JHu@k*
z0pUXk*;?2ZKe$Ohj3m76%ixa?xV9sr>kkwW=N@2<x6~62<VTTWQBF@Zxr3Ec%1&k3
zJqi?AHit>kaVD#7CbP*@-yC){V}2}q8In|nc7da*$dA)~+tU1KK#kV7LBtajkyCm|
zG;nB?PnKAQh$J&D+Lam%GJ&TM52Kv2Ba-d0eK7enA^5|hyZOOV#_$XhSj;x(hsFFX
zlHiS&5{u8#y}Ps|8W4n^$8&mb@B%{xN+`!mxKGjMKr~R8qRoL6ZSKNMy++voiZ;Ja
z2&^Y;w4`{3l`w8B4I!hsc$d(N{?RZO?;#F#Ru~O*5q0(fB9gyFFo9iiOf>nsydl;8
zkWx&u+>s5gZCvvaAh=d+>uOvp9}^vS>9NtkF)XVUgv?sAYOoI{d}60U?J{L?=QxI2
z2{`*O&ScG!$+X3*h=VqP<EWO`WFjKjF~<L&QihyBAIh+fsM)Gkm_kxlX)!?wGa{`p
zvEEKtbXo$HK0e=I2gxAj&xkR1;8<epbGmnx_KF6C75~zn+ad`uE>eSiS$tmsZnwm@
zSrF|@M8D2N#29x87wa24j3}v1TejLEWI-X&w8h46i8kI>CED9@&uG}&W!?IYlF8e}
z)9!h@`(l~~IP(yYhSOtQtBzI|^@|o&M2pIza#unp0oPds`y<c>L~VsRfZ{^1qckdq
z3W=%igAki6i|(RRcs$q4!N|jn$mSIGr?MY{B*@`-x<5=1v|>+luQDw4{ew6Pfg|Bt
zWjHHc9ta(*V{Y;@!Bfe9J5a81se-9GV#-U<{ea!{HR91^MHH1vMS`ypXRJQJL4x*e
zIU*l7SdoPrmyjM}Eqm_#OtQ2-8W8BZ5LvTO8I*nylMN7A+k{lcOs38FClPW722t6%
zW+GzLw@~^bJ4^<pKhh4-g3=#Fv|WLEqTQWx4InYH*0VAcQ#xrqo_0^`%aIdE`ye2#
zr^mQ<3bg*DXweC}%2yy(dy2RIlqH&I;`ap9tDL<&11*mJ>?hO@YE~Mx!BL1WQ9vr9
zas{4*Y#YQ@Du7>HfMk3ZgN9EbkVu-zW&BFCl?=@+G8ujInLg4B+jI64uMAljG+v?A
z&k@t#6^c-??1tRrK;YrIb%@%^2`#lTC(TXGR03FfGur?#&au+#kAeo*%&EIuGZ!N#
z1oK}6R5SD#*BVeW!=pt*qeVlaMW^ZY(=0$Q5y5m3Tq=Ug5hPE8+^;AQ3YuSXO*A>&
z(k`)t9Ze23+a=Nih_QmG!5LPNd^`rO;bwFN(6fcI`M4uVQLjW2ly(N)Urk&Li5g#y
zAeG4R1!ppj89ENUvrB(s9fxsTBXG<l95ZpRjftjg@)AYsYAge*be7f>6-<e}$+oYw
zRTj5&bQ}>NH8qYEm2#sYFEGldbW(DtD^84^MO>bl%H^0Sp)j-l^>4~0h>)FIK|~**
zw?@)7K%Wg{foajywZ~b}c=AlJPEDOUGc|Z!)QHF+-=6XOlG)L~bwFfWYrLKefm~}O
zQZ~M6t#LLS&cG}TQUg<?Vy$snG|)t~em%)^RMhfr0!^IVRDhSazmYF*kHgE`q)@!=
z%Giv3BV`;NO$s@XIwWkJqE#J@x6b*58G;qYn3h6xUu+KWB}ePcB!MUTOQ^vcScz|<
z<UdD?c3#h=0)2^|k;I%IoWnThiz3)O0G*v%kOn9Erf5LGE)cMPodxk4*Ozp7wJ-sw
zI_!021HndI6cVwPUieljJqyPWB|Z`{mrHRcakgu(hy6MErM^nGkO;01iGs}MH!ryP
zG0PV9O(djS1^K^Bn+Emc>8V3n1SA*?&5H)+MlIE@k7n|NH*?|cAzGvD{@=a-+XcRl
zc@5kg4a}n^b3Z-012@tA19a~yy)haPYPyto1HVx0#6D7mb(MOAVFNc(zQ=HHX>%mv
zTS!H}RmBS}6KKQ4C~6I)6WoPAPFYw7*fC-I{RE*T#{^Hi=a_6pPVn(L0_y(gF|I8{
z_jgCM=(cFlf@slvz5ClDK))8jHzL?7f^7(r^HKd~_xDURc^e||x}#`pB}Rn)+63&}
z)6wJ|0MdQed_)AE;Tqo#jOjhzA`;qnNP-D_n(luf!VA)Ryk{B5k2(&0jgKY9IDQg1
zo+TVRaj)I=Cv4v@lyOOFCnUts_3!8^iGa<BOBw53Wj0c_uJTvn^6qGI2?RX_JxrQ~
zwusL#EA}(MekT-*{|t)EM*a`rOD-n0HVDFwJ;#-%v_;z8;8hHl+M!7-peC_JT5UD>
zJi|EvM?7T&6-H?bSy!Q7!nz8D#Qkk~QXF>s>I6<$`xl~t=XLERW&IPPqjHO}2qEwW
zUu2%!P}u|%e;KE4PTC4Na9feidqPiZC(83uG$82j^*=y=Z=!E^??nlz;M|k#zT%Pe
zEJI3E61;y)MY18x<-!F}xEH7u=h34p@EqNDpmLh8S!On?ciGHpN6Nw~X&Q-r2_>0T
zn2g;stKE<jd>ny*%ql&`wKri_Uyl~O8ZCNRx2fF)T(Jmxh@htkdWqm@1j(1t9!%4^
zDVls85vJAL7!7P<1q%W=-D<u?GATh4<g=0Pk0G3|rdiD|8OO0Y4%;|^ar6;5z9bxd
zaj(7oC#+^UWqc>qYKjte{X48C5wKfLfn2wm*+|)}W(9HiZZ!E01f9`pTEu4<F~hGF
zz7i&-uHcQA{R!E7QEfin-p98*mBj7jE{Qr6mg!xpU^EwcPaoMX;cNqtE%_c&=<}b#
zWBrP&C`9;{N3}U}H^4%m6A%JhcFbZ=TZ9lVPqDwjEsQ%VaI+TaQ~kO<i6IRx&lalx
z8oGCtZjJ^7PqmhOsV>hzh7D|{e08{QwQas_Yn%0yh1un{$*MSrP*U5()9$s+vB(KN
zMkAoMNsn>uJG9Mh(W0%<qObL~IZnWh7r_J(oFjrs2$Ek@of*UZy<^F3h%g)FUa`R5
zF{022;PgiMJqcqnlF%skisAk|!nrlAQRXs^^K~3HSB7z1AaLXoj*D=w{qQFm<-aN8
zPpOSkl(6gH(I|<4y-^C}dZWxn%GN0VOI+?qZAU`vLi2w@6=ZC#7Qtp~t|_fA0b<D=
zz^Au9HJHbBF@?CelbSLHk%`6DwuggDL=ND(#FzZ*+|U?lD$)DVKKN-u99m!dSU~VJ
zO~RnhO`FTVm|+9$NkJ~beXFhS2V3jAl(PItQQZ1i=Po0Z)cWwWd#&$A<OCnrA)vNF
zkNCVF&Lip&lQaKw1jJ1um@9&LBDh%u^F?rr2yR87?Hfy(vFZ>bO)z!$Z<q@rLUtV%
zL`a8mu6(jJlD4^^+ks5xAa_SG4wb;S7b=VO$<w>2YzM?>-bK;Bbhj9BajkPqJBL3P
ztH49Hf8EO$3wUAxNOpz{vVBy-rzZoA8uYSeFCl83QY9&{n38Pw=jZ;2fL($Dxo!or
zk+NBVdw?X_iK~|+caVKbJb6G&|9-1Kcr+L50c0rklKMZ0JIsR}P4^Guo<z%^2$UZY
zTuSNgQco=4jq$4-k0QcSOM;dlp;yOagl8z;alk2^iMy#|7kWUv(db40OuHx>41@es
z%j3uw*Y=lni{=$6Jt`I`icu7v<ZCiV#ghBS@JLbkHtCUEpr?prlO%bcon*@No6Ict
za}!U(Hxb5;%*)e2hB6n$0!NB6zev~*j9H3d$I0qSKlVZ5OURZy5Y=KGxZxOqVj8;<
zp_lCd!ojytDTA=?FEAE^U$KMBl^uv7kq|Q~So9O_%&T@tb61#4-xc;6Ah6yd>gXZ6
zzyw*yV}n1rFW9&47kY#8wIT{fx+vbXGej+PZUMFuLlj@KDBiLIq=_Q&j4UE@K5UBQ
zZF@FTB*q7CmlK4ke<q%0d?8I(5q(GTJ9cEI)Ev6h-UCEyrO&YY_I*2IS^BwV=|8Xo
zh)H1fkaX`xui1}wfdf~%{6Dr6kQ{6`Iapx_Xn}*3yTCz)Mc-9+0+NGj`1Vo*R@(tu
z;NVk&G^<n|V}zw(<BgIph{ye6+8TL$3s1(198l{is#I%|Q`X5?UE&*w+J3slF?@;q
zV2~}(CP~UR@B1f7eF<D}euHF;HydOP?+k~tl`zdMMjAUH9SQzxk++2Iw^F((AQf$9
zX#v*oAnU6O$nbn?2j~KTM+z{@34m)EV4EGF8vq_Hz<3=1vl(E!9f00`eyjk41^`^g
z06zgh``&tdjzuU@lkXjXW5)@l*geO|jahV*#eskvCwh!)8{s&W>W)*6fM_Fvb_kNC
zMlYFo%zQImzS=29jA}5%Qr-*j_Lce;GefcD+UwrPh-wT`Rpi-;3SFg>07}A4q&?D0
zk0r<sB3GF1JKA$4vhUH2FqVA*Z{MRUSY>7BxuH%1dxWqbn1VfhPpvM9C}Tf};LXXS
z38?GzJ-Qazq~kMXb8t(v1zDrNJ4EmtC7ut%eO&8f^$n_Gfyx*~q0^JTK~*f-M{lX{
z4f-+rha;<YT+CYaub7?57d|~pYWJOwe97aC?mNS4Dh~PG@)*-m?eL-tvu*yVVK@)*
zV|xR{Bx1>A%FK%lcx$YN<lxUlBt>ooc9?;vFDyE+!z}#+jWFf}VuY~^?zLvC>tw0Q
zS6UDhSx+)8*3%RMgxFnL84L6iuG0~O{igxK&*1Z2Q#G@QAXfP?c--by63fUHF&StF
z{Om41UchR6B;luF7MjfNS&L(l6QwOdK-PjD<J$4D>Y`fRTJ#YReGzE!Sh5y1&j<Tp
zAOn^Bm=7H(Lt@~>Sn7K9sj+x6&YqIqa!!jG5&BSu-szxPpijwRy?Ssga2gP0U9Tom
zwvhp?R}YS1w&_%eHZUkA)~ip91x}!9tN^%$q<xnM4s|`9b+0lLlvE9|#iJh}fc|vC
zS#5_-|N5EH;SK<#X8UxkE)Mjtw7-Y`P?ytaMo%6a5JsNTI-(OHnpCTJ+Pzvm1v!D>
z1O!y8^cdH+pbr=tD;lC#?CFTrZj~npKT8TWl<SsT7<2#!g*;UNS>u;PA(r#0n;e3S
z%-3)$Uon^Cf>6HVbhw=V4x#r#_#b+W2;qORW69xkxn_j^p*S2a_cbDP&gQVa!{InD
zq=d#zY8*Olc!M(CrMS>*Ih2G0tD5bd4(CN7CEhr+aq=W(x>Ip*8eYo&S4inMdiaE%
zltDx$@{qydyb#DH#D`hpPa;IF_U`sM?OknLj+-Q(3k4spMUtPpWVl#{OJsOAg-)0A
z9)2c%ZwM(h4d)FUfA*N+7bwjRFzhCV+Yo)nbtZjT5T=iU%%zmjNDF7DGRN~mO5OO$
zjSclfhn>v=kmWf|=i3GD@ejN&1@8_A@$g_sDW5n>7Z=`raFMhf_k%`b!&p5YTwQ|Y
zEr;XYkP;g@L5~Lb6^L%{1j;9X(uHbS9?DZ(PM7<gP%hwI?sr3|1ytWhLJY2tWw=6y
zpHS#@<*Y=AYR_3E;@hm|kXTHDm(11ba6B4PP8d3|X6RUJjeAf8s_`c?*7$R%@u7`F
zE#jL%MRq<b;_DiQkDoX~!RuEJcb>99Nhpa8RCMQ4OlnMuaNpvzWt<itb0OFe%H>g@
zT+a~aBO1=vBOMg^w4kGlS60&JBu7#%`j^wb4gR%-R5u7EbA1h|lJb8er0Uu#r0V)f
z#_y2vJ4L+P9cF1da}ZK3wBcux=Gqpdxuzv)ew9(0n`}}u8_{Z(%f=RD_IaAjSUg{3
z6_3ODStfaY8Bzu`2%VI&r25nwst6&;yfEvhYrn9N<o;pSPuBr3m5@-*fg(QVAQ7K)
zu!whhgan;l4oQN0g%zWT$)?$dO6zDFHcUoJlieq*RF0oKu2E?w?VwgZ+2L#-R;tD|
zPQ1XPiRZA?Isy-?4QzsdZge<1gq6C+RQT_N)=;x%twA{pQBIV{d4%M<D}_$tyMUM&
z*Vu4=quzeetVMJ8ft7O`z@Idm(hg7~>O#zzMpcTKjVf7^o<gk7W5dE)_n}ueLH@Wf
zTWfc%5UYEj5UcxmAy(HA!JhjJ$>uPGWc7!OXV(ZBHpp<K2%V#3I9i5dM3{3Xhg8h&
zVI@9!*tmwq*w9I5k-&vno$PQNg%tDvW5$mwA2DKL!=y>J)S|4l7YxHjveBc`dvIVm
zS5q&6E~P{1O=vP$=aOu-U8?hIQ;uU$-Pw$}!+A6j>6xKkdI^Q#KFTmB!tUz|(kN@J
zNlI{<3@<h$curX9KeVyoyrCCllGAvd-!%D-ZBf2w*%c|Jcb=S4nCF^xA{9?|!lE0y
z6h$Frn<I;GlMLq?MQLu4=w&UVzg<Ym^%!*63FDiTCgX8wGM<tq<7vcG*Y%7v881mT
zUZxN|{wwnNRS~*g6QTQc8NNXwy1+N(^IIZp^R|3mE<)!!2&s*{E1q5N$@KR*B;8*S
zHu^RxU(vqji+H_*5@|k%V_u8mxjU@Xj%$DpG>lNDlHr0mQdEa?335s2K-LQNUJmEt
zF!?k6#!V8o&gy0@1gf(~Ajx9vI<VJr2dAWWllOw<ag!_xNS4q;cJodqlb+)q*yXWC
zGu3UIbCJ$f8tJ=qrc(Ju%OQhmm{oMh)Frni&yQ1bVEI0g%J;dnd|yb*w^3L==N2^h
z^T#x@Q?x@`!JW_)a*}?QR`6F@gTIN;`G*XZ2zT2qhYX!Ebji>y!kiotwrL~7wiL3l
z|0uh${~)`uUk`~)AOmUZtyt=-Gd9pws3mfrW8+7_^&y`rF@uI93&?K@VmRP%uC(iz
zr2}y|*JQF7MhCezlN~Zr*AZTFuB?6P2E72$F_XAAljM$MUHcT|Y+ZvyChAnyt#HAF
z6GkrB-Vt^joJR>6JG;rSy9iyy^0|i$d&;nv413G)Xc-1&Si&K-+IA6J7n@=k_lYP2
zhfW;I1)53{&Jof*gQeRsl4(@aKGI6HIGr6LvZ{ro2r>6<!+^G(!<i>BSQ?EO7v+N4
zjN>A+&CnhHgY?QFJ+fJ+$x@##!yz&}!;r#ppeX%vo9#MQ#0%SHjOu8Ik;75iqU5S0
zN+$c!51BHVuPVfk42>H(-csh_Eab|F5^Weas&TZ<k*{b;6670=mYQ>^EbC=5yj+G?
zh|qPV46mXP{mj+!d4>$Hk>Ry6oGC*0EE&$`kTj_wiwuWbWk?<ojf`RchqfrcF%kRt
zRJ0Z`K6RccP-c|mSuIJ1?5f_zsFjf|ohK#rFuf}TZCOg&co04k5o7)pvZSAg(76gB
zY1L}^yhc8MDxO_yWw=g;>t(nBA@aFDlh2>a@Cy;TH_GQtGW=48U&(MYg=}BvWRdg@
zStNa3i;}*XC9NwfxAJzPm0!pTcuU4sej6-9<3x+La%b<ngQTCq16?4H*xg^loZcB}
z$>E&eLT%rkv9=w~TS2cCYinu(^{is(%en!b_)h4At5Z}A*g8kWfNj4h57^v?h<Nv*
zBHn$Nh;NfG;@hYqzKuu17fSdp5<Vc}oyAe1OFa<Mz^SKv?j@dcdW+|_M~i1yP=+NU
zbeGEKV-P~OT*u1zJ|fIHPNw(ekXq@tS#;-{EV{F$Mcw%whCGv(_8Z67HH;m9Zi@f*
z6X8S8+1+N&{)l9BpMGW4l;eR^N6F#*F`|zZ^nRGVg`cgtEE+0&zMWw0>=6=YTIw&>
z)O3nJw4jPRWXXzcCHp?3g33-xm?Jsk(!L#!qfJGmcqk^+v42!_WXFr@bk@l*j*v`I
zy?AyF;*hGjUo>-vRw3fkobj?~OK!k`Xr_)nggohenJk)M{8TWm@Lb<X05&=}*~fAR
z=Qsf=vQwAwVzLqC9*OL5S)EhqRZWCVwEGd^v?!Zq=L}i?YbeBE=UOU1!kH`wmur>?
z-LqwQolL($JUed`p=*u|ZxW$<t_<hN@MaE4uEVp)b!Zm34iWM77ffid%(AYfA&cX*
zs8T<A43A1=!LNY9rFoB0QPR=+31{0>X>`U~7-O$Fn~Qs<DOwqC4q;i@bh{^Jl^02I
zKaJv&T0KJ{#QCfcgY!8Nx}KNe3o?9BhA(kQV!9)Xm~OL*DaD^!(1NJuXBE|58AY`?
zqo|g&Aga3s_3R3*cMWezA#D_ec5b2&Li$oZe<j1sB6Mxxkc9Gj)IQOrj}jfPwovky
zvzGkrj3r;5vE=We<o2e@Q|iulT9C-Ql3h9HE)|I9+=Yt`>xDM@y_CmZG0}zXO(Eow
zE1&aZ*q%d@!?tX4*xG^|zRoI#A2Q0}$Bc5=kwp$aWtD?&&QQ{hF}A`kPfR!k-WX54
zxO_2o3S31p{z$~5Gj|;&;@w9}2?S+WVo0JxtR<_vUo4Z=?HtQ8b9(@g!NSt0bQ(>V
z;8HveXQvo-tr@24Xd2bwJTS%`MT&NaIhFm1z0@UyeG!>)3?}CNc;*7aIu^nrAyi7C
z^pirV5<+o?q%guVjL0x5LU&ArIW-)T+LX2^tm9fJN1ya^=+#OcEX}Wg<2u2yb5Kll
zHYdbHXLBM>7KB2(PL-Sumf>j>LeWn*IIN9jndBy$9&b@@pg$b+MPE5I8y<&a2x>p$
zWO<uBWpAEsR+QZ89PBF9KVV5SBJ?)|tJ6a&Yip`Q{fmc$YU1_fHI-G$k$uYtWlSk6
zQ*!rqc2uAw&~_!aI3vzzC|*CLs;0i~WP!<iru;P-^Hf!bY!nC9)z;Tm)<y+}Y^j9r
zluY<iGlXjDtLm!DE2~h*>RLwHG6*nl-<ErdtCMqo+6RQWZLCy`95bp|EROQ5{cz>G
z?b|5bk(N$VPzt9x)6!x?&nMi~Z3(lp5!iDe&s25>)<#2>EWi_cW=;c(pbvQ-Ks7nM
zbnxU!4HG8~9((qfq2opspFjA#@e|LQG-2rQhQSRZ&ia4seR+J`Mfv|{H|YUeN-U+8
zL-=H~yV(G(Z7HQxpt+N6lWa)R3kxAlwrwPrIcTe>OIu6JWw{Xq%PBWi1SxV<<Q4%z
z<&+x*K`ueT1Ag!KGc%uKchdvDzyHkZwb{=;^UO2PJoC&m&&)hCpJ|J`J5qheFI(K%
z)7~}Iky_l>-#ggb-rKdfvu}F4s@mk`<ZJB63Eb};h0pguH@Dt+)uytnrK~m4QdKWv
z&6&b>8k@K0E}&Tinzse4_e15m+O3sUt*otpR%UB}A5NOk#SmzUF3!kBFVT3y^wzS<
z%BHI3X3d@pP;CqvyBQjDa?udItWGx7w^o$Z)s>f3%ypG$m^AX1vwmLbG|Z>uvV^9<
zinsK$fxL0MK~IL*#8z|XvL3_>^rtMsY(Vm9TcDPJbx<1!NB^`&TXmg1$6NBd5O@=v
zQ9$A30mt@erpcQRcq#1rV5)y9G)LB+NRt||)zX0hx}04Bd(a&xq%6+&(?MB)ZC=vQ
zJJ`8&m9k7a57XBNn^McL7}_rzUy4V<H>!NKZ9N@`7EpY0h3^6dcj~-Jem4)bw{ycx
z;ZYWs29tx!Q~l&Q+0(U3@JaV-mEXq)<+(Xn-PYNa>PWQdWezp7lX`Ggcw4YC)!x-9
zGg;Z2({*6ptr=-5tKwyM$|YFQ*44G7t^Ifrq0lS<+{%L`X*fZa71^`K!vcJXaQ!zk
z&u0a9%p%X(K?{H#NZJIk0)5jvR;E0Czq7lq3;mzHe;oMP1D`9w6MGojKzdkCjdnY1
zeX_Eu)lumjaP|t&n_%dT4U7w-4ATEHKB2Lr3uql65^ExV19vZjn{)JX%TPmDuF^dz
zy8L|%O;7pzW|aRGUH*PKaH&&XUTuwAXmG~`#&OJGy=;8@@$;-AjUO@iy9UMuG`>qW
zfR{-s85BEs!2;*`$Xu4nl}972R8@;J&S}djKu7^r9<n{a(9LP}GHJCY8(R{|hMXjI
znwIZDhAzsO<as{OJck40;7o~p2xEV;Aya;HSLCbsxN;a}P2q3Qnu>4H!(+Ey_m-xz
zhUWT2OKVeAMO9*cRclLfZdE4Zxse>%9Bj(+=*V;*UqR~-&DRWrJ0UQRmo~B8rCz8L
z>*LlX-<qlO9A@&QZ?%+#-y0CiszHzdHm<}zC~LAm;G<nDFIFuKSOKR2{e$v5ir*8h
zrc_UAMN?`?XHSQ=igCbgz`Igy1ID7302W8yUic@p?9=djid8<;+0`Mm4#n@8R!e_d
z&p>zQAYzYFohO*QvyfKGy&q8H_=fYb!LI>k{%WnA9KUzeat-IZba1B+W($^?mg{iv
zas)na1tIm30j!%S>D!vY*+`=%mEv18Y1cqOAJPK4N0b}5?!guKO^d{Dwjz5q`m<HZ
z-=I@v@ZsC^A%(bb#=wjFyOO_wOS!8ug9U6;c~0Mt)>j^;8Z*%>eHh8LS1GVW54LQH
z6I45B&1lZ{!Oos#tTo}_hhk_-eRC)^APEYdui)hf^AX>GxFZZMRD~o68);zF91q=5
z3eNJORlU7~kP`7nJNSTU{LqY1q7C$B=c0D5^}v*(MP?Mrja8ONfaq+}YIVS8t1Us^
zP<lUjJS-)kN@-5@bX0Z@v}4J*-z$Zt_7ggiOP2!Zmx7XxN)c|g6i7!)NJ-a70(8pS
z;VF3~0a!zuhG{7XAIcq2xLOJ#-HKj}o~c1JoRZKkig(0DrTV2;dZfCmFU^Qt<qN4a
z?T*y-V#8SY8l&KJS1d|;jGi|%_#|C5A9F6+XRo9MXe6D~l0Kc1-Y+l?21=|IM<})e
z(`mW<7I>s}6kychCVVTseMeg@+HA`*4b;-V%Hu-~fhwe=8?U9aJB9EeZJC&_0G3Hq
z*2$(U9`n(fsWhEU`(E_aZL6ZI6QN;dbBb218SuE0l5xBo|8I(AKqlBsmjfPV`l1UI
zoHo1EyA@6A0{?^7t_5l4uhygG9xo$fg!H7K8EB>Efd=*ceGm%eoVAD#*j&{#KjEE>
zYXGRI@p}PiNNdc`H6Ds3)>&H16AhJ#hMF96s^Kum>#Uq~IfZei(^6Ss*8w^F9c}o_
z>8nVlrsTX9jL&7|b)H2B5742t*wD)9gOa7P=H{w;(D6{q1}l0w`AO8&H?|sSI9_ZP
zlyVtf-t}b-Wi?fmtqoNz3zAK9bI5x*4AMmpJI>T|*j0^80v`QxG;bR?EN57MuQ^fQ
z2nibQ>CihgbEJ`0x;!}i40RD|GumoS^`Fq$o+@`o7xvgap#2kNDO1g6Id<As!%%m{
za=0S>sUB@9IGc@I4p4j+!e+X&)B!VlWz>1CRhe4aHq<rfOk$Ova}3fNO`0c=k-Qv>
zw1rmLz(A^-f$CC5D`^E2%ewn22K&3*S?Y1YM0eXV#WU^Z@*u5Be{WZp8jDDe@V;Pu
zPoJ=@C$!pvwSn$Rrs?`E!SA%-%0yl~KhkIi{G4EOPoD%bDa%B<@e#D7{jPNz!T4~l
z0aPqcwI8n%by>up>7=U(FlpP6b*Teabt9~7M188Gv#k-cU54I@9AKuc+7a&hm$PQ9
z%V21GdUSnTd-GsFhdI)xbzcwI%0^6pQ-iXvXyB)f#wM0O>3v$ky<lBCP?q`IIC=-H
zVD%T7`RXYztvjr83S}?F=L#_3_22fS|CZBY(8noHCR>cvPzy|1P~EdTL0hc#u(ZSs
zw$@gaRaP}Q-OdXHC0c$pTV#K6XBGjg3-oD0x=lHbzv`y-nzW_H>n!W)>TO44ZCTH%
zMrieb@;3sOfuo_!Fbg@+M+!P=CPBgTa13Lm$tF9S;C0rhJuxGaHO_CMY{~{pXvqq=
zgsm-$8a;lY4~&X(#Qj|BnnS6jos0QzpfA;~S2X%j_5eQnQfBFEwTB6QmUcEl)%y{S
zP>-mD{#C-a@;;GP*W1>S>aSoRp{lt9lU_<#9%+=r57tHwfu_J#63Nd@)3Z9}8zE&Q
z{vLhVmsLx7WR7&nuG2>`9fpUi{s^CG>r(s+pQD*JuV-k02SYsYT?j9$XiUIhbhUMM
z>m+H_T}_$-Hq38Unh+vf!LZ|psYxO!WsJ#&H}>`qHgmbzc;vegr?IU|M56f~D=;im
zWBm`TYZjEeb{Cp$D-}?h0+wOao@hAHpdqb6^;PxBrbQY0;{l5He9l#IM|-+4f^_yR
z$Gq8D6+Z#xufQipEz)y+Y8K(_jYY78Zja2jRsqf)`7L})&(~`Sg6r$OLF+_~`yGQj
z?0T23Xk}G%MN^`&CFz=qtQ2i|zGrCe9T>;6dE_$<7{B?UzwPop!a7OwvfAWB9rA!9
zb<i_oQ|GnBb=K|jtncf*>zusGS~0(i7qHfAybT6V%Z7LcHxIm`>8(>W?r8?s%a5)T
zM;yxabl@=m8O-DGHNyIVrm@k`IMP@^889n&La$5r+khpo##Dc2Z%1dl?)w76QVJHW
zu^vLb1b?EJXMrXyTT7z8s;RZIs;<nlZQ}uoUSgy<8~C(Fp9H|8mM3{8oON*d&a=)1
zj5>54zP<7%9_v`-lWU%JfyV!#!PldOkty?Wz2hQ{_ag@{STNi(^GeyVT=RjNd5KCH
zt@wZ{s=3LfhVFhw&XiC?Sqs<WoT&mw)=_&x3?j$Nk%w4Laz+>T!%-A$3P<iMkdN|Q
zfuY9q%T4%w89q$&*FE353NXs_C-|0n>Ap-n=HYi{o@;cTYfT<cyO})RcDr8V-!Ke*
zX1}>f<8RKuH?%YHf2Q$oHu&X6&KQD~!zo^|8q3O8sU4S8zuJ;fwmoQ-uWHo0fFeuJ
zj^r(%%eK&Cb#ql&Q$=k?dt|4%ZE`E}vrYJNqLA*RgqivjLB?z&S7sxu+xQ#pvIXDL
zE;)CK$yH?)XU46KWi7S-Db{d_j$Z!K&_+3Tm}lLV<n2y;{CwqEcL7Ge?l$<^R++lE
zbqHF&(zy2+T)oO-qt{WVSSG*O5B=qgwC>e;?=yK(CcSHKzn8p#JwRN?zU5gD>bwt`
zydIrqS^SWen<wA;jn4Ck$uo?tcvRy(X7D_=nsi;7LF;!K_X&e*yj5S>0qge~?+=-H
zK6(M`DUJ8E!PE6Jb;?z*XLX+EGV)M%lsVhL_LY-w{YmF}!Q}DuZ|392t!JL~lE#18
z;OllK9`%C#)#T&Y<mMe|y{hxRX7YO4%IK88ynO4=I?rEBo+Y_#G1WiWSk>Tk3fZV`
zs)yN4Hh3a3b^s4OhC2VIDG$$oHP0FRz6E%ZPd@q9+ki3u-%K7nvu>ixcz)MBd*u8c
zV17Dz*86~w&Ibk`&ul}XGmKsNka?WGF~a&t)A)zU=jrd1bEa+mSmS?U@U_0PT>iPV
zgVw(_?te0HNjDSsQ;qwX!S&RgdhGYZumX;FP}V(&?@Sv&`lj#YNlAHDzQ!Ms1E07y
zKIGltkJ9*~4L){5m}YiEcJ;tHo*VcW1J^q5^}Rw!+YKMT|25JY3mEINyUClrJzuRG
z9S_P_Vd&_G=fE|B9{k4YZ(HX;s->|`twHnw#(k`T!QOs>V&o_8w*ikk^HDW{CH%X9
zPqC`|Qz;j=2C$j3za}$1#xDwulL0SvY4rB$wVqP|uT?Z0*qMMeS{3~%%$U_`isIvZ
zz!zejYfzj-MfXC$j<XiDbq-ed_A6v5?_$80t4NM6FO5q8@59P=?|>$)>-b~9S7QAO
zYdZ>E!><NBtpWwRy38=1vF3FhaMnX^ojfj`3ro|w5qKM|c|F_1`zi1)u#|gYiZp9)
z)W}V2BbiPs8T=ghR|Cdqk5s?Op?wft_U*vgY}NI06+*9+iJZ0qew&6@rnrFE*oNay
zlJ;w)Z8derELZ|yB$`AWgQpJM51a>)zpcYvuX`A<$JM^60%{(93;5IOY^2bC9KT<J
zJi46Rs-2$%{0+hLPWcs2e?;1Q)UO5{XRq(=L3CA5XS>=CAwSO`{bQEh)g^0W&*Qfh
zfX*yv8*E?R(Ywr}J1-(_bO06W!A>8(%<>}Xyn?iXfb6PdCJXPcBYk2Z*_Y}u@>cx4
z0k|Cy{c;jW?;XJ7K72;3^mmImb)Wn@aHa%IwgJqH{A-&3MEcBtw++jO%-$T!_!rVk
zb-JNq^ya@vs}0DiVpmta%(}Z$2FcOq0g;&n>(Ll+^mH58s=e}nzc7H^pY|cl+fo(%
z?FUaY<&H$!agcG}Dy%o?dhP<)a<&OUS~m&+>kD}LeAP;e>w%LnYxxq=%-_lYN7Wr%
z55%lx9P-jb=H1w|jBFpV^4L4JL6jC77t$b3&bz+OHK3^?i$bJhZxg?#Ilr-!i{A&!
z?>#{uyKneC-3npm#&x&}9)1g~95c5gKi`_$617Ysv#~FujEVUC0sNWS7;OVT^Z@wn
zj-dJ0-oR!3_rbT+AJ1PmvdFnsDmz<cO^uG1Bh$|;sP<s?Gjwy(;ucX|qG4`p(?U;}
zNETGnvJI`AJ7aAB`mzdNxM2p2bketOBc?BintNmS)GkR=YH0=5<F!U|yk+d3_jkm5
zu+4*qNDn#iR^H#y-iGaD_D1GE2<IpV4N&9TfMc&TE1r-oHdA7lvv)ZVE9mTow1M|p
z%iY=FofM67PlfJ{po3kO{yuFy$P4Rx9AQTxc0u<-!ul|p_6%0{;~E`jcc&2a(ilzJ
zPcR$#if$P2^;msw*ZKMTYOA~-#+!9!f>=h@`$4OAMH{Z#z~Nbu1<QIIvNXFIh6l>x
zB@1S#8{5|`612G=x+i*35$K!0H&g_*voxVpk^19+(B{ZnzJon0XN+FwQY=DB?~0)8
zC_X2H0rr|>z`wB?tP8D1K@hk(HI#g*-PMY+idwa|mjR=O9;+-4b<cvlGj(sY)zXV$
z3|n<du5s{#y?ovcQU=#Z<VwEmAcsPQQv#fLu%fMfIo8h56R|81JOD8BH!*)F_JenH
zXCS96`^l%Xrh6cGI0&D5Fk*IA$h+$&2dv3Rr>wt<Z)Ks>nkKE37jLS@n`ZEa-`n@c
zHnRx~L|dBahK8Pduq@uB;#$t2HA9zosKL!?;lwU_OK`2F7s_%E$Tg?LW-zQ;qvX=h
z#GRZAm(~ueLURS#`~bG-Ke|pjXxdwS6UEg(Hw+*LoMoa74mWkp83$nU<=PWxIUYFa
zr7zotB|Z!#jb?<j_##S+X$fn!|7)x-dr2exx<NN8dm((&O3YUJdsP(jLbTp-uxPRm
zuB{Y%>vB(&_AHdQ(rQ}S(tCUgmy(FZB5ae@;)5~YgS3K-%R{7?v7%37Z@UX127(jz
zHROGRc&pmGQgF?V*X2@^EcjbG!rQTeqXXQ}bEC%D3nm6U8|8YG;KfpQ06ROLBr~eS
z9k}cFa#lMfP=jvQ=U8%D;+YDj5H;;1LHls}y>RI1xlqR38)lUBY^0gLg#l3;(`Q_x
zYanc0_*kXLvlR9C7BW(Mj>WUL2bUw=+k-3k8+euYHogdPGA-<TJijnOS;-otTZo_J
zMz`<_%?yCwT7fH$-wROtb|OOM3t70%p1z?$$HFDR#~gfWC<DFXz>%7|Y<w}%2`kU4
z10L&Nk8e|d;+p3rp67P+?4j9+d`FRnv-*-}HEEj7hNiY?q)U7kH)ze%xbqF}w2>aG
zp?bI1y=w7;(CW|^@W0UH$1}YF;a{&>v0NLnSOoad__*cgTVLmI<XLR;c<RPHetg7@
zX#7@#zjQdOm>rSBNE=y}^G7Fd57DV(n<>*H&n4u?k$uo=*Zg%DT+}W1vl`JT8#jNz
zTCVeVn*8ajblhJHAi1KI7XY3at$Yk%1y((Mu|!`>uj7v$2lzzGZy8d6*-rGavTjQO
ziyMolt=KZa7}qD;cG`M;1F)Gqqk<J2#%N*o6g(a<^H-{(lQSi3Y=%274u?Uj(zJtq
z+;9=g-EBRHv*^&SiPKBFz-Ko;$HH{51!#TwH=8YjR_jHY>4h8t<ax5PK)j;Qvargu
zqOHF}47l=(2_J2hBLqiTb)MD>LMHu!&pd1wOn;iUaas>nbO89A(ft$nA+2qs%@281
z<p-@H{syln;M?%ZG<hD@w<w=i?f4dWri?*jmC2{qc<K9m3m^Ko96gNX%EL3x&spC_
z8uOiK^6B1g{HE^!Zt{=@=g!~NdA?`z=)H<SMlU!?<E?h^f(67eb-dU-=k)iq&*UDE
z^8%dSyw1>`rrMNkjF?>K3>SGXu;!*#Y5nK#iMVLAYlwT%BQV}u!S$eF{t!v0{I+eC
zyQ47@UO!r&9_;E|(%;s<YB7@V2sP$N4PDs)9!|lB46!}v!HAq@c<VK9!0Wj%4p_Vt
z?ai=#5aTPiQ_?48-A?z^EpF=O=nec+>J7?2Lzlk~%O5s|qG?_O_vNz#w=xr)_StCa
zF|6N9g2E8TB>r&no@Me5%a1TqQPx;io~TQ-B&ys<vaA%=6LLMr(A53$Z2UeKAJ=*Z
zt@HRBxaS*Ot>46T@dDNlHQt2=Pmg*$lf#c6KhOG+#=qF$YaVR0n;$o5{aE8}GPt^5
zvW@v+Urzh_TfTLf&U3lRqv;dhzgH8quGF|!8C-2IxYv0Z=+gTv!pGnDM_5<ueAk$K
zy3WKkd0iRhS=VX&>kWQpIl4ZX<=m+A-DL9VHt_HD1gxKGyq_7oC1yXLo;DWMu?&m@
zIuffDV4Re|7PR$a4(`OJ39Nbf&|pXJiXH`*_%wkxVg;1zy3GiS>s*Sk7KyFmsvys7
z{2b*{adA!-cEcZ<=fa?Tx}V<ye8xicA+K5GBh0j`kwYHRX={IhH0t7Q_!fIG?EDSg
zpm`pGkTc>S{a~kW-EQcC_Akw|Zp%CH+wkLU%R2!lFLxPyJd=0fOY5hT7y7W3_>NbV
zZ~aQ=zb7LPb(#8OKHfa{>OA+EJn2*P+%t3k>jGfFD^hz&+S*?Pm~Hl#H0%<<;>26f
zc6@56kGlslm%9}3Da6fyUjg_`!smDP4-U0;>F7;oAM7VcFXbv9rjUb;y`7vOvb8z4
zyB2A+EDJYVtLvr}{06`q3FktONt3IuRr+S6%f6UN)4bmd_;Ds*ZRfJ(IrdAo0B1Qy
z2B?1XDr_H_HTt^&@3ZFhb#Otyt#4om0o&y9*MP6Iu#AW^C<=_Pwk4fior9f>YbDP8
zz)33{!;u`%<w${dHU=L+y7^nL`oqqR6c~XX1P!k1kJsz^l$~f6G>E-|`=}<W;Ws8N
z=g8o$SWIi3U)GdxPD$iSaC*dV4b7ZU{@$!|ZXahPlT9jsYnU`pW<2y`pv&Hbvq$fT
z=BUxUP=qCWlLKZokT9H7!|WZSI_@o3<G9j?$3a8wS*SFzCa62CMDTY=Gk*n^mzN!^
zJ7oU^XzT&mp9(_8Q{@Q8p2^;*_zhaW2OcfJAMow8jTG)iCO&1-fJZ$RJZ)LTx&cOc
zkgjUiJnLD&NcTB|k7vqF^5XeV<~jXG=iHwgSx=cU>eX4B5#3a=vECad44yuXukC*}
zo%*&Ox1Xcusd(jVJag+A)AK!d0+@1e=`EM8U=9?G5jk)W``y_M6$s54wI>8FW6F!D
zt(u^lmA7efKs#f2@iw)nBu5`8o%oY4fyOAbs6=ifW|O^GwIYuA!88~P#THhYC5H{9
zw==KW0n@R>=n>SkR{%GEV|<#nGd*JDgjYd_+O`tJ*y_9B*|hZQNb_n8=L^&p(Hv(i
z$+P|fJm!5P7d`};iT_uP|CYg@;awrg6ea!9mQ0|s6zNm+O#V$!vN$fVxwU<M8?e!|
z&mI`LFOYRkTraN21skx5R@op<ek{SNy4YcQ{I<G|#u;1w1{lueumEWp(!yCB{8p_+
z`wMd!d`EaeBL1+3>a5smz1e{~Mn+C}7c|%^J)l9!QVXOdwzDJR-dDqN)h>y^X#YUx
z14F0BJCku|Xj}*8OeS-;WFppOd5)8sOD)}(J8#{*2wvGl!Z2II09xB?&IAz_v8ub;
zmZ2AbZ}zAUJ+g_5Y&<;5#3Kjau!$cb-$D3D4{A`n?*{px&1GlMoZ=vVgy-kjNhBQl
zfDzYo13NuIcya7e|Mc*NlL0%os=uRaox`oDbjk^Eu@)bLk5BMfjoNX{vhht_gO@Ao
zg8xRE>Y-}Ai*ly@<~PUX|011j{i%Z&EEtKpdwVih6o_x~l0N#W#na}@8^pIN1LwRA
zongIQZex3PC7cOl23+gl2t!-Xh)91V%XKVD&>E%r7;SKMlooMqa;mKg`R8vp??`J`
zoi}9i=G;+Y`;xzE94htSxZ#6po_8~}Ae*t~S>FKR<%u&Qes%|rpRZ9?0brEvmrQ;=
z4tw*v^}yLejX&Pt>sc4^UA%xbLF0Yd;A!ulct%cs3!HE5rSt4<@_2YLdE7GctbH~9
zR}6l7wYI#w0AjiO?P5L005+O;L~H9X4!;YmYF_Ce7GzKSrbXdtb7O@k0%pTn3=J$7
z8vEck*GuL6w5GEkVBYmo?!nUH?hm;6o2k}E*@)R|qFyLl_KWt~w*Ee>8cDCU!9yWF
z#|Km^GlEHakZujGg_<7c?{)cB1o@~LQG81t-7^e6Tf&wK2CZU^8#lPR<+wZN#Wy|r
z0F8g3!ACia(o@zzSyEaQoSVeX8R~*{I8-4x8TjT8{?ztwpn{eDD)MlR^+jZ4ea1TF
zsJmoBNaKgRu}*4l9=CUB9uGD=dTySuwbk3(&`Lj{HLng3*nelwav%IQtM)QV>+zj-
zzcI&Y`!G0Z(Qqv1n;}Frlz9f>PtajB31)1;{w8<dv*0J@7<1SnX<TyNhB#0&w>=QF
z*F&@Wx^P-iHr&)0#FP1ldZfNl#vpao#17p`gcjhd0geFu60L=lkyi`p!5J;#x7)|_
zt*_};INZ|;HgMQlAcrwrX$xVvWuecUh@)Hx3z*B?wcL*c9W{qSUhTEc2F(0nRR=cM
zd#TS3-p+%1mVyrJiE9N#(`K1^4r}XGIT`CQULfoN+CkT`Lioh{k8pI-SSZTtZA9oS
z>pWg86zlh%zF~nlW(B*_Q^)tM!-sl$5dYILX|QeCkuoy+AhbfLPnE9EQLK+%WoCKM
zZ@&D>@w@UfWXyb+9q{H9iAc$V$ZI_1f089*XK?lkUez6Z)M`Ge$p?C{<I&@pb5LcS
zO!RfYGP??O$Y;`&<#Bg?8cdqDgl2r<%H}3~ygJwjT$X#3$)i^&iA%bt<D2=-3M!wu
zbJDEywU~UMK^)-;&wF~FPxCxa_B`+Fd1j2X$$N(9Ic%PDp6c=W`f~lB=enuk5|!-r
zj>$owk68xvPPMs>U)X)7y%C+`Z_E%8S^<3n4{YyN)Y<%DR_mQ_>>Lkhf4=;J^N#yL
zkiO?6JX7ux!wEU&oBAWI5OAiI(l(@T*H*bhxRK>E(OO$D5=&+Fsx1RGyAm;M+Oj$)
z>uHe@nPT8lV_ITFn)}}`<+1Et!&u!uB{d19mI8F1BT$C6;3~|TJ@;s}&zkZ`GVRO&
zlxNF}ML*Z=n~>^K(B=GpKI%>FCJ(B&sJr7hb`$3IgrL=lJjDG5z6Dp0^QQstWPGUk
zE`FZXrSZFS;P(KQiQlX7`wTwHBJE7RICEe*&@}u7tpS~H(B$)s)!ozt$P!~-P|%%!
zW;SJHiOuPGWp&;th<V#aQN08_t}x~5ePil}@?G3}6bZ|m0g^8;6<me<<_~Ag^(^lT
z@`X0$3nkdb=YqIdwPWuPpNH}jONBGiz+=09$J7JoRoIivxs>l2xVDzu$040G;QVvj
zJl{G=(^_rvczUI*aH1UcM`Ov3cG}mSRoZN`acX2gS<29UAZF|s^@HmLCPibEr@VF`
zI{0(mh~}JIXDId{77^iG%YH0)I0c_$S%1_i4|0||X&Lcud9IL9PJTVlw@ybI^PGY2
zoOvMM%sd-)o-<7z)A#V3<@oXQtg|)#IR+o)InUovvi$+lGFPb10xWZd>RiCM0;5iw
z(2w<>G&v9H6LG4eKN~|v1nz~MFJ-Yj&Z(T(Nu%W1^CIt{VN%iKDEkXQi+X)9l)-zW
z$nn%0)U(I51)jMI=d~ZyU3#3Z&IYZEL67+^!MD*%o{TcjT($GkpiMIJrro0rx=ho!
z+|V%Xqj3#B^#Qr9D>eRAIq*r-?@i=cS8M!h48F(y4FRA0UuV+vtekwhb~0eyplRIb
z-~|i#QV4I|X!i+o^98M+>U=*lxG2l=JX4R1tf)WcnR;WMsUzw+P=MTyZQ0_&<*v@#
z@tb9<*q4CyOa4ZAcQ|;#0%r$7%a}5~3+b6MzFX(rYVw8ya`VY*$i=f-ui{CS!}@+G
zrf@ixxH!okwI@)q95+DAZFC_`i({LMC-(?<nbT*67WK--X@Vz}5s9hG^y4k)@5Dx&
z8?p(XV6x(k<F89kZkW_pGkHQs=|dc#@abK;_{korYV#6(GzirpuI7Prau=7Y*Xq(I
zvB1RB_2!H$7am?l<lxW)cX29kS*9vl%G12jn|E<op4k*xfE#tyOvmt+vmWM(Kzg71
z`Pvr_TK{0#&|t3;BKXqjT;q4k#A>{LRf<W^;z@4^89uVo{To6~{j>1QhLA^&SvXGp
zT{*Jfx%~3lNX@W^4#yHiFSuxC<H3W&vBQUBHX?|l+k<0-4=0D&H+q<bn{x<ob;jTC
zq#ovVvyRMi=!`i+g40&2ecAs}Q8q2NJLQTloc?1#US%KSFSL$oeaVF<Hsv{E<Mp|W
zOYs})hH8_$W~kGw6>@G+ATyv;zt?Xke7x)?s8e+OJ<;Ts<2!1m%+-93fiFO|=5Jr|
zTl~Qn&OF!;R(>YNy%&*x06ZRtF^o3RSt*^M<WhyS%G8pfWxQ|=H`s>K$NJ*%AuNe)
z$6o%Bto>jPry||V9!kCwA(|Vf5bTfU=^eS@p7W>b&Mr?pgN=0Dc+|rSl5m=^9g(TJ
zP<QT#n~x-24jFnepoM1L274WX<D4}zR6IDi1xax9S)!rdp#g*C&>5>%Z>2H=$sP%M
zFl#5|6*nUZ4V{teVFQD0-3X|6c`4vco2(G^YZ=1rdpZ~j%PZMrX0a<;_Ek^Ij@KTk
z|H4A$==fLlGs9s$INH;B4RpJq?fZdOW1YCSj-9S0xL@peCqjTd7#i^{qtWRL_1u>&
z1|QGNUuDW`q#ShN`kjZW)*MH1yI{`wt?CO^e3><+mBhuP&PvdD_=te}P9CT}A#ewu
z{Q*S;-|$FH`SDx~_ejC%5E*bSoi~x6>)W-I4(1s)zUd1D=?D5&2Bq4LRs=Xd7m%v&
zTc8p2tYVo}jJG}f;m$Fx41T`*QFb&Qbhw?k4mqaXhhy4KT=U<++dKFi$hzzP-+<rH
zRp7NRry-<9IQN#|`C6kLIp@RTlh-B^rUA+-D)4TH96J`n<FH-QXK2l1%R}>gZ&py6
z<-NR7wZPxOIV@}^Z(hR@l`?q)fiW|>FY<PgIC19V#^K(6&(U>PYo|D~lvIZ~^Uif%
zo{IYrWtczg$Z&qK^Y5O375)fxxE^&eh*84#7^xoMjTm5*aH3Iy?Wn~qp5K&G&S=+`
z3OB<%^8?tbZ-0Vv#e>EyIQMGCyh@e7%DuYG1vzy7ZRmJ<OeuRz&Uem`@A*{~<~lU@
zr$g^kLvPq9?Q$Mn!$P`rXHqZ#MFV{B(o*)^IQdAM-IQD!#QmAkXk~9S0Ou10i0L-b
z03U-R8y<qO^#8)|xYg2bq5%Gb-&3r49p?9c@f+tGII77e4ejG+fUUIV<C=h8-)ei>
zDyQL1_VJXa9*xN7T6K2QSvL%T(e(zGEqK6)JwwpKpxR(U4&Kfn!pM%(hnD35kMZ6|
z=&`;N&t@+5n$ftu)wmxAuNV>F5+w%os4JT3+?@g~_1^O`9{7fqbN7&@#dRCfz-^1o
zjktG|_exXC7nw5kKHzTPZxdkNdGuJoh`T$!g}w*ZKQ{|nU(&ea46a^nRvU2YRsgXR
zy7%t^JnSl{xtdClvnWBxbUf0`AI@FSP@DUP%Rkrs%wO~@3cN4gtD)~8cWm~a;Bx{#
z&0v;ta(1rq{2e1-JiB){;VnF#wi@BlfnpE-UY_S4d7hni0L_SjYv0)KXXA`Zx4M->
z=4Qa3Ves+n#Ma{3i3i8?W`m>WRrTPH6A-z^#R;}Uj|T2kgNtV;RvFLEsj0oynp6#F
z&<DqPW_|Pz`lr|Z4)nCMI{CK)XRgtg4nn?zKzFv5yAz+Rb^bR<!|iUp?TEu^<efCy
zn{r~tVWGGWAZs@~1D^iW=U3BHQhOn^1o`f6fnyB_A8pAUz-j|eQq;J`v@yKnHOHO4
z1y;ieO>NyiI^z{gjgc92aKDf8@s(R%&uA#)+wbd7!~9U*G2nP_HhHM8fXl8jd*e&V
zW5mizl)O_R-MBYR_gG2{C)0=eapkmgrM$M7Osfq#-o4q*7J5uu9>i5BIML<F>3DDJ
zgZ`Zx8@z1@y1V6SjfM`pJLfnhXs$GAS=l_)*M}QbWfjMG!lwqk_cOZ~CjB&DIy3-2
z1*#pK=F!NFK`}f#f7ACDwl=(P8LudjcM!qYP<x^E2ZOii_*@40um?6nu40vSZ{=#g
z(R$w2;??}~OmEe=T&2VagSbOX#xb>Q;R_RVFLBP4YTRCw<5&UDf|T)6xf&-EGP<aw
z0a@nuXVi8ukJ0hwwInvXoC!g8lH-pYfjUb)(_?inm3}Mp88^aGd!p+761eEstl6=}
zxmUyW?(SY(ynqN4?&1*6xfJI(g!58fa&Pb_<cQ*98hg&Z;+x>!AO`=dZYBAS1gEw)
zO-Iu+5BwEOubc_G;4?~N3f>Z9PDC5}Gr`k9UoTol5ht9ur4C&AMxkSs4>B9&n!j2#
zuaRBZ+^_D*ka=z-C4FdJDQGhaA{Btv<@9ptcr)ff=$ao+>y?|<%jxCneS;a^Lo69E
zP@=Y18aiP$u2e{!p_ke^Rq5X|=-<F|4<g{N8nDsglWoIuM;&W`N8fBReKQ@gulD>X
z=TwhZXL9ZPv3;mZypM+XMwd)PN<w&3Erit+&O4=jcB&_U&pDvOwrF8n=s6<S{#8$w
z^;iea$js&yZGGjd22%qEPZJrwjJ(p5AkPh+XXg$|-Q!p59xrpZY4j!J)jBfnzu?Ko
z^+H4MFay_XdW^0BUv-^Jl>5LqC%90`)6<sb9+YG97n=Ow&Djsgsc+7N!$19?o?u*G
z1R2pjfE>p4ZOvWTD48>lg#aRo5clD!v4&O!aohdNw3e|aGlG!u#-_JMxYFQBkE>aN
zbL-2|po#ZJah4(P0p)4yud{IdS1KC1jX4=welhT=p%bW~^K;o(={1#2xHY(G8!s^#
z2EpmA$D$l*5xo=Bir<t0=j!gvAkR7uaQ4bJgYSLTJEkTtTf;xI$hSIl{*=k@#Ck3P
z1e)uN>6CIiV6uJ%6V2aC@tYC$z4~TCwhGSp^0M?^(-Pzwb4K2|q!$j{RfV`!+0P3=
z^our}bV?T4g3E*l^1+t-KalJf^$0qIU3dDy{sXO84n8~ak(CQ=57>9)K1bvCYM+?<
zZ5-)NNXc5C3?QK<WlL$hAoKoqF<eScgdwtS04Llabr+Ty9Y(y7>efX$*+k!-YvbJ>
z8LAivcj>|zfn1Q%K-8%R`Kal)fi5-7Id_WZ#U6X%L?Y|@ai3P%LB;^9^WV(ReH3G3
zZgTPm3b;aL;vr5znFfdT8IzAU_98F$mIbagdIj)S;<HMB+#Zo{eG4$=`8K}2J;<BK
z#m}?8qw&9M@Mn2fn>a=!s+;5h5RSCf&65+;>J|?l*y*`xLq|ukvt0H(*2l)@B>qNy
zTpmVRs{td=YfRp1r4J|KH+GFy;>DwKt0GqLq~CoHa9B)6is>ylr59@fFTfm6y~h)F
z_h=P0_I;s4TI`?FkA`1s6s6b>4sHAw?Mur$u^7Td$u?P(gnuo4X&rby8K1|&YiQRI
z<7|BA)0Z&M`FNJM(9r^IkeYGo=i2^L1O_XldkZPxhWuW$_rR72s#PUslJSEuL_Rxj
zq~-6C=)Y~tx-nI9=R3GbY>>C^vuqnUyEuC`E}dOHy^wgcieuQTbw2*a-Uk-dP!o)-
zT)jF~ct!&L#!Fn^FrFNG=4rrX&rAcCTC<;L#9n8f;gRO{{WJGQ%qu6I7f4a%w}s?r
z`bO{}J#2@|a$MYP7UsjErlF2!nX(R0J>yJ~SJO&w?DyFMYjI$q$;$gY2k_C^vAHd|
zVsp<0F877jP_}xfgCiJvp}ek~?aAJ(c5&QU5AzjxW)PvJs^^_AJTX6eUM|sAB)`zT
zI?#s;G|wlX49bd;6UK`E#pr|fC>hBj-XLzakqKvc3P<d5BM0(15l|ZUP{;v(JqIy&
z%}INV=Q|eM?|WSDf$wgf^~mr&Mb9jx@TNrUYMA?Z*efvhIT6q{ej)lb)w9a=@(4rx
zFZa*d1*+$Xs<%3^q|RO(;b^Ixdvv?Ht4Xi|%WzSz+p9xv9w*J5Ke@uwqUz)r_t19W
zWD#2GO629f8u`LI1|(*Nr>`JotQwiw4XlDrJ5fmtD^h(ab+sgY>3%)?rZl)OE$<G?
z*wbMe-iZXu+Be8IC7G8d7`ugcB1u}Jy}PffzrVL%&yblfPp3JnNFK@L>ogGLJ(JuU
zmJx~hMp(Ed#S_(HX7`+_ja04H>rCNv%Q0=&98tZbH`Zc9CYS0Ni&M_-GJ|jFt>bG=
zG#%o@ruHI!&N14iu3y64+$+RTs1~NCakWAA?Db-Rp~JL^&R)GqM2lc&bu8@kHJ;X2
zkp`S-=h|7#fYXja1Fl7Wp7)!Da?H#zsx$!2FC#i`v)obJUENexQ;#E`+ur^5VF@33
zd)@#(XvZLaXw=X2&LU$*sZo3<EBaVgYcU=DsduQqJ!}02*3T2Y;Lgg%%c)u2jXeEz
zqK^B}Db6Uow=?RxYc4l}Tg>+KXsklHDJ7l<yUEicQ*v5Z-+1D<yqQCs4@<Y!X3*wn
z(8bn*h3qxf6wf!9XWdtMhm<m@;*H3jnd7r?r1$wRM&h&tJL2(EFA?RO`ljxS{Ebt0
z&K-%jfYUKtmD1_A%5T44WFyaRo;fqi9&0Ud-o4D<@E&<@yYFs<an?MUchgs4OvW!f
z5+84w?Nkx0`2qQ%#?bfMfJ<NH9?+%)M?=?TY)apyb&fITIJ4E;)!Dwv^um?E!m7US
zHUQ&E;a)Z`Tq%jxE1p5aO(a>TeobCGBTZ#iR)KjjAMF`1W?0jtq^Ee`CJ!wF_3xJ+
zY2Xcyjy0Ip+A!a7bF#sXgzi9o?s}h134K?2H_GE^95fy*<3^!fOXYe6%@^ZDbIA=i
z!+PZ-R+DwZ-FHeZT0<1f35t^w@*$kfhqE*CF7Sk#L_KveH5uk?K3e*2U5^w>3h6yZ
zfbhpRQl2msE7Sd}np4gS4fmE24~?)N1O=f^9AATw=dV;I$vM%=dYh@JSr!!1+~M<`
zJ!(C_@AzelJNu@0tW5E%6Fj;r{P%!|U*mHyxG-%(J)nQG43=>S9uswnC#xYR-_4|l
zK-+N}h;u))(dq91&KNcoPN(dnS{uO>ZjjdwD?Mxj9(H|taPJ_lRfTniT+k-L`#f?f
zmA2WzTfosa_ako<bZ4?YM=Kq(#jBOoFq#Q9x&ns#_qakP8xb;s0;Xd0^ehO!F+y^m
z!dZE<wco~5af}Fg(8H^``^*F;Nb@-hhX`G8`oTlULrW0@{g7T;Rx-y3p=Cp!!QW69
z-gHfCM1A><r!4I1nIH&%LDUb(;SpWNt}FvL3-JCBiOQ@)jd@8wZr*9@f(wchSxl3A
ztC*%=NN?Vj9b_aY;braL9O~r#wa{PB`_&#rIrQ}<JR{?E;w}tKQSU$J`3ZBM9nVpy
z3+<G}eGFwkj?YxKwLV?QkshnneP-sWW-!SWJ*j>Ir5%|Mu^y<Dk}V_?d;&1@r)Dq1
z+?5R3KB>zU&&Cr0gD!%Rz<s-XX~yrgcpwM(eA-;+O>0+(Td%F34Yq>XgQtForUI5{
z;Z6$AZco0o(1|wX_y+HVfvp{8oFr^lj+;FFtIy%lCmrKCLu`65;RV(rct0E>l+*|t
z51Queuou@i5@`+o1EjRCrmf~Hiq0PaKS<M&^K`nNPXXR#@!cKRJ5H&ScC-leMW05R
z`Fq>5o3Y(<uV}4jke53c2ZMl_=c?Xjyez-RMoTr?@xa`7WzY*_FMQ6!OF>RA%;$wl
z@60tD_F?H>`#fmV3tL8B(?@GfISUZzbf*q16%8Pl++UQt8P$Z{u~8HC?A+^bvc~)7
z@Iwi=<%~S$Fgk<rAtE{aSsVD+Z7}!u%hc3pWQpa(<NDwS&|fxlC`nQFpBi~k4quve
zgC8=iZ_aewmX_t46JF|#kkFb)c&(O+Sw&%MQnOz0v}R+@*8H5SM$o($b!*D`$efXF
z)C(?8`tGMR0O$m5?Qk<BqQO^j@3k}ll`m%`o++=XO5N+~`ArQ>pQSxjwlYrC&oq6U
zErs7xxzlO11HZAyr+zD|J2Ydu{%s5X64BI`MZ$y7Ue*6!k>4E*cM)2OHtu6*G_<w_
zuL@3oYAGdvRchQJF!D9PCP)kI#47c%pYKLs=foa1+f)5`gD)><>`(P!8y{<=GGBBe
zvR(&Yf5zvEAo{F61)%B#KM>Q)-X8y2Ymm1Ace}7lVVm*=hJ_K&i2>5UjM9C(5=T(9
zDt9{G5c!CZwM^Lf!?Y?i@lDO+#pF?Ytcu4)sWxrj*=9itm;GUV$n@wuSODH?YwiGe
z%Tun3W;ROam^lMbT8OgW)@7g1vV9TNwdlc02UvE%s_*RKfpFirr^YbC3=i*kcu;pO
zu*hxnAn@?6=HX28fZID+KUxJuuPj4@I=gWOF86Kd7dx34V59d1?wwlBU0bxG<8fy~
zsz=S4LQ7OTz3<^wc@_VMZvaHSJ^+25<~RnfXh`p*sId*>d~eqfwa>_ta9PtD!WPRa
zSMKx^1_xStk52XXik$VGe;;~ySF3+n_uV>;o|S^urx*H>=I>+5UEj^6_!AFD`oHqf
z8kescz*&zjta$1jSHcS{eIcd-JNOeVY;`Y5^(U9Q?~o%tMl$EVGu~T95B;B>dc>85
zSMR9a(YG|C9v|y^d=F)W@P2mcg0gx3SrY5U{rwX<Wn0*>m1BlE`GYlxrV3b5qg!07
zGyWNUAM*b%5C2Msysw>in}9b^>X;TtAN>V<{~LLE6YQDf8=fioQ*wo;nsa2qjW{!W
z=hwXeMOWL8{|aAz{}Auno^JH*Q%OHzhUgUD6_5uT{uyA(XF_yLS!E?|ua)bRbG|D8
z{G(IJ3F)QeKmD*Cop#1@QL;92Bcjr0ZARp<Hdwh8kJ;3K`9{HS=$NW{i)!75wjR6&
zke;={qkA?+{IjEbdpr??V`)9RaD%F6S8aFFo2KR+63dMmnm;8OpC#iDr#17mG%Aq6
zoNcF<4J+om<7kABrndn_Tf6{=_DJO69Y=pAZJgad49{k-dNk5xB?}s94SNSd_FX<)
zRdJvwiK}9}8d`dPdl&o;;nRrnj>5;?E6%sZFb#QjGkNe#zRZr#k>**)i0=-(0_MTl
zU)4JiBd%$TGc<IR32|-Im1{#Tex5a6<MXv9QjWf<#f#58{(K{>FYA00O}>V0$!gf0
zFtrfn-zHOSgu3r-XnX3r56kt`cVErNR}3!l<$hMT?6F>M{(x1e^M_6T^kur&jRhpv
zTP5}Y+}uxPR*NP8hIiOGD_-n{djW>nV(#QS<K}*V+0Gt>>Sg-_7U#@{=M0TM3D^{@
zD0$x~Q3ROtMhR#pW1J#@nLqtT2};zQ{TKC@{eCZ$nh9GIMPBY#)CD0Cy)XDx{MP$|
z!nj(Ghi!#a9gWJ0igP2^{sv7k+R7a+^SsIP>_kH7)3YsD?Zldk3Sl!F4eGK4HP53j
zgz~p|XgjyD1HRh8byVCwC`(1f>5~t7lgXTnAg!BC9@YyM#qjwP4?Jji*7ZFYeDdIQ
zTYrjgWOPo<@+1j&`FuzJa6}Y~6T<g>hUPY{Nur{@(YcG(xkSZ*YHKnJZ6>^?-|@{{
z5(DBeV41^=toe*g&xnqv{V<wq=7nawh**gMtX3js13Il&OKAV&N~^Qh;-@IMbN7xZ
z7jd;Jc4f$YM<DOSL0m22S@^XU_bKTesUk?{Yp7+T1J`l5kREp^4)<vMLNz<`T3yFI
z$g;)I_#?E&pN@J_3pSdT(c14l(?IXg8{Peg!9~8i&9lxo4fTTtsP1Yyvew!!K|7?y
z;GGRWmgJmsvkKk>=z!`8RYnW8Nz=FM<&%pqMQc`#p{b)VszuKJD2!TxWk+Eo0N>Fl
zj5)xi)%h3OU?-w5n9mo5f$;_&R<KTZQZ`U|ixk`E7;m5-^_sW8Y5iz2?Tj{eV$RH7
zpR|RJVPf3UaPag8x~Co`oVN70EyW8DD!SSR25P0ZHVNDxS=kI&0Q-5pE9%;oq`GR2
z=hY%`FO52(K@So0Y=d8C@Cna{2eyhY5B98f*?^CPmBc;2*dS0hMi@&litDU(o!y<<
zi=$tgYiF2nb)Rtdjxr+@*<0sH-B1|*;wm~V(YU=x^e=jwXJ_9G6LB^l<uAbJ)PU;o
zpLtr;@e;<VXbs+zZr;FaZbPWlJ)75X@PdGDoRD$GMBV#&yNrs8RI#54z8*mLe#fhV
z2Jr?BGtP8-`1r*0JlccvLl69758QckJZN5M;ChVG@dmh(RjjR8xu*>sy_?OO!W6&Y
zw4cjT%Br*)TDo4P$mh8kK^^+nV_M3LnR++JmKJvBxcnV}G&?XmFuQ-<9$mmL3!^X5
zQ=JjcXQ3P@trL1?5AxD#tOs3MZm);@UBgSx(+{ScjFod1tw4@d?ME5gx75B>Y#-0Q
z6yZB>&q2_nXAV&!7UNNE3EcH<jN09O(u27=<E(G1D{-8$JXbu$04UpfmTh{w8n2Um
zTm|v2ZIkvCeZ!^M9U<<_9P8bLAMWf1xMT7V$}4r?st<6*fw!HWfHd=`)|4}cE}x*X
z$27F?3eaE+KMF!@VaFfGvopuo=6IK!U)9u<sI2lw%#agb3R?y=zm4*gCv~fC74G+J
zD?;W(<QQ!w5!2q^*^v_e$yx6xFw*tdSW11Of$MD*<0WAZz_-?th|b}zGvlsx9S!4`
ze%yh((r1*ycRbRc>GUh#81ECmFGcip<b>~P>Ay<p>rt7Sz&LjmC#%_nU1J?sx14)M
zXrUl@N_%)R>mRr}AZJVyTgaE9c{)k+^bmP+R_awNW$%R$o^RqHGU7aJP;hTxaaRI&
z872yCS6SQ0jzSA%M4?gtA&B4_Pi@u8VV2hUS|Cdwq5o@jZJ%XrhxH|P)jMSCq(n7#
z>z0vrIa%O-UxKwqjC5AKo$?t(4}ChQe1=2^)`|IQCRzM97KUkV?6gWUegopCvFDL3
zwH=A0X6qr2I%|iEaK!%Q+!>>f!4;+T9_g!lWGMaZ*n3EPgO>R1sMAEOa_->HiCi7F
zIC(<%(u1eXn7+8Os(fBe>-^?vQ>GrWa^{T13jxFEx&jw*H6jcJ(}GHbp{OtM3Uq9J
z#jM4c>n=m2tj+D;0XvS|C5!7j+xvS5dY2B`^E(Id!W6rCaHylR*Pc3k@|4B%+ZW?}
z%3>h4wsm))p!TlGsg;bh{g<V<pER(%cSS<I7H`0w)YIG5yR6rq)NW5&u+W}V(>w_e
z)A4}QYKP94X-}%0*N~`4R#w@Ql2h?nG7bNbuci*4RraLn1n+^WN%c%#ZcnPJ9YFS~
z+IIY}Y2v?Xd(zQ|;(G-MRVJEcLAIf40d9P0gpJ2mU8Q^3YBO-E8U&@j@{r+B6791V
z4`D%gU~zX>C$5c~wsJ8giR)R~Q;Sm_$4|?aEo#4OK-J!!wEg^Fp!rl=??@r_9Vs;a
zj$<y?O|}y`TF@sJBd%po9&~<sayumr#i%Ks%DaOs)c1DaT~|9^NeADQwIk)Y{b=W~
zO&RpL-qAh7o>bogD&f!7?<y828Y=4MRaS++0Ex1ey87xJqO<^~t9n-q*mFAv2NqAA
zvba;f=W^<l$x|jzJ#5PKsW1jZ?frup?1+7F+uv(fd?XP`RlTsea_-{klV?nx>X0Am
z&Y<VBOg;+3F*UFpt79Esn9TnHCo4L8u&)-{JAVT9l&sTX>(9XF2l#Bn=S+M;<3>z4
z3*X?jrNW-HP^7n`5nHZmdQ7}pKbw}o)dG`olT^?D{}E;J3GGv-Pnq1;u>`ulcOL3`
zDr$5ZKIh<bE<R`D^TGS0_H0huXW6UmzlYb@7ev?Ee~xUh-z_@TzQaD<zA5qp`=jVa
z`;OxC?Asz2*?+LFwI7UJZ*Ps<Y;TP{WxsAeW1ky)*1jVAynS8x1^c1!i}pRmFWGO0
zU$I|{zG~kbd(%EE{FeRi;?L}li!UuaKm5zWzeV3H{Gj-f@TSP7@cqS?g*Qa6311)k
zd3bAhOZdw8?cp<uei?qU_>S<$MR$d-Eq*$jj=vnfp!k#Un%KIc4MiJ^9xOVmXifZ_
zqK}GiFM2Wh+oC6m9xHma=x;@L7k^OnQPKA!Z$?j#Tv`0<$TP(+L|%&gGxD#<-=ph_
zKaM^S`y_f>@xP<*#6FEaA4|s`D!w!JaO|GgX~p-({uqBI_DJyyu{UDr;@68e7Qa}0
zR`KTI8;YMVe!2MF;#Z2_E`GK6&Eijs*TqkX-x<F!{@eKN@pt0)#s3+9ApU9mgZPG$
z59245{5!t3B>ndQ;?cgehh13IH#oFr%-Lf$jk$Ep<zwC(^U;{JeG=rn#$Ic$vp3kM
z+NVLnXV^cmH$wjB+UMEl+ZWmw**~&>Y+q(y14&<JUvJ-F-)P@t-)!HG_SkCw%Ko)|
zpMAgmfc>ETko~azi2WGa<SF}Uw8OLZbN2K0pX?Xx7wwnqm+e>VSJ6Ii*l*f@wcoPe
zvEQ>lu>WCyX0I(gt?=~1GYZcvJiGAX!b=J_6<%6+S>Y9hw-)}g@PWeD3*RVwv+%>h
zQ^RM4&k3I&z9{^o@WtUv!aojg3SSn!BK(u^HR0>RH-$Hce-^$u{PXZF;a`MrL(APB
z{$==%@SWki(2n<n?+xD<zCZj>__yIl!;giZ4!<0JJN$0=z3}_tzlZ-3{%82(@F(H_
zg#R1<ESxS{U9_fXZPE9O))k$M_C2lW47Bl?XybE=t}WVJbW73gXz_=OepB>F(Qk_$
zMO!~n^oOE97Clw;bkQ?K&lNpi^rxa1ie7>Syk7L@qBn}(EPAWxZD_;0Mei4VQ1o|b
z#K%SdDf+bNv!Zllb!1IsZRGor(<7TAmq)IQTot)Ga!usA$n}vMA~!{T8o4?0^T;ic
zTO+qcZjam%xihjga!=&fkq09WM}8A|B=XzHqmjoVzl%H(`F-RMkv~SBiaZ^8Ch~0L
zxybX8KSii(uS8yr{5kSQ<gbypB7cj#6L~N4e&mD5hmnsW|9~ET3{CuR<kLtxx;nZh
zx;Fa#=(^~J=xNb2qCbe989gg{PW0U9dC?1^7e+6N{wR7$^vBUn(MzM3N3V!p75z!{
zn&`FB>!R03Z;aj)-5mW{^ycW#qqjtFjs7BfTlDtm9nm|ZcSW~Ge--^x^u_4Q(buAX
ziM|>ATlD?t2hqPrKZ^b{`f>D==)a?%M$@r1vG2#$#n#6*#7>Ew8ap?3LF|XI3u70>
zeiXYnc1i5Vu}!f{W0%LSh+P@GDt2}3n%K3m>ti>@Hpgy`-5R?sc6;p3*jDtKdt(ov
z_dFVVEcSTpiP)2|-^czKdn)!!?D-gb(L1sCV(-U3h<zCQ2t8_D@oB|p6#oGI>a5}m
ziZ3j_sQBXI9~W;bzO?wV;wy`<ML*kI{IlYli*GBwz4(seyNmBBzQ6dP;zx=fD}J*0
z8T7#y(F<Qe4}2Yc@NM+R4~jo3{<!$x=#T06nmGI9h4CxnSI4i7Ul+eVenb4G_~!Ue
z<2T2D9=|1iYkUj(>Yees<G+gE6TcUI_5t+X$KsF2(dXmO#$SlP7=J1La{QI}tMS+3
zugCu!e<S|a_}l2+@5SFo&;Ag7{FC^<;{QfJKdEGG$%c{%>GNPXcQ0+nhR@{Aj`NSr
z4}A6+V^B+%rrHK4Pnoh2i}?yN8JC^34`S;Me=rMHUf}C|^!-h4@9c^!Wt1Z(EcoOF
zLPYib3C=Q}M`1a{IqER^;rS;xojn3UToiB~&rK)A_W<(T7I7}TNPc+!37vse0>KOx
zICt`uY`#Ci!N9^ltTO=TXFr!8o`2-wtJ7y3Y<vEu&X_r4#`LMvrXK16;&JMfDKlow
zu<gU9PoJ)mj>8i1XP*VEj&)^wukV=o>CI!VeCE3P>o5A_t>IYnJ&*MTtUbnzvY2*V
zZ-8rP^5>N|0hIPZnNrxbz!Lto%!!BQvrf*yE42zr1y9SJc$XYvS?kzHo<9dq%brP>
z04Kt*d(WSPr{&M2bB@Ou8HP@K{v15r22A?em+@wat2{_}bntXLFm>;r!GF0k8xJC$
zM0Le%vVYd+^K-N2m(wP9bajPoihj}{RuDRHG+@$FYv*Ta^pX-ieM5tAj3#y9y!NE(
z4%c^?RNcE>l3!%vmYmnpIIqR!p?AqQEX;`Uv8G#QHf&8wF2iTZG(c8alaB7h_X-Qs
z2J1`JU)lFt2L}$SgBYfvYwlsC&p$SBA@pS8{M}#$CLTarFflzMAm0bd|AQ24w7`Pa
z-HGVz*{v0&ty3xzrB$_+Wwnhpr9AXA`>@%O%A{=H&OT&zq@r&2Aud=g%n)ALARnZa
zTB}D|`GNSRsFiL&%LHIiwmQ@+lcf!FYa8d*CFYj4&pvqeG?`A%o@VCLv!^)|>e<sc
zqt@h(B)Oy}cdtXPqONpqLt}M$b@iN5Fqd#yb2zT7pM6MGPX|)xNCj%}R3lFbAC4~Q
zKo-=f3)+8<kxF@OX?bmZvL;zJr!>*Wl`SDru4>Jq`8lDtQ^Dt|;-<(~q^wL6|1ycU
zXyQ?q_?*(Jikd`uqQ1J+Y~y?$@_UgyPX<xuQ(W?mrImB$&Z(Q**x-_vW;OLNt+%7~
z*q;Tp>4FaR7F2@+sdcqAiHw4zU8p`gDKK9_-*pQ@Yg9K@m(|oZmUbul5GM9{#N}&^
zPhH~GrPbwC_4QR%<)ubIJInW;6wn~{3)m97%=KtdMO7Unl&mRL!4F@M?{Tw7Y}YdN
z<UDnzja@;Y{Ds4>dan54=(tsngfDvO`T*{yaQLlClqM=`>J#PF73^MUJf-LSUeMpx
zr;LNH2|Ji*mAc85HLFa{K4dD8rRUYw>t0Yx;qbN66wWHAu=2*zM6$eWP8BSWCMo0+
zeY2;-JbxZZ`PAn`x1_q#ie!1RtRac|ImhKbPXYU|DzE6OJn0lrTMHZ7SXD8%PMIaj
z%TtgsMLX6RjNQ`GTfrj7Vv{srja`+Hzz(^b(-@8_-s5ep&l`aNEGs=9o%FH@9{S+S
zSVu1}$PaFg1RKi(W7kSvUa{cMxq1}6GAmtyoR>4_Ib-l|4M2x4F9_s49|>$I3#<cy
zy$~D2QL}T<5KtRGh5$EvuOflnaIhoIxBTo20)fquz}S5ytK3#LeBPfh@1K~r3wi62
zH;BU5CIVw`6xLh%JG+&hSf<Eh!1LA2b_*WT2f+hM|G-+#mm(DfM->HcEeqbA2yRW}
z-J1xGeMpETdnf_3i!`7p*;blw`n!gd7$T6~52I>`%(L{zB_m$>p*P$eS$9DXu4SHQ
zn5P_h(yN2Z3lOMPls~E{|CUJL`AFW9*@3oFh%oPkvcReY2nKH?OZg8a0{hPiM&|^l
z%n2SkCpdQ29FZ<<8#(kbb{z}ZFN%M>p6CEJ%V9;PSz1)HFe6s*+i{FY3u%2&sl+O<
zc|9o%#PDw!D5M__EH4-}-YN==DheD{6a<f_%nqD6J8)}R;E}T6lVyQOd0<g_a9#O`
zbF1^#)CPJIf!;)ZUm~zI5tub6@LlkGf$-bdpUPb*$PLRU}2zY=WArVm7+BS%G|
zC?z<mJn*gRz`50dZ`1@Hhm3DmwI7f;HO0T)1X>-08-v`ulJZ6pJPy8V`T}V8nBxl2
zC5ol`-g_%VIczJv7CCNWj(xv|e-9x?`UtQvVw_c!H>xO4)fl?Hu`GB+d7z~xu%ssN
zqnbc*ZD3k$prsad&AVVu@b)>uPv_+AGB-GO{9L8~1A~l%gbH=1)Xf%hPpRSa7L>Y~
zr9NDNfBWr*fA>%&^NOQ^yUT({*968M<|9<q^Ua}DMw9K1uJlt9*_gn;Z=z3BlEm$i
zz}aPi@pA)X6GDP-Ly!Y#-fm%|2Sb^E#_aFT#lNrYZdpsAmb;qvhFS)e9}zhI2(3bB
z)E3llk<g@>*I`!1rf?tpW|BLt0spQCx%B&}QgAob%b<$r;}9qG28ITv0`0mr5lqYt
zteP7<5tPfd<xrACGzf2E%c$}=RQcyD<o*`?`#t;fUTCcVT1#nZ0R8D<cB!D^9ZI{Q
zG;kgJR`9~Iz)fY;UR34NIe|qebG9xMF(pf}TjP^*Ky?hhFZdP~`Mt&XXX97;4%BPp
zC{^S@bpWaliigb&JPC@=>Sogvb5~;`sN71LFSX$xBf*OysX%#cVC*#Es4~?()HT?N
z+g?{%rib#nnqM$eX*>RLrr!%a&4X^vt_?hk=B|>gN@CpA>~HC8Kc45cj3GP>#okT|
ztCr&5-FxESgQ!Yi1jKb0MHD!mwkHs>mVB8ZD9t#$yr8V5qP8+wBWHJ-kb`e(%}0EQ
zC&~r|<jd$#hX%O=1%#|;_a}kOJ1xBTl33{@K`CVIlHkr~%fgoATwMOTpsB18h0H)*
zL)LHimoVT=Do&uVl|DvDEG%=5S@ZIF^nUU<s+<u+OS*7^*ttVuZ7`pc<a9gezaosT
zoj^v*>Tr-4dw;EsWi?gJL=eLLBX|>Mt9r4$l`cT_Le`Wcn8Q6b4ea}c-DAcxA?KST
ztn^Z{bVa%EwGHco`7#{yMW$~GH&r6{L_N4@#X0RJYB^s56|&aVO5~A}Am0ax<c5kW
zr1PbMA?p&!*;FM7b#+cOwY!-K)Ds2uc10@3I}xDdg7K+hgJpn}Dsx^_SxX|>&?@Iz
zK<gyITqB}4kq`h+5>a%j7Qu!0R{E<VwMlj^g=kFHVSbwCUGyRA#r=qqXl$;k@W)mF
zgLfK-tUH7+-{~x*t&!YMO99j+BO{NV$V>99&T19CW!|NUygwAW=lbefKd%ngO5mK1
zA>hi8s==3?g{<c!i^0I#GjP3TZCOKQ9h-#jKnqz%DXP+#^Wfd%CS1(HCF$a7(d=O_
zueZ{h1aHZRdAJN22DK<;T{%LD=Y;9bp&ToHrJ((KFDCJXox=iyT|(9d(eCP|Dp#|A
zA~|}5w;FWthN^`vH~`X+Y)N8U9m1Q3+n25M)q?gtL90kME^4i>st1^HgCVPI!~iZO
zXdM*3ekEm8&F8&8ppvLw1iWhn?+r<6PSiBueVc-TBwqOyvM#SC%b5bGXsTi_tf)=Y
zQCQat>Tx3~YRj6iXw{ehWSR8op{260f{O@Y9aSHyLqpyG=O_OKgHny-%!pu;NbL1_
z3abOUcq6eMX6QJRs=E6IS6QorxY-c}z5^;ZAw6X6QA<@SYi_Qp=aDUA0z#t9H;Gu3
ztQ{>u_RYfYOIe!8+e%cNyp>)jIC~ee`rcQ<Bl{zg^x<rlEWw0`4NF3;c!#o;<|XwZ
zYq1CeXMC-~{0mK0D~I}UT@9lmO-26$<j15UCrd?4pUAQscFulj!mUv3<6tVkvD~>q
zT;j`3F#(9<ca&#DjIB(%X>^B{YWFl>#)U(H_JnZrlqfNDDcQ8hNaTAW)1zd>XwGq~
zx|RNe2<9Bg+tLV&f$lIeC*#y;=QI<ze_C?BuJjOTJgU_M_%i}uB;5-~`>dgm70OA_
z7{4lHdKQ`THyWYiooc*8*%5g^ME)FQar_ZH8ltc0kP9r#`1lA=o);9EEi@xq$qd(O
zq!w+q;f<lBKZ(E=izPMJR9oqnh4F8fa>T1IYiv!lNWbL!qaYL2)^$KnG*l<SGFL(K
zHyD<)8s*Pq=3CWtSy7$Z-hsi2HrxZbKA^hGQt<m1q7+AccSf%Z=CfhbHzNHFVKZ$Q
z0`wn%j<(|aK?sRP9KuTu4VLp|THppL>jGAO5Z9<$tDSD*jjcrf7l0MAej#m!2pzOQ
z1KvwRv)<B#@j}{<Z-fe2e|1Q>`t5s9vXy>Y5HAs8$_^%z9CF?f_<ZTeRSOe%RZTM4
zV(byk{JVnifn=<xOE$v>(8M7{8L-VNB^Pt=N!Bsa#k~VkQ&mj@SKK$bX7YVt2CbuO
ztZp7Ck@$Kplm>$q-piZjRkXp;R<R?=L{Fw5DTQbElfgs=&S_qAR4jsARO8r_iaHoH
z)PQd`!uTYrrSF%v(oYEXqtXqx<8tM%D@TlFO1(qFC^sj^AB!>^kh>?*U!my5qC6kL
z=`sJU!^Wsg2cb`dP>qMfR*q9_K~VUbSd86DX+zzsf|0;i9_8O;)LmYB(A)>d-sz;g
z{rtZ|`+1MlhH*E>=d4G4MHzfTbg`BsUq_5m`C_DyHQzDm)phflYXRr0h4Sw<+%QZZ
zdo-%&Tme4PF=jh<1T?R%stkj?o&Sv*c10Boolx^!XKdn&fliVv8$@f}SAw@JYNS-I
z6RG?st5494m;17CDs&GPxls&h&AbGMl@S6u+sS22zsa&I((?z5iGXqUS%@*H;%Q(i
ze?zH>&mZs)sULvt(}nG`!lI{iQ&e|t&3yA1rozI_Uu6i?<K8|}t&60)xqiCp#f5_Y
zSx%kJI!<Gy4-oWU7+cj^0ea<S6`cPb#A;q=Dxp-9>%5NUV2)|sAoaLUIYnX<i~|S?
zlS!dXDA2L+U1w_gNGs}clMwlf5Ye-a=Bl!$idr)s-YFFxk!3zOw&`}9A{FTxfm6cS
z-e7@<L;2C*k1uya-vNhHCD)nK`n&~dUbBp(eNvKo^MI#53xOT5`Vz2BTsE493L*Nt
z3+L=s2VtQCNVG%N3P*9wB*5_aHX1%;eWO~ePnOI5j543f-&4+G)k5(2b(EUlBHchA
zN|QAd$Im+%RG$|K7P<Wm?|w3+9xHWhAEDglJ@O--kqcgvnE)OKGA{|4qnrw8rPLzk
z>CcdLmCt(;KTeOh-;jdN4ja#VJ1TvKkC3NJb_tz-=2YR#zSt+Y{}$2VR6gF-R@Ey0
zP`Y1Io^xkVIR=7O@pj-xquH($^+O=7p5vKzcc(gNivbYD0%hhklEzLif}VaTGTf`w
zT(pQ>D}|LQPU|Sa%xj{FlFQJouL~pM!-lM}GXHN{D6-Yl|2swYyGn}EW1Y|=T_ZUB
zlEF`XV%9evT4^4)!5rC_nBAD?Wu=2<p8O42<0Z+N4wy-Bsqiz(pXi?}d@93lMTSon
zvc6xFb!#9>TPLN>A8yEgU3!!MqCG2pieyU5U}<_GXsN0AF#<04OvM)oB-5pAQh2hi
z;VhzrEKG7>b~2oVG8Y%+oG!(mXsjwA^Z;QR48-rGj?Gq<(WN;@@{sl3Hs?Zbxv6@r
zxK;{&A$$0k>MYuTy@v(sagW(^I+}4sWi<+@XGz_D<3aVkn+2-@g0R(t;GKS4B&oM}
zQvF8e3Q1q*NpHk(R7GQby(FFBNz$hSFcXxdZ+encE-Zd=i3XW(5sZjnWV})pskce$
zK2EB8S+tc__Vc|Aqd1LAdGj!dH`jq!>0b(wm$MLEw?t1tln4Gy7NYb&?YgK*@i`tG
z|LqE3dKYoBPIXY6CL<lB(@zOmYn*i7c@?DJCFv`jbkov0yP9+iI?1LVnQ=vpX3Ly(
zr!oE_%GBf}s5jLa1Mw><wcJVdH@_NVKF(?Thjm}x&552V4mDJ~l@m9!Zubh4&*j9;
z5Yq#K`dCg>f8EsT?h%5ytyz7{9kW_diRx-BLRBW3&|;h|hOB+}p>4>xP0ULFRv4Ke
ziS#IWt(KMkoj||jK+(7yc78A5F%DR6Z?V$6%rIotO=JO?)4vH)`28|W`W75zX5Cb;
z7DJ7xe^w|B$-t}^H#`>?VZ&0=7j18WIApz`);K)Z1cCjRB=@zF1heh-LEdT>vVI~7
zn2LB({wgUKC~8>q0F}Q9sGB~cdwGzReow&P$n8pYjPT787RbOoW4gGFhdN4aoCg##
zW;|SmABp?MYj$hfdOGlWKC?*2+cnOJljm!k%wG3E?m4k$*sap!SOv?V9I_s$X{A5u
z?_|8(BxL=5+ieBrCXl&vWh&D!*t^{4-Y3D@`Cu*oY-hgK#e0H`v-1n2Um&c%CSx%A
zP(2nZ-3bJ5P6=5*b^Jj+xACpAg9ly@6S4-J>Sx%IE+Ouz_C}PO-y_RKoN>3TRM+sz
zgu+%k(iaI^A9yDe&N8svG-I7FdN4oH)Z(+@SVjB3XAp5%QRB;Fv+2||R~^-Wg(R$x
zog>;U3v6on4$Dud5Kp9sth1y9r&zW6Jm0CMzrAP_^Vg`|D%{tHw>+z+&`Y_;pvsp>
zoxZh=uKAIgK-40hB4cIdLGhmaMJg59t57s6$Fghw5~Z_Pg~_3_KNfCY5eYksIHr-@
z)f`(yQL-I_c6H8`Z<q_LZY^?_zU7J^>*C=((%81_;#tD#Hl2H(RSsDz1rcgoF|STm
z-sPq<E6sa*^3R;@y*tJ%3i8tZD?}his#0WwLvL^Jex8suC~f0R*7YF&ZE==+RU71-
zZicMghV%KCI=bZbuS%r2N0cgf=919M110H@Y`^a}!u5{Y^hd>)q{&4m$Y12HgFAPv
z7z@F*@arL$d~C6*$v-cp_H93K#&m;-?ta;^IcgqSottW0i75<O-D-nM?~0%j3CKER
zH3-LCr37fQ)T>AAgdZ{gR%5yt1mi3<@j{TBq|i@<j$U){>{Ej36roz@a|r>SD&TL9
zXw9(?I>A5dF&>Ya5?$mpR}Mc$xpF`Em>!QEohC(IoM}g~g3(l_R)MP%HDK*v!P`TK
za7a+&$h6jZ4NebrcB8n=8nRAtc*^Y?zI~(`cATp|tn^`0$kie@ce1>l4MN`b6SB_m
zR4>D+-{R}l8I#lpMKfgB5UmJUy=DmpgAo>9Mq}Y6&HJJP)?r1~vhrpRnAc3^pEBE`
za`L_>qnn2T{Z8uUBSuBIJ0|;QdS`3_Fzym9IZsS^W9_2m1e(S5DKJ{Re54+kvqbc;
zBijnI%sX4ea12*sIMx4B{t}v#zExhnI>GN&DRr|$pazz^u^BB~CIrs)3CptvRxZgO
zOW$uQOJIRsErnDF{62@C_FzF!aa16KitYu*h$FR9@?DYbGHrE887JGJwSF6u_@OKX
z$ef?OJ?w0LwDqEmg<yR)k2fyxC_FC5>g>kb=w%O4_EAPa(VlYMCDR8ywNg9ZH%hH?
z_>R{|LN4F&Y)LVD9%?{eCmn%{S86wycRGcvcclpylwlJEYU>Qfyo@PieOnTT_laMS
zblH|e=tNx^H;*rbR)Fj<v-^eADEgp#U_~eASn8?1+D5-u`V<D(L<3C+<KyxXe#Iz7
zb-zBXw9g$J4;CH}#oWcKE_%xst0~p84aLi)aKS>3<&dZ-P3As|tBc$O30cQ0gYRLO
z{$9vhqy)|I3-HUUszTOlN;9*k2KjfHWovUcj`6n{t@N<eVvk`~+47gmW~F{_05>a>
z{ndPzf+6uM@beoXu~j;v&!08Bj4EnmpPW^8x^tb>;wr6)S#uBsLwaM1%*{P!XTAmv
z@>}8KU8g%b>Yl7iR8VnxM5wLO@#y3=Rmlj8lm;ohAomRL0grl^q4;s}ejAfbEp&e|
zHvh!aolUQ}MCMKhI^`*b%#wjxW;sVjvht?n0*uz!@lY!?Fs4U4^>8i@0;7$>XtP5S
zeWFU{u)J|AWG!_P96Q@A2}d{y@Kr#Emu`iuj|8fGttL<^YvxRl(W@}#p0vzu^ZA1D
zfd`|hikBobRh46{9V8YA!WB*xG6^h{^f6L*RlKpC=5{y`StLlKJV@p9RN%+aihQOM
zpnQ5IW#s?5V0HTEsP}uk|BAATT2}ZNLHw(%MGVs=O{1v=j)5GF=4ulf?_-Z>unymd
zLX=dW_atOi89RoEaRaJaRea2YnsZh0VGn}W>s70YKlG$>H-{CyKooLMk3<{GnxxHJ
zMFf9$8qD;aVb=BD@)MUpwBv-tZygdkc&kmozjVOTNF2YHNWz{@pYtuo-0dmA-)+>I
z=ourLs#@kXH82d$Y*g*zkn*nf{5gw~+G}W+;@`>H=($(G?j2TjzV6h{+YV~>vA{{o
z?#I2kR$CZzkE2yqUYrMDCLJjUj_d<%^-D!G+eaLsf8&%APBLx<`jOi`)PddE>^oe{
z3ARzzy&!U+uh7G7kT0=gF*~lfINU9@1jX(@$IAP%I@x3w9%0AhJj-MsP-0JEY80t^
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<
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
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Dxe.map b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Dxe.map
new file mode 100644
index 000000000000..6c72529b136a
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Dxe.map
@@ -0,0 +1,1059 @@
+ Ip4Dxe
+
+ Timestamp is 64881a46 (Tue Jun 13 15:27:02 2023)
+
+ Preferred load address is 0000000000000000
+
+ Start Length Name Class
+ 0001:00000000 00000318H .text CODE
+ 0001:00000318 000103a1H .text$mn CODE
+ 0002:00000000 00003114H .rdata DATA
+ 0002:00003114 0000012cH .rdata$zzzdbg DATA
+ 0003:00000000 000008e0H .data DATA
+ 0003:000008e0 000000c0H .bss DATA
+ 0004:00000000 00000a68H .pdata DATA
+ 0005:00000000 0000076cH .xdata DATA
+
+ Address Publics by Value Rva+Base Lib:Object
+
+ 0000:00000000 __guard_longjmp_table 0000000000000000 <absolute>
+ 0000:00000000 __dynamic_value_reloc_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_longjmp_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_iat_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_iat_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_flags 0000000000000000 <absolute>
+ 0001:00000000 InternalMemZeroMem 00000000000002c0 BaseMemoryLibRepStr:ZeroMem.obj
+ 0001:00000020 InternalMemCopyMem 00000000000002e0 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000060 InternalMemCompareMem 0000000000000320 BaseMemoryLibRepStr:CompareMem.obj
+ 0001:00000080 InternalMemSetMem 0000000000000340 BaseMemoryLibRepStr:SetMem.obj
+ 0001:000000a0 InternalMemSetMem16 0000000000000360 BaseMemoryLibRepStr:SetMem16.obj
+ 0001:000000c0 InternalMemSetMem64 0000000000000380 BaseMemoryLibRepStr:SetMem64.obj
+ 0001:000000e0 InternalMemSetMem32 00000000000003a0 BaseMemoryLibRepStr:SetMem32.obj
+ 0001:00000100 CpuPause 00000000000003c0 BaseLib:CpuPause.obj
+ 0001:00000110 SevNoRepIo 00000000000003d0 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000150 SevIoReadFifo8 0000000000000410 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000172 SevIoReadFifo16 0000000000000432 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000198 SevIoReadFifo32 0000000000000458 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001bb SevIoWriteFifo8 000000000000047b BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001dd SevIoWriteFifo16 000000000000049d BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000203 SevIoWriteFifo32 00000000000004c3 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000230 TdVmCall 00000000000004f0 BaseLib:TdVmcall.obj
+ 0001:000002c0 TdCall 0000000000000580 BaseLib:TdCall.obj
+ 0001:00000318 _DriverUnloadHandler 00000000000005d8 f UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0001:0000049c _ModuleEntryPoint 000000000000075c f UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0001:00000518 ProcessLibraryConstructorList 00000000000007d8 f Ip4Dxe:AutoGen.obj
+ 0001:000007e8 ProcessModuleEntryPointList 0000000000000aa8 f Ip4Dxe:AutoGen.obj
+ 0001:000008b4 IpSec2InstalledCallback 0000000000000b74 f Ip4Dxe:Ip4Driver.obj
+ 0001:00000904 Ip4DriverBindingSupported 0000000000000bc4 f Ip4Dxe:Ip4Driver.obj
+ 0001:0000097c Ip4CreateService 0000000000000c3c f Ip4Dxe:Ip4Driver.obj
+ 0001:00000cfc Ip4CleanService 0000000000000fbc f Ip4Dxe:Ip4Driver.obj
+ 0001:00000e64 Ip4DestroyChildEntryInHandleBuffer 0000000000001124 f Ip4Dxe:Ip4Driver.obj
+ 0001:00000f00 Ip4DriverBindingStart 00000000000011c0 f Ip4Dxe:Ip4Driver.obj
+ 0001:00001188 Ip4DriverBindingStop 0000000000001448 f Ip4Dxe:Ip4Driver.obj
+ 0001:00001414 Ip4ServiceBindingCreateChild 00000000000016d4 f Ip4Dxe:Ip4Driver.obj
+ 0001:00001580 Ip4ServiceBindingDestroyChild 0000000000001840 f Ip4Dxe:Ip4Driver.obj
+ 0001:000017a4 EfiIp4GetModeData 0000000000001a64 f Ip4Dxe:Ip4Impl.obj
+ 0001:00001978 Ip4ServiceConfigMnp 0000000000001c38 f Ip4Dxe:Ip4Impl.obj
+ 0001:00001a24 Ip4InitProtocol 0000000000001ce4 f Ip4Dxe:Ip4Impl.obj
+ 0001:00001b10 Ip4ConfigProtocol 0000000000001dd0 f Ip4Dxe:Ip4Impl.obj
+ 0001:00001dd4 Ip4CleanProtocol 0000000000002094 f Ip4Dxe:Ip4Impl.obj
+ 0001:00001f04 EfiIp4Configure 00000000000021c4 f Ip4Dxe:Ip4Impl.obj
+ 0001:000020c8 Ip4Groups 0000000000002388 f Ip4Dxe:Ip4Impl.obj
+ 0001:00002544 EfiIp4Groups 0000000000002804 f Ip4Dxe:Ip4Impl.obj
+ 0001:00002670 EfiIp4Routes 0000000000002930 f Ip4Dxe:Ip4Impl.obj
+ 0001:00002884 Ip4TokenExist 0000000000002b44 f Ip4Dxe:Ip4Impl.obj
+ 0001:000028a4 Ip4TxTokenValid 0000000000002b64 f Ip4Dxe:Ip4Impl.obj
+ 0001:00002a8c Ip4FreeTxToken 0000000000002d4c f Ip4Dxe:Ip4Impl.obj
+ 0001:00002b04 Ip4OnPacketSent 0000000000002dc4 f Ip4Dxe:Ip4Impl.obj
+ 0001:00002b48 EfiIp4Transmit 0000000000002e08 f Ip4Dxe:Ip4Impl.obj
+ 0001:00002f80 EfiIp4Receive 0000000000003240 f Ip4Dxe:Ip4Impl.obj
+ 0001:00003088 Ip4CancelTxTokens 0000000000003348 f Ip4Dxe:Ip4Impl.obj
+ 0001:00003100 Ip4CancelRxTokens 00000000000033c0 f Ip4Dxe:Ip4Impl.obj
+ 0001:00003164 Ip4Cancel 0000000000003424 f Ip4Dxe:Ip4Impl.obj
+ 0001:00003244 EfiIp4Cancel 0000000000003504 f Ip4Dxe:Ip4Impl.obj
+ 0001:0000330c EfiIp4Poll 00000000000035cc f Ip4Dxe:Ip4Impl.obj
+ 0001:00003380 Ip4SentPacketTicking 0000000000003640 f Ip4Dxe:Ip4Impl.obj
+ 0001:000033e8 Ip4TimerTicking 00000000000036a8 f Ip4Dxe:Ip4Impl.obj
+ 0001:0000356c Ip4TimerReconfigChecking 000000000000382c f Ip4Dxe:Ip4Impl.obj
+ 0001:00003624 Ip4FreeAssembleEntry 00000000000038e4 f Ip4Dxe:Ip4Input.obj
+ 0001:00003684 Ip4CleanAssembleTable 0000000000003944 f Ip4Dxe:Ip4Input.obj
+ 0001:000036f4 Ip4TrimPacket 00000000000039b4 f Ip4Dxe:Ip4Input.obj
+ 0001:000037b4 Ip4OnFreeFragments 0000000000003a74 f Ip4Dxe:Ip4Input.obj
+ 0001:000037bc Ip4Reassemble 0000000000003a7c f Ip4Dxe:Ip4Input.obj
+ 0001:00003b7c Ip4IpSecFree 0000000000003e3c f Ip4Dxe:Ip4Input.obj
+ 0001:00003bb0 Ip4IpSecProcessPacket 0000000000003e70 f Ip4Dxe:Ip4Input.obj
+ 0001:00003eb8 Ip4PreProcessPacket 0000000000004178 f Ip4Dxe:Ip4Input.obj
+ 0001:0000405c Ip4AccpetFrame 000000000000431c f Ip4Dxe:Ip4Input.obj
+ 0001:00004268 Ip4OnRecyclePacket 0000000000004528 f Ip4Dxe:Ip4Input.obj
+ 0001:000042ec Ip4WrapRxData 00000000000045ac f Ip4Dxe:Ip4Input.obj
+ 0001:00004438 Ip4InstanceDeliverPacket 00000000000046f8 f Ip4Dxe:Ip4Input.obj
+ 0001:00004648 Ip4InterfaceEnquePacket 0000000000004908 f Ip4Dxe:Ip4Input.obj
+ 0001:0000495c Ip4Demultiplex 0000000000004c1c f Ip4Dxe:Ip4Input.obj
+ 0001:00004a30 Ip4ComponentNameGetDriverName 0000000000004cf0 f Ip4Dxe:ComponentName.obj
+ 0001:00004a64 UpdateName 0000000000004d24 f Ip4Dxe:ComponentName.obj
+ 0001:00004b58 Ip4ComponentNameGetControllerName 0000000000004e18 f Ip4Dxe:ComponentName.obj
+ 0001:00004c80 Ip4FreeLinkTxToken 0000000000004f40 f Ip4Dxe:Ip4If.obj
+ 0001:00004ccc Ip4FreeArpQue 0000000000004f8c f Ip4Dxe:Ip4If.obj
+ 0001:00004d34 Ip4FreeFrameRxToken 0000000000004ff4 f Ip4Dxe:Ip4If.obj
+ 0001:00004d80 Ip4CancelFrameArp 0000000000005040 f Ip4Dxe:Ip4If.obj
+ 0001:00004e1c Ip4CancelFrames 00000000000050dc f Ip4Dxe:Ip4If.obj
+ 0001:00004ef0 Ip4CreateInterface 00000000000051b0 f Ip4Dxe:Ip4If.obj
+ 0001:0000500c Ip4SetAddress 00000000000052cc f Ip4Dxe:Ip4If.obj
+ 0001:000051c0 Ip4CancelInstanceFrame 0000000000005480 f Ip4Dxe:Ip4If.obj
+ 0001:000051c8 Ip4CancelReceive 0000000000005488 f Ip4Dxe:Ip4If.obj
+ 0001:0000522c Ip4FreeInterface 00000000000054ec f Ip4Dxe:Ip4If.obj
+ 0001:00005398 Ip4SendFrameToDefaultRoute 0000000000005658 f Ip4Dxe:Ip4If.obj
+ 0001:00005524 Ip4OnArpResolvedDpc 00000000000057e4 f Ip4Dxe:Ip4If.obj
+ 0001:00005684 Ip4OnArpResolved 0000000000005944 f Ip4Dxe:Ip4If.obj
+ 0001:000056a0 Ip4OnFrameSentDpc 0000000000005960 f Ip4Dxe:Ip4If.obj
+ 0001:00005704 Ip4OnFrameSent 00000000000059c4 f Ip4Dxe:Ip4If.obj
+ 0001:00005720 Ip4SendFrame 00000000000059e0 f Ip4Dxe:Ip4If.obj
+ 0001:00005aec Ip4RecycleFrame 0000000000005dac f Ip4Dxe:Ip4If.obj
+ 0001:00005b3c Ip4OnFrameReceivedDpc 0000000000005dfc f Ip4Dxe:Ip4If.obj
+ 0001:00005c50 Ip4OnFrameReceived 0000000000005f10 f Ip4Dxe:Ip4If.obj
+ 0001:00005c6c Ip4ReceiveFrame 0000000000005f2c f Ip4Dxe:Ip4If.obj
+ 0001:00005d84 Ip4Config2DestroyDhcp4 0000000000006044 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00005e58 Ip4Config2OnPolicyChanged 0000000000006118 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00005f40 Ip4Config2SignalEvent 0000000000006200 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00005f5c Ip4Config2ReadConfigData 000000000000621c f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:0000610c Ip4Config2WriteConfigData 00000000000063cc f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00006244 Ip4Config2BuildDefaultRouteTable 0000000000006504 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00006344 Ip4Config2OnDhcp4SbInstalled 0000000000006604 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00006368 Ip4Config2SetDefaultAddr 0000000000006628 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00006540 Ip4Config2SetDnsServerWorker 0000000000006800 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:0000673c Ip4Config2OnDhcp4Complete 00000000000069fc f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00006a00 Ip4StartAutoConfig 0000000000006cc0 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00006c9c Ip4Config2GetIfInfo 0000000000006f5c f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00006dd8 Ip4Config2SetPolicy 0000000000007098 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00006f9c Ip4Config2SetManualAddress 000000000000725c f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00007240 Ip4Config2SetGateway 0000000000007500 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:0000755c Ip4Config2SetDnsServer 000000000000781c f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:000075e4 EfiIp4Config2SetData 00000000000078a4 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00007794 EfiIp4Config2GetData 0000000000007a54 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:000078b8 EfiIp4Config2RegisterDataNotify 0000000000007b78 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:000079b0 EfiIp4Config2UnregisterDataNotify 0000000000007c70 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00007aa0 Ip4Config2InitInstance 0000000000007d60 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00007cd4 Ip4Config2CleanInstance 0000000000007f94 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00007d8c Ip4AutoReconfigCallBackDpc 000000000000804c f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00007de0 Ip4AutoReconfigCallBack 00000000000080a0 f Ip4Dxe:Ip4Config2Impl.obj
+ 0001:00007dfc Ip4InitIgmp 00000000000080bc f Ip4Dxe:Ip4Igmp.obj
+ 0001:00007ed8 Ip4SendIgmpMessage 0000000000008198 f Ip4Dxe:Ip4Igmp.obj
+ 0001:00007fec Ip4IgmpHandle 00000000000082ac f Ip4Dxe:Ip4Igmp.obj
+ 0001:00008174 Ip4FreeRouteEntry 0000000000008434 f Ip4Dxe:Ip4Route.obj
+ 0001:000081b4 Ip4FreeRouteCacheEntry 0000000000008474 f Ip4Dxe:Ip4Route.obj
+ 0001:000081f4 Ip4CreateRouteTable 00000000000084b4 f Ip4Dxe:Ip4Route.obj
+ 0001:00008274 Ip4FreeRouteTable 0000000000008534 f Ip4Dxe:Ip4Route.obj
+ 0001:0000835c Ip4AddRoute 000000000000861c f Ip4Dxe:Ip4Route.obj
+ 0001:00008444 Ip4DelRoute 0000000000008704 f Ip4Dxe:Ip4Route.obj
+ 0001:0000853c Ip4FindRouteCache 00000000000087fc f Ip4Dxe:Ip4Route.obj
+ 0001:00008594 Ip4Route 0000000000008854 f Ip4Dxe:Ip4Route.obj
+ 0001:0000874c Ip4BuildEfiRouteTable 0000000000008a0c f Ip4Dxe:Ip4Route.obj
+ 0001:000088b8 Ip4PrependHead 0000000000008b78 f Ip4Dxe:Ip4Output.obj
+ 0001:00008a30 Ip4SysPacketSent 0000000000008cf0 f Ip4Dxe:Ip4Output.obj
+ 0001:00008a38 Ip4Output 0000000000008cf8 f Ip4Dxe:Ip4Output.obj
+ 0001:00008e14 Ip4CancelPacketFragments 00000000000090d4 f Ip4Dxe:Ip4Output.obj
+ 0001:00008e28 Ip4ProcessIcmpRedirect 00000000000090e8 f Ip4Dxe:Ip4Icmp.obj
+ 0001:00008f90 Ip4IcmpReplyEcho 0000000000009250 f Ip4Dxe:Ip4Icmp.obj
+ 0001:000090a4 Ip4IcmpHandle 0000000000009364 f Ip4Dxe:Ip4Icmp.obj
+ 0001:000091d4 Ip4GetHostCast 0000000000009494 f Ip4Dxe:Ip4Common.obj
+ 0001:000092d0 Ip4NtohHead 0000000000009590 f Ip4Dxe:Ip4Common.obj
+ 0001:0000933c Ip4StationAddressValid 00000000000095fc f Ip4Dxe:Ip4Common.obj
+ 0001:00009398 Ip4OptionIsValid 0000000000009658 f Ip4Dxe:Ip4Option.obj
+ 0001:00009468 Ip4CopyOption 0000000000009728 f Ip4Dxe:Ip4Option.obj
+ 0001:00009584 Ip4Config2StrToIp 0000000000009844 f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:00009624 Ip4Config2StrToIpList 00000000000098e4 f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:00009860 Ip4Config2IpToStr 0000000000009b20 f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:000098a0 Ip4Config2IpListToStr 0000000000009b60 f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:000099ac Ip4Config2ManualAddressNotify 0000000000009c6c f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:000099b0 Ip4Config2ConvertConfigNvDataToIfrNvData 0000000000009c70 f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:00009c00 Ip4Config2ConvertIfrNvDataToConfigNvData 0000000000009ec0 f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:0000a134 Ip4FormExtractConfig 000000000000a3f4 f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:0000a364 Ip4FormRouteConfig 000000000000a624 f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:0000a4bc Ip4FormCallback 000000000000a77c f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:0000a7cc Ip4Config2FormInit 000000000000aa8c f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:0000aa60 Ip4Config2FormUnload 000000000000ad20 f Ip4Dxe:Ip4Config2Nv.obj
+ 0001:0000abcc ZeroMem 000000000000ae8c f BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0001:0000ac30 CopyMem 000000000000aef0 f BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0001:0000accc CompareMem 000000000000af8c f BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0001:0000ada4 CopyGuid 000000000000b064 f BaseMemoryLibRepStr:MemLibGuid.obj
+ 0001:0000ae28 InternalBaseLibIsListValid 000000000000b0e8 f BaseLib:LinkedList.obj
+ 0001:0000ae94 InitializeListHead 000000000000b154 f BaseLib:LinkedList.obj
+ 0001:0000aecc InsertHeadList 000000000000b18c f BaseLib:LinkedList.obj
+ 0001:0000af1c InsertTailList 000000000000b1dc f BaseLib:LinkedList.obj
+ 0001:0000af70 IsListEmpty 000000000000b230 f BaseLib:LinkedList.obj
+ 0001:0000afa8 RemoveEntryList 000000000000b268 f BaseLib:LinkedList.obj
+ 0001:0000aff0 StrLen 000000000000b2b0 f BaseLib:String.obj
+ 0001:0000b084 StrnCmp 000000000000b344 f BaseLib:String.obj
+ 0001:0000b16c StrStr 000000000000b42c f BaseLib:String.obj
+ 0001:0000b234 AsciiStrLen 000000000000b4f4 f BaseLib:String.obj
+ 0001:0000b2a0 AsciiStrnCmp 000000000000b560 f BaseLib:String.obj
+ 0001:0000b36c ReadUnaligned32 000000000000b62c f BaseLib:Unaligned.obj
+ 0001:0000b39c ReadUnaligned64 000000000000b65c f BaseLib:Unaligned.obj
+ 0001:0000b3cc StrnLenS 000000000000b68c f BaseLib:SafeString.obj
+ 0001:0000b434 StrCpyS 000000000000b6f4 f BaseLib:SafeString.obj
+ 0001:0000b5c4 StrnCpyS 000000000000b884 f BaseLib:SafeString.obj
+ 0001:0000b79c StrCatS 000000000000ba5c f BaseLib:SafeString.obj
+ 0001:0000b984 AsciiStrnLenS 000000000000bc44 f BaseLib:SafeString.obj
+ 0001:0000b9a8 UnicodeSPrint 000000000000bc68 f BasePrintLib:PrintLib.obj
+ 0001:0000ba28 UnicodeValueToStringS 000000000000bce8 f BasePrintLib:PrintLib.obj
+ 0001:0000ba88 AsciiSPrint 000000000000bd48 f BasePrintLib:PrintLib.obj
+ 0001:0000bab0 BasePrintLibFillBuffer 000000000000bd70 f BasePrintLib:PrintLibInternal.obj
+ 0001:0000bae4 BasePrintLibValueToString 000000000000bda4 f BasePrintLib:PrintLibInternal.obj
+ 0001:0000bb5c BasePrintLibConvertValueToStringS 000000000000be1c f BasePrintLib:PrintLibInternal.obj
+ 0001:0000bd10 BasePrintLibSPrintMarker 000000000000bfd0 f BasePrintLib:PrintLibInternal.obj
+ 0001:0000cb94 BasePrintLibSPrint 000000000000ce54 f BasePrintLib:PrintLibInternal.obj
+ 0001:0000cbb8 DebugPrint 000000000000ce78 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:0000cbdc DebugPrintMarker 000000000000ce9c f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:0000cc8c DebugAssert 000000000000cf4c f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:0000cd24 InternalAllocatePool 000000000000cfe4 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:0000cd54 AllocateZeroPool 000000000000d014 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:0000cd80 InternalAllocateCopyPool 000000000000d040 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:0000cdf8 FreePool 000000000000d0b8 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:0000ce3c DevicePathSubType 000000000000d0fc f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:0000ce6c DevicePathNodeLength 000000000000d12c f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:0000ceb8 NextDevicePathNode 000000000000d178 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:0000cef0 IsDevicePathEndType 000000000000d1b0 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:0000cf3c IsDevicePathEnd 000000000000d1fc f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:0000cf90 SetDevicePathNodeLength 000000000000d250 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:0000cfe0 DevicePathFromHandle 000000000000d2a0 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:0000d014 CompareIso639LanguageCode 000000000000d2d4 f UefiLib:UefiLib.obj
+ 0001:0000d07c EfiCreateProtocolNotifyEvent 000000000000d33c f UefiLib:UefiLib.obj
+ 0001:0000d1b8 EfiAcquireLockOrFail 000000000000d478 f UefiLib:UefiLib.obj
+ 0001:0000d230 EfiReleaseLock 000000000000d4f0 f UefiLib:UefiLib.obj
+ 0001:0000d290 IsLanguageSupported 000000000000d550 f UefiLib:UefiLib.obj
+ 0001:0000d310 LookupUnicodeString2 000000000000d5d0 f UefiLib:UefiLib.obj
+ 0001:0000d41c AddUnicodeString2 000000000000d6dc f UefiLib:UefiLib.obj
+ 0001:0000d5f0 FreeUnicodeStringTable 000000000000d8b0 f UefiLib:UefiLib.obj
+ 0001:0000d658 GetEfiGlobalVariable2 000000000000d918 f UefiLib:UefiLib.obj
+ 0001:0000d750 GetBestLanguage 000000000000da10 f UefiLib:UefiLib.obj
+ 0001:0000d894 UefiLibGetStringWidth 000000000000db54 f UefiLib:Console.obj
+ 0001:0000d93c CreatePopUp 000000000000dbfc f UefiLib:Console.obj
+ 0001:0000dd00 NetGetIpClass 000000000000dfc0 f DxeNetLib:DxeNetLib.obj
+ 0001:0000dd38 NetIp4IsUnicast 000000000000dff8 f DxeNetLib:DxeNetLib.obj
+ 0001:0000ddd0 NetListRemoveHead 000000000000e090 f DxeNetLib:DxeNetLib.obj
+ 0001:0000de28 NetListInsertBefore 000000000000e0e8 f DxeNetLib:DxeNetLib.obj
+ 0001:0000de7c NetDestroyLinkList 000000000000e13c f DxeNetLib:DxeNetLib.obj
+ 0001:0000df88 NetMapInit 000000000000e248 f DxeNetLib:DxeNetLib.obj
+ 0001:0000dfcc NetMapClean 000000000000e28c f DxeNetLib:DxeNetLib.obj
+ 0001:0000e0b4 NetMapIsEmpty 000000000000e374 f DxeNetLib:DxeNetLib.obj
+ 0001:0000e0e8 NetMapAllocItem 000000000000e3a8 f DxeNetLib:DxeNetLib.obj
+ 0001:0000e16c NetMapInsertTail 000000000000e42c f DxeNetLib:DxeNetLib.obj
+ 0001:0000e1e8 NetMapFindKey 000000000000e4a8 f DxeNetLib:DxeNetLib.obj
+ 0001:0000e23c NetMapRemoveItem 000000000000e4fc f DxeNetLib:DxeNetLib.obj
+ 0001:0000e2e4 NetMapIterate 000000000000e5a4 f DxeNetLib:DxeNetLib.obj
+ 0001:0000e36c NetLibCreateServiceChild 000000000000e62c f DxeNetLib:DxeNetLib.obj
+ 0001:0000e400 NetLibDestroyServiceChild 000000000000e6c0 f DxeNetLib:DxeNetLib.obj
+ 0001:0000e490 NetLibGetSnpHandle 000000000000e750 f DxeNetLib:DxeNetLib.obj
+ 0001:0000e558 NetLibGetVlanId 000000000000e818 f DxeNetLib:DxeNetLib.obj
+ 0001:0000e5ac NetLibGetMacString 000000000000e86c f DxeNetLib:DxeNetLib.obj
+ 0001:0000e7fc NetLibGetNicHandle 000000000000eabc f DxeNetLib:DxeNetLib.obj
+ 0001:0000e8a4 NetbufAllocStruct 000000000000eb64 f DxeNetLib:NetBuffer.obj
+ 0001:0000e95c NetbufAlloc 000000000000ec1c f DxeNetLib:NetBuffer.obj
+ 0001:0000ea04 NetbufFreeVector 000000000000ecc4 f DxeNetLib:NetBuffer.obj
+ 0001:0000ead0 NetbufFree 000000000000ed90 f DxeNetLib:NetBuffer.obj
+ 0001:0000eb58 NetbufClone 000000000000ee18 f DxeNetLib:NetBuffer.obj
+ 0001:0000ec40 NetbufDuplicate 000000000000ef00 f DxeNetLib:NetBuffer.obj
+ 0001:0000ece4 NetbufGetByte 000000000000efa4 f DxeNetLib:NetBuffer.obj
+ 0001:0000ed88 NetbufSetBlock 000000000000f048 f DxeNetLib:NetBuffer.obj
+ 0001:0000ee6c NetbufSetBlockOp 000000000000f12c f DxeNetLib:NetBuffer.obj
+ 0001:0000ef18 NetbufGetFragmentFree 000000000000f1d8 f DxeNetLib:NetBuffer.obj
+ 0001:0000ef20 NetbufGetFragment 000000000000f1e0 f DxeNetLib:NetBuffer.obj
+ 0001:0000f18c NetbufFromExt 000000000000f44c f DxeNetLib:NetBuffer.obj
+ 0001:0000f40c NetbufBuildExt 000000000000f6cc f DxeNetLib:NetBuffer.obj
+ 0001:0000f480 NetbufReserve 000000000000f740 f DxeNetLib:NetBuffer.obj
+ 0001:0000f570 NetbufAllocSpace 000000000000f830 f DxeNetLib:NetBuffer.obj
+ 0001:0000f730 NetblockTrim 000000000000f9f0 f DxeNetLib:NetBuffer.obj
+ 0001:0000f78c NetbufTrim 000000000000fa4c f DxeNetLib:NetBuffer.obj
+ 0001:0000f868 NetbufCopy 000000000000fb28 f DxeNetLib:NetBuffer.obj
+ 0001:0000f9e8 NetblockChecksum 000000000000fca8 f DxeNetLib:NetBuffer.obj
+ 0001:0000fa2c NetbufChecksum 000000000000fcec f DxeNetLib:NetBuffer.obj
+ 0001:0000facc NetIpSecNetbufFree 000000000000fd8c f DxeNetLib:NetBuffer.obj
+ 0001:0000fba8 HiiSetString 000000000000fe68 f UefiHiiLib:HiiString.obj
+ 0001:0000fcf8 HiiGetString 000000000000ffb8 f UefiHiiLib:HiiString.obj
+ 0001:0000fe54 HiiAddPackages 0000000000010114 f UefiHiiLib:HiiLib.obj
+ 0001:0000ff90 InternalHiiBrowserCallback 0000000000010250 f UefiHiiLib:HiiLib.obj
+ 0001:00010084 HiiConstructConfigHdr 0000000000010344 f UefiHiiLib:HiiLib.obj
+ 0001:000102c8 InternalHiiCompareSubString 0000000000010588 f UefiHiiLib:HiiLib.obj
+ 0001:000103e4 HiiIsConfigHdrMatch 00000000000106a4 f UefiHiiLib:HiiLib.obj
+ 0001:0001047c HiiGetBrowserData 000000000001073c f UefiHiiLib:HiiLib.obj
+ 0001:00010550 HiiGetSupportedLanguages 0000000000010810 f UefiHiiLib:HiiLanguage.obj
+ 0001:000105f4 SetMem16 00000000000108b4 f BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00000000 ??_C@_0CB@DMEJJJHA@?6ASSERT_EFI_ERROR?5?$CIStatus?5?$DN?5?$CFr?$CJ?6@ 0000000000010980 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:00000028 ??_C@_0CH@BBNBJKHK@?$CB?$CI?$CI?$CIINTN?$CJ?$CIRETURN_STATUS?$CJ?$CIStatus?$CJ@ 00000000000109a8 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:00000050 ??_C@_0FI@PIDCFOGG@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000109d0 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:000000b0 ??_C@_0GN@CFDCLHHH@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000010a30 Ip4Dxe:AutoGen.obj
+ 0002:00000120 ??_C@_0BI@KMGFDNBP@Service?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010aa0 Ip4Dxe:Ip4Driver.obj
+ 0002:00000138 ??_C@_0DP@EJPHFFMK@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000010ab8 Ip4Dxe:Ip4Driver.obj
+ 0002:00000178 ??_C@_0BF@NDBIKIKC@CR?5has?5Bad?5Signature?$AA@ 0000000000010af8 Ip4Dxe:Ip4Driver.obj
+ 0002:00000190 ??_C@_0BF@EKNEMLIP@IpSb?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010b10 Ip4Dxe:Ip4Driver.obj
+ 0002:000001a8 ??_C@_0DN@EENBJKBM@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000010b28 Ip4Dxe:Ip4Impl.obj
+ 0002:000001e8 ??_C@_0DH@GPPCAEPK@?$CIIpSb?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CIIpIns@ 0000000000010b68 Ip4Dxe:Ip4Impl.obj
+ 0002:00000220 ??_C@_0BN@KGHJECMC@GroupAddress?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010ba0 Ip4Dxe:Ip4Impl.obj
+ 0002:00000240 ??_C@_0CD@NKJCDDFI@IpInstance?9?$DOGroups?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?5@ 0000000000010bc0 Ip4Dxe:Ip4Impl.obj
+ 0002:00000268 ??_C@_0L@BCBMKFKO@Index?5?$DN?$DN?51?$AA@ 0000000000010be8 Ip4Dxe:Ip4Impl.obj
+ 0002:00000278 ??_C@_0BM@HFKMLLMO@Ip4Instance?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010bf8 Ip4Dxe:Ip4Impl.obj
+ 0002:00000298 ??_C@_0BF@HCDENPCL@Wrap?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010c18 Ip4Dxe:Ip4Impl.obj
+ 0002:000002b0 ??_C@_0GL@OOIFHKIL@?$CI?$CIIpSb?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CI?$CIIp@ 0000000000010c30 Ip4Dxe:Ip4Impl.obj
+ 0002:00000320 ??_C@_0CI@EHDAHPG@Info?9?$DOStart?5?$CL?5Info?9?$DOLength?5?$DN?$DN?5In@ 0000000000010ca0 Ip4Dxe:Ip4Input.obj
+ 0002:00000348 ??_C@_0DO@NKHPKLIK@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000010cc8 Ip4Dxe:Ip4Input.obj
+ 0002:00000388 ??_C@_0CL@KNPFBFFJ@?$CIInfo?9?$DOStart?5?$DM?5End?$CJ?5?$CG?$CG?5?$CIStart?5?$DM?5@ 0000000000010d08 Ip4Dxe:Ip4Input.obj
+ 0002:000003b8 ??_C@_0BH@BHMOGOAJ@IpHead?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010d38 Ip4Dxe:Ip4Input.obj
+ 0002:000003d0 ??_C@_0BP@DJKJLKPN@Assemble?9?$DOHead?5?$DN?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010d50 Ip4Dxe:Ip4Input.obj
+ 0002:000003f0 ??_C@_0BP@GCONLHGI@Assemble?9?$DOInfo?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010d70 Ip4Dxe:Ip4Input.obj
+ 0002:00000410 ??_C@_0BH@BFPFAGHP@mIpSec?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010d90 Ip4Dxe:Ip4Input.obj
+ 0002:00000428 ??_C@_0BF@FBEMMEEB@Head?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010da8 Ip4Dxe:Ip4Input.obj
+ 0002:00000440 ??_C@_0BH@CELONLOG@Packet?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010dc0 Ip4Dxe:Ip4Input.obj
+ 0002:00000460 ??_C@_0EI@IDGMIBFC@?$CB?$CI?$CI?$CIWrap?9?$DOPacket?$CJ?9?$DORefCnt?5?$DO?51?$CJ?5?$HM@ 0000000000010de0 Ip4Dxe:Ip4Input.obj
+ 0002:000004a8 ??_C@_0BP@IOBAJECI@Packet?9?$DOIp?4Ip4?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010e28 Ip4Dxe:Ip4Input.obj
+ 0002:000004c8 ??_C@_0BL@COBOANOI@IpInstance?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000010e48 Ip4Dxe:Ip4Input.obj
+ 0002:000004f0 ??_C@_0HH@EHPECKLJ@?$CI?$CIIpInstance?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG@ 0000000000010e70 Ip4Dxe:Ip4Input.obj
+ 0002:00000568 ??_C@_03LKLGDMJI@eng?$AA@ 0000000000010ee8 Ip4Dxe:ComponentName.obj
+ 0002:0000056c ??_C@_02LFNMGJAP@en?$AA@ 0000000000010eec Ip4Dxe:ComponentName.obj
+ 0002:00000570 ??_C@_06DALJLGPG@eng?$DLen?$AA@ 0000000000010ef0 Ip4Dxe:ComponentName.obj
+ 0002:00000578 ??_C@_1DG@IHGHICFA@?$AAI?$AAP?$AA4?$AA?5?$AAN?$AAe?$AAt?$AAw?$AAo?$AAr?$AAk?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAD?$AAr?$AAi?$AAv?$AAe?$AAr?$AA?$AA@ 0000000000010ef8 Ip4Dxe:ComponentName.obj
+ 0002:000005b0 ??_C@_1CG@HLBCDCEC@?$AAI?$AAP?$AAv?$AA4?$AA?5?$AA?$CI?$AAN?$AAo?$AAt?$AA?5?$AAs?$AAt?$AAa?$AAr?$AAt?$AAe?$AAd?$AA?$CJ?$AA?$AA@ 0000000000010f30 Ip4Dxe:ComponentName.obj
+ 0002:000005d8 ??_C@_1DC@IHJIMGND@?$AAI?$AAP?$AAv?$AA4?$AA?5?$AA?$CI?$AAS?$AAr?$AAc?$AAI?$AAP?$AA?$DN?$AA?$CF?$AAd?$AA?4?$AA?$CF?$AAd?$AA?4?$AA?$CF?$AAd?$AA?4?$AA?$CF?$AAd?$AA?$CJ?$AA?$AA@ 0000000000010f58 Ip4Dxe:ComponentName.obj
+ 0002:00000610 ??_C@_0GN@IKEMILK@?$CI?$CIToken?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CI?$CIT@ 0000000000010f90 Ip4Dxe:Ip4If.obj
+ 0002:00000680 ??_C@_0DL@DNEDBNPK@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011000 Ip4Dxe:Ip4If.obj
+ 0002:000006c0 ??_C@_0GP@EBANMBBK@?$CI?$CIArpQue?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CI?$CI@ 0000000000011040 Ip4Dxe:Ip4If.obj
+ 0002:00000730 ??_C@_0GN@IMIHFFGP@?$CI?$CIToken?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CI?$CIT@ 00000000000110b0 Ip4Dxe:Ip4If.obj
+ 0002:000007a0 ??_C@_0HF@BCLJGKCD@?$CI?$CIInterface?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG@ 0000000000011120 Ip4Dxe:Ip4If.obj
+ 0002:00000818 ??_C@_0BG@GIHMNBOJ@Interface?9?$DORefCnt?5?$DO?50?$AA@ 0000000000011198 Ip4Dxe:Ip4If.obj
+ 0002:00000830 ??_C@_0CG@NMHHEINA@IsListEmpty?5?$CI?$CGInterface?9?$DOIpInsta@ 00000000000111b0 Ip4Dxe:Ip4If.obj
+ 0002:00000858 ??_C@_0CC@PBDGGCNK@IsListEmpty?5?$CI?$CGInterface?9?$DOArpQues@ 00000000000111d8 Ip4Dxe:Ip4If.obj
+ 0002:00000880 ??_C@_0CF@NKNPBNCD@IsListEmpty?5?$CI?$CGInterface?9?$DOSentFra@ 0000000000011200 Ip4Dxe:Ip4If.obj
+ 0002:000008a8 ??_C@_0CM@EEMPOMGF@Token?9?$DOInterface?9?$DOSubnetMask?5?$DN?$DN?5@ 0000000000011228 Ip4Dxe:Ip4If.obj
+ 0002:000008d8 ??_C@_0BG@NDDKKKPP@Interface?9?$DOConfigured?$AA@ 0000000000011258 Ip4Dxe:Ip4If.obj
+ 0002:000008f0 ??_C@_0GN@EGABJGOB@?$CI?$CIFrame?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CI?$CIF@ 0000000000011270 Ip4Dxe:Ip4If.obj
+ 0002:00000960 ??_C@_0BG@GNOLCPMK@Dhcp4?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000112e0 Ip4Dxe:Ip4Config2Impl.obj
+ 0002:00000980 ??_C@_0EE@HODHJNKL@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011300 Ip4Dxe:Ip4Config2Impl.obj
+ 0002:000009c8 ??_C@_0BF@CPCLDMPH@IpIf?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000011348 Ip4Dxe:Ip4Config2Impl.obj
+ 0002:000009e0 ??_C@_0CA@KCKONDIO@Instance?9?$DODhcp4?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000011360 Ip4Dxe:Ip4Config2Impl.obj
+ 0002:00000a00 ??_C@_0GN@BBICCNJK@Instance?9?$DODataItem?$FLIp4Config2Dat@ 0000000000011380 Ip4Dxe:Ip4Config2Impl.obj
+ 0002:00000a70 ??_C@_1M@CLFCEILF@?$AAe?$AAt?$AAh?$AA?$CF?$AAd?$AA?$AA@ 00000000000113f0 Ip4Dxe:Ip4Config2Impl.obj
+ 0002:00000a80 ??_C@_0BG@MBPIHGMN@Group?9?$DODelayTime?5?$DO?$DN?50?$AA@ 0000000000011400 Ip4Dxe:Ip4Igmp.obj
+ 0002:00000a98 ??_C@_0DN@GHPFACGO@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011418 Ip4Dxe:Ip4Igmp.obj
+ 0002:00000ad8 ??_C@_0BE@BIEHCDCK@RtEntry?9?$DORefCnt?5?$DO?50?$AA@ 0000000000011458 Ip4Dxe:Ip4Route.obj
+ 0002:00000af0 ??_C@_0DO@NINBAFLK@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011470 Ip4Dxe:Ip4Route.obj
+ 0002:00000b30 ??_C@_0BJ@BEAIDGAO@RtCacheEntry?9?$DORefCnt?5?$DO?50?$AA@ 00000000000114b0 Ip4Dxe:Ip4Route.obj
+ 0002:00000b50 ??_C@_0BE@EPNEIHAH@RtTable?9?$DORefCnt?5?$DO?50?$AA@ 00000000000114d0 Ip4Dxe:Ip4Route.obj
+ 0002:00000b68 ??_C@_0BI@BOMBGFOB@RtTable?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000114e8 Ip4Dxe:Ip4Route.obj
+ 0002:00000b80 ??_C@_0CE@ONMACAEH@?$CI?$CILen?5?$CF?54?$CJ?5?$DN?$DN?50?$CJ?5?$CG?$CG?5?$CIHeadLen?5?$DM?$DN?5@ 0000000000011500 Ip4Dxe:Ip4Output.obj
+ 0002:00000ba8 ??_C@_0DP@FELMBEED@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011528 Ip4Dxe:Ip4Output.obj
+ 0002:00000be8 ??_C@_0BF@IPHHEBHD@Icmp?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000011568 Ip4Dxe:Ip4Icmp.obj
+ 0002:00000c00 ??_C@_0DN@PMGEEAHI@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011580 Ip4Dxe:Ip4Icmp.obj
+ 0002:00000c40 ??_C@_0CO@COLIIPDN@?$CIBufLen?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CIOpt@ 00000000000115c0 Ip4Dxe:Ip4Option.obj
+ 0002:00000c70 ??_C@_0DP@CNHBHBKM@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000115f0 Ip4Dxe:Ip4Option.obj
+ 0002:00000cb0 ??_C@_1BI@FCMLLAGN@?$AA?$CF?$AAd?$AA?4?$AA?$CF?$AAd?$AA?4?$AA?$CF?$AAd?$AA?4?$AA?$CF?$AAd?$AA?$AA@ 0000000000011630 Ip4Dxe:Ip4Config2Nv.obj
+ 0002:00000cd0 ??_C@_0HD@IDNAAOPJ@?$CI?$CIInstance?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5@ 0000000000011650 Ip4Dxe:Ip4Config2Nv.obj
+ 0002:00000d50 ??_C@_0EC@DKJAMHIH@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000116d0 Ip4Dxe:Ip4Config2Nv.obj
+ 0002:00000d98 ??_C@_1CK@EKOBMLHN@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAS?$AAu?$AAb?$AAn?$AAe?$AAt?$AA?5?$AAM?$AAa?$AAs?$AAk?$AA?$CB?$AA?$AA@ 0000000000011718 Ip4Dxe:Ip4Config2Nv.obj
+ 0002:00000dc8 ??_C@_1CI@LMPBJGDM@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAI?$AAP?$AA?5?$AAa?$AAd?$AAd?$AAr?$AAe?$AAs?$AAs?$AA?$CB?$AA?$AA@ 0000000000011748 Ip4Dxe:Ip4Config2Nv.obj
+ 0002:00000df0 ??_C@_1CC@EECKCHGK@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAG?$AAa?$AAt?$AAe?$AAw?$AAa?$AAy?$AA?$CB?$AA?$AA@ 0000000000011770 Ip4Dxe:Ip4Config2Nv.obj
+ 0002:00000e18 ??_C@_1CI@GPLCPIIC@?$AAI?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAD?$AAn?$AAs?$AA?5?$AAS?$AAe?$AAr?$AAv?$AAe?$AAr?$AA?$CB?$AA?$AA@ 0000000000011798 Ip4Dxe:Ip4Config2Nv.obj
+ 0002:00000e40 ??_C@_1O@LFMAFHMH@?$AAO?$AAF?$AAF?$AAS?$AAE?$AAT?$AA?$AA@ 00000000000117c0 Ip4Dxe:Ip4Config2Nv.obj
+ 0002:00000e50 ??_C@_1DC@EPJEBJEB@?$AA?$CF?$AAs?$AA?$CG?$AAO?$AAF?$AAF?$AAS?$AAE?$AAT?$AA?$DN?$AA0?$AA?$CG?$AAW?$AAI?$AAD?$AAT?$AAH?$AA?$DN?$AA?$CF?$AA0?$AA1?$AA6?$AAL?$AAX?$AA?$AA@ 00000000000117d0 Ip4Dxe:Ip4Config2Nv.obj
+ 0002:00000e88 ??_C@_1BI@OKMKAGND@?$AA?$CF?$AAs?$AA?5?$AA?$CI?$AAM?$AAA?$AAC?$AA?3?$AA?$CF?$AAs?$AA?$CJ?$AA?$AA@ 0000000000011808 Ip4Dxe:Ip4Config2Nv.obj
+ 0002:00000ea0 ??_C@_1O@DMKKJCOM@?$AAM?$AAA?$AAC?$AA?3?$AA?$CF?$AAs?$AA?$AA@ 0000000000011820 Ip4Dxe:Ip4Config2Nv.obj
+ 0002:00000eb0 ??_C@_0BH@IACGKAP@Buffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000011830 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:00000ed0 ??_C@_0FF@PKHNKPL@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011850 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:00000f28 ??_C@_0DG@EEENIGGL@Length?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFFFFFULL@ 00000000000118a8 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:00000f60 ??_C@_0ED@MKGCMJG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 00000000000118e0 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00000fb0 ??_C@_0FF@LLAFLLDM@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011930 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00001008 ??_C@_0DO@MAOBOFEG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 0000000000011988 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00001048 ??_C@_0CC@JOEHDGKB@DestinationBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 00000000000119c8 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00001070 ??_C@_0FI@NCCCHAEB@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000119f0 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:000010c8 ??_C@_0BN@MDMCNBCC@SourceBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000011a48 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:000010e8 ??_C@_0BF@NJNGJMPC@List?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000011a68 BaseLib:LinkedList.obj
+ 0002:00001100 ??_C@_0EF@PHMLHICE@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011a80 BaseLib:LinkedList.obj
+ 0002:00001148 ??_C@_0CC@KDLPLAED@List?9?$DOForwardLink?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 0000000000011ac8 BaseLib:LinkedList.obj
+ 0002:00001170 ??_C@_0BP@IJJCCMAK@List?9?$DOBackLink?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000011af0 BaseLib:LinkedList.obj
+ 0002:00001190 ??_C@_0BJ@NJABNCDK@ListHead?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000011b10 BaseLib:LinkedList.obj
+ 0002:000011b0 ??_C@_0CG@LGIALJFK@InternalBaseLibIsListValid?5?$CIList@ 0000000000011b30 BaseLib:LinkedList.obj
+ 0002:000011d8 ??_C@_0CC@JLDICICM@InternalBaseLibIsListValid?5?$CIList@ 0000000000011b58 BaseLib:LinkedList.obj
+ 0002:00001200 ??_C@_0BF@NMBJJECB@?$CBIsListEmpty?5?$CIEntry?$CJ?$AA@ 0000000000011b80 BaseLib:LinkedList.obj
+ 0002:00001218 ??_C@_0BH@MAAHKCPC@String?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000011b98 BaseLib:String.obj
+ 0002:00001230 ??_C@_0EB@OHCINBMP@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011bb0 BaseLib:String.obj
+ 0002:00001278 ??_C@_0CC@GFNLNIOC@?$CI?$CIUINTN?$CJString?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 0000000000011bf8 BaseLib:String.obj
+ 0002:000012a0 ??_C@_0DK@EOJCOAME@Length?5?$DM?5_gPcd_FixedAtBuild_PcdM@ 0000000000011c20 BaseLib:String.obj
+ 0002:000012e0 ??_C@_0BL@JAAMOCAJ@StrSize?5?$CIFirstString?$CJ?5?$CB?$DN?50?$AA@ 0000000000011c60 BaseLib:String.obj
+ 0002:00001300 ??_C@_0BM@DALBOILC@StrSize?5?$CISecondString?$CJ?5?$CB?$DN?50?$AA@ 0000000000011c80 BaseLib:String.obj
+ 0002:00001320 ??_C@_0DL@LFIMEMJP@Length?5?$DM?$DN?5_gPcd_FixedAtBuild_Pcd@ 0000000000011ca0 BaseLib:String.obj
+ 0002:00001360 ??_C@_0BG@KBNOLIGE@StrSize?5?$CIString?$CJ?5?$CB?$DN?50?$AA@ 0000000000011ce0 BaseLib:String.obj
+ 0002:00001378 ??_C@_0BM@NNBLOHJD@StrSize?5?$CISearchString?$CJ?5?$CB?$DN?50?$AA@ 0000000000011cf8 BaseLib:String.obj
+ 0002:00001398 ??_C@_0DI@MDIKFADO@Length?5?$DM?5_gPcd_FixedAtBuild_PcdM@ 0000000000011d18 BaseLib:String.obj
+ 0002:000013d0 ??_C@_0BL@IKFBNFIL@AsciiStrSize?5?$CIFirstString?$CJ?$AA@ 0000000000011d50 BaseLib:String.obj
+ 0002:000013f0 ??_C@_0BM@EDNOKLLE@AsciiStrSize?5?$CISecondString?$CJ?$AA@ 0000000000011d70 BaseLib:String.obj
+ 0002:00001410 ??_C@_0DJ@JJHGIFMP@Length?5?$DM?$DN?5_gPcd_FixedAtBuild_Pcd@ 0000000000011d90 BaseLib:String.obj
+ 0002:00001450 ??_C@_0EE@FAJFAODK@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011dd0 BaseLib:Unaligned.obj
+ 0002:000014a0 ??_C@_0EF@MFKKFBPN@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000011e20 BaseLib:SafeString.obj
+ 0002:000014e8 ??_C@_0CH@LALFPBMC@?$CI?$CIUINTN?$CJDestination?5?$CG?50x00000001@ 0000000000011e68 BaseLib:SafeString.obj
+ 0002:00001510 ??_C@_0CC@HEBCMBPF@?$CI?$CIUINTN?$CJSource?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 0000000000011e90 BaseLib:SafeString.obj
+ 0002:00001538 ??_C@_0BO@ECNIOIHG@?$CIDestination?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 0000000000011eb8 BaseLib:SafeString.obj
+ 0002:00001558 ??_C@_07KBGDFDAM@StrCpyS?$AA@ 0000000000011ed8 BaseLib:SafeString.obj
+ 0002:00001560 ??_C@_0EA@PDPDJJNN@?$CFa?$CI?$CFd?$CJ?5?$CFa?3?5SAFE_STRING_CONSTRAIN@ 0000000000011ee0 BaseLib:SafeString.obj
+ 0002:000015a0 ??_C@_0BJ@EAEEJIP@?$CISource?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 0000000000011f20 BaseLib:SafeString.obj
+ 0002:000015c0 ??_C@_0EA@BBALOHPI@?$CIDestMax?5?$DM?$DN?5?$CI_gPcd_FixedAtBuild_@ 0000000000011f40 BaseLib:SafeString.obj
+ 0002:00001600 ??_C@_0P@PMIMLIHM@?$CIDestMax?5?$CB?$DN?50?$CJ?$AA@ 0000000000011f80 BaseLib:SafeString.obj
+ 0002:00001610 ??_C@_0BG@EEGIIOKH@?$CIDestMax?5?$DO?5SourceLen?$CJ?$AA@ 0000000000011f90 BaseLib:SafeString.obj
+ 0002:00001630 ??_C@_0FH@PPBLBDBJ@InternalSafeStringNoStrOverlap?5?$CI@ 0000000000011fb0 BaseLib:SafeString.obj
+ 0002:00001688 ??_C@_08INOAHJON@StrnCpyS?$AA@ 0000000000012008 BaseLib:SafeString.obj
+ 0002:00001698 ??_C@_0DP@PBOJGJC@?$CILength?5?$DM?$DN?5?$CI_gPcd_FixedAtBuild_P@ 0000000000012018 BaseLib:SafeString.obj
+ 0002:000016d8 ??_C@_07EBBOPAKF@StrCatS?$AA@ 0000000000012058 BaseLib:SafeString.obj
+ 0002:000016e0 ??_C@_0P@BHOOOJPD@?$CICopyLen?5?$CB?$DN?50?$CJ?$AA@ 0000000000012060 BaseLib:SafeString.obj
+ 0002:000016f0 ??_C@_0BG@BPGICNPK@?$CICopyLen?5?$DO?5SourceLen?$CJ?$AA@ 0000000000012070 BaseLib:SafeString.obj
+ 0002:00001708 ??_C@_0BJ@CNKJJNE@?$CIBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 0000000000012088 BaseLib:SafeString.obj
+ 0002:00001728 ??_C@_0N@KGHEHMDL@Divisor?5?$CB?$DN?50?$AA@ 00000000000120a8 BaseLib:DivU64x32.obj
+ 0002:00001738 ??_C@_0CI@BGLNHBLM@?$CI?$CI?$CIUINTN?$CJ?5?$CIStartOfBuffer?$CJ?$CJ?5?$CG?50x0@ 00000000000120b8 BasePrintLib:PrintLib.obj
+ 0002:00001760 ??_C@_0EI@PHEOPKNG@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000120e0 BasePrintLib:PrintLib.obj
+ 0002:000017a8 ??_C@_0CH@KJLBGOBB@?$CI?$CI?$CIUINTN?$CJ?5?$CIFormatString?$CJ?$CJ?5?$CG?50x01@ 0000000000012128 BasePrintLib:PrintLib.obj
+ 0002:000017d0 ??_C@_0CB@LDBAOPMG@?$CI?$CI?$CIUINTN?$CJ?5?$CIBuffer?$CJ?$CJ?5?$CG?50x01?$CJ?5?$DN?$DN?50@ 0000000000012150 BasePrintLib:PrintLib.obj
+ 0002:00001800 ??_C@_0FA@JGMHCDLA@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000012180 BasePrintLib:PrintLibInternal.obj
+ 0002:00001850 ??_C@_0EB@HDGIDCIO@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 00000000000121d0 BasePrintLib:PrintLibInternal.obj
+ 0002:000018a0 ??_C@_0FJ@HAEMOBLP@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 0000000000012220 BasePrintLib:PrintLibInternal.obj
+ 0002:00001900 ??_C@_0N@PNKFBKME@?$CIWidth?5?$DM?538?$CJ?$AA@ 0000000000012280 BasePrintLib:PrintLibInternal.obj
+ 0002:00001910 ??_C@_0CI@HPJOGFNE@?$CIBufferSize?5?$DO?$DN?5?$CIWidth?5?$CL?51?$CJ?5?$CK?5Inc@ 0000000000012290 BasePrintLib:PrintLibInternal.obj
+ 0002:00001938 ??_C@_0BJ@PPAKKDJG@?$CIFormat?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 00000000000122b8 BasePrintLib:PrintLibInternal.obj
+ 0002:00001960 ??_C@_0ED@LPDDCECB@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 00000000000122e0 BasePrintLib:PrintLibInternal.obj
+ 0002:000019b0 ??_C@_0IM@BFJJFLGB@?$CIStrnLenS?5?$CI?$CICHAR16?5?$CK?$CJFormat?0?5?$CI_g@ 0000000000012330 BasePrintLib:PrintLibInternal.obj
+ 0002:00001a40 ??_C@_0ID@PLGJGION@?$CIAsciiStrnLenS?5?$CIFormat?0?5?$CI_gPcd_F@ 00000000000123c0 BasePrintLib:PrintLibInternal.obj
+ 0002:00001ac8 ??_C@_0O@MLOLIMFM@?$DMnull?5string?$DO?$AA@ 0000000000012448 BasePrintLib:PrintLibInternal.obj
+ 0002:00001ad8 ??_C@_0M@BJJDNPHK@?$DMnull?5guid?$DO?$AA@ 0000000000012458 BasePrintLib:PrintLibInternal.obj
+ 0002:00001ae8 ??_C@_0DB@PMLHLBMO@?$CF08x?9?$CF04x?9?$CF04x?9?$CF02x?$CF02x?9?$CF02x?$CF02x@ 0000000000012468 BasePrintLib:PrintLibInternal.obj
+ 0002:00001b20 ??_C@_0M@LHGBCIKM@?$DMnull?5time?$DO?$AA@ 00000000000124a0 BasePrintLib:PrintLibInternal.obj
+ 0002:00001b30 ??_C@_0BK@FCPKCIDD@?$CF02d?1?$CF02d?1?$CF04d?5?5?$CF02d?3?$CF02d?$AA@ 00000000000124b0 BasePrintLib:PrintLibInternal.obj
+ 0002:00001b4c ??_C@_04JIMNDDED@?$CF08X?$AA@ 00000000000124cc BasePrintLib:PrintLibInternal.obj
+ 0002:00001b54 ??_C@_02PCIJFNDE@?$AN?6?$AA@ 00000000000124d4 BasePrintLib:PrintLibInternal.obj
+ 0002:00001b58 ??_C@_01LIIJDEN@?$AN?$AA@ 00000000000124d8 BasePrintLib:PrintLibInternal.obj
+ 0002:00001b60 mWarningString 00000000000124e0 BasePrintLib:PrintLibInternal.obj
+ 0002:00001c00 mErrorString 0000000000012580 BasePrintLib:PrintLibInternal.obj
+ 0002:00001ec0 mHexStr 0000000000012840 BasePrintLib:PrintLibInternal.obj
+ 0002:00001ed0 ??_C@_0BH@LKMBFCBF@Format?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012850 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00001ef0 ??_C@_0FD@OABGLBHF@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000012870 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00001f48 ??_C@_0BE@ECBJLCDE@ASSERT?5?$CFa?$CI?$CFLu?$CJ?3?5?$CFa?6?$AA@ 00000000000128c8 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00001f60 ??_C@_0BN@COECPDCC@gImageHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000128e0 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00001f80 ??_C@_0GE@FKBNDHHB@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000012900 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00001fe8 ??_C@_0BE@DGNHAHIL@gST?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012968 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00002000 ??_C@_0BE@BDFJLGLN@gBS?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012980 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00002020 ??_C@_0FO@BEMDJMPM@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000129a0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:00002080 ??_C@_0DO@GEEICOOO@AllocationSize?5?$DM?$DN?5?$CI0xFFFFFFFFFFF@ 0000000000012a00 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:000020c0 ??_C@_0GI@KEFAHLGJ@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000012a40 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00002128 ??_C@_0DC@CNNBPJA@mDevicePathLibDevicePathUtilitie@ 0000000000012aa8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00002160 ??_C@_0BF@CBLMFKOC@Node?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012ae0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00002178 ??_C@_0BE@OBDFIHND@gRT?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012af8 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:00002190 ??_C@_0GK@FJIMGEPP@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000012b10 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:00002200 ??_C@_0EC@DCGCAOKF@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000012b80 UefiLib:UefiLib.obj
+ 0002:00002248 ??_C@_0BN@HHGHCLME@ProtocolGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012bc8 UefiLib:UefiLib.obj
+ 0002:00002268 ??_C@_0BP@DEIEJICI@NotifyFunction?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012be8 UefiLib:UefiLib.obj
+ 0002:00002288 ??_C@_0BN@OMCJCPAI@Registration?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012c08 UefiLib:UefiLib.obj
+ 0002:000022a8 ??_C@_0BF@JGGLMCFN@Lock?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012c28 UefiLib:UefiLib.obj
+ 0002:000022c0 ??_C@_0CD@PGOFFOAH@Lock?9?$DOLock?5?$CB?$DN?5EfiLockUninitializ@ 0000000000012c40 UefiLib:UefiLib.obj
+ 0002:000022e8 ??_C@_0BO@FHNOFLFJ@Lock?9?$DOLock?5?$DN?$DN?5EfiLockAcquired?$AA@ 0000000000012c68 UefiLib:UefiLib.obj
+ 0002:00002310 ??_C@_0EG@GOBFPEEP@Name?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5Guid?5?$CB?$DN?5@ 0000000000012c90 UefiLib:UefiLib.obj
+ 0002:00002358 ??_C@_0BH@FMEOEIBC@?$CKValue?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012cd8 UefiLib:UefiLib.obj
+ 0002:00002370 ??_C@_0CD@OLFKAJF@SupportedLanguages?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?5@ 0000000000012cf0 UefiLib:UefiLib.obj
+ 0002:000023a0 ??_C@_0EK@CMFOJGEC@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000012d20 UefiLib:UefiDriverModel.obj
+ 0002:000023f0 ??_C@_0BD@BHENKNKP@NumberOfLines?5?$CB?$DN?50?$AA@ 0000000000012d70 UefiLib:Console.obj
+ 0002:00002410 ??_C@_0EC@EJLIGNPA@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000012d90 UefiLib:Console.obj
+ 0002:00002458 ??_C@_0P@ICDOOCHP@MaxLength?5?$CB?$DN?50?$AA@ 0000000000012dd8 UefiLib:Console.obj
+ 0002:00002468 ??_C@_0BF@DMEONNDO@Line?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012de8 UefiLib:Console.obj
+ 0002:00002480 ??_C@_0BK@IHAIHFJE@TmpString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012e00 UefiLib:Console.obj
+ 0002:000024a0 ??_C@_17LGKOMLJ@?$AA?4?$AA?4?$AA?4?$AA?$AA@ 0000000000012e20 UefiLib:Console.obj
+ 0002:000024b0 ??_C@_0FO@HNLMMFDN@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000012e30 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0002:00002510 ??_C@_0EK@GBBIEMHN@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000012e90 DxeNetLib:DxeNetLib.obj
+ 0002:00002560 ??_C@_0N@NMJPNKHJ@NetMask?5?$CB?$DN?50?$AA@ 0000000000012ee0 DxeNetLib:DxeNetLib.obj
+ 0002:00002570 ??_C@_0CI@KOOBFNBF@?$CIMaskLength?5?$DO?$DN?50?$CJ?5?$CG?$CG?5?$CIMaskLength@ 0000000000012ef0 DxeNetLib:DxeNetLib.obj
+ 0002:00002598 ??_C@_0DG@FBNPJOEF@PostEntry?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5New@ 0000000000012f18 DxeNetLib:DxeNetLib.obj
+ 0002:000025d0 ??_C@_0BE@GMKCNDGH@Map?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000012f50 DxeNetLib:DxeNetLib.obj
+ 0002:000025e8 ??_C@_0CO@MHIOADDG@?$CIMap?9?$DOCount?5?$DN?$DN?50?$CJ?5?$CG?$CG?5IsListEmpty@ 0000000000012f68 DxeNetLib:DxeNetLib.obj
+ 0002:00002618 ??_C@_0BN@JFJNMPHO@IsListEmpty?5?$CI?$CGMap?9?$DORecycled?$CJ?$AA@ 0000000000012f98 DxeNetLib:DxeNetLib.obj
+ 0002:00002638 ??_C@_0CL@KMKICODD@Map?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5Key?5?$CB?$DN?5?$CI?$CI@ 0000000000012fb8 DxeNetLib:DxeNetLib.obj
+ 0002:00002668 ??_C@_0CM@FAAJCOOB@Map?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5Item?5?$CB?$DN?5?$CI@ 0000000000012fe8 DxeNetLib:DxeNetLib.obj
+ 0002:00002698 ??_C@_0DA@EGCKNGAF@?$CIMap?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CIItem?5?$CB@ 0000000000013018 DxeNetLib:DxeNetLib.obj
+ 0002:000026c8 ??_C@_0BJ@KPMFLONP@NetItemInMap?5?$CIMap?0?5Item?$CJ?$AA@ 0000000000013048 DxeNetLib:DxeNetLib.obj
+ 0002:000026e8 ??_C@_0CB@DNKJKBEA@Map?5?$CG?$CG?5?$CBIsListEmpty?5?$CI?$CGMap?9?$DOUsed?$CJ@ 0000000000013068 DxeNetLib:DxeNetLib.obj
+ 0002:00002710 ??_C@_0DE@HCAAMLMB@?$CIMap?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CICallBa@ 0000000000013090 DxeNetLib:DxeNetLib.obj
+ 0002:00002750 ??_C@_0EG@FMMHPKDI@?$CIServiceBindingGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ@ 00000000000130d0 DxeNetLib:DxeNetLib.obj
+ 0002:00002798 ??_C@_0CD@PCCGAHJM@ServiceBindingGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?5@ 0000000000013118 DxeNetLib:DxeNetLib.obj
+ 0002:000027c0 ??_C@_0BK@GPKNKKJO@MacString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000013140 DxeNetLib:DxeNetLib.obj
+ 0002:000027e0 gIp4AllMasks 0000000000013160 DxeNetLib:DxeNetLib.obj
+ 0002:00002868 ??_C@_0BA@MDHFKOHH@BlockOpNum?5?$DO?$DN?51?$AA@ 00000000000131e8 DxeNetLib:NetBuffer.obj
+ 0002:00002880 ??_C@_0EK@HPDBBEBA@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000013200 DxeNetLib:NetBuffer.obj
+ 0002:000028d0 ??_C@_07DJKBCKNJ@Len?5?$DO?50?$AA@ 0000000000013250 DxeNetLib:NetBuffer.obj
+ 0002:000028d8 ??_C@_0BH@HKOFEGGJ@Vector?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000013258 DxeNetLib:NetBuffer.obj
+ 0002:000028f0 ??_C@_0GP@BJHFFKHJ@?$CI?$CIVector?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CI?$CI@ 0000000000013270 DxeNetLib:NetBuffer.obj
+ 0002:00002960 ??_C@_0BD@DIPGLBBO@Vector?9?$DORefCnt?5?$DO?50?$AA@ 00000000000132e0 DxeNetLib:NetBuffer.obj
+ 0002:00002978 ??_C@_0BF@LJMLDKHP@Nbuf?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000132f8 DxeNetLib:NetBuffer.obj
+ 0002:00002990 ??_C@_0GL@IFMHLCLE@?$CI?$CINbuf?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CI?$CINb@ 0000000000013310 DxeNetLib:NetBuffer.obj
+ 0002:00002a00 ??_C@_0BB@DOGOGLPG@Nbuf?9?$DORefCnt?5?$DO?50?$AA@ 0000000000013380 DxeNetLib:NetBuffer.obj
+ 0002:00002a20 ??_C@_0HL@FGMBHKJG@?$CI?$CINbuf?9?$DOVector?$CJ?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ@ 00000000000133a0 DxeNetLib:NetBuffer.obj
+ 0002:00002aa0 ??_C@_0BJ@KIFBBHL@Index?5?$DM?5Nbuf?9?$DOBlockOpNum?$AA@ 0000000000013420 DxeNetLib:NetBuffer.obj
+ 0002:00002ac0 ??_C@_0O@GCGIAIEL@Last?5?$DO?$DN?5First?$AA@ 0000000000013440 DxeNetLib:NetBuffer.obj
+ 0002:00002ad0 ??_C@_0EL@JHACLFKC@?$CIExtFragment?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG@ 0000000000013450 DxeNetLib:NetBuffer.obj
+ 0002:00002b20 ??_C@_0DC@MGLKJFKO@?$CINbuf?9?$DOBlockOpNum?5?$DN?$DN?51?$CJ?5?$CG?$CG?5?$CINbuf@ 00000000000134a0 DxeNetLib:NetBuffer.obj
+ 0002:00002b60 ??_C@_0ED@NCEEIHFB@?$CINbuf?9?$DOVector?9?$DOFree?5?$DN?$DN?5?$CI?$CIvoid?5?$CK?$CJ@ 00000000000134e0 DxeNetLib:NetBuffer.obj
+ 0002:00002ba8 ??_C@_0DE@FGAADEGF@Nbuf?9?$DOBlockOp?$FL0?$FN?4Tail?5?$DM?$DN?5Nbuf?9?$DOB@ 0000000000013528 DxeNetLib:NetBuffer.obj
+ 0002:00002be0 ??_C@_0DE@CILPCCFL@?$CIBlockOp?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?5?$CG?$CG?5?$CIBl@ 0000000000013560 DxeNetLib:NetBuffer.obj
+ 0002:00002c14 ??_C@_04IFLCJLKB@Dest?$AA@ 0000000000013594 DxeNetLib:NetBuffer.obj
+ 0002:00002c20 ??_C@_0BJ@IHHEPCDD@Nbuf?9?$DOVector?9?$DORefCnt?5?$DO?50?$AA@ 00000000000135a0 DxeNetLib:NetBuffer.obj
+ 0002:00002c40 ??_C@_0EH@NHHMJFMK@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000135c0 DxeDpcLib:DpcLib.obj
+ 0002:00002c88 ??_C@_0BK@KLJHMMPJ@HiiHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000013608 UefiHiiLib:HiiString.obj
+ 0002:00002cb0 ??_C@_0EN@DDBLCGFI@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000013630 UefiHiiLib:HiiString.obj
+ 0002:00002d00 ??_C@_06PLDEFKP@x?9UEFI?$AA@ 0000000000013680 UefiHiiLib:HiiString.obj
+ 0002:00002d08 ??_C@_0CA@OEKIMLLB@PackageListGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000013688 UefiHiiLib:HiiString.obj
+ 0002:00002d28 ??_C@_1BK@GGGENMOA@?$AAP?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AAL?$AAa?$AAn?$AAg?$AA?$AA@ 00000000000136a8 UefiHiiLib:HiiString.obj
+ 0002:00002d42 ??_C@_00CNPNBAHC@?$AA@ 00000000000136c2 UefiHiiLib:HiiString.obj
+ 0002:00002d50 ??_C@_0EK@CCOCGB@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000136d0 UefiHiiLib:HiiLib.obj
+ 0002:00002da0 ??_C@_0BN@EHPNHAIF@ConfigString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000013720 UefiHiiLib:HiiLib.obj
+ 0002:00002dc0 ??_C@_1M@DPLGJLCD@?$AAG?$AAU?$AAI?$AAD?$AA?$DN?$AA?$AA@ 0000000000013740 UefiHiiLib:HiiLib.obj
+ 0002:00002dd0 ??_C@_1O@FMIENBLJ@?$AA?$CG?$AAN?$AAA?$AAM?$AAE?$AA?$DN?$AA?$AA@ 0000000000013750 UefiHiiLib:HiiLib.obj
+ 0002:00002de0 ??_C@_1O@GGMHNGIF@?$AA?$CG?$AAP?$AAA?$AAT?$AAH?$AA?$DN?$AA?$AA@ 0000000000013760 UefiHiiLib:HiiLib.obj
+ 0002:00002df0 ??_C@_0BM@LENJOOBF@FirstString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000013770 UefiHiiLib:HiiLib.obj
+ 0002:00002e10 ??_C@_0BN@CGMEJHHH@SecondString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000013790 UefiHiiLib:HiiLib.obj
+ 0002:00002e30 ??_C@_0CC@BCKDEPBB@StartSearchString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 00000000000137b0 UefiHiiLib:HiiLib.obj
+ 0002:00002e58 ??_C@_0CB@NPMPBLHL@StopSearchString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ@ 00000000000137d8 UefiHiiLib:HiiLib.obj
+ 0002:00002e80 ??_C@_0BK@LFDBOAFJ@ConfigHdr?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000013800 UefiHiiLib:HiiLib.obj
+ 0002:00002ea0 ??_C@_1M@IDEFLMF@?$AA?$CF?$AAs?$AA?$CG?$AA?$CF?$AAs?$AA?$AA@ 0000000000013820 UefiHiiLib:HiiLib.obj
+ 0002:00002eb0 mConfigHdrTemplate 0000000000013830 UefiHiiLib:HiiLib.obj
+ 0002:00002f20 mEndOfPakageList 00000000000138a0 UefiHiiLib:HiiLib.obj
+ 0002:00002f30 ??_C@_0EP@LMJDKFAP@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000138b0 UefiHiiLib:HiiLanguage.obj
+ 0002:00002f80 ??_C@_0DI@DAGDPLPG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 0000000000013900 BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0002:00002fc0 ??_C@_0FG@BHBOFAHM@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000013940 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00003018 ??_C@_0CO@LECKNDNC@?$CI?$CI?$CIUINTN?$CJBuffer?$CJ?5?$CG?5?$CIsizeof?5?$CIValu@ 0000000000013998 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00003048 ??_C@_0CF@LEICOABD@?$CILength?5?$CG?5?$CIsizeof?5?$CIValue?$CJ?5?9?51?$CJ?$CJ?5@ 00000000000139c8 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00003070 ??_C@_0EN@EIGKPMFG@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000139f0 BaseLib:DivU64x32Remainder.obj
+ 0003:00000000 gEfiLoadedImageProtocolGuid 0000000000013bc0 Ip4Dxe:AutoGen.obj
+ 0003:00000010 gEfiGlobalVariableGuid 0000000000013bd0 Ip4Dxe:AutoGen.obj
+ 0003:00000020 gEfiComponentName2ProtocolGuid 0000000000013be0 Ip4Dxe:AutoGen.obj
+ 0003:00000030 gIp4Config2NvDataGuid 0000000000013bf0 Ip4Dxe:AutoGen.obj
+ 0003:00000040 gEfiDhcp4ServiceBindingProtocolGuid 0000000000013c00 Ip4Dxe:AutoGen.obj
+ 0003:00000050 gEfiDevicePathProtocolGuid 0000000000013c10 Ip4Dxe:AutoGen.obj
+ 0003:00000060 gEfiSimpleNetworkProtocolGuid 0000000000013c20 Ip4Dxe:AutoGen.obj
+ 0003:00000070 gEfiIpSec2ProtocolGuid 0000000000013c30 Ip4Dxe:AutoGen.obj
+ 0003:00000080 gEfiHiiConfigRoutingProtocolGuid 0000000000013c40 Ip4Dxe:AutoGen.obj
+ 0003:00000090 gEfiIp4Config2ProtocolGuid 0000000000013c50 Ip4Dxe:AutoGen.obj
+ 0003:000000a0 gEfiHiiImageProtocolGuid 0000000000013c60 Ip4Dxe:AutoGen.obj
+ 0003:000000b0 gEfiDevicePathUtilitiesProtocolGuid 0000000000013c70 Ip4Dxe:AutoGen.obj
+ 0003:000000c0 gEfiIp4ServiceBindingProtocolGuid 0000000000013c80 Ip4Dxe:AutoGen.obj
+ 0003:000000d0 gEfiHiiDatabaseProtocolGuid 0000000000013c90 Ip4Dxe:AutoGen.obj
+ 0003:000000e0 gEfiHiiStringProtocolGuid 0000000000013ca0 Ip4Dxe:AutoGen.obj
+ 0003:000000f0 gEfiHiiConfigAccessProtocolGuid 0000000000013cb0 Ip4Dxe:AutoGen.obj
+ 0003:00000100 gEfiIp4ProtocolGuid 0000000000013cc0 Ip4Dxe:AutoGen.obj
+ 0003:00000110 gEfiManagedNetworkServiceBindingProtocolGuid 0000000000013cd0 Ip4Dxe:AutoGen.obj
+ 0003:00000120 gEfiFormBrowser2ProtocolGuid 0000000000013ce0 Ip4Dxe:AutoGen.obj
+ 0003:00000130 gEfiDriverBindingProtocolGuid 0000000000013cf0 Ip4Dxe:AutoGen.obj
+ 0003:00000140 Ip4DxeStrings 0000000000013d00 Ip4Dxe:AutoGen.obj
+ 0003:000005b0 gEfiArpServiceBindingProtocolGuid 0000000000014170 Ip4Dxe:AutoGen.obj
+ 0003:000005c0 gEfiComponentNameProtocolGuid 0000000000014180 Ip4Dxe:AutoGen.obj
+ 0003:000005d0 gEfiDpcProtocolGuid 0000000000014190 Ip4Dxe:AutoGen.obj
+ 0003:000005e0 gEfiCallerIdGuid 00000000000141a0 Ip4Dxe:AutoGen.obj
+ 0003:000005f0 gEfiDhcp4ProtocolGuid 00000000000141b0 Ip4Dxe:AutoGen.obj
+ 0003:00000600 gEfiManagedNetworkProtocolGuid 00000000000141c0 Ip4Dxe:AutoGen.obj
+ 0003:00000610 gEfiArpProtocolGuid 00000000000141d0 Ip4Dxe:AutoGen.obj
+ 0003:00000620 gEfiHiiFontProtocolGuid 00000000000141e0 Ip4Dxe:AutoGen.obj
+ 0003:00000630 gIp4DriverBinding 00000000000141f0 Ip4Dxe:Ip4Driver.obj
+ 0003:00000660 mEfiIp4ProtocolTemplete 0000000000014220 Ip4Dxe:Ip4Impl.obj
+ 0003:000006a0 gIp4ComponentName 0000000000014260 Ip4Dxe:ComponentName.obj
+ 0003:000006b8 gIp4ComponentName2 0000000000014278 Ip4Dxe:ComponentName.obj
+ 0003:000006d0 mIp4DriverNameTable 0000000000014290 Ip4Dxe:ComponentName.obj
+ 0003:000006f0 mIp4Config2InstanceList 00000000000142b0 Ip4Dxe:Ip4Config2Impl.obj
+ 0003:00000700 mRouteAlertOption 00000000000142c0 Ip4Dxe:Ip4Igmp.obj
+ 0003:00000708 mIp4SupportedIcmp 00000000000142c8 Ip4Dxe:Ip4Icmp.obj
+ 0003:00000738 mIcmpClass 00000000000142f8 Ip4Dxe:Ip4Icmp.obj
+ 0003:00000760 mIp4Config2StorageName 0000000000014320 Ip4Dxe:Ip4Config2Nv.obj
+ 0003:00000790 Ip4Config2Bin 0000000000014350 Ip4Dxe:Ip4Config2.obj
+ 0003:000008e0 mIpSec2Installed 00000000000144a0 Ip4Dxe:Ip4Driver.obj
+ 0003:000008e8 mIpSec 00000000000144a8 Ip4Dxe:Ip4Impl.obj
+ 0003:000008f0 gIp4ControllerNameTable 00000000000144b0 Ip4Dxe:ComponentName.obj
+ 0003:00000900 gST 00000000000144c0 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00000908 gBS 00000000000144c8 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00000910 gImageHandle 00000000000144d0 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00000918 mDevicePathLibDevicePathUtilities 00000000000144d8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0003:00000920 gRT 00000000000144e0 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0003:00000928 gHiiConfigRouting 00000000000144e8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000930 gHiiString 00000000000144f0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000938 gHiiFont 00000000000144f8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000940 gHiiImage 0000000000014500 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000948 gHiiDatabase 0000000000014508 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000950 mUefiFormBrowser2 0000000000014510 UefiHiiLib:HiiLib.obj
+ 0003:00000958 mDpc 0000000000014518 <common>
+ 0003:00000960 mIp4Id 0000000000014520 <common>
+ 0003:00000980 mZeroMacAddress 0000000000014540 <common>
+
+ entry point at 0001:0000049c
+
+ Static symbols
+
+ 0001:0000003a InternalMemCopyMem.0 00000000000002fa BaseMemoryLibRepStr:CopyMem.obj
+ 0001:0000004a @CopyBackward 000000000000030a BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000053 @CopyBytes 0000000000000313 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:0000014a @UseRepIo 000000000000040a BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000014c @SevNoRepIo_Done 000000000000040c BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000164 @IoReadFifo8_NoRep 0000000000000424 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000166 @IoReadFifo8_Loop 0000000000000426 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000016e @IoReadFifo8_Done 000000000000042e BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000187 @IoReadFifo16_NoRep 0000000000000447 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000189 @IoReadFifo16_Loop 0000000000000449 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000194 @IoReadFifo16_Done 0000000000000454 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001ac @IoReadFifo32_NoRep 000000000000046c BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001ae @IoReadFifo32_Loop 000000000000046e BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001b7 @IoReadFifo32_Done 0000000000000477 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001cf @IoWriteFifo8_NoRep 000000000000048f BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001d1 @IoWriteFifo8_Loop 0000000000000491 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001d9 @IoWriteFifo8_Done 0000000000000499 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001f2 @IoWriteFifo16_NoRep 00000000000004b2 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001f4 @IoWriteFifo16_Loop 00000000000004b4 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001ff @IoWriteFifo16_Done 00000000000004bf BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000217 @IoWriteFifo32_NoRep 00000000000004d7 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000219 @IoWriteFifo32_Loop 00000000000004d9 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000222 @IoWriteFifo32_Done 00000000000004e2 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000028e TdVmCall.no_return_data 000000000000054e BaseLib:TdVmcall.obj
+ 0001:0000030b TdCall.exit 00000000000005cb BaseLib:TdCall.obj
+ 0003:000008f8 mDebugIoPortChecked 00000000000144b8 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0003:000008f9 mDebugIoPortFound 00000000000144b9 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0004:00000000 $pdata$_DriverUnloadHandler 0000000000014560 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0004:0000000c $pdata$_ModuleEntryPoint 000000000001456c UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0004:00000018 $pdata$ProcessLibraryConstructorList 0000000000014578 Ip4Dxe:AutoGen.obj
+ 0004:00000024 $pdata$ProcessModuleEntryPointList 0000000000014584 Ip4Dxe:AutoGen.obj
+ 0004:00000030 $pdata$IpSec2InstalledCallback 0000000000014590 Ip4Dxe:Ip4Driver.obj
+ 0004:0000003c $pdata$Ip4DriverBindingSupported 000000000001459c Ip4Dxe:Ip4Driver.obj
+ 0004:00000048 $pdata$Ip4CreateService 00000000000145a8 Ip4Dxe:Ip4Driver.obj
+ 0004:00000054 $pdata$Ip4CleanService 00000000000145b4 Ip4Dxe:Ip4Driver.obj
+ 0004:00000060 $pdata$Ip4DestroyChildEntryInHandleBuffer 00000000000145c0 Ip4Dxe:Ip4Driver.obj
+ 0004:0000006c $pdata$Ip4DriverBindingStart 00000000000145cc Ip4Dxe:Ip4Driver.obj
+ 0004:00000078 $pdata$Ip4DriverBindingStop 00000000000145d8 Ip4Dxe:Ip4Driver.obj
+ 0004:00000084 $pdata$Ip4ServiceBindingCreateChild 00000000000145e4 Ip4Dxe:Ip4Driver.obj
+ 0004:00000090 $pdata$Ip4ServiceBindingDestroyChild 00000000000145f0 Ip4Dxe:Ip4Driver.obj
+ 0004:0000009c $pdata$EfiIp4GetModeData 00000000000145fc Ip4Dxe:Ip4Impl.obj
+ 0004:000000a8 $pdata$Ip4ServiceConfigMnp 0000000000014608 Ip4Dxe:Ip4Impl.obj
+ 0004:000000b4 $pdata$Ip4InitProtocol 0000000000014614 Ip4Dxe:Ip4Impl.obj
+ 0004:000000c0 $pdata$Ip4ConfigProtocol 0000000000014620 Ip4Dxe:Ip4Impl.obj
+ 0004:000000cc $pdata$Ip4CleanProtocol 000000000001462c Ip4Dxe:Ip4Impl.obj
+ 0004:000000d8 $pdata$EfiIp4Configure 0000000000014638 Ip4Dxe:Ip4Impl.obj
+ 0004:000000e4 $pdata$Ip4Groups 0000000000014644 Ip4Dxe:Ip4Impl.obj
+ 0004:000000f0 $pdata$EfiIp4Groups 0000000000014650 Ip4Dxe:Ip4Impl.obj
+ 0004:000000fc $pdata$EfiIp4Routes 000000000001465c Ip4Dxe:Ip4Impl.obj
+ 0004:00000108 $pdata$Ip4TxTokenValid 0000000000014668 Ip4Dxe:Ip4Impl.obj
+ 0004:00000114 $pdata$Ip4FreeTxToken 0000000000014674 Ip4Dxe:Ip4Impl.obj
+ 0004:00000120 $pdata$Ip4OnPacketSent 0000000000014680 Ip4Dxe:Ip4Impl.obj
+ 0004:0000012c $pdata$EfiIp4Transmit 000000000001468c Ip4Dxe:Ip4Impl.obj
+ 0004:00000138 $pdata$EfiIp4Receive 0000000000014698 Ip4Dxe:Ip4Impl.obj
+ 0004:00000144 $pdata$Ip4CancelTxTokens 00000000000146a4 Ip4Dxe:Ip4Impl.obj
+ 0004:00000150 $pdata$Ip4CancelRxTokens 00000000000146b0 Ip4Dxe:Ip4Impl.obj
+ 0004:0000015c $pdata$Ip4Cancel 00000000000146bc Ip4Dxe:Ip4Impl.obj
+ 0004:00000168 $pdata$EfiIp4Cancel 00000000000146c8 Ip4Dxe:Ip4Impl.obj
+ 0004:00000174 $pdata$EfiIp4Poll 00000000000146d4 Ip4Dxe:Ip4Impl.obj
+ 0004:00000180 $pdata$Ip4SentPacketTicking 00000000000146e0 Ip4Dxe:Ip4Impl.obj
+ 0004:0000018c $pdata$Ip4TimerTicking 00000000000146ec Ip4Dxe:Ip4Impl.obj
+ 0004:00000198 $pdata$Ip4TimerReconfigChecking 00000000000146f8 Ip4Dxe:Ip4Impl.obj
+ 0004:000001a4 $pdata$Ip4FreeAssembleEntry 0000000000014704 Ip4Dxe:Ip4Input.obj
+ 0004:000001b0 $pdata$Ip4CleanAssembleTable 0000000000014710 Ip4Dxe:Ip4Input.obj
+ 0004:000001bc $pdata$Ip4TrimPacket 000000000001471c Ip4Dxe:Ip4Input.obj
+ 0004:000001c8 $pdata$Ip4Reassemble 0000000000014728 Ip4Dxe:Ip4Input.obj
+ 0004:000001d4 $pdata$Ip4IpSecFree 0000000000014734 Ip4Dxe:Ip4Input.obj
+ 0004:000001e0 $pdata$Ip4IpSecProcessPacket 0000000000014740 Ip4Dxe:Ip4Input.obj
+ 0004:000001ec $pdata$Ip4PreProcessPacket 000000000001474c Ip4Dxe:Ip4Input.obj
+ 0004:000001f8 $pdata$Ip4AccpetFrame 0000000000014758 Ip4Dxe:Ip4Input.obj
+ 0004:00000204 $pdata$Ip4OnRecyclePacket 0000000000014764 Ip4Dxe:Ip4Input.obj
+ 0004:00000210 $pdata$Ip4WrapRxData 0000000000014770 Ip4Dxe:Ip4Input.obj
+ 0004:0000021c $pdata$Ip4InstanceDeliverPacket 000000000001477c Ip4Dxe:Ip4Input.obj
+ 0004:00000228 $pdata$Ip4InterfaceEnquePacket 0000000000014788 Ip4Dxe:Ip4Input.obj
+ 0004:00000234 $pdata$Ip4Demultiplex 0000000000014794 Ip4Dxe:Ip4Input.obj
+ 0004:00000240 $pdata$Ip4ComponentNameGetDriverName 00000000000147a0 Ip4Dxe:ComponentName.obj
+ 0004:0000024c $pdata$UpdateName 00000000000147ac Ip4Dxe:ComponentName.obj
+ 0004:00000258 $pdata$Ip4ComponentNameGetControllerName 00000000000147b8 Ip4Dxe:ComponentName.obj
+ 0004:00000264 $pdata$Ip4FreeLinkTxToken 00000000000147c4 Ip4Dxe:Ip4If.obj
+ 0004:00000270 $pdata$Ip4FreeArpQue 00000000000147d0 Ip4Dxe:Ip4If.obj
+ 0004:0000027c $pdata$Ip4FreeFrameRxToken 00000000000147dc Ip4Dxe:Ip4If.obj
+ 0004:00000288 $pdata$Ip4CancelFrameArp 00000000000147e8 Ip4Dxe:Ip4If.obj
+ 0004:00000294 $pdata$Ip4CancelFrames 00000000000147f4 Ip4Dxe:Ip4If.obj
+ 0004:000002a0 $pdata$Ip4CreateInterface 0000000000014800 Ip4Dxe:Ip4If.obj
+ 0004:000002ac $pdata$Ip4SetAddress 000000000001480c Ip4Dxe:Ip4If.obj
+ 0004:000002b8 $pdata$Ip4CancelReceive 0000000000014818 Ip4Dxe:Ip4If.obj
+ 0004:000002c4 $pdata$Ip4FreeInterface 0000000000014824 Ip4Dxe:Ip4If.obj
+ 0004:000002d0 $pdata$Ip4SendFrameToDefaultRoute 0000000000014830 Ip4Dxe:Ip4If.obj
+ 0004:000002dc $pdata$Ip4OnArpResolvedDpc 000000000001483c Ip4Dxe:Ip4If.obj
+ 0004:000002e8 $pdata$Ip4OnFrameSentDpc 0000000000014848 Ip4Dxe:Ip4If.obj
+ 0004:000002f4 $pdata$Ip4SendFrame 0000000000014854 Ip4Dxe:Ip4If.obj
+ 0004:00000300 $pdata$Ip4RecycleFrame 0000000000014860 Ip4Dxe:Ip4If.obj
+ 0004:0000030c $pdata$Ip4OnFrameReceivedDpc 000000000001486c Ip4Dxe:Ip4If.obj
+ 0004:00000318 $pdata$Ip4ReceiveFrame 0000000000014878 Ip4Dxe:Ip4If.obj
+ 0004:00000324 $pdata$Ip4Config2DestroyDhcp4 0000000000014884 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:00000330 $pdata$Ip4Config2OnPolicyChanged 0000000000014890 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:0000033c $pdata$Ip4Config2SignalEvent 000000000001489c Ip4Dxe:Ip4Config2Impl.obj
+ 0004:00000348 $pdata$Ip4Config2ReadConfigData 00000000000148a8 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:00000354 $pdata$Ip4Config2WriteConfigData 00000000000148b4 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:00000360 $pdata$Ip4Config2BuildDefaultRouteTable 00000000000148c0 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:0000036c $pdata$Ip4Config2OnDhcp4SbInstalled 00000000000148cc Ip4Dxe:Ip4Config2Impl.obj
+ 0004:00000378 $pdata$Ip4Config2SetDefaultAddr 00000000000148d8 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:00000384 $pdata$Ip4Config2SetDnsServerWorker 00000000000148e4 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:00000390 $pdata$Ip4Config2OnDhcp4Complete 00000000000148f0 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:0000039c $pdata$Ip4StartAutoConfig 00000000000148fc Ip4Dxe:Ip4Config2Impl.obj
+ 0004:000003a8 $pdata$Ip4Config2GetIfInfo 0000000000014908 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:000003b4 $pdata$Ip4Config2SetPolicy 0000000000014914 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:000003c0 $pdata$Ip4Config2SetManualAddress 0000000000014920 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:000003cc $pdata$Ip4Config2SetGateway 000000000001492c Ip4Dxe:Ip4Config2Impl.obj
+ 0004:000003d8 $pdata$Ip4Config2SetDnsServer 0000000000014938 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:000003e4 $pdata$EfiIp4Config2SetData 0000000000014944 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:000003f0 $pdata$EfiIp4Config2GetData 0000000000014950 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:000003fc $pdata$EfiIp4Config2RegisterDataNotify 000000000001495c Ip4Dxe:Ip4Config2Impl.obj
+ 0004:00000408 $pdata$EfiIp4Config2UnregisterDataNotify 0000000000014968 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:00000414 $pdata$Ip4Config2InitInstance 0000000000014974 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:00000420 $pdata$Ip4Config2CleanInstance 0000000000014980 Ip4Dxe:Ip4Config2Impl.obj
+ 0004:0000042c $pdata$Ip4AutoReconfigCallBackDpc 000000000001498c Ip4Dxe:Ip4Config2Impl.obj
+ 0004:00000438 $pdata$Ip4InitIgmp 0000000000014998 Ip4Dxe:Ip4Igmp.obj
+ 0004:00000444 $pdata$Ip4SendIgmpMessage 00000000000149a4 Ip4Dxe:Ip4Igmp.obj
+ 0004:00000450 $pdata$Ip4IgmpHandle 00000000000149b0 Ip4Dxe:Ip4Igmp.obj
+ 0004:0000045c $pdata$Ip4FreeRouteEntry 00000000000149bc Ip4Dxe:Ip4Route.obj
+ 0004:00000468 $pdata$Ip4FreeRouteCacheEntry 00000000000149c8 Ip4Dxe:Ip4Route.obj
+ 0004:00000474 $pdata$Ip4CreateRouteTable 00000000000149d4 Ip4Dxe:Ip4Route.obj
+ 0004:00000480 $pdata$Ip4FreeRouteTable 00000000000149e0 Ip4Dxe:Ip4Route.obj
+ 0004:0000048c $pdata$Ip4AddRoute 00000000000149ec Ip4Dxe:Ip4Route.obj
+ 0004:00000498 $pdata$Ip4DelRoute 00000000000149f8 Ip4Dxe:Ip4Route.obj
+ 0004:000004a4 $pdata$Ip4Route 0000000000014a04 Ip4Dxe:Ip4Route.obj
+ 0004:000004b0 $pdata$Ip4BuildEfiRouteTable 0000000000014a10 Ip4Dxe:Ip4Route.obj
+ 0004:000004bc $pdata$Ip4PrependHead 0000000000014a1c Ip4Dxe:Ip4Output.obj
+ 0004:000004c8 $pdata$Ip4Output 0000000000014a28 Ip4Dxe:Ip4Output.obj
+ 0004:000004d4 $pdata$Ip4ProcessIcmpRedirect 0000000000014a34 Ip4Dxe:Ip4Icmp.obj
+ 0004:000004e0 $pdata$Ip4IcmpReplyEcho 0000000000014a40 Ip4Dxe:Ip4Icmp.obj
+ 0004:000004ec $pdata$Ip4IcmpHandle 0000000000014a4c Ip4Dxe:Ip4Icmp.obj
+ 0004:000004f8 $pdata$Ip4GetHostCast 0000000000014a58 Ip4Dxe:Ip4Common.obj
+ 0004:00000504 $pdata$Ip4StationAddressValid 0000000000014a64 Ip4Dxe:Ip4Common.obj
+ 0004:00000510 $pdata$Ip4OptionIsValid 0000000000014a70 Ip4Dxe:Ip4Option.obj
+ 0004:0000051c $pdata$Ip4CopyOption 0000000000014a7c Ip4Dxe:Ip4Option.obj
+ 0004:00000528 $pdata$Ip4Config2StrToIp 0000000000014a88 Ip4Dxe:Ip4Config2Nv.obj
+ 0004:00000534 $pdata$Ip4Config2StrToIpList 0000000000014a94 Ip4Dxe:Ip4Config2Nv.obj
+ 0004:00000540 $pdata$Ip4Config2IpToStr 0000000000014aa0 Ip4Dxe:Ip4Config2Nv.obj
+ 0004:0000054c $pdata$Ip4Config2IpListToStr 0000000000014aac Ip4Dxe:Ip4Config2Nv.obj
+ 0004:00000558 $pdata$Ip4Config2ConvertConfigNvDataToIfrNvData 0000000000014ab8 Ip4Dxe:Ip4Config2Nv.obj
+ 0004:00000564 $pdata$Ip4Config2ConvertIfrNvDataToConfigNvData 0000000000014ac4 Ip4Dxe:Ip4Config2Nv.obj
+ 0004:00000570 $pdata$Ip4FormExtractConfig 0000000000014ad0 Ip4Dxe:Ip4Config2Nv.obj
+ 0004:0000057c $pdata$Ip4FormRouteConfig 0000000000014adc Ip4Dxe:Ip4Config2Nv.obj
+ 0004:00000588 $pdata$Ip4FormCallback 0000000000014ae8 Ip4Dxe:Ip4Config2Nv.obj
+ 0004:00000594 $pdata$Ip4Config2FormInit 0000000000014af4 Ip4Dxe:Ip4Config2Nv.obj
+ 0004:000005a0 $pdata$Ip4Config2FormUnload 0000000000014b00 Ip4Dxe:Ip4Config2Nv.obj
+ 0004:000005ac $pdata$ZeroMem 0000000000014b0c BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0004:000005b8 $pdata$CopyMem 0000000000014b18 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0004:000005c4 $pdata$CompareMem 0000000000014b24 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0004:000005d0 $pdata$CopyGuid 0000000000014b30 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0004:000005dc $pdata$InternalBaseLibIsListValid 0000000000014b3c BaseLib:LinkedList.obj
+ 0004:000005e8 $pdata$InitializeListHead 0000000000014b48 BaseLib:LinkedList.obj
+ 0004:000005f4 $pdata$InsertHeadList 0000000000014b54 BaseLib:LinkedList.obj
+ 0004:00000600 $pdata$InsertTailList 0000000000014b60 BaseLib:LinkedList.obj
+ 0004:0000060c $pdata$IsListEmpty 0000000000014b6c BaseLib:LinkedList.obj
+ 0004:00000618 $pdata$RemoveEntryList 0000000000014b78 BaseLib:LinkedList.obj
+ 0004:00000624 $pdata$StrLen 0000000000014b84 BaseLib:String.obj
+ 0004:00000630 $pdata$StrnCmp 0000000000014b90 BaseLib:String.obj
+ 0004:0000063c $pdata$StrStr 0000000000014b9c BaseLib:String.obj
+ 0004:00000648 $pdata$AsciiStrLen 0000000000014ba8 BaseLib:String.obj
+ 0004:00000654 $pdata$AsciiStrnCmp 0000000000014bb4 BaseLib:String.obj
+ 0004:00000660 $pdata$ReadUnaligned32 0000000000014bc0 BaseLib:Unaligned.obj
+ 0004:0000066c $pdata$ReadUnaligned64 0000000000014bcc BaseLib:Unaligned.obj
+ 0004:00000678 $pdata$StrnLenS 0000000000014bd8 BaseLib:SafeString.obj
+ 0004:00000684 $pdata$StrCpyS 0000000000014be4 BaseLib:SafeString.obj
+ 0004:00000690 $pdata$StrnCpyS 0000000000014bf0 BaseLib:SafeString.obj
+ 0004:0000069c $pdata$StrCatS 0000000000014bfc BaseLib:SafeString.obj
+ 0004:000006a8 $pdata$UnicodeSPrint 0000000000014c08 BasePrintLib:PrintLib.obj
+ 0004:000006b4 $pdata$UnicodeValueToStringS 0000000000014c14 BasePrintLib:PrintLib.obj
+ 0004:000006c0 $pdata$AsciiSPrint 0000000000014c20 BasePrintLib:PrintLib.obj
+ 0004:000006cc $pdata$BasePrintLibValueToString 0000000000014c2c BasePrintLib:PrintLibInternal.obj
+ 0004:000006d8 $pdata$BasePrintLibConvertValueToStringS 0000000000014c38 BasePrintLib:PrintLibInternal.obj
+ 0004:000006e4 $pdata$BasePrintLibSPrintMarker 0000000000014c44 BasePrintLib:PrintLibInternal.obj
+ 0004:000006f0 $pdata$BasePrintLibSPrint 0000000000014c50 BasePrintLib:PrintLibInternal.obj
+ 0004:000006fc $pdata$DebugPrint 0000000000014c5c PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000708 $pdata$DebugPrintMarker 0000000000014c68 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000714 $pdata$DebugAssert 0000000000014c74 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000720 $pdata$InternalAllocatePool 0000000000014c80 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:0000072c $pdata$AllocateZeroPool 0000000000014c8c UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000738 $pdata$InternalAllocateCopyPool 0000000000014c98 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000744 $pdata$FreePool 0000000000014ca4 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000750 $pdata$DevicePathSubType 0000000000014cb0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:0000075c $pdata$DevicePathNodeLength 0000000000014cbc UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000768 $pdata$NextDevicePathNode 0000000000014cc8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000774 $pdata$IsDevicePathEndType 0000000000014cd4 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000780 $pdata$IsDevicePathEnd 0000000000014ce0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:0000078c $pdata$SetDevicePathNodeLength 0000000000014cec UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000798 $pdata$DevicePathFromHandle 0000000000014cf8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000007a4 $pdata$CompareIso639LanguageCode 0000000000014d04 UefiLib:UefiLib.obj
+ 0004:000007b0 $pdata$EfiCreateProtocolNotifyEvent 0000000000014d10 UefiLib:UefiLib.obj
+ 0004:000007bc $pdata$EfiAcquireLockOrFail 0000000000014d1c UefiLib:UefiLib.obj
+ 0004:000007c8 $pdata$EfiReleaseLock 0000000000014d28 UefiLib:UefiLib.obj
+ 0004:000007d4 $pdata$IsLanguageSupported 0000000000014d34 UefiLib:UefiLib.obj
+ 0004:000007e0 $pdata$LookupUnicodeString2 0000000000014d40 UefiLib:UefiLib.obj
+ 0004:000007ec $pdata$AddUnicodeString2 0000000000014d4c UefiLib:UefiLib.obj
+ 0004:000007f8 $pdata$FreeUnicodeStringTable 0000000000014d58 UefiLib:UefiLib.obj
+ 0004:00000804 $pdata$GetEfiGlobalVariable2 0000000000014d64 UefiLib:UefiLib.obj
+ 0004:00000810 $pdata$GetBestLanguage 0000000000014d70 UefiLib:UefiLib.obj
+ 0004:0000081c $pdata$UefiLibGetStringWidth 0000000000014d7c UefiLib:Console.obj
+ 0004:00000828 $pdata$CreatePopUp 0000000000014d88 UefiLib:Console.obj
+ 0004:00000834 $pdata$NetIp4IsUnicast 0000000000014d94 DxeNetLib:DxeNetLib.obj
+ 0004:00000840 $pdata$NetListRemoveHead 0000000000014da0 DxeNetLib:DxeNetLib.obj
+ 0004:0000084c $pdata$NetListInsertBefore 0000000000014dac DxeNetLib:DxeNetLib.obj
+ 0004:00000858 $pdata$NetDestroyLinkList 0000000000014db8 DxeNetLib:DxeNetLib.obj
+ 0004:00000864 $pdata$NetMapInit 0000000000014dc4 DxeNetLib:DxeNetLib.obj
+ 0004:00000870 $pdata$NetMapClean 0000000000014dd0 DxeNetLib:DxeNetLib.obj
+ 0004:0000087c $pdata$NetMapIsEmpty 0000000000014ddc DxeNetLib:DxeNetLib.obj
+ 0004:00000888 $pdata$NetMapAllocItem 0000000000014de8 DxeNetLib:DxeNetLib.obj
+ 0004:00000894 $pdata$NetMapInsertTail 0000000000014df4 DxeNetLib:DxeNetLib.obj
+ 0004:000008a0 $pdata$NetMapFindKey 0000000000014e00 DxeNetLib:DxeNetLib.obj
+ 0004:000008ac $pdata$NetMapRemoveItem 0000000000014e0c DxeNetLib:DxeNetLib.obj
+ 0004:000008b8 $pdata$NetMapIterate 0000000000014e18 DxeNetLib:DxeNetLib.obj
+ 0004:000008c4 $pdata$NetLibCreateServiceChild 0000000000014e24 DxeNetLib:DxeNetLib.obj
+ 0004:000008d0 $pdata$NetLibDestroyServiceChild 0000000000014e30 DxeNetLib:DxeNetLib.obj
+ 0004:000008dc $pdata$NetLibGetSnpHandle 0000000000014e3c DxeNetLib:DxeNetLib.obj
+ 0004:000008e8 $pdata$NetLibGetVlanId 0000000000014e48 DxeNetLib:DxeNetLib.obj
+ 0004:000008f4 $pdata$NetLibGetMacString 0000000000014e54 DxeNetLib:DxeNetLib.obj
+ 0004:00000900 $pdata$NetLibGetNicHandle 0000000000014e60 DxeNetLib:DxeNetLib.obj
+ 0004:0000090c $pdata$NetbufAllocStruct 0000000000014e6c DxeNetLib:NetBuffer.obj
+ 0004:00000918 $pdata$NetbufAlloc 0000000000014e78 DxeNetLib:NetBuffer.obj
+ 0004:00000924 $pdata$NetbufFreeVector 0000000000014e84 DxeNetLib:NetBuffer.obj
+ 0004:00000930 $pdata$NetbufFree 0000000000014e90 DxeNetLib:NetBuffer.obj
+ 0004:0000093c $pdata$NetbufClone 0000000000014e9c DxeNetLib:NetBuffer.obj
+ 0004:00000948 $pdata$NetbufDuplicate 0000000000014ea8 DxeNetLib:NetBuffer.obj
+ 0004:00000954 $pdata$NetbufGetByte 0000000000014eb4 DxeNetLib:NetBuffer.obj
+ 0004:00000960 $pdata$NetbufSetBlock 0000000000014ec0 DxeNetLib:NetBuffer.obj
+ 0004:0000096c $pdata$NetbufSetBlockOp 0000000000014ecc DxeNetLib:NetBuffer.obj
+ 0004:00000978 $pdata$NetbufGetFragment 0000000000014ed8 DxeNetLib:NetBuffer.obj
+ 0004:00000984 $pdata$NetbufFromExt 0000000000014ee4 DxeNetLib:NetBuffer.obj
+ 0004:00000990 $pdata$NetbufBuildExt 0000000000014ef0 DxeNetLib:NetBuffer.obj
+ 0004:0000099c $pdata$NetbufReserve 0000000000014efc DxeNetLib:NetBuffer.obj
+ 0004:000009a8 $pdata$NetbufAllocSpace 0000000000014f08 DxeNetLib:NetBuffer.obj
+ 0004:000009b4 $pdata$NetblockTrim 0000000000014f14 DxeNetLib:NetBuffer.obj
+ 0004:000009c0 $pdata$NetbufTrim 0000000000014f20 DxeNetLib:NetBuffer.obj
+ 0004:000009cc $pdata$NetbufCopy 0000000000014f2c DxeNetLib:NetBuffer.obj
+ 0004:000009d8 $pdata$NetbufChecksum 0000000000014f38 DxeNetLib:NetBuffer.obj
+ 0004:000009e4 $pdata$NetIpSecNetbufFree 0000000000014f44 DxeNetLib:NetBuffer.obj
+ 0004:000009f0 $pdata$HiiSetString 0000000000014f50 UefiHiiLib:HiiString.obj
+ 0004:000009fc $pdata$HiiGetString 0000000000014f5c UefiHiiLib:HiiString.obj
+ 0004:00000a08 $pdata$HiiAddPackages 0000000000014f68 UefiHiiLib:HiiLib.obj
+ 0004:00000a14 $pdata$InternalHiiBrowserCallback 0000000000014f74 UefiHiiLib:HiiLib.obj
+ 0004:00000a20 $pdata$HiiConstructConfigHdr 0000000000014f80 UefiHiiLib:HiiLib.obj
+ 0004:00000a2c $pdata$InternalHiiCompareSubString 0000000000014f8c UefiHiiLib:HiiLib.obj
+ 0004:00000a38 $pdata$HiiIsConfigHdrMatch 0000000000014f98 UefiHiiLib:HiiLib.obj
+ 0004:00000a44 $pdata$HiiGetBrowserData 0000000000014fa4 UefiHiiLib:HiiLib.obj
+ 0004:00000a50 $pdata$HiiGetSupportedLanguages 0000000000014fb0 UefiHiiLib:HiiLanguage.obj
+ 0004:00000a5c $pdata$SetMem16 0000000000014fbc BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0005:00000000 $unwind$_DriverUnloadHandler 0000000000014fe0 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0005:00000010 $unwind$Ip4RecycleFrame 0000000000014ff0 Ip4Dxe:Ip4If.obj
+ 0005:00000010 $unwind$NextDevicePathNode 0000000000014ff0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000010 $unwind$InternalBaseLibIsListValid 0000000000014ff0 BaseLib:LinkedList.obj
+ 0005:00000010 $unwind$NetMapInit 0000000000014ff0 DxeNetLib:DxeNetLib.obj
+ 0005:00000010 $unwind$InitializeListHead 0000000000014ff0 BaseLib:LinkedList.obj
+ 0005:00000010 $unwind$Ip4OnPacketSent 0000000000014ff0 Ip4Dxe:Ip4Impl.obj
+ 0005:00000010 $unwind$SetDevicePathNodeLength 0000000000014ff0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000010 $unwind$NetIpSecNetbufFree 0000000000014ff0 DxeNetLib:NetBuffer.obj
+ 0005:00000010 $unwind$IpSec2InstalledCallback 0000000000014ff0 Ip4Dxe:Ip4Driver.obj
+ 0005:00000010 $unwind$Ip4FreeTxToken 0000000000014ff0 Ip4Dxe:Ip4Impl.obj
+ 0005:00000010 $unwind$RemoveEntryList 0000000000014ff0 BaseLib:LinkedList.obj
+ 0005:00000010 $unwind$NetbufFree 0000000000014ff0 DxeNetLib:NetBuffer.obj
+ 0005:00000010 $unwind$IsListEmpty 0000000000014ff0 BaseLib:LinkedList.obj
+ 0005:00000010 $unwind$Ip4FreeFrameRxToken 0000000000014ff0 Ip4Dxe:Ip4If.obj
+ 0005:00000010 $unwind$Ip4CleanService 0000000000014ff0 Ip4Dxe:Ip4Driver.obj
+ 0005:00000010 $unwind$IsDevicePathEndType 0000000000014ff0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000010 $unwind$Ip4CleanProtocol 0000000000014ff0 Ip4Dxe:Ip4Impl.obj
+ 0005:00000010 $unwind$Ip4FreeLinkTxToken 0000000000014ff0 Ip4Dxe:Ip4If.obj
+ 0005:00000010 $unwind$Ip4SentPacketTicking 0000000000014ff0 Ip4Dxe:Ip4Impl.obj
+ 0005:00000010 $unwind$NetMapIsEmpty 0000000000014ff0 DxeNetLib:DxeNetLib.obj
+ 0005:00000010 $unwind$Ip4FreeRouteCacheEntry 0000000000014ff0 Ip4Dxe:Ip4Route.obj
+ 0005:00000010 $unwind$DevicePathSubType 0000000000014ff0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000010 $unwind$DevicePathNodeLength 0000000000014ff0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000010 $unwind$EfiIp4Poll 0000000000014ff0 Ip4Dxe:Ip4Impl.obj
+ 0005:00000010 $unwind$ReadUnaligned32 0000000000014ff0 BaseLib:Unaligned.obj
+ 0005:00000010 $unwind$Ip4IpSecFree 0000000000014ff0 Ip4Dxe:Ip4Input.obj
+ 0005:00000010 $unwind$ReadUnaligned64 0000000000014ff0 BaseLib:Unaligned.obj
+ 0005:00000010 $unwind$Ip4FreeRouteEntry 0000000000014ff0 Ip4Dxe:Ip4Route.obj
+ 0005:00000010 $unwind$NetListRemoveHead 0000000000014ff0 DxeNetLib:DxeNetLib.obj
+ 0005:00000010 $unwind$AllocateZeroPool 0000000000014ff0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000010 $unwind$EfiAcquireLockOrFail 0000000000014ff0 UefiLib:UefiLib.obj
+ 0005:00000010 $unwind$Ip4AutoReconfigCallBackDpc 0000000000014ff0 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000010 $unwind$Ip4OnRecyclePacket 0000000000014ff0 Ip4Dxe:Ip4Input.obj
+ 0005:00000010 $unwind$EfiReleaseLock 0000000000014ff0 UefiLib:UefiLib.obj
+ 0005:00000010 $unwind$_ModuleEntryPoint 0000000000014ff0 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0005:00000018 $unwind$CompareMem 0000000000014ff8 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0005:00000018 $unwind$LookupUnicodeString2 0000000000014ff8 UefiLib:UefiLib.obj
+ 0005:00000018 $unwind$EfiIp4Config2GetData 0000000000014ff8 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000018 $unwind$ProcessLibraryConstructorList 0000000000014ff8 Ip4Dxe:AutoGen.obj
+ 0005:00000018 $unwind$EfiIp4Config2UnregisterDataNotify 0000000000014ff8 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000018 $unwind$Ip4ProcessIcmpRedirect 0000000000014ff8 Ip4Dxe:Ip4Icmp.obj
+ 0005:00000018 $unwind$NetbufTrim 0000000000014ff8 DxeNetLib:NetBuffer.obj
+ 0005:00000018 $unwind$Ip4CleanAssembleTable 0000000000014ff8 Ip4Dxe:Ip4Input.obj
+ 0005:00000030 $unwind$ProcessModuleEntryPointList 0000000000015010 Ip4Dxe:AutoGen.obj
+ 0005:00000038 $unwind$Ip4Config2FormUnload 0000000000015018 Ip4Dxe:Ip4Config2Nv.obj
+ 0005:00000038 $unwind$Ip4DriverBindingSupported 0000000000015018 Ip4Dxe:Ip4Driver.obj
+ 0005:00000038 $unwind$NetLibGetSnpHandle 0000000000015018 DxeNetLib:DxeNetLib.obj
+ 0005:00000044 $unwind$NetbufGetFragment 0000000000015024 DxeNetLib:NetBuffer.obj
+ 0005:00000044 $unwind$HiiConstructConfigHdr 0000000000015024 UefiHiiLib:HiiLib.obj
+ 0005:00000044 $unwind$Ip4Config2WriteConfigData 0000000000015024 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000044 $unwind$Ip4CreateService 0000000000015024 Ip4Dxe:Ip4Driver.obj
+ 0005:00000060 $unwind$AsciiStrnCmp 0000000000015040 BaseLib:String.obj
+ 0005:00000060 $unwind$NetbufGetByte 0000000000015040 DxeNetLib:NetBuffer.obj
+ 0005:00000060 $unwind$NetbufDuplicate 0000000000015040 DxeNetLib:NetBuffer.obj
+ 0005:00000060 $unwind$NetbufReserve 0000000000015040 DxeNetLib:NetBuffer.obj
+ 0005:00000060 $unwind$Ip4ServiceConfigMnp 0000000000015040 Ip4Dxe:Ip4Impl.obj
+ 0005:00000060 $unwind$Ip4CancelReceive 0000000000015040 Ip4Dxe:Ip4If.obj
+ 0005:00000060 $unwind$CopyGuid 0000000000015040 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0005:00000060 $unwind$HiiIsConfigHdrMatch 0000000000015040 UefiHiiLib:HiiLib.obj
+ 0005:00000060 $unwind$NetbufAllocStruct 0000000000015040 DxeNetLib:NetBuffer.obj
+ 0005:00000060 $unwind$SetMem16 0000000000015040 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0005:00000060 $unwind$StrStr 0000000000015040 BaseLib:String.obj
+ 0005:00000060 $unwind$NetblockTrim 0000000000015040 DxeNetLib:NetBuffer.obj
+ 0005:00000060 $unwind$Ip4CancelRxTokens 0000000000015040 Ip4Dxe:Ip4Impl.obj
+ 0005:00000060 $unwind$NetLibGetNicHandle 0000000000015040 DxeNetLib:DxeNetLib.obj
+ 0005:00000060 $unwind$NetMapInsertTail 0000000000015040 DxeNetLib:DxeNetLib.obj
+ 0005:00000060 $unwind$NetMapClean 0000000000015040 DxeNetLib:DxeNetLib.obj
+ 0005:00000060 $unwind$Ip4DestroyChildEntryInHandleBuffer 0000000000015040 Ip4Dxe:Ip4Driver.obj
+ 0005:00000060 $unwind$Ip4Config2CleanInstance 0000000000015040 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000060 $unwind$NetIp4IsUnicast 0000000000015040 DxeNetLib:DxeNetLib.obj
+ 0005:00000060 $unwind$StrLen 0000000000015040 BaseLib:String.obj
+ 0005:00000060 $unwind$FreeUnicodeStringTable 0000000000015040 UefiLib:UefiLib.obj
+ 0005:00000060 $unwind$Ip4CreateRouteTable 0000000000015040 Ip4Dxe:Ip4Route.obj
+ 0005:00000060 $unwind$EfiIp4Cancel 0000000000015040 Ip4Dxe:Ip4Impl.obj
+ 0005:00000060 $unwind$NetbufAlloc 0000000000015040 DxeNetLib:NetBuffer.obj
+ 0005:00000060 $unwind$IsLanguageSupported 0000000000015040 UefiLib:UefiLib.obj
+ 0005:00000070 $unwind$Ip4DriverBindingStart 0000000000015050 Ip4Dxe:Ip4Driver.obj
+ 0005:00000088 $unwind$Ip4DriverBindingStop 0000000000015068 Ip4Dxe:Ip4Driver.obj
+ 0005:000000a4 $unwind$Ip4ServiceBindingCreateChild 0000000000015084 Ip4Dxe:Ip4Driver.obj
+ 0005:000000b8 $unwind$Ip4ServiceBindingDestroyChild 0000000000015098 Ip4Dxe:Ip4Driver.obj
+ 0005:000000c8 $unwind$EfiIp4GetModeData 00000000000150a8 Ip4Dxe:Ip4Impl.obj
+ 0005:000000e0 $unwind$NetbufChecksum 00000000000150c0 DxeNetLib:NetBuffer.obj
+ 0005:000000e0 $unwind$InsertTailList 00000000000150c0 BaseLib:LinkedList.obj
+ 0005:000000e0 $unwind$InternalAllocateCopyPool 00000000000150c0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:000000e0 $unwind$CompareIso639LanguageCode 00000000000150c0 UefiLib:UefiLib.obj
+ 0005:000000e0 $unwind$NetbufFreeVector 00000000000150c0 DxeNetLib:NetBuffer.obj
+ 0005:000000e0 $unwind$Ip4CancelTxTokens 00000000000150c0 Ip4Dxe:Ip4Impl.obj
+ 0005:000000e0 $unwind$ZeroMem 00000000000150c0 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0005:000000e0 $unwind$Ip4FreeArpQue 00000000000150c0 Ip4Dxe:Ip4If.obj
+ 0005:000000e0 $unwind$Ip4Config2SetDnsServer 00000000000150c0 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:000000e0 $unwind$InsertHeadList 00000000000150c0 BaseLib:LinkedList.obj
+ 0005:000000e0 $unwind$NetLibGetVlanId 00000000000150c0 DxeNetLib:DxeNetLib.obj
+ 0005:000000e0 $unwind$AsciiStrLen 00000000000150c0 BaseLib:String.obj
+ 0005:000000e0 $unwind$IsDevicePathEnd 00000000000150c0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:000000e0 $unwind$NetMapFindKey 00000000000150c0 DxeNetLib:DxeNetLib.obj
+ 0005:000000e0 $unwind$NetMapRemoveItem 00000000000150c0 DxeNetLib:DxeNetLib.obj
+ 0005:000000e0 $unwind$NetbufClone 00000000000150c0 DxeNetLib:NetBuffer.obj
+ 0005:000000e0 $unwind$NetListInsertBefore 00000000000150c0 DxeNetLib:DxeNetLib.obj
+ 0005:000000e0 $unwind$Ip4Config2DestroyDhcp4 00000000000150c0 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:000000e0 $unwind$HiiGetSupportedLanguages 00000000000150c0 UefiHiiLib:HiiLanguage.obj
+ 0005:000000e0 $unwind$StrnLenS 00000000000150c0 BaseLib:SafeString.obj
+ 0005:000000e0 $unwind$Ip4InitProtocol 00000000000150c0 Ip4Dxe:Ip4Impl.obj
+ 0005:000000e0 $unwind$NetMapAllocItem 00000000000150c0 DxeNetLib:DxeNetLib.obj
+ 0005:000000ec $unwind$Ip4ConfigProtocol 00000000000150cc Ip4Dxe:Ip4Impl.obj
+ 0005:00000100 $unwind$EfiIp4Configure 00000000000150e0 Ip4Dxe:Ip4Impl.obj
+ 0005:00000114 $unwind$Ip4Groups 00000000000150f4 Ip4Dxe:Ip4Impl.obj
+ 0005:0000012c $unwind$EfiIp4Groups 000000000001510c Ip4Dxe:Ip4Impl.obj
+ 0005:00000140 $unwind$EfiIp4Routes 0000000000015120 Ip4Dxe:Ip4Impl.obj
+ 0005:00000158 $unwind$Ip4TxTokenValid 0000000000015138 Ip4Dxe:Ip4Impl.obj
+ 0005:00000168 $unwind$EfiIp4Transmit 0000000000015148 Ip4Dxe:Ip4Impl.obj
+ 0005:00000180 $unwind$EfiIp4Receive 0000000000015160 Ip4Dxe:Ip4Impl.obj
+ 0005:00000180 $unwind$Ip4Config2OnPolicyChanged 0000000000015160 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000180 $unwind$BasePrintLibValueToString 0000000000015160 BasePrintLib:PrintLibInternal.obj
+ 0005:00000180 $unwind$Ip4Cancel 0000000000015160 Ip4Dxe:Ip4Impl.obj
+ 0005:00000180 $unwind$InternalHiiCompareSubString 0000000000015160 UefiHiiLib:HiiLib.obj
+ 0005:00000180 $unwind$StrnCmp 0000000000015160 BaseLib:String.obj
+ 0005:00000180 $unwind$CopyMem 0000000000015160 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0005:00000180 $unwind$Ip4TrimPacket 0000000000015160 Ip4Dxe:Ip4Input.obj
+ 0005:00000180 $unwind$NetbufSetBlock 0000000000015160 DxeNetLib:NetBuffer.obj
+ 0005:00000180 $unwind$NetDestroyLinkList 0000000000015160 DxeNetLib:DxeNetLib.obj
+ 0005:00000180 $unwind$NetMapIterate 0000000000015160 DxeNetLib:DxeNetLib.obj
+ 0005:00000180 $unwind$NetbufSetBlockOp 0000000000015160 DxeNetLib:NetBuffer.obj
+ 0005:00000180 $unwind$EfiIp4Config2RegisterDataNotify 0000000000015160 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000194 $unwind$NetbufCopy 0000000000015174 DxeNetLib:NetBuffer.obj
+ 0005:00000194 $unwind$EfiIp4Config2SetData 0000000000015174 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000194 $unwind$Ip4TimerTicking 0000000000015174 Ip4Dxe:Ip4Impl.obj
+ 0005:00000194 $unwind$Ip4AddRoute 0000000000015174 Ip4Dxe:Ip4Route.obj
+ 0005:00000194 $unwind$Ip4FreeRouteTable 0000000000015174 Ip4Dxe:Ip4Route.obj
+ 0005:00000194 $unwind$Ip4BuildEfiRouteTable 0000000000015174 Ip4Dxe:Ip4Route.obj
+ 0005:000001ac $unwind$Ip4TimerReconfigChecking 000000000001518c Ip4Dxe:Ip4Impl.obj
+ 0005:000001bc $unwind$Ip4FreeAssembleEntry 000000000001519c Ip4Dxe:Ip4Input.obj
+ 0005:000001d0 $unwind$Ip4Reassemble 00000000000151b0 Ip4Dxe:Ip4Input.obj
+ 0005:000001ec $unwind$Ip4IpSecProcessPacket 00000000000151cc Ip4Dxe:Ip4Input.obj
+ 0005:0000020c $unwind$Ip4Route 00000000000151ec Ip4Dxe:Ip4Route.obj
+ 0005:0000020c $unwind$Ip4InstanceDeliverPacket 00000000000151ec Ip4Dxe:Ip4Input.obj
+ 0005:0000020c $unwind$Ip4PreProcessPacket 00000000000151ec Ip4Dxe:Ip4Input.obj
+ 0005:0000020c $unwind$Ip4CancelFrames 00000000000151ec Ip4Dxe:Ip4If.obj
+ 0005:0000020c $unwind$Ip4DelRoute 00000000000151ec Ip4Dxe:Ip4Route.obj
+ 0005:00000228 $unwind$Ip4AccpetFrame 0000000000015208 Ip4Dxe:Ip4Input.obj
+ 0005:00000238 $unwind$Ip4WrapRxData 0000000000015218 Ip4Dxe:Ip4Input.obj
+ 0005:0000024c $unwind$Ip4InterfaceEnquePacket 000000000001522c Ip4Dxe:Ip4Input.obj
+ 0005:00000260 $unwind$Ip4Demultiplex 0000000000015240 Ip4Dxe:Ip4Input.obj
+ 0005:00000260 $unwind$Ip4CancelFrameArp 0000000000015240 Ip4Dxe:Ip4If.obj
+ 0005:0000027c $unwind$Ip4ComponentNameGetDriverName 000000000001525c Ip4Dxe:ComponentName.obj
+ 0005:00000284 $unwind$UpdateName 0000000000015264 Ip4Dxe:ComponentName.obj
+ 0005:0000028c $unwind$Ip4ComponentNameGetControllerName 000000000001526c Ip4Dxe:ComponentName.obj
+ 0005:000002a0 $unwind$Ip4CreateInterface 0000000000015280 Ip4Dxe:Ip4If.obj
+ 0005:000002b8 $unwind$Ip4SetAddress 0000000000015298 Ip4Dxe:Ip4If.obj
+ 0005:000002cc $unwind$Ip4FreeInterface 00000000000152ac Ip4Dxe:Ip4If.obj
+ 0005:000002dc $unwind$StrCpyS 00000000000152bc BaseLib:SafeString.obj
+ 0005:000002dc $unwind$Ip4SendFrameToDefaultRoute 00000000000152bc Ip4Dxe:Ip4If.obj
+ 0005:000002f4 $unwind$Ip4OnArpResolvedDpc 00000000000152d4 Ip4Dxe:Ip4If.obj
+ 0005:0000030c $unwind$Ip4OnFrameSentDpc 00000000000152ec Ip4Dxe:Ip4If.obj
+ 0005:00000314 $unwind$Ip4SendFrame 00000000000152f4 Ip4Dxe:Ip4If.obj
+ 0005:00000314 $unwind$Ip4Config2SetGateway 00000000000152f4 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:0000032c $unwind$Ip4OnFrameReceivedDpc 000000000001530c Ip4Dxe:Ip4If.obj
+ 0005:0000033c $unwind$UnicodeValueToStringS 000000000001531c BasePrintLib:PrintLib.obj
+ 0005:0000033c $unwind$Ip4ReceiveFrame 000000000001531c Ip4Dxe:Ip4If.obj
+ 0005:0000034c $unwind$FreePool 000000000001532c UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:0000034c $unwind$DevicePathFromHandle 000000000001532c UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:0000034c $unwind$InternalAllocatePool 000000000001532c UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:0000034c $unwind$Ip4Config2SignalEvent 000000000001532c Ip4Dxe:Ip4Config2Impl.obj
+ 0005:0000034c $unwind$Ip4StationAddressValid 000000000001532c Ip4Dxe:Ip4Common.obj
+ 0005:0000034c $unwind$Ip4Config2OnDhcp4SbInstalled 000000000001532c Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000354 $unwind$Ip4Config2ReadConfigData 0000000000015334 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:0000036c $unwind$Ip4Config2BuildDefaultRouteTable 000000000001534c Ip4Dxe:Ip4Config2Impl.obj
+ 0005:0000036c $unwind$UefiLibGetStringWidth 000000000001534c UefiLib:Console.obj
+ 0005:00000380 $unwind$Ip4Config2SetDefaultAddr 0000000000015360 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000398 $unwind$Ip4Config2SetDnsServerWorker 0000000000015378 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:000003b0 $unwind$Ip4Config2OnDhcp4Complete 0000000000015390 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:000003cc $unwind$Ip4StartAutoConfig 00000000000153ac Ip4Dxe:Ip4Config2Impl.obj
+ 0005:000003e8 $unwind$Ip4Config2GetIfInfo 00000000000153c8 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:000003fc $unwind$Ip4Config2SetPolicy 00000000000153dc Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000410 $unwind$Ip4Config2SetManualAddress 00000000000153f0 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:00000410 $unwind$Ip4Config2InitInstance 00000000000153f0 Ip4Dxe:Ip4Config2Impl.obj
+ 0005:0000042c $unwind$Ip4InitIgmp 000000000001540c Ip4Dxe:Ip4Igmp.obj
+ 0005:00000444 $unwind$Ip4IcmpReplyEcho 0000000000015424 Ip4Dxe:Ip4Icmp.obj
+ 0005:00000444 $unwind$Ip4SendIgmpMessage 0000000000015424 Ip4Dxe:Ip4Igmp.obj
+ 0005:0000045c $unwind$Ip4IgmpHandle 000000000001543c Ip4Dxe:Ip4Igmp.obj
+ 0005:0000046c $unwind$Ip4PrependHead 000000000001544c Ip4Dxe:Ip4Output.obj
+ 0005:00000488 $unwind$Ip4Output 0000000000015468 Ip4Dxe:Ip4Output.obj
+ 0005:000004a0 $unwind$Ip4IcmpHandle 0000000000015480 Ip4Dxe:Ip4Icmp.obj
+ 0005:000004b0 $unwind$Ip4GetHostCast 0000000000015490 Ip4Dxe:Ip4Common.obj
+ 0005:000004b0 $unwind$Ip4OptionIsValid 0000000000015490 Ip4Dxe:Ip4Option.obj
+ 0005:000004bc $unwind$Ip4CopyOption 000000000001549c Ip4Dxe:Ip4Option.obj
+ 0005:000004d8 $unwind$NetbufBuildExt 00000000000154b8 DxeNetLib:NetBuffer.obj
+ 0005:000004d8 $unwind$Ip4Config2StrToIp 00000000000154b8 Ip4Dxe:Ip4Config2Nv.obj
+ 0005:000004e0 $unwind$Ip4Config2StrToIpList 00000000000154c0 Ip4Dxe:Ip4Config2Nv.obj
+ 0005:000004f8 $unwind$Ip4Config2IpToStr 00000000000154d8 Ip4Dxe:Ip4Config2Nv.obj
+ 0005:00000500 $unwind$Ip4Config2IpListToStr 00000000000154e0 Ip4Dxe:Ip4Config2Nv.obj
+ 0005:0000051c $unwind$Ip4Config2ConvertConfigNvDataToIfrNvData 00000000000154fc Ip4Dxe:Ip4Config2Nv.obj
+ 0005:00000530 $unwind$Ip4Config2ConvertIfrNvDataToConfigNvData 0000000000015510 Ip4Dxe:Ip4Config2Nv.obj
+ 0005:00000548 $unwind$Ip4FormExtractConfig 0000000000015528 Ip4Dxe:Ip4Config2Nv.obj
+ 0005:00000564 $unwind$Ip4FormRouteConfig 0000000000015544 Ip4Dxe:Ip4Config2Nv.obj
+ 0005:00000578 $unwind$Ip4FormCallback 0000000000015558 Ip4Dxe:Ip4Config2Nv.obj
+ 0005:00000590 $unwind$Ip4Config2FormInit 0000000000015570 Ip4Dxe:Ip4Config2Nv.obj
+ 0005:000005a4 $unwind$StrnCpyS 0000000000015584 BaseLib:SafeString.obj
+ 0005:000005bc $unwind$StrCatS 000000000001559c BaseLib:SafeString.obj
+ 0005:000005d8 $unwind$UnicodeSPrint 00000000000155b8 BasePrintLib:PrintLib.obj
+ 0005:000005e4 $unwind$AsciiSPrint 00000000000155c4 BasePrintLib:PrintLib.obj
+ 0005:000005ec $unwind$BasePrintLibConvertValueToStringS 00000000000155cc BasePrintLib:PrintLibInternal.obj
+ 0005:00000604 $unwind$BasePrintLibSPrintMarker 00000000000155e4 BasePrintLib:PrintLibInternal.obj
+ 0005:00000620 $unwind$BasePrintLibSPrint 0000000000015600 BasePrintLib:PrintLibInternal.obj
+ 0005:00000628 $unwind$DebugPrint 0000000000015608 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:00000630 $unwind$DebugPrintMarker 0000000000015610 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:00000644 $unwind$DebugAssert 0000000000015624 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:0000064c $unwind$EfiCreateProtocolNotifyEvent 000000000001562c UefiLib:UefiLib.obj
+ 0005:00000660 $unwind$AddUnicodeString2 0000000000015640 UefiLib:UefiLib.obj
+ 0005:00000678 $unwind$GetEfiGlobalVariable2 0000000000015658 UefiLib:UefiLib.obj
+ 0005:00000684 $unwind$GetBestLanguage 0000000000015664 UefiLib:UefiLib.obj
+ 0005:00000698 $unwind$CreatePopUp 0000000000015678 UefiLib:Console.obj
+ 0005:000006b0 $unwind$NetLibDestroyServiceChild 0000000000015690 DxeNetLib:DxeNetLib.obj
+ 0005:000006b0 $unwind$NetLibCreateServiceChild 0000000000015690 DxeNetLib:DxeNetLib.obj
+ 0005:000006c4 $unwind$NetLibGetMacString 00000000000156a4 DxeNetLib:DxeNetLib.obj
+ 0005:000006e0 $unwind$NetbufFromExt 00000000000156c0 DxeNetLib:NetBuffer.obj
+ 0005:000006f8 $unwind$NetbufAllocSpace 00000000000156d8 DxeNetLib:NetBuffer.obj
+ 0005:0000070c $unwind$HiiSetString 00000000000156ec UefiHiiLib:HiiString.obj
+ 0005:00000724 $unwind$HiiGetString 0000000000015704 UefiHiiLib:HiiString.obj
+ 0005:00000734 $unwind$HiiAddPackages 0000000000015714 UefiHiiLib:HiiLib.obj
+ 0005:00000748 $unwind$InternalHiiBrowserCallback 0000000000015728 UefiHiiLib:HiiLib.obj
+ 0005:00000758 $unwind$HiiGetBrowserData 0000000000015738 UefiHiiLib:HiiLib.obj
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Dxe.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Dxe.txt
new file mode 100644
index 000000000000..573cbc3b18c6
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Dxe.txt
@@ -0,0 +1,2 @@
+MODULE_SIZE = 87968
+TIME_STAMP = 0
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Dxe.uni b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Dxe.uni
new file mode 100644
index 000000000000..163c51374fe0
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Dxe.uni
@@ -0,0 +1,19 @@
+// /** @file
+// This module produces EFI IPv4 Protocol and EFI IPv4 Service Binding Protocol.
+//
+// This module produces EFI IPv4 Protocol upon EFI MNP Protocol and EFI ARP Protocol,
+// to provide basic network IPv4 packet I/O services, which includes support for a
+// subset of the Internet Control Message Protocol (ICMP) and may include support for
+// the Internet Group Management Protocol (IGMP).
+//
+// Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
+//
+// SPDX-License-Identifier: BSD-2-Clause-Patent
+//
+// **/
+
+
+#string STR_MODULE_ABSTRACT #language en-US "Produces EFI IPv4 Protocol and EFI IPv4 Service Binding Protocol"
+
+#string STR_MODULE_DESCRIPTION #language en-US "This module produces EFI IPv4 Protocol upon EFI MNP Protocol and EFI ARP Protocol to provide basic network IPv4 packet I/O services, which includes support for a subset of the Internet Control Message Protocol (ICMP), and may include support for the Internet Group Management Protocol (IGMP)."
+
--git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4DxeExtra.uni b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4DxeExtra.uni
new file mode 100644
index 000000000000..2493f4de19b4
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4DxeExtra.uni
@@ -0,0 +1,14 @@
+// /** @file
+// Ip4Dxe Localized Strings and Content
+//
+// Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.<BR>
+//
+// SPDX-License-Identifier: BSD-2-Clause-Patent
+//
+// **/
+
+#string STR_PROPERTIES_MODULE_NAME
+#language en-US
+"IP v4 DXE Driver"
+
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4DxeStrDefs.hpk b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4DxeStrDefs.hpk
new file mode 100644
index 0000000000000000000000000000000000000000..86062ca6883786d5d314304f94943810b61bda61
GIT binary patch
literal 1125
zcmcJP+fKqj6h*g*PbR+c0sR385H;YN5uzq)NE$x?=>UyT2<0Mw?>bYA=~&_mQaUp|
z`&<@hI=FM4UrDn2ug{rWR)33C>nqblGo{KkC93wMfwts`^eU&dc3Nnq51#K?Wg6o;
z(FWTPHT5>aLeUYB1qqgfSlHa#9qU{Tt66-1r$`E*ObLZXzM$pZL276=t}5yb@lQ}3
z`E&G90PavDlnu)0;5FuH#<fSWA8hmsYIr_t(opZnR=%f4dNDAzXMBunhS?ey>8?~8
z7mHmVKns@;FU2Dw%*vT(qB^%DaZ0O-<OR%6#~VcS^@%#y(sSKnX{oC=$SvKd<L9Oy
z+q%?6$Xjgh3n_B8Hy|yG5hSN#Z0nk<0cUw`Rxv(6XD!(=??cA2cuK}&eXQtWk7E+k
x`q*#r){l8eTJ7}z#GRw>MEASfF`YGPJKj^)_HSV4Ch}`LC-$19?1Dd}`T}<au>}AC
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4DxeUni.json b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4DxeUni.json
new file mode 100644
index 000000000000..c293b8ebaec1
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4DxeUni.json
@@ -0,0 +1,31 @@
+{
+ "LanguageDef": [
+ [
+ "en-US",
+ "English"
+ ]
+ ],
+ "UniString": {
+ "en-US": {
+ "$LANGUAGE_NAME": "en-US",
+ "$PRINTABLE_LANGUAGE_NAME": "English",
+ "STR_IP4_CONFIG2_FORM_TITLE": "IPv4 Network Configuration",
+ "STR_IP4_CONFIG2_FORM_HELP": "Configure network parameters.",
+ "STR_IP4_DEVICE_FORM_TITLE": "",
+ "STR_IP4_DEVICE_FORM_HELP": "",
+ "STR_IP4_CONFIGURE": "Configured",
+ "STR_IP4_CONFIGURE_HELP": "Indicate whether network address configured successfully or not.",
+ "STR_IP4_ENABLE_DHCP": "Enable DHCP",
+ "STR_IP4_LOCAL_IP_ADDRESS": "Local IP Address",
+ "STR_IP4_IP_ADDRESS_HELP": "Enter IP address in dotted-decimal notation. Example: 192.168.10.12\r\n",
+ "STR_IP4_LOCAL_MASK": "Local NetMask",
+ "STR_IP4_MASK_HELP": "Enter NetMask in dotted-decimal notation. Example: 255.255.255.0\r\n",
+ "STR_IP4_LOCAL_GATEWAY": "Local Gateway",
+ "STR_IP4_GATEWAY_HELP": "Enter Gateway in dotted-decimal notation. Example: 192.168.10.1\r\n",
+ "STR_IP4_LOCAL_DNS": "Local DNS Servers",
+ "STR_IP4_DNS_HELP": "Enter DNS Servers in dotted-decimal notation. Example: 192.168.10.8 192.168.10.9\r\n",
+ "STR_SAVE_CHANGES": "Save Changes and Exit",
+ "STR_NULL": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Icmp.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Icmp.c.deps
new file mode 100644
index 000000000000..3922065a29ba
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Icmp.c.deps
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Icmp.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\networkpkg\ip4dxe\ip4dxe\debug\Ip4DxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSecConfig.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Arp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/DpcLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Protocol/Dpc.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Common.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Driver.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ServiceBinding.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4If.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Icmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Option.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Igmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Route.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Input.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Output.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Nv.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4NvData.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/Ip4Config2Hii.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4If.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4If.c.deps
new file mode 100644
index 000000000000..4faaca8f9628
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4If.c.deps
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4If.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\networkpkg\ip4dxe\ip4dxe\debug\Ip4DxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSecConfig.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Arp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/DpcLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Protocol/Dpc.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Common.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Driver.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ServiceBinding.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4If.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Icmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Option.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Igmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Route.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Input.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Output.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Nv.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4NvData.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/Ip4Config2Hii.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Igmp.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Igmp.c.deps
new file mode 100644
index 000000000000..2b3114398841
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Igmp.c.deps
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Igmp.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\networkpkg\ip4dxe\ip4dxe\debug\Ip4DxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSecConfig.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Arp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/DpcLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Protocol/Dpc.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Common.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Driver.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ServiceBinding.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4If.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Icmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Option.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Igmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Route.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Input.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Output.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Nv.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4NvData.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/Ip4Config2Hii.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Impl.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Impl.c.deps
new file mode 100644
index 000000000000..be62a6b3c1ac
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Impl.c.deps
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Impl.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\networkpkg\ip4dxe\ip4dxe\debug\Ip4DxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSecConfig.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Arp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/DpcLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Protocol/Dpc.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Common.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Driver.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ServiceBinding.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4If.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Icmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Option.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Igmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Route.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Input.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Output.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Nv.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4NvData.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/Ip4Config2Hii.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Input.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Input.c.deps
new file mode 100644
index 000000000000..8480d5e22187
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Input.c.deps
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Input.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\networkpkg\ip4dxe\ip4dxe\debug\Ip4DxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSecConfig.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Arp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/DpcLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Protocol/Dpc.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Common.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Driver.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ServiceBinding.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4If.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Icmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Option.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Igmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Route.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Input.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Output.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Nv.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4NvData.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/Ip4Config2Hii.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Option.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Option.c.deps
new file mode 100644
index 000000000000..2b971e6722b7
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Option.c.deps
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Option.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\networkpkg\ip4dxe\ip4dxe\debug\Ip4DxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSecConfig.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Arp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/DpcLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Protocol/Dpc.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Common.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Driver.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ServiceBinding.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4If.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Icmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Option.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Igmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Route.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Input.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Output.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Nv.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4NvData.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/Ip4Config2Hii.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Output.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Output.c.deps
new file mode 100644
index 000000000000..04d81ff6e121
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Output.c.deps
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Output.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\networkpkg\ip4dxe\ip4dxe\debug\Ip4DxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSecConfig.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Arp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/DpcLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Protocol/Dpc.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Common.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Driver.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ServiceBinding.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4If.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Icmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Option.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Igmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Route.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Input.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Output.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Nv.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4NvData.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/Ip4Config2Hii.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Route.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Route.c.deps
new file mode 100644
index 000000000000..453e8dc82dec
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/Ip4Route.c.deps
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Route.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\networkpkg\ip4dxe\ip4dxe\debug\Ip4DxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSecConfig.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Arp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/DpcLib.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Protocol/Dpc.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Common.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Driver.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ServiceBinding.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4If.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Icmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Option.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Igmp.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Route.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Input.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Output.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Nv.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4NvData.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/Ip4Config2Hii.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/cc_resp_14.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/cc_resp_14.txt
new file mode 100644
index 000000000000..cdc9b97574c9
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/cc_resp_14.txt
@@ -0,0 +1 @@
+ c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Input.c c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\ComponentName.c c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Driver.c c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Impl.c c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Option.c c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\AutoGen.c c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Common.c c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Route.c c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4If.c c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Config2Impl.c c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Igmp.c c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Icmp.c c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Config2Nv.c c:\users\mliang2x\workspace\edk2\NetworkPkg\Ip4Dxe\Ip4Output.c c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\Ip4Config2.c
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/object_files.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/object_files.lst
new file mode 100644
index 000000000000..60e61012e8f1
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/object_files.lst
@@ -0,0 +1,15 @@
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/NetworkPkg/Ip4Dxe/Ip4Dxe/OUTPUT/Ip4Driver.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/NetworkPkg/Ip4Dxe/Ip4Dxe/OUTPUT/Ip4If.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/NetworkPkg/Ip4Dxe/Ip4Dxe/OUTPUT/Ip4Output.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/NetworkPkg/Ip4Dxe/Ip4Dxe/OUTPUT/Ip4Icmp.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/NetworkPkg/Ip4Dxe/Ip4Dxe/OUTPUT/Ip4Igmp.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/NetworkPkg/Ip4Dxe/Ip4Dxe/OUTPUT/Ip4Impl.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/NetworkPkg/Ip4Dxe/Ip4Dxe/OUTPUT/Ip4Common.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/NetworkPkg/Ip4Dxe/Ip4Dxe/OUTPUT/Ip4Option.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/NetworkPkg/Ip4Dxe/Ip4Dxe/OUTPUT/ComponentName.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/NetworkPkg/Ip4Dxe/Ip4Dxe/OUTPUT/Ip4Route.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/NetworkPkg/Ip4Dxe/Ip4Dxe/OUTPUT/Ip4Input.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/NetworkPkg/Ip4Dxe/Ip4Dxe/OUTPUT/Ip4Config2Impl.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/NetworkPkg/Ip4Dxe/Ip4Dxe/OUTPUT/Ip4Config2.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/NetworkPkg/Ip4Dxe/Ip4Dxe/OUTPUT/Ip4Config2Nv.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/NetworkPkg/Ip4Dxe/Ip4Dxe/OUTPUT/AutoGen.obj
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/static_library_files.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/static_library_files.lst
new file mode 100644
index 000000000000..e56c93913c63
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/OUTPUT/static_library_files.lst
@@ -0,0 +1,21 @@
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/NetworkPkg/Ip4Dxe/Ip4Dxe/OUTPUT/Ip4Dxe.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/RegisterFilterLibNull/RegisterFilterLibNull/OUTPUT/FilterLibNull.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/DxePcdLib/DxePcdLib/OUTPUT/DxePcdLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr/OUTPUT/BaseMemoryLibRepStr.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/BaseLib/BaseLib/OUTPUT/BaseLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/TdxLib/TdxLib/OUTPUT/TdxLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/CcProbeLibNull/CcProbeLibNull/OUTPUT/CcProbeLibNull.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib/OUTPUT/BaseDebugPrintErrorLevelLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsicSev/OUTPUT/BaseIoLibIntrinsicSev.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/BasePrintLib/BasePrintLib/OUTPUT/BasePrintLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort/OUTPUT/PlatformDebugLibIoPort.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib/OUTPUT/UefiBootServicesTableLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib/OUTPUT/UefiMemoryAllocationLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol/OUTPUT/UefiDevicePathLibDevicePathProtocol.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib/OUTPUT/UefiRuntimeServicesTableLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/UefiLib/UefiLib/OUTPUT/UefiLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib/OUTPUT/UefiHiiServicesLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint/OUTPUT/UefiDriverEntryPoint.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/NetworkPkg/Library/DxeNetLib/DxeNetLib/OUTPUT/DxeNetLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/NetworkPkg/Library/DxeDpcLib/DxeDpcLib/OUTPUT/DxeDpcLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/UefiHiiLib/UefiHiiLib/OUTPUT/UefiHiiLib.lib
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/dependency b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/dependency
new file mode 100644
index 000000000000..eb24a090572c
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/dependency
@@ -0,0 +1,67 @@
+
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\Ip4Config2.vfr.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\Ip4Config2.vfr.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\AutoGen.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\AutoGen.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\ComponentName.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\ComponentName.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Common.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Common.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Config2.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Config2.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Config2Impl.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Config2Impl.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Config2Nv.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Config2Nv.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Driver.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Driver.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Icmp.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Icmp.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4If.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4If.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Igmp.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Igmp.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Impl.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Impl.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Input.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Input.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Option.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Option.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Output.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Output.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Route.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\OUTPUT\Ip4Route.c.deps
+!ENDIF
+
+
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/deps.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/deps.txt
new file mode 100644
index 000000000000..672c6c8b1640
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/deps.txt
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\AutoGen.h
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\Ip4DxeStrDefs.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Arp.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSec.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSecConfig.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ServiceBinding.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/Ip4Config2Hii.h
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/DpcLib.h
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Protocol/Dpc.h
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\networkpkg\ip4dxe\ip4dxe\debug\AutoGen.h
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\networkpkg\ip4dxe\ip4dxe\debug\Ip4DxeStrDefs.h
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Common.h
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Impl.h
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Nv.h
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Driver.h
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Icmp.h
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4If.h
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Igmp.h
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Input.h
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4NvData.h
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Option.h
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Output.h
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Route.h
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/deps_target b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/deps_target
new file mode 100644
index 000000000000..b1894e790d13
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Ip4Dxe/deps_target
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\AutoGen.h:
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\NetworkPkg\Ip4Dxe\Ip4Dxe\DEBUG\Ip4DxeStrDefs.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Dhcp.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Arp.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Dhcp4.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip4Config2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSec.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/IpSecConfig.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ServiceBinding.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h:
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/Ip4Config2Hii.h:
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/DpcLib.h:
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h:
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Protocol/Dpc.h:
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\networkpkg\ip4dxe\ip4dxe\debug\AutoGen.h:
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\networkpkg\ip4dxe\ip4dxe\debug\Ip4DxeStrDefs.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Common.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Impl.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Config2Nv.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Driver.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Icmp.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4If.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Igmp.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Impl.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Input.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4NvData.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Option.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Output.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\ip4dxe\Ip4Route.h:
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/AutoGenTimeStamp b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/AutoGenTimeStamp
new file mode 100644
index 000000000000..4fb32435634b
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/AutoGenTimeStamp
@@ -0,0 +1,27 @@
+c:\users\mliang2x\workspace\edk2\OvmfPkg\PlatformDxe\Platform.c
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BasePrintLib\BasePrintLib.inf
+c:\users\mliang2x\workspace\edk2\OvmfPkg\PlatformDxe\Platform.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib.inf
+c:\users\mliang2x\workspace\edk2\OvmfPkg\PlatformDxe\Platform.h
+c:\users\mliang2x\workspace\edk2\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\DxePcdLib\DxePcdLib.inf
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\DEBUG\PlatformDxeStrDefs.h
+c:\users\mliang2x\workspace\edk2\OvmfPkg\PlatformDxe\Platform.uni
+c:\users\mliang2x\workspace\edk2\OvmfPkg\PlatformDxe\PlatformConfig.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint.inf
+c:\users\mliang2x\workspace\edk2\OvmfPkg\PlatformDxe\PlatformConfig.c
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull.inf
+c:\users\mliang2x\workspace\edk2\OvmfPkg\PlatformDxe\PlatformForms.vfr
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiLib\UefiLib.inf
+c:\users\mliang2x\workspace\edk2\OvmfPkg\Library\CcProbeLib\CcProbeLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseLib\BaseLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\TdxLib\TdxLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr.inf
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\DEBUG\AutoGen.h
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformDxe.dll b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformDxe.dll
new file mode 100644
index 0000000000000000000000000000000000000000..02a996dc7bbab6e87cf66fca5ab1eb40c47e4a8c
GIT binary patch
literal 22880
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
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformDxe.efi b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformDxe.efi
new file mode 100644
index 0000000000000000000000000000000000000000..fd814fbb885b9bc68435caa54e062cd0d8ac4304
GIT binary patch
literal 22880
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
U_}AZmY2aTP_?HI$|JK0&0(7gl-2eap
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformDxe.map b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformDxe.map
new file mode 100644
index 000000000000..54796ea3cda2
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformDxe.map
@@ -0,0 +1,359 @@
+ PlatformDxe
+
+ Timestamp is 6487d4c5 (Tue Jun 13 10:30:29 2023)
+
+ Preferred load address is 0000000000000000
+
+ Start Length Name Class
+ 0001:00000000 000002f8H .text CODE
+ 0001:000002f8 0000327fH .text$mn CODE
+ 0002:00000000 00001584H .rdata DATA
+ 0002:00001584 00000134H .rdata$zzzdbg DATA
+ 0003:00000000 000005b8H .data DATA
+ 0003:000005b8 000000a0H .bss DATA
+ 0004:00000000 00000264H .pdata DATA
+ 0005:00000000 000001b4H .xdata DATA
+
+ Address Publics by Value Rva+Base Lib:Object
+
+ 0000:00000000 __dynamic_value_reloc_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_flags 0000000000000000 <absolute>
+ 0000:00000000 __guard_iat_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_iat_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_longjmp_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_longjmp_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_table 0000000000000000 <absolute>
+ 0001:00000000 InternalMemZeroMem 0000000000000280 BaseMemoryLibRepStr:ZeroMem.obj
+ 0001:00000020 InternalMemCopyMem 00000000000002a0 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000060 InternalMemSetMem 00000000000002e0 BaseMemoryLibRepStr:SetMem.obj
+ 0001:00000080 InternalMemCompareMem 0000000000000300 BaseMemoryLibRepStr:CompareMem.obj
+ 0001:000000a0 InternalMemSetMem64 0000000000000320 BaseMemoryLibRepStr:SetMem64.obj
+ 0001:000000c0 InternalMemSetMem32 0000000000000340 BaseMemoryLibRepStr:SetMem32.obj
+ 0001:000000e0 CpuPause 0000000000000360 BaseLib:CpuPause.obj
+ 0001:000000f0 SevNoRepIo 0000000000000370 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000130 SevIoReadFifo8 00000000000003b0 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000152 SevIoReadFifo16 00000000000003d2 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000178 SevIoReadFifo32 00000000000003f8 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000019b SevIoWriteFifo8 000000000000041b BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001bd SevIoWriteFifo16 000000000000043d BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001e3 SevIoWriteFifo32 0000000000000463 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000210 TdVmCall 0000000000000490 BaseLib:TdVmcall.obj
+ 0001:000002a0 TdCall 0000000000000520 BaseLib:TdCall.obj
+ 0001:000002f8 _DriverUnloadHandler 0000000000000578 f UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0001:000003b8 _ModuleEntryPoint 0000000000000638 f UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0001:00000434 ProcessLibraryConstructorList 00000000000006b4 f PlatformDxe:AutoGen.obj
+ 0001:00000f48 PlatformInit 00000000000011c8 f PlatformDxe:Platform.obj
+ 0001:00001204 PlatformConfigLoad 0000000000001484 f PlatformDxe:PlatformConfig.obj
+ 0001:0000129c GetPcdProtocol 000000000000151c f DxePcdLib:DxePcdLib.obj
+ 0001:00001328 ZeroMem 00000000000015a8 f BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0001:0000138c CopyMem 000000000000160c f BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0001:00001428 UnicodeSPrintAsciiFormat 00000000000016a8 f BasePrintLib:PrintLib.obj
+ 0001:00001488 AsciiSPrint 0000000000001708 f BasePrintLib:PrintLib.obj
+ 0001:000014b0 BasePrintLibFillBuffer 0000000000001730 f BasePrintLib:PrintLibInternal.obj
+ 0001:000014e4 BasePrintLibValueToString 0000000000001764 f BasePrintLib:PrintLibInternal.obj
+ 0001:0000155c BasePrintLibSPrintMarker 00000000000017dc f BasePrintLib:PrintLibInternal.obj
+ 0001:000023d4 BasePrintLibSPrint 0000000000002654 f BasePrintLib:PrintLibInternal.obj
+ 0001:000023f8 DebugPrint 0000000000002678 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:0000241c DebugPrintMarker 000000000000269c f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:000024a4 DebugAssert 0000000000002724 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:00002514 PlatformDebugLibIoPortFound 0000000000002794 f PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0001:0000255c InternalAllocatePool 00000000000027dc f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:0000258c AllocateZeroPool 000000000000280c f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:000025b8 InternalReallocatePool 0000000000002838 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00002638 FreePool 00000000000028b8 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:0000267c GetVariable2 00000000000028fc f UefiLib:UefiLib.obj
+ 0001:00002798 HiiAddPackages 0000000000002a18 f UefiHiiLib:HiiLib.obj
+ 0001:000028d4 HiiRemovePackages 0000000000002b54 f UefiHiiLib:HiiLib.obj
+ 0001:00002948 HiiAllocateOpCodeHandle 0000000000002bc8 f UefiHiiLib:HiiLib.obj
+ 0001:00002998 HiiFreeOpCodeHandle 0000000000002c18 f UefiHiiLib:HiiLib.obj
+ 0001:000029d8 InternalHiiGrowOpCodeHandle 0000000000002c58 f UefiHiiLib:HiiLib.obj
+ 0001:00002a7c InternalHiiCreateOpCodeExtended 0000000000002cfc f UefiHiiLib:HiiLib.obj
+ 0001:00002b30 InternalHiiAppendOpCodes 0000000000002db0 f UefiHiiLib:HiiLib.obj
+ 0001:00002bb0 HiiCreateEndOpCode 0000000000002e30 f UefiHiiLib:HiiLib.obj
+ 0001:00002bd8 InternalHiiUpdateFormPackageData 0000000000002e58 f UefiHiiLib:HiiLib.obj
+ 0001:00002da4 HiiUpdateForm 0000000000003024 f UefiHiiLib:HiiLib.obj
+ 0001:00003004 HiiGetSupportedLanguages 0000000000003284 f UefiHiiLib:HiiLanguage.obj
+ 0001:000030a8 CopyGuid 0000000000003328 f BaseMemoryLibRepStr:MemLibGuid.obj
+ 0001:0000312c CompareGuid 00000000000033ac f BaseMemoryLibRepStr:MemLibGuid.obj
+ 0001:00003190 CompareMem 0000000000003410 f BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0001:00003268 ReadUnaligned32 00000000000034e8 f BaseLib:Unaligned.obj
+ 0001:00003298 ReadUnaligned64 0000000000003518 f BaseLib:Unaligned.obj
+ 0001:000032c8 StrnLenS 0000000000003548 f BaseLib:SafeString.obj
+ 0001:00003320 AsciiStrnLenS 00000000000035a0 f BaseLib:SafeString.obj
+ 0001:00003344 AsciiStrLen 00000000000035c4 f BaseLib:String.obj
+ 0001:000033b0 AsciiStrnCmp 0000000000003630 f BaseLib:String.obj
+ 0001:00003480 IoWriteFifo8 0000000000003700 f BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0001:000034d4 TdIoRead8 0000000000003754 f BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0001:00003524 TdIoWrite8 00000000000037a4 f BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0002:00000000 ??_C@_0CB@DMEJJJHA@?6ASSERT_EFI_ERROR?5?$CIStatus?5?$DN?5?$CFr?$CJ?6@ 0000000000003800 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:00000028 ??_C@_0CH@BBNBJKHK@?$CB?$CI?$CI?$CIINTN?$CJ?$CIRETURN_STATUS?$CJ?$CIStatus?$CJ@ 0000000000003828 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:00000050 ??_C@_0FI@PIDCFOGG@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000003850 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:000000a8 ??_C@_0CE@IBFOBMLB@?6ASSERT_RETURN_ERROR?5?$CIStatus?5?$DN?5?$CF@ 00000000000038a8 PlatformDxe:AutoGen.obj
+ 0002:000000d0 ??_C@_0HA@DGCLLPJI@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000038d0 PlatformDxe:AutoGen.obj
+ 0002:00000140 ??_C@_07BNNKDAOA@?$CFLdx?$CFLd?$AA@ 0000000000003940 PlatformDxe:Platform.obj
+ 0002:00000148 ??_C@_05EILJLEHP@Unset?$AA@ 0000000000003948 PlatformDxe:Platform.obj
+ 0002:00000150 ??_C@_0O@CAMOBCOG@ExtractConfig?$AA@ 0000000000003950 PlatformDxe:Platform.obj
+ 0002:00000160 ??_C@_0BC@FJPBPLMN@?$CFa?3?5Request?$DN?$CC?$CFs?$CC?6?$AA@ 0000000000003960 PlatformDxe:Platform.obj
+ 0002:00000178 ??_C@_0CI@BIMJLMIB@?$CFa?3?5BlockToConfig?$CI?$CJ?3?5?$CFr?0?5Progres@ 0000000000003978 PlatformDxe:Platform.obj
+ 0002:000001a0 ??_C@_0BC@CHHLCKEI@?$CFa?3?5Results?$DN?$CC?$CFs?$CC?6?$AA@ 00000000000039a0 PlatformDxe:Platform.obj
+ 0002:000001b8 ??_C@_0M@GLNGFDHA@RouteConfig?$AA@ 00000000000039b8 PlatformDxe:Platform.obj
+ 0002:000001c8 ??_C@_0BI@ECCILMDA@?$CFa?3?5Configuration?$DN?$CC?$CFs?$CC?6?$AA@ 00000000000039c8 PlatformDxe:Platform.obj
+ 0002:000001e0 ??_C@_0CI@JLEGFNLH@?$CFa?3?5ConfigToBlock?$CI?$CJ?3?5?$CFr?0?5Progres@ 00000000000039e0 PlatformDxe:Platform.obj
+ 0002:00000208 ??_C@_08HNHIOOFI@Callback?$AA@ 0000000000003a08 PlatformDxe:Platform.obj
+ 0002:00000218 ??_C@_0CI@OODHMEAC@?$CFa?3?5Action?$DN0x?$CFLx?5QuestionId?$DN?$CFd?5T@ 0000000000003a18 PlatformDxe:Platform.obj
+ 0002:00000240 ??_C@_0BG@GGFGDJDA@ExecutePlatformConfig?$AA@ 0000000000003a40 PlatformDxe:Platform.obj
+ 0002:00000258 ??_C@_0CI@JAAELFJD@?$CFa?3?5failed?5to?5load?5platform?5conf@ 0000000000003a58 PlatformDxe:Platform.obj
+ 0002:00000280 ??_C@_0CK@FMBEAILJ@?$CB?$CI?$CI?$CIINTN?$CJ?$CIRETURN_STATUS?$CJ?$CIPcdStat@ 0000000000003a80 PlatformDxe:Platform.obj
+ 0002:000002b0 ??_C@_0EA@NIAIBNIO@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000003ab0 PlatformDxe:Platform.obj
+ 0002:000002f0 ??_C@_0BD@FFEOBNHB@Event?5?$DN?$DN?5mGopEvent?$AA@ 0000000000003af0 PlatformDxe:Platform.obj
+ 0002:00000308 ??_C@_0BK@KBBNLPHD@mGopModes?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000003b08 PlatformDxe:Platform.obj
+ 0002:00000328 ??_C@_0BK@OABIFCCF@mGopModes?5?$DN?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000003b28 PlatformDxe:Platform.obj
+ 0002:00000350 ??_C@_0EG@MAJBHDFF@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000003b50 DxePcdLib:DxePcdLib.obj
+ 0002:00000398 ??_C@_0BF@OOKDELHM@mPcd?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000003b98 DxePcdLib:DxePcdLib.obj
+ 0002:000003b0 ??_C@_0BH@IACGKAP@Buffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000003bb0 DxePcdLib:DxePcdLib.obj
+ 0002:000003d0 ??_C@_0FF@PKHNKPL@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000003bd0 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:00000428 ??_C@_0DG@EEENIGGL@Length?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFFFFFULL@ 0000000000003c28 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:00000460 ??_C@_0ED@MKGCMJG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 0000000000003c60 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:000004b0 ??_C@_0FF@LLAFLLDM@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000003cb0 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00000508 ??_C@_0DO@MAOBOFEG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 0000000000003d08 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00000548 ??_C@_0CI@BGLNHBLM@?$CI?$CI?$CIUINTN?$CJ?5?$CIStartOfBuffer?$CJ?$CJ?5?$CG?50x0@ 0000000000003d48 BasePrintLib:PrintLib.obj
+ 0002:00000570 ??_C@_0EI@PHEOPKNG@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000003d70 BasePrintLib:PrintLib.obj
+ 0002:000005c0 ??_C@_0FA@JGMHCDLA@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000003dc0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000610 ??_C@_0BJ@CNKJJNE@?$CIBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 0000000000003e10 BasePrintLib:PrintLibInternal.obj
+ 0002:00000630 ??_C@_0EB@HDGIDCIO@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 0000000000003e30 BasePrintLib:PrintLibInternal.obj
+ 0002:00000678 ??_C@_0BJ@PPAKKDJG@?$CIFormat?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 0000000000003e78 BasePrintLib:PrintLibInternal.obj
+ 0002:000006a0 ??_C@_0ED@LPDDCECB@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 0000000000003ea0 BasePrintLib:PrintLibInternal.obj
+ 0002:000006f0 ??_C@_0IM@BFJJFLGB@?$CIStrnLenS?5?$CI?$CICHAR16?5?$CK?$CJFormat?0?5?$CI_g@ 0000000000003ef0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000780 ??_C@_0ID@PLGJGION@?$CIAsciiStrnLenS?5?$CIFormat?0?5?$CI_gPcd_F@ 0000000000003f80 BasePrintLib:PrintLibInternal.obj
+ 0002:00000808 ??_C@_0O@MLOLIMFM@?$DMnull?5string?$DO?$AA@ 0000000000004008 BasePrintLib:PrintLibInternal.obj
+ 0002:00000818 ??_C@_0M@BJJDNPHK@?$DMnull?5guid?$DO?$AA@ 0000000000004018 BasePrintLib:PrintLibInternal.obj
+ 0002:00000828 ??_C@_0DB@PMLHLBMO@?$CF08x?9?$CF04x?9?$CF04x?9?$CF02x?$CF02x?9?$CF02x?$CF02x@ 0000000000004028 BasePrintLib:PrintLibInternal.obj
+ 0002:00000860 ??_C@_0M@LHGBCIKM@?$DMnull?5time?$DO?$AA@ 0000000000004060 BasePrintLib:PrintLibInternal.obj
+ 0002:00000870 ??_C@_0BK@FCPKCIDD@?$CF02d?1?$CF02d?1?$CF04d?5?5?$CF02d?3?$CF02d?$AA@ 0000000000004070 BasePrintLib:PrintLibInternal.obj
+ 0002:0000088c ??_C@_04JIMNDDED@?$CF08X?$AA@ 000000000000408c BasePrintLib:PrintLibInternal.obj
+ 0002:00000894 ??_C@_02PCIJFNDE@?$AN?6?$AA@ 0000000000004094 BasePrintLib:PrintLibInternal.obj
+ 0002:00000898 ??_C@_01LIIJDEN@?$AN?$AA@ 0000000000004098 BasePrintLib:PrintLibInternal.obj
+ 0002:000008a0 mWarningString 00000000000040a0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000940 mErrorString 0000000000004140 BasePrintLib:PrintLibInternal.obj
+ 0002:00000c00 mHexStr 0000000000004400 BasePrintLib:PrintLibInternal.obj
+ 0002:00000c10 ??_C@_0BH@LKMBFCBF@Format?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004410 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00000c30 ??_C@_0FD@OABGLBHF@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000004430 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00000c88 ??_C@_0BE@ECBJLCDE@ASSERT?5?$CFa?$CI?$CFLu?$CJ?3?5?$CFa?6?$AA@ 0000000000004488 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00000ca0 ??_C@_0BN@COECPDCC@gImageHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000044a0 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00000cc0 ??_C@_0GE@FKBNDHHB@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000044c0 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00000d28 ??_C@_0BE@DGNHAHIL@gST?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004528 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00000d40 ??_C@_0BE@BDFJLGLN@gBS?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004540 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00000d60 ??_C@_0FO@BEMDJMPM@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000004560 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:00000dc0 ??_C@_0BE@OBDFIHND@gRT?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000045c0 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:00000de0 ??_C@_0GK@FJIMGEPP@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000045e0 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:00000e50 ??_C@_0GI@KEFAHLGJ@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000004650 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00000eb8 ??_C@_0DC@CNNBPJA@mDevicePathLibDevicePathUtilitie@ 00000000000046b8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00000ef0 ??_C@_0EC@DCGCAOKF@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000046f0 UefiLib:UefiLib.obj
+ 0002:00000f40 ??_C@_0EG@GOBFPEEP@Name?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5Guid?5?$CB?$DN?5@ 0000000000004740 UefiLib:UefiLib.obj
+ 0002:00000f88 ??_C@_0BH@FMEOEIBC@?$CKValue?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004788 UefiLib:UefiLib.obj
+ 0002:00000fa0 ??_C@_0FO@HNLMMFDN@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000047a0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0002:00001000 ??_C@_0BK@KLJHMMPJ@HiiHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004800 UefiHiiLib:HiiString.obj
+ 0002:00001020 ??_C@_0EN@DDBLCGFI@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000004820 UefiHiiLib:HiiString.obj
+ 0002:00001070 ??_C@_0BH@MAAHKCPC@String?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004870 UefiHiiLib:HiiString.obj
+ 0002:00001088 ??_C@_06PLDEFKP@x?9UEFI?$AA@ 0000000000004888 UefiHiiLib:HiiString.obj
+ 0002:00001090 ??_C@_0CA@OEKIMLLB@PackageListGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004890 UefiHiiLib:HiiString.obj
+ 0002:000010b0 ??_C@_0EK@CCOCGB@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000048b0 UefiHiiLib:HiiLib.obj
+ 0002:00001100 ??_C@_0BN@OKKMNGPH@OpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004900 UefiHiiLib:HiiLib.obj
+ 0002:00001120 ??_C@_0BP@IOABAFLF@OpCodeTemplate?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004920 UefiHiiLib:HiiLib.obj
+ 0002:00001140 ??_C@_0CF@DPHCOLMP@?$CIOpCodeSize?5?$CL?5ExtensionSize?$CJ?5?$DM?$DN?5@ 0000000000004940 UefiHiiLib:HiiLib.obj
+ 0002:00001168 ??_C@_0BK@JGHNIOOD@RawBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004968 UefiHiiLib:HiiLib.obj
+ 0002:00001188 ??_C@_0CA@JCKPEJCB@RawOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004988 UefiHiiLib:HiiLib.obj
+ 0002:000011a8 ??_C@_0CE@KJODLANI@OptionsOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ@ 00000000000049a8 UefiHiiLib:HiiLib.obj
+ 0002:000011d0 ??_C@_0CC@PIBHJFDN@StartOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 00000000000049d0 UefiHiiLib:HiiLib.obj
+ 0002:000011f4 mEndOfPakageList 00000000000049f4 UefiHiiLib:HiiLib.obj
+ 0002:00001200 ??_C@_0EP@LMJDKFAP@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000004a00 UefiHiiLib:HiiLanguage.obj
+ 0002:00001250 ??_C@_0CC@JOEHDGKB@DestinationBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 0000000000004a50 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00001280 ??_C@_0FI@NCCCHAEB@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000004a80 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:000012d8 ??_C@_0BN@MDMCNBCC@SourceBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004ad8 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00001300 ??_C@_0EE@FAJFAODK@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000004b00 BaseLib:Unaligned.obj
+ 0002:00001348 ??_C@_0N@KGHEHMDL@Divisor?5?$CB?$DN?50?$AA@ 0000000000004b48 BaseLib:DivU64x32Remainder.obj
+ 0002:00001360 ??_C@_0EN@EIGKPMFG@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000004b60 BaseLib:DivU64x32Remainder.obj
+ 0002:000013b0 ??_C@_0CC@GFNLNIOC@?$CI?$CIUINTN?$CJString?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 0000000000004bb0 BaseLib:SafeString.obj
+ 0002:000013e0 ??_C@_0EF@MFKKFBPN@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000004be0 BaseLib:SafeString.obj
+ 0002:00001430 ??_C@_0EB@OHCINBMP@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000004c30 BaseLib:String.obj
+ 0002:00001478 ??_C@_0DI@MDIKFADO@Length?5?$DM?5_gPcd_FixedAtBuild_PcdM@ 0000000000004c78 BaseLib:String.obj
+ 0002:000014b0 ??_C@_0BL@IKFBNFIL@AsciiStrSize?5?$CIFirstString?$CJ?$AA@ 0000000000004cb0 BaseLib:String.obj
+ 0002:000014d0 ??_C@_0BM@EDNOKLLE@AsciiStrSize?5?$CISecondString?$CJ?$AA@ 0000000000004cd0 BaseLib:String.obj
+ 0002:000014f0 ??_C@_0DJ@JJHGIFMP@Length?5?$DM?$DN?5_gPcd_FixedAtBuild_Pcd@ 0000000000004cf0 BaseLib:String.obj
+ 0003:00000000 gEfiLoadedImageProtocolGuid 0000000000004ec0 PlatformDxe:AutoGen.obj
+ 0003:00000010 gEfiIfrTianoGuid 0000000000004ed0 PlatformDxe:AutoGen.obj
+ 0003:00000020 gOvmfPlatformConfigGuid 0000000000004ee0 PlatformDxe:AutoGen.obj
+ 0003:00000030 gPcdProtocolGuid 0000000000004ef0 PlatformDxe:AutoGen.obj
+ 0003:00000040 PlatformDxeStrings 0000000000004f00 PlatformDxe:AutoGen.obj
+ 0003:00000428 gEfiDevicePathProtocolGuid 00000000000052e8 PlatformDxe:AutoGen.obj
+ 0003:00000438 gEfiHiiConfigRoutingProtocolGuid 00000000000052f8 PlatformDxe:AutoGen.obj
+ 0003:00000448 gEfiHiiImageProtocolGuid 0000000000005308 PlatformDxe:AutoGen.obj
+ 0003:00000458 gEfiDevicePathUtilitiesProtocolGuid 0000000000005318 PlatformDxe:AutoGen.obj
+ 0003:00000468 gEfiGraphicsOutputProtocolGuid 0000000000005328 PlatformDxe:AutoGen.obj
+ 0003:00000478 gEfiHiiDatabaseProtocolGuid 0000000000005338 PlatformDxe:AutoGen.obj
+ 0003:00000488 gEfiHiiStringProtocolGuid 0000000000005348 PlatformDxe:AutoGen.obj
+ 0003:00000498 gEfiHiiConfigAccessProtocolGuid 0000000000005358 PlatformDxe:AutoGen.obj
+ 0003:000004a8 gEfiCallerIdGuid 0000000000005368 PlatformDxe:AutoGen.obj
+ 0003:000004b8 gEfiHiiFontProtocolGuid 0000000000005378 PlatformDxe:AutoGen.obj
+ 0003:000004e0 PlatformFormsBin 00000000000053a0 PlatformDxe:PlatformForms.obj
+ 0003:000005b8 mPcd 0000000000005478 DxePcdLib:DxePcdLib.obj
+ 0003:000005c8 gST 0000000000005488 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:000005d0 gBS 0000000000005490 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:000005d8 gImageHandle 0000000000005498 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:000005e0 gRT 00000000000054a0 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0003:000005e8 mDevicePathLibDevicePathUtilities 00000000000054a8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0003:000005f0 gHiiConfigRouting 00000000000054b0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:000005f8 gHiiString 00000000000054b8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000600 gHiiFont 00000000000054c0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000608 gHiiImage 00000000000054c8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000610 gHiiDatabase 00000000000054d0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+
+ entry point at 0001:000003b8
+
+ Static symbols
+
+ 0001:0000003a InternalMemCopyMem.0 00000000000002ba BaseMemoryLibRepStr:CopyMem.obj
+ 0001:0000004a @CopyBackward 00000000000002ca BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000053 @CopyBytes 00000000000002d3 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:0000012a @UseRepIo 00000000000003aa BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000012c @SevNoRepIo_Done 00000000000003ac BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000144 @IoReadFifo8_NoRep 00000000000003c4 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000146 @IoReadFifo8_Loop 00000000000003c6 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000014e @IoReadFifo8_Done 00000000000003ce BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000167 @IoReadFifo16_NoRep 00000000000003e7 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000169 @IoReadFifo16_Loop 00000000000003e9 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000174 @IoReadFifo16_Done 00000000000003f4 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000018c @IoReadFifo32_NoRep 000000000000040c BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000018e @IoReadFifo32_Loop 000000000000040e BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000197 @IoReadFifo32_Done 0000000000000417 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001af @IoWriteFifo8_NoRep 000000000000042f BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001b1 @IoWriteFifo8_Loop 0000000000000431 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001b9 @IoWriteFifo8_Done 0000000000000439 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001d2 @IoWriteFifo16_NoRep 0000000000000452 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001d4 @IoWriteFifo16_Loop 0000000000000454 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001df @IoWriteFifo16_Done 000000000000045f BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001f7 @IoWriteFifo32_NoRep 0000000000000477 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001f9 @IoWriteFifo32_Loop 0000000000000479 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000202 @IoWriteFifo32_Done 0000000000000482 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000026e TdVmCall.no_return_data 00000000000004ee BaseLib:TdVmcall.obj
+ 0001:000002eb TdCall.exit 000000000000056b BaseLib:TdCall.obj
+ 0001:00000698 PlatformConfigToFormState 0000000000000918 f PlatformDxe:Platform.obj
+ 0001:00000758 ExtractConfig 00000000000009d8 f PlatformDxe:Platform.obj
+ 0001:00000840 RouteConfig 0000000000000ac0 f PlatformDxe:Platform.obj
+ 0001:00000988 Callback 0000000000000c08 f PlatformDxe:Platform.obj
+ 0001:00000a04 CreateResolutionOptions 0000000000000c84 f PlatformDxe:Platform.obj
+ 0001:00000c14 PopulateForm 0000000000000e94 f PlatformDxe:Platform.obj
+ 0001:00000db8 GopInstalled 0000000000001038 f PlatformDxe:Platform.obj
+ 0003:000004c8 mPkgDevicePath 0000000000005388 PlatformDxe:Platform.obj
+ 0003:00000598 mVariableName 0000000000005458 PlatformDxe:PlatformConfig.obj
+ 0003:000005c0 mDebugIoPortChecked 0000000000005480 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0003:000005c1 mDebugIoPortFound 0000000000005481 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0003:00000618 mGopEvent 00000000000054d8 PlatformDxe:Platform.obj
+ 0003:00000620 mInstalledPackages 00000000000054e0 PlatformDxe:Platform.obj
+ 0003:00000628 mGopModes 00000000000054e8 PlatformDxe:Platform.obj
+ 0003:00000630 mConfigAccess 00000000000054f0 PlatformDxe:Platform.obj
+ 0003:00000648 mNumGopModes 0000000000005508 PlatformDxe:Platform.obj
+ 0003:00000650 mGopTracker 0000000000005510 PlatformDxe:Platform.obj
+ 0004:00000000 $pdata$_DriverUnloadHandler 0000000000005520 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0004:0000000c $pdata$_ModuleEntryPoint 000000000000552c UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0004:00000018 $pdata$ProcessLibraryConstructorList 0000000000005538 PlatformDxe:AutoGen.obj
+ 0004:00000024 $pdata$PlatformConfigToFormState 0000000000005544 PlatformDxe:Platform.obj
+ 0004:00000030 $pdata$ExtractConfig 0000000000005550 PlatformDxe:Platform.obj
+ 0004:0000003c $pdata$RouteConfig 000000000000555c PlatformDxe:Platform.obj
+ 0004:00000048 $pdata$Callback 0000000000005568 PlatformDxe:Platform.obj
+ 0004:00000054 $pdata$CreateResolutionOptions 0000000000005574 PlatformDxe:Platform.obj
+ 0004:00000060 $pdata$PopulateForm 0000000000005580 PlatformDxe:Platform.obj
+ 0004:0000006c $pdata$GopInstalled 000000000000558c PlatformDxe:Platform.obj
+ 0004:00000078 $pdata$PlatformInit 0000000000005598 PlatformDxe:Platform.obj
+ 0004:00000084 $pdata$PlatformConfigLoad 00000000000055a4 PlatformDxe:PlatformConfig.obj
+ 0004:00000090 $pdata$GetPcdProtocol 00000000000055b0 DxePcdLib:DxePcdLib.obj
+ 0004:0000009c $pdata$ZeroMem 00000000000055bc BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0004:000000a8 $pdata$CopyMem 00000000000055c8 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0004:000000b4 $pdata$UnicodeSPrintAsciiFormat 00000000000055d4 BasePrintLib:PrintLib.obj
+ 0004:000000c0 $pdata$AsciiSPrint 00000000000055e0 BasePrintLib:PrintLib.obj
+ 0004:000000cc $pdata$BasePrintLibValueToString 00000000000055ec BasePrintLib:PrintLibInternal.obj
+ 0004:000000d8 $pdata$BasePrintLibSPrintMarker 00000000000055f8 BasePrintLib:PrintLibInternal.obj
+ 0004:000000e4 $pdata$BasePrintLibSPrint 0000000000005604 BasePrintLib:PrintLibInternal.obj
+ 0004:000000f0 $pdata$DebugPrint 0000000000005610 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:000000fc $pdata$DebugPrintMarker 000000000000561c PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000108 $pdata$DebugAssert 0000000000005628 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000114 $pdata$PlatformDebugLibIoPortFound 0000000000005634 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0004:00000120 $pdata$InternalAllocatePool 0000000000005640 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:0000012c $pdata$AllocateZeroPool 000000000000564c UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000138 $pdata$InternalReallocatePool 0000000000005658 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000144 $pdata$FreePool 0000000000005664 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000150 $pdata$GetVariable2 0000000000005670 UefiLib:UefiLib.obj
+ 0004:0000015c $pdata$HiiAddPackages 000000000000567c UefiHiiLib:HiiLib.obj
+ 0004:00000168 $pdata$HiiRemovePackages 0000000000005688 UefiHiiLib:HiiLib.obj
+ 0004:00000174 $pdata$HiiAllocateOpCodeHandle 0000000000005694 UefiHiiLib:HiiLib.obj
+ 0004:00000180 $pdata$HiiFreeOpCodeHandle 00000000000056a0 UefiHiiLib:HiiLib.obj
+ 0004:0000018c $pdata$InternalHiiGrowOpCodeHandle 00000000000056ac UefiHiiLib:HiiLib.obj
+ 0004:00000198 $pdata$InternalHiiCreateOpCodeExtended 00000000000056b8 UefiHiiLib:HiiLib.obj
+ 0004:000001a4 $pdata$InternalHiiAppendOpCodes 00000000000056c4 UefiHiiLib:HiiLib.obj
+ 0004:000001b0 $pdata$HiiCreateEndOpCode 00000000000056d0 UefiHiiLib:HiiLib.obj
+ 0004:000001bc $pdata$InternalHiiUpdateFormPackageData 00000000000056dc UefiHiiLib:HiiLib.obj
+ 0004:000001c8 $pdata$HiiUpdateForm 00000000000056e8 UefiHiiLib:HiiLib.obj
+ 0004:000001d4 $pdata$HiiGetSupportedLanguages 00000000000056f4 UefiHiiLib:HiiLanguage.obj
+ 0004:000001e0 $pdata$CopyGuid 0000000000005700 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0004:000001ec $pdata$CompareGuid 000000000000570c BaseMemoryLibRepStr:MemLibGuid.obj
+ 0004:000001f8 $pdata$CompareMem 0000000000005718 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0004:00000204 $pdata$ReadUnaligned32 0000000000005724 BaseLib:Unaligned.obj
+ 0004:00000210 $pdata$ReadUnaligned64 0000000000005730 BaseLib:Unaligned.obj
+ 0004:0000021c $pdata$StrnLenS 000000000000573c BaseLib:SafeString.obj
+ 0004:00000228 $pdata$AsciiStrLen 0000000000005748 BaseLib:String.obj
+ 0004:00000234 $pdata$AsciiStrnCmp 0000000000005754 BaseLib:String.obj
+ 0004:00000240 $pdata$IoWriteFifo8 0000000000005760 BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0004:0000024c $pdata$TdIoRead8 000000000000576c BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0004:00000258 $pdata$TdIoWrite8 0000000000005778 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:00000000 $unwind$_DriverUnloadHandler 00000000000057a0 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0005:00000000 $unwind$TdIoWrite8 00000000000057a0 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:00000008 $unwind$_ModuleEntryPoint 00000000000057a8 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0005:00000008 $unwind$ReadUnaligned32 00000000000057a8 BaseLib:Unaligned.obj
+ 0005:00000008 $unwind$HiiFreeOpCodeHandle 00000000000057a8 UefiHiiLib:HiiLib.obj
+ 0005:00000008 $unwind$HiiRemovePackages 00000000000057a8 UefiHiiLib:HiiLib.obj
+ 0005:00000008 $unwind$StrnLenS 00000000000057a8 BaseLib:SafeString.obj
+ 0005:00000008 $unwind$HiiAllocateOpCodeHandle 00000000000057a8 UefiHiiLib:HiiLib.obj
+ 0005:00000008 $unwind$ReadUnaligned64 00000000000057a8 BaseLib:Unaligned.obj
+ 0005:00000008 $unwind$AllocateZeroPool 00000000000057a8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000010 $unwind$InternalReallocatePool 00000000000057b0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000010 $unwind$ProcessLibraryConstructorList 00000000000057b0 PlatformDxe:AutoGen.obj
+ 0005:00000010 $unwind$BasePrintLibValueToString 00000000000057b0 BasePrintLib:PrintLibInternal.obj
+ 0005:00000010 $unwind$CopyMem 00000000000057b0 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0005:00000024 $unwind$PlatformConfigToFormState 00000000000057c4 PlatformDxe:Platform.obj
+ 0005:00000024 $unwind$Callback 00000000000057c4 PlatformDxe:Platform.obj
+ 0005:00000030 $unwind$ExtractConfig 00000000000057d0 PlatformDxe:Platform.obj
+ 0005:00000044 $unwind$RouteConfig 00000000000057e4 PlatformDxe:Platform.obj
+ 0005:00000058 $unwind$CreateResolutionOptions 00000000000057f8 PlatformDxe:Platform.obj
+ 0005:00000074 $unwind$PopulateForm 0000000000005814 PlatformDxe:Platform.obj
+ 0005:0000008c $unwind$GopInstalled 000000000000582c PlatformDxe:Platform.obj
+ 0005:0000009c $unwind$PlatformInit 000000000000583c PlatformDxe:Platform.obj
+ 0005:000000a8 $unwind$PlatformConfigLoad 0000000000005848 PlatformDxe:PlatformConfig.obj
+ 0005:000000b8 $unwind$InternalAllocatePool 0000000000005858 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:000000b8 $unwind$PlatformDebugLibIoPortFound 0000000000005858 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0005:000000b8 $unwind$GetPcdProtocol 0000000000005858 DxePcdLib:DxePcdLib.obj
+ 0005:000000b8 $unwind$FreePool 0000000000005858 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:000000c0 $unwind$ZeroMem 0000000000005860 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0005:000000c0 $unwind$AsciiStrLen 0000000000005860 BaseLib:String.obj
+ 0005:000000c0 $unwind$HiiGetSupportedLanguages 0000000000005860 UefiHiiLib:HiiLanguage.obj
+ 0005:000000cc $unwind$UnicodeSPrintAsciiFormat 000000000000586c BasePrintLib:PrintLib.obj
+ 0005:000000d8 $unwind$AsciiSPrint 0000000000005878 BasePrintLib:PrintLib.obj
+ 0005:000000e0 $unwind$BasePrintLibSPrintMarker 0000000000005880 BasePrintLib:PrintLibInternal.obj
+ 0005:000000fc $unwind$BasePrintLibSPrint 000000000000589c BasePrintLib:PrintLibInternal.obj
+ 0005:00000104 $unwind$DebugPrint 00000000000058a4 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:0000010c $unwind$DebugPrintMarker 00000000000058ac PlatformDebugLibIoPort:DebugLib.obj
+ 0005:00000120 $unwind$DebugAssert 00000000000058c0 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:0000012c $unwind$GetVariable2 00000000000058cc UefiLib:UefiLib.obj
+ 0005:0000013c $unwind$HiiAddPackages 00000000000058dc UefiHiiLib:HiiLib.obj
+ 0005:00000150 $unwind$InternalHiiGrowOpCodeHandle 00000000000058f0 UefiHiiLib:HiiLib.obj
+ 0005:00000150 $unwind$CopyGuid 00000000000058f0 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0005:00000150 $unwind$IoWriteFifo8 00000000000058f0 BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0005:00000150 $unwind$CompareGuid 00000000000058f0 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0005:00000150 $unwind$InternalHiiAppendOpCodes 00000000000058f0 UefiHiiLib:HiiLib.obj
+ 0005:00000150 $unwind$AsciiStrnCmp 00000000000058f0 BaseLib:String.obj
+ 0005:00000160 $unwind$InternalHiiCreateOpCodeExtended 0000000000005900 UefiHiiLib:HiiLib.obj
+ 0005:00000160 $unwind$CompareMem 0000000000005900 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0005:00000178 $unwind$HiiCreateEndOpCode 0000000000005918 UefiHiiLib:HiiLib.obj
+ 0005:00000178 $unwind$TdIoRead8 0000000000005918 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:00000180 $unwind$InternalHiiUpdateFormPackageData 0000000000005920 UefiHiiLib:HiiLib.obj
+ 0005:0000019c $unwind$HiiUpdateForm 000000000000593c UefiHiiLib:HiiLib.obj
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformForms.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformForms.lst
new file mode 100644
index 000000000000..3b6a063e5bc9
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformForms.lst
@@ -0,0 +1,285 @@
+//
+// VFR compiler version 2.01 (UEFI 2.4) Developer Build based on Revision: Unknown
+//
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\OvmfPkg\\PlatformDxe\\PlatformForms.vfr"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\OvmfPkg\\PlatformDxe\\Platform\\DEBUG\\PlatformDxeStrDefs.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern unsigned char PlatformDxeStrings[];
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 53 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\OvmfPkg\\PlatformDxe\\Platform\\DEBUG\\PlatformDxeStrDefs.h"
+
+#line 55 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\OvmfPkg\\PlatformDxe\\Platform\\DEBUG\\PlatformDxeStrDefs.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\OvmfPkg\\PlatformDxe\\PlatformForms.vfr"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\OvmfPkg\\Include\\Guid/OvmfPlatformConfig.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern EFI_GUID {0x7235c51c, 0x0c80, 0x4cab, {0x87, 0xac, 0x3b, 0x08, 0x4a, 0x63, 0x04, 0xb1}};
+
+#line 19 "c:\\users\\mliang2x\\workspace\\edk2\\OvmfPkg\\Include\\Guid/OvmfPlatformConfig.h"
+#line 19 "c:\\users\\mliang2x\\workspace\\edk2\\OvmfPkg\\PlatformDxe\\PlatformForms.vfr"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\ovmfpkg\\platformdxe\\Platform.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct {
+ UINT16 CurrentPreferredResolution[16];
+ UINT32 NextPreferredResolution;
+} MAIN_FORM_STATE;
+
+#line 38 "c:\\users\\mliang2x\\workspace\\edk2\\ovmfpkg\\platformdxe\\Platform.h"
+#line 20 "c:\\users\\mliang2x\\workspace\\edk2\\OvmfPkg\\PlatformDxe\\PlatformForms.vfr"
+
+formset
+>00000000: 0E A7 1C C5 35 72 80 0C AB 4C 87 AC 3B 08 4A 63 04 B1 02 00 03 00 01 71 99 03 93 45 85 04 4B B4 5E 32 EB 83 26 04 0E
+>00000027: 5C 06 00 00 00 00
+>0000002D: 5C 06 00 00 01 00
+ guid = {0x7235c51c, 0x0c80, 0x4cab, {0x87, 0xac, 0x3b, 0x08, 0x4a, 0x63, 0x04, 0xb1}},
+ title = STRING_TOKEN(0x0002),
+ help = STRING_TOKEN(0x0003),
+
+ varstore MAIN_FORM_STATE,
+>00000033: 24 24 1C C5 35 72 80 0C AB 4C 87 AC 3B 08 4A 63 04 B1 01 00 24 00 4D 61 69 6E 46 6F 72 6D 53 74 61 74 65 00
+ varid = 1,
+ name = MainFormState,
+ guid = {0x7235c51c, 0x0c80, 0x4cab, {0x87, 0xac, 0x3b, 0x08, 0x4a, 0x63, 0x04, 0xb1}};
+
+ form
+>00000057: 01 86 01 00 04 00
+ formid = 1,
+ title = STRING_TOKEN(0x0004);
+
+
+
+
+ string
+>0000005D: 1C 90 05 00 06 00 01 00 01 00 00 00 01 00 10 00
+ varid = MainFormState.CurrentPreferredResolution,
+ questionid = 1,
+ prompt = STRING_TOKEN(0x0005),
+ help = STRING_TOKEN(0x0006),
+ flags = READ_ONLY,
+ minsize = 0,
+ maxsize = 16,
+ endstring;
+>0000006D: 29 02
+
+
+
+
+ label 1;
+>0000006F: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 01 00
+
+ text
+ help = STRING_TOKEN(0x0009),
+ text = STRING_TOKEN(0x0009),
+ flags = INTERACTIVE,
+>00000084: 0C 8F 09 00 09 00 03 00 00 00 FF FF 04 00 00
+ key = 3;
+>00000093: 29 02
+
+ text
+ help = STRING_TOKEN(0x000A),
+ text = STRING_TOKEN(0x000A),
+ flags = INTERACTIVE,
+>00000095: 0C 8F 0A 00 0A 00 04 00 00 00 FF FF 04 00 00
+ key = 4;
+>000000A4: 29 02
+
+ endform;
+>000000A6: 29 02
+
+endformset;
+>000000A8: 29 02
+
+//
+// All Opcode Record List
+//
+>00000000: 0E A7 1C C5 35 72 80 0C AB 4C 87 AC 3B 08 4A 63 04 B1 02 00 03 00 01 71 99 03 93 45 85 04 4B B4 5E 32 EB 83 26 04 0E
+>00000027: 5C 06 00 00 00 00
+>0000002D: 5C 06 00 00 01 00
+>00000033: 24 24 1C C5 35 72 80 0C AB 4C 87 AC 3B 08 4A 63 04 B1 01 00 24 00 4D 61 69 6E 46 6F 72 6D 53 74 61 74 65 00
+>00000057: 01 86 01 00 04 00
+>0000005D: 1C 90 05 00 06 00 01 00 01 00 00 00 01 00 10 00
+>0000006D: 29 02
+>0000006F: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 01 00
+>00000084: 0C 8F 09 00 09 00 03 00 00 00 FF FF 04 00 00
+>00000093: 29 02
+>00000095: 0C 8F 0A 00 0A 00 04 00 00 00 FF FF 04 00 00
+>000000A4: 29 02
+>000000A6: 29 02
+>000000A8: 29 02
+
+Total Size of all record is 0x000000AA
+
+
+***************************************************************
+ mPackAlign = 8
+ struct MAIN_FORM_STATE : mAlign [4] mTotalSize [0x24]
+
+ struct MAIN_FORM_STATE {
+ +00000000[00000000] CurrentPreferredResolution[16] <UINT16>
+ +00000032[00000020] NextPreferredResolution <UINT32>
+ };
+---------------------------------------------------------------
+ struct EFI_HII_REF : mAlign [16] mTotalSize [0x16]
+
+ struct EFI_HII_REF {
+ +00000000[00000000] QuestionId <UINT16>
+ +00000002[00000002] FormId <UINT16>
+ +00000004[00000004] FormSetGuid <(null)>
+ +00000020[00000014] DevicePath <EFI_STRING_ID>
+ };
+---------------------------------------------------------------
+ struct EFI_HII_TIME : mAlign [1] mTotalSize [0x3]
+
+ struct EFI_HII_TIME {
+ +00000000[00000000] Hours <UINT8>
+ +00000001[00000001] Minutes <UINT8>
+ +00000002[00000002] Seconds <UINT8>
+ };
+---------------------------------------------------------------
+ struct EFI_STRING_ID : mAlign [2] mTotalSize [0x2]
+
+ struct EFI_STRING_ID {
+ };
+---------------------------------------------------------------
+ struct EFI_HII_DATE : mAlign [2] mTotalSize [0x4]
+
+ struct EFI_HII_DATE {
+ +00000000[00000000] Year <UINT16>
+ +00000002[00000002] Month <UINT8>
+ +00000003[00000003] Day <UINT8>
+ };
+---------------------------------------------------------------
+ struct BOOLEAN : mAlign [1] mTotalSize [0x1]
+
+ struct BOOLEAN {
+ };
+---------------------------------------------------------------
+ struct UINT8 : mAlign [1] mTotalSize [0x1]
+
+ struct UINT8 {
+ };
+---------------------------------------------------------------
+ struct UINT16 : mAlign [2] mTotalSize [0x2]
+
+ struct UINT16 {
+ };
+---------------------------------------------------------------
+ struct UINT32 : mAlign [4] mTotalSize [0x4]
+
+ struct UINT32 {
+ };
+---------------------------------------------------------------
+ struct UINT64 : mAlign [8] mTotalSize [0x8]
+
+ struct UINT64 {
+ };
+---------------------------------------------------------------
+***************************************************************
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformForms.vfr.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformForms.vfr.deps
new file mode 100644
index 000000000000..8033ea46d70f
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformForms.vfr.deps
@@ -0,0 +1,4 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\DEBUG\PlatformForms.c: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\DEBUG\PlatformDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\OvmfPkg\Include\Guid/OvmfPlatformConfig.h" \
+"c:\users\mliang2x\workspace\edk2\ovmfpkg\platformdxe\Platform.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformFormsCompiled.yml b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformFormsCompiled.yml
new file mode 100644
index 000000000000..c54cb0a92d03
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformFormsCompiled.yml
@@ -0,0 +1,43 @@
+## DO NOT REMOVE -- YAML Mode
+include:
+- Guid/OvmfPlatformConfig.h
+- Platform.h
+
+formset:
+ guid: '{0x7235c51c, 0xc80, 0x4cab, { 0x87, 0xac, 0x3b, 0x8, 0x4a, 0x63, 0x4, 0xb1 }}'
+ help: 'Change various OVMF platform settings.'
+ title: 'OVMF Platform Configuration'
+ component:
+ - varstore:
+ guid: '{0x7235c51c, 0xc80, 0x4cab, { 0x87, 0xac, 0x3b, 0x8, 0x4a, 0x63, 0x4, 0xb1 }}'
+ varid: 0x0001 # Optional Input
+ size: 36 # Need to Compute
+ name: MainFormState
+ - form:
+ formid: 1
+ title: 'OVMF Settings'
+ component:
+ - string:
+ position: 'OVMF_PLATFORM_CONFIG_GUID.FORMID_MAIN_FORM.MainFormState.CurrentPreferredResolution' # for reference
+ questionid: 1
+ varstoreid: 1 # Optional Input
+ varname: 0 # Question VarName
+ varoffset: 0 # Question VarOffset
+ questionflags: 1 # Optional Input
+ prompt: 'Preferred Resolution at Next Boot'
+ help: 'The preferred resolution of the Graphics Console at next boot. It might be unset, or even invalid (hence ignored) wrt. the video RAM size.'
+ opcodeflags: 0x0 # optional input
+ minsize: 0
+ maxsize: 16
+ - label:
+ number: 0x1 # Number
+ - text:
+ help: 'Commit Changes and Exit'
+ prompt: 'Commit Changes and Exit'
+ flags: 4 # Optional Input, Question Flags
+ key: 0x0003 # Optional Input, Question QuestionId
+ - text:
+ help: 'Discard Changes and Exit'
+ prompt: 'Discard Changes and Exit'
+ flags: 4 # Optional Input, Question Flags
+ key: 0x0004 # Optional Input, Question QuestionId
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformFormsProcessed.yml b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformFormsProcessed.yml
new file mode 100644
index 000000000000..7136af7549bb
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/DEBUG/PlatformFormsProcessed.yml
@@ -0,0 +1,37 @@
+formset:
+ component:
+ - varstore:
+ guid: '{0x7235c51c, 0xc80, 0x4cab, {0x87, 0xac, 0x3b, 0x8, 0x4a, 0x63, 0x4, 0xb1}}'
+ name: MainFormState
+ type: MAIN_FORM_STATE
+ varid: 1
+ - form:
+ component:
+ - string:
+ flags: READ_ONLY
+ help: STRING_TOKEN(0x0006)
+ maxsize: 16
+ minsize: 0
+ prompt: STRING_TOKEN(0x0005)
+ questionid: 1
+ varid: MainFormState.CurrentPreferredResolution
+ - label:
+ number: 1
+ - text:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0009)
+ key: 3
+ prompt: STRING_TOKEN(0x0009)
+ - text:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x000A)
+ key: 4
+ prompt: STRING_TOKEN(0x000A)
+ formid: 1
+ title: STRING_TOKEN(0x0004)
+ guid: '{0x7235c51c, 0xc80, 0x4cab, {0x87, 0xac, 0x3b, 0x8, 0x4a, 0x63, 0x4, 0xb1}}'
+ help: STRING_TOKEN(0x0003)
+ title: STRING_TOKEN(0x0002)
+include:
+- Guid/OvmfPlatformConfig.h
+- Platform.h
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/Makefile b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/Makefile
new file mode 100644
index 000000000000..b8fa7470279b
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/Makefile
@@ -0,0 +1,438 @@
+#
+# DO NOT EDIT
+# This file is auto-generated by build utility
+#
+# Module Name:
+#
+# Makefile
+#
+# Abstract:
+#
+# Auto-generated makefile for building modules, libraries or platform
+#
+
+
+#
+# Platform Macro Definition
+#
+PLATFORM_NAME = Ovmf
+PLATFORM_GUID = 5a9e7754-d81b-49ea-85ad-69eaa7b1539b
+PLATFORM_VERSION = 0.1
+PLATFORM_RELATIVE_DIR = OvmfPkg
+PLATFORM_DIR = c:\users\mliang2x\workspace\edk2\OvmfPkg
+PLATFORM_OUTPUT_DIR = Build\OvmfX64
+
+#
+# Module Macro Definition
+#
+MODULE_NAME = PlatformDxe
+MODULE_GUID = D9DCC5DF-4007-435E-9098-8970935504B2
+MODULE_NAME_GUID = PlatformDxe
+MODULE_VERSION = 1.0
+MODULE_TYPE = DXE_DRIVER
+MODULE_FILE = Platform.inf
+MODULE_FILE_BASE_NAME = Platform
+BASE_NAME = $(MODULE_NAME)
+MODULE_RELATIVE_DIR = OvmfPkg\PlatformDxe
+PACKAGE_RELATIVE_DIR = PlatformDxe
+MODULE_DIR = c:\users\mliang2x\workspace\edk2\OvmfPkg\PlatformDxe
+FFS_OUTPUT_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\FV\Ffs\D9DCC5DF-4007-435E-9098-8970935504B2PlatformDxe
+
+MODULE_ENTRY_POINT = PlatformInit
+ARCH_ENTRY_POINT = PlatformInit
+IMAGE_ENTRY_POINT = _ModuleEntryPoint
+
+INF_VERSION = 0x00010005
+BASE_NAME = PlatformDxe
+FILE_GUID = D9DCC5DF-4007-435E-9098-8970935504B2
+MODULE_TYPE = DXE_DRIVER
+VERSION_STRING = 1.0
+
+#
+# Build Configuration Macro Definition
+#
+ARCH = X64
+TOOLCHAIN = VS2015x86
+TOOLCHAIN_TAG = VS2015x86
+TARGET = DEBUG
+
+#
+# Build Directory Macro Definition
+#
+# PLATFORM_BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86
+BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86
+BIN_DIR = $(BUILD_DIR)\X64
+LIB_DIR = $(BIN_DIR)
+MODULE_BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform
+OUTPUT_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\OUTPUT
+DEBUG_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\DEBUG
+DEST_DIR_OUTPUT = $(OUTPUT_DIR)
+DEST_DIR_DEBUG = $(DEBUG_DIR)
+
+#
+# Shell Command Macro
+#
+CP = copy /y
+MV = move /y
+RM = del /f /q
+MD = mkdir
+RD = rmdir /s /q
+
+
+#
+# Tools definitions specific to this module
+#
+APP_FLAGS = /nologo /E /TC
+APP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASL_FLAGS =
+ASL_OUTFLAGS = -p
+ASL = C:\ASL\iasl.exe
+
+ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable
+ASLCC = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE
+ASLDLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\link.exe
+
+ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h
+ASLPP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+ASM = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\ml64.exe
+
+ASM16 = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\ml.exe
+
+ASMLINK_FLAGS = /nologo /tiny
+ASMLINK = C:\WINDDK\3790.1830\bin\bin16\link16.exe
+
+BROTLI_GUID = 3D532050-5CDA-4FD0-879E-0F7F630D5AFB
+BROTLI = BrotliCompress
+
+CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /D DISABLE_NEW_DEPRECATED_INTERFACES /D TDX_GUEST_SUPPORTED /D ENABLE_MD5_DEPRECATED_INTERFACES
+CC = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+CRC32_GUID = FC1BCDB0-7D31-49AA-936A-A4600D9DD083
+CRC32 = GenCrc32
+
+DEPS_FLAGS = /showIncludes
+
+DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+DLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\link.exe
+
+DLINK2_FLAGS =
+
+DTC_FLAGS = -H epapr
+DTC = dtc
+
+DTCPP = cpp
+
+GENFW_FLAGS =
+GENFW = GenFw
+
+LZMA_GUID = EE4E5898-3914-4259-9D6E-DC7BD79403CF
+LZMA = LzmaCompress
+
+LZMAF86_GUID = D42AE6BD-1352-4bfb-909A-CA72A6EAE889
+LZMAF86 = LzmaF86Compress
+
+MAKE = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\nmake.exe
+
+NASM_FLAGS = -Ox -f win64 -g
+NASM = C:\nasm\nasm
+
+NASMB_FLAGS = -f bin
+
+OBJCOPY_ADDDEBUGFLAG = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_NAME).debug
+OBJCOPY_FLAGS = objcopy not needed for
+OBJCOPY = echo
+OBJCOPY_STRIPFLAG = --strip-unneeded -R .eh_frame
+
+OPTROM_FLAGS = -e
+OPTROM = EfiRom
+
+PKCS7SIGN_GUID = 4AAFD29D-68DF-49EE-8AA9-347D375665A7
+PKCS7SIGN = Pkcs7Sign
+
+PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+PP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+PYVFR = PyVfrCompile
+
+RC = c:\Program Files (x86)\Windows Kits\8.1\bin\x64\rc.exe
+
+RSA2048SHA256SIGN_GUID = A7717414-C616-4977-9420-844712A735BF
+RSA2048SHA256SIGN = Rsa2048Sha256Sign
+
+SLINK_FLAGS = /NOLOGO /LTCG
+SLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\lib.exe
+
+SYMRENAME_FLAGS = Symbol renaming not needed for
+SYMRENAME = echo
+
+TIANO_GUID = A31280AD-481E-41B6-95E8-127F4C984779
+TIANO = TianoCompress
+
+VFR_FLAGS = -l -n
+VFR = VfrCompile
+
+VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+VFRPP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+VPDTOOL_GUID = 8C3D856A-9BE6-468E-850A-24F7A8D38E08
+VPDTOOL = BPDG
+
+cc_resp_3 = @c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\OUTPUT\cc_resp_3.txt
+
+MAKE_FILE = $(MODULE_BUILD_DIR)\Makefile
+
+#
+# Build Macro
+#
+STATIC_LIBRARY_FILES = \
+ $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\OUTPUT\UefiHiiLib.lib \
+ $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\OUTPUT\UefiHiiServicesLib.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\OUTPUT\BaseDebugPrintErrorLevelLib.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\OUTPUT\BaseIoLibIntrinsicSev.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\OUTPUT\BaseLib.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\OUTPUT\BaseMemoryLibRepStr.lib \
+ $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\OUTPUT\BasePrintLib.lib \
+ $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\OUTPUT\DxePcdLib.lib \
+ $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\OUTPUT\FilterLibNull.lib \
+ $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\OUTPUT\TdxLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\OUTPUT\UefiBootServicesTableLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\OUTPUT\UefiDevicePathLibDevicePathProtocol.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint\OUTPUT\UefiDriverEntryPoint.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\OUTPUT\UefiLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\OUTPUT\UefiMemoryAllocationLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\OUTPUT\UefiRuntimeServicesTableLib.lib \
+ $(BIN_DIR)\OvmfPkg\Library\CcProbeLib\CcProbeLib\OUTPUT\CcProbeLib.lib \
+ $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\OUTPUT\PlatformDebugLibIoPort.lib \
+ $(OUTPUT_DIR)\PlatformDxe.lib
+
+OBJECT_FILES = \
+ $(OUTPUT_DIR)\AutoGen.obj \
+ $(OUTPUT_DIR)\Platform.obj \
+ $(OUTPUT_DIR)\PlatformConfig.obj \
+ $(OUTPUT_DIR)\PlatformForms.obj
+
+INC = \
+ /I$(WORKSPACE)\OvmfPkg\PlatformDxe \
+ /I$(DEBUG_DIR) \
+ /I$(WORKSPACE)\MdePkg \
+ /I$(WORKSPACE)\MdePkg\Include \
+ /I$(WORKSPACE)\MdePkg\Test\UnitTest\Include \
+ /I$(WORKSPACE)\MdePkg\Include\X64 \
+ /I$(WORKSPACE)\MdeModulePkg \
+ /I$(WORKSPACE)\MdeModulePkg\Include \
+ /I$(WORKSPACE)\OvmfPkg \
+ /I$(WORKSPACE)\OvmfPkg\Include \
+ /I$(WORKSPACE)\OvmfPkg\Csm\Include
+
+STATIC_LIBRARY_FILES_LIST = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\OUTPUT\static_library_files.lst
+OBJECT_FILES_LIST = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\OUTPUT\object_files.lst
+OBJLIST_0 = $(OUTPUT_DIR)\PlatformConfig.obj $(OUTPUT_DIR)\Platform.obj $(OUTPUT_DIR)\PlatformForms.obj $(OUTPUT_DIR)\AutoGen.obj
+
+
+#
+# Overridable Target Macro Definitions
+#
+FORCE_REBUILD = force_build
+INIT_TARGET = init
+PCH_TARGET =
+BC_TARGET =
+CODA_TARGET = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\OUTPUT\PlatformDxe.efi \
+ $(FFS_OUTPUT_DIR)\$(MODULE_GUID).map \
+ $(FFS_OUTPUT_DIR)\$(MODULE_GUID).ffs \
+
+
+#
+# Default target, which will build dependent libraries in addition to source files
+#
+
+all: mbuild
+
+
+#
+# Target used when called from platform makefile, which will bypass the build of dependent libraries
+#
+
+pbuild: $(INIT_TARGET) $(BC_TARGET) $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# ModuleTarget
+#
+
+mbuild: $(INIT_TARGET) $(BC_TARGET) gen_libs $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# Build Target used in multi-thread build mode, which will bypass the init and gen_libs targets
+#
+
+tbuild: $(BC_TARGET) $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# Phony target which is used to force executing commands for a target
+#
+force_build:
+ -@
+
+#
+# Target to update the FD
+#
+
+fds: mbuild gen_fds
+
+#
+# Initialization target: print build information and create necessary directories
+#
+init: info dirs
+
+info:
+ -@echo Building ... $(MODULE_DIR)\$(MODULE_FILE) [$(ARCH)]
+
+dirs:
+ -@if not exist $(DEBUG_DIR) $(MD) $(DEBUG_DIR)
+ -@if not exist $(OUTPUT_DIR) $(MD) $(OUTPUT_DIR)
+
+
+strdefs:
+ -@$(CP) $(DEBUG_DIR)\AutoGen.h $(DEBUG_DIR)\$(MODULE_NAME)StrDefs.h
+
+#
+# GenLibsTarget
+#
+gen_libs:
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\CcProbeLib\CcProbeLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint\Makefile
+ @cd $(MODULE_BUILD_DIR)
+
+#
+# Build Flash Device Image
+#
+gen_fds:
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BUILD_DIR)\Makefile fds
+ @cd $(MODULE_BUILD_DIR)
+
+!INCLUDE $(MODULE_BUILD_DIR)\dependency
+!INCLUDE $(MODULE_BUILD_DIR)\deps_target
+
+#
+# Individual Object Build Targets
+#
+$(DEBUG_DIR)\PlatformDxe.dll : $(MAKE_FILE)
+$(DEBUG_DIR)\PlatformDxe.dll : $(STATIC_LIBRARY_FILES)
+$(DEBUG_DIR)\PlatformDxe.dll : $(STATIC_LIBRARY_FILES_LIST)
+ "$(DLINK)" /OUT:c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\DEBUG\PlatformDxe.dll $(DLINK_FLAGS) $(DLINK2_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST)
+ "$(DLINK)" /OUT:c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\DEBUG\PlatformDxe.dll $(DLINK_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST)
+
+$(OUTPUT_DIR)\PlatformDxe.efi : $(DEBUG_DIR)\PlatformDxe.dll
+ "$(GENFW)" -e $(MODULE_TYPE) -o c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\OUTPUT\PlatformDxe.efi c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\DEBUG\PlatformDxe.dll $(GENFW_FLAGS)
+ $(CP) c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\OUTPUT\PlatformDxe.efi $(DEBUG_DIR)
+ $(CP) c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\OUTPUT\PlatformDxe.efi $(BIN_DIR)\$(MODULE_NAME_GUID).efi
+ -$(CP) $(DEBUG_DIR)\*.map $(OUTPUT_DIR)
+ -$(CP) $(DEBUG_DIR)\*.pdb $(OUTPUT_DIR)
+
+$(DEBUG_DIR)\PlatformDxe.efi : $(OUTPUT_DIR)\PlatformDxe.efi
+
+
+$(OUTPUT_DIR)\PlatformDxe.map : $(OUTPUT_DIR)\PlatformDxe.efi
+
+
+$(OBJLIST_0): \
+ $(MAKE_FILE) \
+ $(DEBUG_DIR)\PlatformForms.c \
+ $(DEBUG_DIR)\AutoGen.c \
+ $(DEBUG_DIR)\AutoGen.h \
+ $(DEBUG_DIR)\PlatformDxeStrDefs.h \
+ $(WORKSPACE)\OvmfPkg\PlatformDxe\PlatformConfig.c \
+ $(WORKSPACE)\OvmfPkg\PlatformDxe\Platform.c
+ "$(CC)" /Foc:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\OUTPUT\.\ $(DEPS_FLAGS) $(CC_FLAGS) $(INC) $(cc_resp_3)
+
+$(OUTPUT_DIR)\PlatformDxe.lib : $(OBJECT_FILES)
+$(OUTPUT_DIR)\PlatformDxe.lib : $(OBJECT_FILES_LIST)
+ "$(SLINK)" $(SLINK_FLAGS) /OUT:c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\OUTPUT\PlatformDxe.lib @$(OBJECT_FILES_LIST)
+
+$(DEBUG_DIR)\PlatformForms.c : $(MAKE_FILE)
+$(DEBUG_DIR)\PlatformForms.c : $(DEBUG_DIR)\AutoGen.h
+$(DEBUG_DIR)\PlatformForms.c : $(DEBUG_DIR)\PlatformDxeStrDefs.h
+$(DEBUG_DIR)\PlatformForms.c : $(WORKSPACE)\OvmfPkg\PlatformDxe\PlatformForms.vfr
+ "$(VFRPP)" $(DEPS_FLAGS) $(VFRPP_FLAGS) $(INC) c:\users\mliang2x\workspace\edk2\OvmfPkg\PlatformDxe\PlatformForms.vfr > $(OUTPUT_DIR)\PlatformForms.i
+ "$(VFR)" $(VFR_FLAGS) --string-db $(OUTPUT_DIR)\$(MODULE_NAME)StrDefs.hpk --output-directory c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\DEBUG\. $(OUTPUT_DIR)\PlatformForms.i
+ "$(PYVFR)" c:\users\mliang2x\workspace\edk2\OvmfPkg\PlatformDxe\PlatformForms.vfr -i $(INC) -m $(MODULE_NAME) -o $(OUTPUT_DIR) --vfr
+
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID).map : $(OUTPUT_DIR)\PlatformDxe.map
+ if exist $(OUTPUT_DIR)\PlatformDxe.map $(CP) $(OUTPUT_DIR)\PlatformDxe.map $(FFS_OUTPUT_DIR)\$(MODULE_GUID).map
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID).ffs : $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC1.1.dpx $(FFS_OUTPUT_DIR)\PlatformDxeOffset.raw $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.1.pe32 $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ui $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC4.ver
+ GenFfs -t EFI_FV_FILETYPE_DRIVER -g $(MODULE_GUID) -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID).ffs -oi $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC1.1.dpx -oi $(FFS_OUTPUT_DIR)\PlatformDxeOffset.raw -oi $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.1.pe32 -oi $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ui -oi $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC4.ver
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC1.1.dpx : $(OUTPUT_DIR)\PlatformDxe.depex
+ if exist $(OUTPUT_DIR)\PlatformDxe.depex GenSec -s EFI_SECTION_DXE_DEPEX -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC1.1.dpx $(OUTPUT_DIR)\PlatformDxe.depex
+$(FFS_OUTPUT_DIR)\PlatformDxeOffset.raw : $(FFS_OUTPUT_DIR)\PlatformDxe.offset
+ if exist $(FFS_OUTPUT_DIR)\PlatformDxe.offset GenSec -s EFI_SECTION_RAW -o $(FFS_OUTPUT_DIR)\PlatformDxeOffset.raw $(FFS_OUTPUT_DIR)\PlatformDxe.offset
+$(FFS_OUTPUT_DIR)\PlatformDxe.offset : $(DEBUG_DIR)\PlatformDxe.efi
+ Trim --Vfr-Uni-Offset -o $(FFS_OUTPUT_DIR)\PlatformDxe.offset --ModuleName=PlatformDxe --DebugDir=c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\DEBUG
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.1.pe32 : $(OUTPUT_DIR)\PlatformDxe.efi
+ if exist $(OUTPUT_DIR)\PlatformDxe.efi GenSec -s EFI_SECTION_PE32 -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.1.pe32 $(OUTPUT_DIR)\PlatformDxe.efi
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ui : $(MODULE_DIR)\$(MODULE_FILE)
+ GenSec -s EFI_SECTION_USER_INTERFACE -n $(MODULE_NAME) -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ui
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC4.ver : $(MODULE_DIR)\$(MODULE_FILE)
+ GenSec -s EFI_SECTION_VERSION -n 1.0 -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC4.ver
+
+
+#
+# clean all intermediate files
+#
+clean:
+ if exist $(OUTPUT_DIR) $(RD) $(OUTPUT_DIR)
+ $(RM) AutoGenTimeStamp
+
+#
+# clean all generated files
+#
+cleanall:
+ if exist $(DEBUG_DIR) $(RD) $(DEBUG_DIR)
+ if exist $(OUTPUT_DIR) $(RD) $(OUTPUT_DIR)
+ $(RM) *.pdb *.idb > NUL 2>&1
+ $(RM) $(BIN_DIR)\$(MODULE_NAME).efi
+ $(RM) AutoGenTimeStamp
+
+#
+# clean all dependent libraries built
+#
+cleanlib:
+ -@if exist $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\OvmfPkg\Library\CcProbeLib\CcProbeLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\CcProbeLib\CcProbeLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint\Makefile cleanall
+ @cd $(MODULE_BUILD_DIR)
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/AutoGen.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/AutoGen.c.deps
new file mode 100644
index 000000000000..5f5ad4e9e443
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/AutoGen.c.deps
@@ -0,0 +1,44 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\OUTPUT\AutoGen.c: \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\ovmfpkg\platformdxe\platform\debug\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\ovmfpkg\platformdxe\platform\debug\PlatformDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/Platform.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/Platform.c.deps
new file mode 100644
index 000000000000..b307e257d141
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/Platform.c.deps
@@ -0,0 +1,62 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\OUTPUT\Platform.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\ovmfpkg\platformdxe\platform\debug\PlatformDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\OvmfPkg\Include\Guid/OvmfPlatformConfig.h" \
+"c:\users\mliang2x\workspace\edk2\ovmfpkg\platformdxe\Platform.h" \
+"c:\users\mliang2x\workspace\edk2\ovmfpkg\platformdxe\PlatformConfig.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformConfig.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformConfig.c.deps
new file mode 100644
index 000000000000..e831ca3686aa
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformConfig.c.deps
@@ -0,0 +1,62 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\OUTPUT\PlatformConfig.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\ovmfpkg\platformdxe\platform\debug\PlatformDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\OvmfPkg\Include\Guid/OvmfPlatformConfig.h" \
+"c:\users\mliang2x\workspace\edk2\ovmfpkg\platformdxe\PlatformConfig.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxe.depex b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxe.depex
new file mode 100644
index 0000000000000000000000000000000000000000..410912e2b6bd7c4926b651329c41d839d7c68a9a
GIT binary patch
literal 126
zcmV-^0D=Dk*K&SXP|SHxf(gngAHksy0&>Bh@3NtjMzbevGW<bcLIUDwRvv+b)DgV#
z0D#9lh=Bqa_(5c1V?<81aDBQl-6T^2_VA+<N+$3=^5EXZ5;QL~0#3ep0|wW9L$EjP
gxG%SIqyltl*$=8C+)TO4n9+AoGAaWD0|NsC2n8=T8~^|S
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxe.efi b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxe.efi
new file mode 100644
index 0000000000000000000000000000000000000000..fd814fbb885b9bc68435caa54e062cd0d8ac4304
GIT binary patch
literal 22880
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
U_}AZmY2aTP_?HI$|JK0&0(7gl-2eap
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxe.lib b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxe.lib
new file mode 100644
index 0000000000000000000000000000000000000000..1e8d989a5d9174de1a7d545f1eef3393c0678497
GIT binary patch
literal 121488
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Ƕ3ju#rd5p9Je~Iacr%))^U6J^^UX3KkInC
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
Hk%#{WVkyf}
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxe.map b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxe.map
new file mode 100644
index 000000000000..54796ea3cda2
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxe.map
@@ -0,0 +1,359 @@
+ PlatformDxe
+
+ Timestamp is 6487d4c5 (Tue Jun 13 10:30:29 2023)
+
+ Preferred load address is 0000000000000000
+
+ Start Length Name Class
+ 0001:00000000 000002f8H .text CODE
+ 0001:000002f8 0000327fH .text$mn CODE
+ 0002:00000000 00001584H .rdata DATA
+ 0002:00001584 00000134H .rdata$zzzdbg DATA
+ 0003:00000000 000005b8H .data DATA
+ 0003:000005b8 000000a0H .bss DATA
+ 0004:00000000 00000264H .pdata DATA
+ 0005:00000000 000001b4H .xdata DATA
+
+ Address Publics by Value Rva+Base Lib:Object
+
+ 0000:00000000 __dynamic_value_reloc_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_flags 0000000000000000 <absolute>
+ 0000:00000000 __guard_iat_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_iat_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_longjmp_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_longjmp_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_table 0000000000000000 <absolute>
+ 0001:00000000 InternalMemZeroMem 0000000000000280 BaseMemoryLibRepStr:ZeroMem.obj
+ 0001:00000020 InternalMemCopyMem 00000000000002a0 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000060 InternalMemSetMem 00000000000002e0 BaseMemoryLibRepStr:SetMem.obj
+ 0001:00000080 InternalMemCompareMem 0000000000000300 BaseMemoryLibRepStr:CompareMem.obj
+ 0001:000000a0 InternalMemSetMem64 0000000000000320 BaseMemoryLibRepStr:SetMem64.obj
+ 0001:000000c0 InternalMemSetMem32 0000000000000340 BaseMemoryLibRepStr:SetMem32.obj
+ 0001:000000e0 CpuPause 0000000000000360 BaseLib:CpuPause.obj
+ 0001:000000f0 SevNoRepIo 0000000000000370 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000130 SevIoReadFifo8 00000000000003b0 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000152 SevIoReadFifo16 00000000000003d2 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000178 SevIoReadFifo32 00000000000003f8 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000019b SevIoWriteFifo8 000000000000041b BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001bd SevIoWriteFifo16 000000000000043d BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001e3 SevIoWriteFifo32 0000000000000463 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000210 TdVmCall 0000000000000490 BaseLib:TdVmcall.obj
+ 0001:000002a0 TdCall 0000000000000520 BaseLib:TdCall.obj
+ 0001:000002f8 _DriverUnloadHandler 0000000000000578 f UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0001:000003b8 _ModuleEntryPoint 0000000000000638 f UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0001:00000434 ProcessLibraryConstructorList 00000000000006b4 f PlatformDxe:AutoGen.obj
+ 0001:00000f48 PlatformInit 00000000000011c8 f PlatformDxe:Platform.obj
+ 0001:00001204 PlatformConfigLoad 0000000000001484 f PlatformDxe:PlatformConfig.obj
+ 0001:0000129c GetPcdProtocol 000000000000151c f DxePcdLib:DxePcdLib.obj
+ 0001:00001328 ZeroMem 00000000000015a8 f BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0001:0000138c CopyMem 000000000000160c f BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0001:00001428 UnicodeSPrintAsciiFormat 00000000000016a8 f BasePrintLib:PrintLib.obj
+ 0001:00001488 AsciiSPrint 0000000000001708 f BasePrintLib:PrintLib.obj
+ 0001:000014b0 BasePrintLibFillBuffer 0000000000001730 f BasePrintLib:PrintLibInternal.obj
+ 0001:000014e4 BasePrintLibValueToString 0000000000001764 f BasePrintLib:PrintLibInternal.obj
+ 0001:0000155c BasePrintLibSPrintMarker 00000000000017dc f BasePrintLib:PrintLibInternal.obj
+ 0001:000023d4 BasePrintLibSPrint 0000000000002654 f BasePrintLib:PrintLibInternal.obj
+ 0001:000023f8 DebugPrint 0000000000002678 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:0000241c DebugPrintMarker 000000000000269c f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:000024a4 DebugAssert 0000000000002724 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:00002514 PlatformDebugLibIoPortFound 0000000000002794 f PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0001:0000255c InternalAllocatePool 00000000000027dc f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:0000258c AllocateZeroPool 000000000000280c f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:000025b8 InternalReallocatePool 0000000000002838 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00002638 FreePool 00000000000028b8 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:0000267c GetVariable2 00000000000028fc f UefiLib:UefiLib.obj
+ 0001:00002798 HiiAddPackages 0000000000002a18 f UefiHiiLib:HiiLib.obj
+ 0001:000028d4 HiiRemovePackages 0000000000002b54 f UefiHiiLib:HiiLib.obj
+ 0001:00002948 HiiAllocateOpCodeHandle 0000000000002bc8 f UefiHiiLib:HiiLib.obj
+ 0001:00002998 HiiFreeOpCodeHandle 0000000000002c18 f UefiHiiLib:HiiLib.obj
+ 0001:000029d8 InternalHiiGrowOpCodeHandle 0000000000002c58 f UefiHiiLib:HiiLib.obj
+ 0001:00002a7c InternalHiiCreateOpCodeExtended 0000000000002cfc f UefiHiiLib:HiiLib.obj
+ 0001:00002b30 InternalHiiAppendOpCodes 0000000000002db0 f UefiHiiLib:HiiLib.obj
+ 0001:00002bb0 HiiCreateEndOpCode 0000000000002e30 f UefiHiiLib:HiiLib.obj
+ 0001:00002bd8 InternalHiiUpdateFormPackageData 0000000000002e58 f UefiHiiLib:HiiLib.obj
+ 0001:00002da4 HiiUpdateForm 0000000000003024 f UefiHiiLib:HiiLib.obj
+ 0001:00003004 HiiGetSupportedLanguages 0000000000003284 f UefiHiiLib:HiiLanguage.obj
+ 0001:000030a8 CopyGuid 0000000000003328 f BaseMemoryLibRepStr:MemLibGuid.obj
+ 0001:0000312c CompareGuid 00000000000033ac f BaseMemoryLibRepStr:MemLibGuid.obj
+ 0001:00003190 CompareMem 0000000000003410 f BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0001:00003268 ReadUnaligned32 00000000000034e8 f BaseLib:Unaligned.obj
+ 0001:00003298 ReadUnaligned64 0000000000003518 f BaseLib:Unaligned.obj
+ 0001:000032c8 StrnLenS 0000000000003548 f BaseLib:SafeString.obj
+ 0001:00003320 AsciiStrnLenS 00000000000035a0 f BaseLib:SafeString.obj
+ 0001:00003344 AsciiStrLen 00000000000035c4 f BaseLib:String.obj
+ 0001:000033b0 AsciiStrnCmp 0000000000003630 f BaseLib:String.obj
+ 0001:00003480 IoWriteFifo8 0000000000003700 f BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0001:000034d4 TdIoRead8 0000000000003754 f BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0001:00003524 TdIoWrite8 00000000000037a4 f BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0002:00000000 ??_C@_0CB@DMEJJJHA@?6ASSERT_EFI_ERROR?5?$CIStatus?5?$DN?5?$CFr?$CJ?6@ 0000000000003800 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:00000028 ??_C@_0CH@BBNBJKHK@?$CB?$CI?$CI?$CIINTN?$CJ?$CIRETURN_STATUS?$CJ?$CIStatus?$CJ@ 0000000000003828 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:00000050 ??_C@_0FI@PIDCFOGG@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000003850 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:000000a8 ??_C@_0CE@IBFOBMLB@?6ASSERT_RETURN_ERROR?5?$CIStatus?5?$DN?5?$CF@ 00000000000038a8 PlatformDxe:AutoGen.obj
+ 0002:000000d0 ??_C@_0HA@DGCLLPJI@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000038d0 PlatformDxe:AutoGen.obj
+ 0002:00000140 ??_C@_07BNNKDAOA@?$CFLdx?$CFLd?$AA@ 0000000000003940 PlatformDxe:Platform.obj
+ 0002:00000148 ??_C@_05EILJLEHP@Unset?$AA@ 0000000000003948 PlatformDxe:Platform.obj
+ 0002:00000150 ??_C@_0O@CAMOBCOG@ExtractConfig?$AA@ 0000000000003950 PlatformDxe:Platform.obj
+ 0002:00000160 ??_C@_0BC@FJPBPLMN@?$CFa?3?5Request?$DN?$CC?$CFs?$CC?6?$AA@ 0000000000003960 PlatformDxe:Platform.obj
+ 0002:00000178 ??_C@_0CI@BIMJLMIB@?$CFa?3?5BlockToConfig?$CI?$CJ?3?5?$CFr?0?5Progres@ 0000000000003978 PlatformDxe:Platform.obj
+ 0002:000001a0 ??_C@_0BC@CHHLCKEI@?$CFa?3?5Results?$DN?$CC?$CFs?$CC?6?$AA@ 00000000000039a0 PlatformDxe:Platform.obj
+ 0002:000001b8 ??_C@_0M@GLNGFDHA@RouteConfig?$AA@ 00000000000039b8 PlatformDxe:Platform.obj
+ 0002:000001c8 ??_C@_0BI@ECCILMDA@?$CFa?3?5Configuration?$DN?$CC?$CFs?$CC?6?$AA@ 00000000000039c8 PlatformDxe:Platform.obj
+ 0002:000001e0 ??_C@_0CI@JLEGFNLH@?$CFa?3?5ConfigToBlock?$CI?$CJ?3?5?$CFr?0?5Progres@ 00000000000039e0 PlatformDxe:Platform.obj
+ 0002:00000208 ??_C@_08HNHIOOFI@Callback?$AA@ 0000000000003a08 PlatformDxe:Platform.obj
+ 0002:00000218 ??_C@_0CI@OODHMEAC@?$CFa?3?5Action?$DN0x?$CFLx?5QuestionId?$DN?$CFd?5T@ 0000000000003a18 PlatformDxe:Platform.obj
+ 0002:00000240 ??_C@_0BG@GGFGDJDA@ExecutePlatformConfig?$AA@ 0000000000003a40 PlatformDxe:Platform.obj
+ 0002:00000258 ??_C@_0CI@JAAELFJD@?$CFa?3?5failed?5to?5load?5platform?5conf@ 0000000000003a58 PlatformDxe:Platform.obj
+ 0002:00000280 ??_C@_0CK@FMBEAILJ@?$CB?$CI?$CI?$CIINTN?$CJ?$CIRETURN_STATUS?$CJ?$CIPcdStat@ 0000000000003a80 PlatformDxe:Platform.obj
+ 0002:000002b0 ??_C@_0EA@NIAIBNIO@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000003ab0 PlatformDxe:Platform.obj
+ 0002:000002f0 ??_C@_0BD@FFEOBNHB@Event?5?$DN?$DN?5mGopEvent?$AA@ 0000000000003af0 PlatformDxe:Platform.obj
+ 0002:00000308 ??_C@_0BK@KBBNLPHD@mGopModes?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000003b08 PlatformDxe:Platform.obj
+ 0002:00000328 ??_C@_0BK@OABIFCCF@mGopModes?5?$DN?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000003b28 PlatformDxe:Platform.obj
+ 0002:00000350 ??_C@_0EG@MAJBHDFF@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000003b50 DxePcdLib:DxePcdLib.obj
+ 0002:00000398 ??_C@_0BF@OOKDELHM@mPcd?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000003b98 DxePcdLib:DxePcdLib.obj
+ 0002:000003b0 ??_C@_0BH@IACGKAP@Buffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000003bb0 DxePcdLib:DxePcdLib.obj
+ 0002:000003d0 ??_C@_0FF@PKHNKPL@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000003bd0 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:00000428 ??_C@_0DG@EEENIGGL@Length?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFFFFFULL@ 0000000000003c28 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:00000460 ??_C@_0ED@MKGCMJG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 0000000000003c60 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:000004b0 ??_C@_0FF@LLAFLLDM@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000003cb0 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00000508 ??_C@_0DO@MAOBOFEG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 0000000000003d08 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00000548 ??_C@_0CI@BGLNHBLM@?$CI?$CI?$CIUINTN?$CJ?5?$CIStartOfBuffer?$CJ?$CJ?5?$CG?50x0@ 0000000000003d48 BasePrintLib:PrintLib.obj
+ 0002:00000570 ??_C@_0EI@PHEOPKNG@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000003d70 BasePrintLib:PrintLib.obj
+ 0002:000005c0 ??_C@_0FA@JGMHCDLA@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000003dc0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000610 ??_C@_0BJ@CNKJJNE@?$CIBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 0000000000003e10 BasePrintLib:PrintLibInternal.obj
+ 0002:00000630 ??_C@_0EB@HDGIDCIO@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 0000000000003e30 BasePrintLib:PrintLibInternal.obj
+ 0002:00000678 ??_C@_0BJ@PPAKKDJG@?$CIFormat?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 0000000000003e78 BasePrintLib:PrintLibInternal.obj
+ 0002:000006a0 ??_C@_0ED@LPDDCECB@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 0000000000003ea0 BasePrintLib:PrintLibInternal.obj
+ 0002:000006f0 ??_C@_0IM@BFJJFLGB@?$CIStrnLenS?5?$CI?$CICHAR16?5?$CK?$CJFormat?0?5?$CI_g@ 0000000000003ef0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000780 ??_C@_0ID@PLGJGION@?$CIAsciiStrnLenS?5?$CIFormat?0?5?$CI_gPcd_F@ 0000000000003f80 BasePrintLib:PrintLibInternal.obj
+ 0002:00000808 ??_C@_0O@MLOLIMFM@?$DMnull?5string?$DO?$AA@ 0000000000004008 BasePrintLib:PrintLibInternal.obj
+ 0002:00000818 ??_C@_0M@BJJDNPHK@?$DMnull?5guid?$DO?$AA@ 0000000000004018 BasePrintLib:PrintLibInternal.obj
+ 0002:00000828 ??_C@_0DB@PMLHLBMO@?$CF08x?9?$CF04x?9?$CF04x?9?$CF02x?$CF02x?9?$CF02x?$CF02x@ 0000000000004028 BasePrintLib:PrintLibInternal.obj
+ 0002:00000860 ??_C@_0M@LHGBCIKM@?$DMnull?5time?$DO?$AA@ 0000000000004060 BasePrintLib:PrintLibInternal.obj
+ 0002:00000870 ??_C@_0BK@FCPKCIDD@?$CF02d?1?$CF02d?1?$CF04d?5?5?$CF02d?3?$CF02d?$AA@ 0000000000004070 BasePrintLib:PrintLibInternal.obj
+ 0002:0000088c ??_C@_04JIMNDDED@?$CF08X?$AA@ 000000000000408c BasePrintLib:PrintLibInternal.obj
+ 0002:00000894 ??_C@_02PCIJFNDE@?$AN?6?$AA@ 0000000000004094 BasePrintLib:PrintLibInternal.obj
+ 0002:00000898 ??_C@_01LIIJDEN@?$AN?$AA@ 0000000000004098 BasePrintLib:PrintLibInternal.obj
+ 0002:000008a0 mWarningString 00000000000040a0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000940 mErrorString 0000000000004140 BasePrintLib:PrintLibInternal.obj
+ 0002:00000c00 mHexStr 0000000000004400 BasePrintLib:PrintLibInternal.obj
+ 0002:00000c10 ??_C@_0BH@LKMBFCBF@Format?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004410 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00000c30 ??_C@_0FD@OABGLBHF@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000004430 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00000c88 ??_C@_0BE@ECBJLCDE@ASSERT?5?$CFa?$CI?$CFLu?$CJ?3?5?$CFa?6?$AA@ 0000000000004488 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00000ca0 ??_C@_0BN@COECPDCC@gImageHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000044a0 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00000cc0 ??_C@_0GE@FKBNDHHB@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000044c0 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00000d28 ??_C@_0BE@DGNHAHIL@gST?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004528 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00000d40 ??_C@_0BE@BDFJLGLN@gBS?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004540 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00000d60 ??_C@_0FO@BEMDJMPM@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000004560 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:00000dc0 ??_C@_0BE@OBDFIHND@gRT?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000045c0 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:00000de0 ??_C@_0GK@FJIMGEPP@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000045e0 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:00000e50 ??_C@_0GI@KEFAHLGJ@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000004650 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00000eb8 ??_C@_0DC@CNNBPJA@mDevicePathLibDevicePathUtilitie@ 00000000000046b8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00000ef0 ??_C@_0EC@DCGCAOKF@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000046f0 UefiLib:UefiLib.obj
+ 0002:00000f40 ??_C@_0EG@GOBFPEEP@Name?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5Guid?5?$CB?$DN?5@ 0000000000004740 UefiLib:UefiLib.obj
+ 0002:00000f88 ??_C@_0BH@FMEOEIBC@?$CKValue?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004788 UefiLib:UefiLib.obj
+ 0002:00000fa0 ??_C@_0FO@HNLMMFDN@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000047a0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0002:00001000 ??_C@_0BK@KLJHMMPJ@HiiHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004800 UefiHiiLib:HiiString.obj
+ 0002:00001020 ??_C@_0EN@DDBLCGFI@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000004820 UefiHiiLib:HiiString.obj
+ 0002:00001070 ??_C@_0BH@MAAHKCPC@String?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004870 UefiHiiLib:HiiString.obj
+ 0002:00001088 ??_C@_06PLDEFKP@x?9UEFI?$AA@ 0000000000004888 UefiHiiLib:HiiString.obj
+ 0002:00001090 ??_C@_0CA@OEKIMLLB@PackageListGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004890 UefiHiiLib:HiiString.obj
+ 0002:000010b0 ??_C@_0EK@CCOCGB@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000048b0 UefiHiiLib:HiiLib.obj
+ 0002:00001100 ??_C@_0BN@OKKMNGPH@OpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004900 UefiHiiLib:HiiLib.obj
+ 0002:00001120 ??_C@_0BP@IOABAFLF@OpCodeTemplate?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004920 UefiHiiLib:HiiLib.obj
+ 0002:00001140 ??_C@_0CF@DPHCOLMP@?$CIOpCodeSize?5?$CL?5ExtensionSize?$CJ?5?$DM?$DN?5@ 0000000000004940 UefiHiiLib:HiiLib.obj
+ 0002:00001168 ??_C@_0BK@JGHNIOOD@RawBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004968 UefiHiiLib:HiiLib.obj
+ 0002:00001188 ??_C@_0CA@JCKPEJCB@RawOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004988 UefiHiiLib:HiiLib.obj
+ 0002:000011a8 ??_C@_0CE@KJODLANI@OptionsOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ@ 00000000000049a8 UefiHiiLib:HiiLib.obj
+ 0002:000011d0 ??_C@_0CC@PIBHJFDN@StartOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 00000000000049d0 UefiHiiLib:HiiLib.obj
+ 0002:000011f4 mEndOfPakageList 00000000000049f4 UefiHiiLib:HiiLib.obj
+ 0002:00001200 ??_C@_0EP@LMJDKFAP@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000004a00 UefiHiiLib:HiiLanguage.obj
+ 0002:00001250 ??_C@_0CC@JOEHDGKB@DestinationBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 0000000000004a50 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00001280 ??_C@_0FI@NCCCHAEB@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000004a80 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:000012d8 ??_C@_0BN@MDMCNBCC@SourceBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000004ad8 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00001300 ??_C@_0EE@FAJFAODK@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000004b00 BaseLib:Unaligned.obj
+ 0002:00001348 ??_C@_0N@KGHEHMDL@Divisor?5?$CB?$DN?50?$AA@ 0000000000004b48 BaseLib:DivU64x32Remainder.obj
+ 0002:00001360 ??_C@_0EN@EIGKPMFG@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000004b60 BaseLib:DivU64x32Remainder.obj
+ 0002:000013b0 ??_C@_0CC@GFNLNIOC@?$CI?$CIUINTN?$CJString?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 0000000000004bb0 BaseLib:SafeString.obj
+ 0002:000013e0 ??_C@_0EF@MFKKFBPN@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000004be0 BaseLib:SafeString.obj
+ 0002:00001430 ??_C@_0EB@OHCINBMP@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000004c30 BaseLib:String.obj
+ 0002:00001478 ??_C@_0DI@MDIKFADO@Length?5?$DM?5_gPcd_FixedAtBuild_PcdM@ 0000000000004c78 BaseLib:String.obj
+ 0002:000014b0 ??_C@_0BL@IKFBNFIL@AsciiStrSize?5?$CIFirstString?$CJ?$AA@ 0000000000004cb0 BaseLib:String.obj
+ 0002:000014d0 ??_C@_0BM@EDNOKLLE@AsciiStrSize?5?$CISecondString?$CJ?$AA@ 0000000000004cd0 BaseLib:String.obj
+ 0002:000014f0 ??_C@_0DJ@JJHGIFMP@Length?5?$DM?$DN?5_gPcd_FixedAtBuild_Pcd@ 0000000000004cf0 BaseLib:String.obj
+ 0003:00000000 gEfiLoadedImageProtocolGuid 0000000000004ec0 PlatformDxe:AutoGen.obj
+ 0003:00000010 gEfiIfrTianoGuid 0000000000004ed0 PlatformDxe:AutoGen.obj
+ 0003:00000020 gOvmfPlatformConfigGuid 0000000000004ee0 PlatformDxe:AutoGen.obj
+ 0003:00000030 gPcdProtocolGuid 0000000000004ef0 PlatformDxe:AutoGen.obj
+ 0003:00000040 PlatformDxeStrings 0000000000004f00 PlatformDxe:AutoGen.obj
+ 0003:00000428 gEfiDevicePathProtocolGuid 00000000000052e8 PlatformDxe:AutoGen.obj
+ 0003:00000438 gEfiHiiConfigRoutingProtocolGuid 00000000000052f8 PlatformDxe:AutoGen.obj
+ 0003:00000448 gEfiHiiImageProtocolGuid 0000000000005308 PlatformDxe:AutoGen.obj
+ 0003:00000458 gEfiDevicePathUtilitiesProtocolGuid 0000000000005318 PlatformDxe:AutoGen.obj
+ 0003:00000468 gEfiGraphicsOutputProtocolGuid 0000000000005328 PlatformDxe:AutoGen.obj
+ 0003:00000478 gEfiHiiDatabaseProtocolGuid 0000000000005338 PlatformDxe:AutoGen.obj
+ 0003:00000488 gEfiHiiStringProtocolGuid 0000000000005348 PlatformDxe:AutoGen.obj
+ 0003:00000498 gEfiHiiConfigAccessProtocolGuid 0000000000005358 PlatformDxe:AutoGen.obj
+ 0003:000004a8 gEfiCallerIdGuid 0000000000005368 PlatformDxe:AutoGen.obj
+ 0003:000004b8 gEfiHiiFontProtocolGuid 0000000000005378 PlatformDxe:AutoGen.obj
+ 0003:000004e0 PlatformFormsBin 00000000000053a0 PlatformDxe:PlatformForms.obj
+ 0003:000005b8 mPcd 0000000000005478 DxePcdLib:DxePcdLib.obj
+ 0003:000005c8 gST 0000000000005488 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:000005d0 gBS 0000000000005490 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:000005d8 gImageHandle 0000000000005498 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:000005e0 gRT 00000000000054a0 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0003:000005e8 mDevicePathLibDevicePathUtilities 00000000000054a8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0003:000005f0 gHiiConfigRouting 00000000000054b0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:000005f8 gHiiString 00000000000054b8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000600 gHiiFont 00000000000054c0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000608 gHiiImage 00000000000054c8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000610 gHiiDatabase 00000000000054d0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+
+ entry point at 0001:000003b8
+
+ Static symbols
+
+ 0001:0000003a InternalMemCopyMem.0 00000000000002ba BaseMemoryLibRepStr:CopyMem.obj
+ 0001:0000004a @CopyBackward 00000000000002ca BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000053 @CopyBytes 00000000000002d3 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:0000012a @UseRepIo 00000000000003aa BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000012c @SevNoRepIo_Done 00000000000003ac BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000144 @IoReadFifo8_NoRep 00000000000003c4 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000146 @IoReadFifo8_Loop 00000000000003c6 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000014e @IoReadFifo8_Done 00000000000003ce BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000167 @IoReadFifo16_NoRep 00000000000003e7 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000169 @IoReadFifo16_Loop 00000000000003e9 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000174 @IoReadFifo16_Done 00000000000003f4 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000018c @IoReadFifo32_NoRep 000000000000040c BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000018e @IoReadFifo32_Loop 000000000000040e BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000197 @IoReadFifo32_Done 0000000000000417 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001af @IoWriteFifo8_NoRep 000000000000042f BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001b1 @IoWriteFifo8_Loop 0000000000000431 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001b9 @IoWriteFifo8_Done 0000000000000439 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001d2 @IoWriteFifo16_NoRep 0000000000000452 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001d4 @IoWriteFifo16_Loop 0000000000000454 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001df @IoWriteFifo16_Done 000000000000045f BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001f7 @IoWriteFifo32_NoRep 0000000000000477 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001f9 @IoWriteFifo32_Loop 0000000000000479 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000202 @IoWriteFifo32_Done 0000000000000482 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000026e TdVmCall.no_return_data 00000000000004ee BaseLib:TdVmcall.obj
+ 0001:000002eb TdCall.exit 000000000000056b BaseLib:TdCall.obj
+ 0001:00000698 PlatformConfigToFormState 0000000000000918 f PlatformDxe:Platform.obj
+ 0001:00000758 ExtractConfig 00000000000009d8 f PlatformDxe:Platform.obj
+ 0001:00000840 RouteConfig 0000000000000ac0 f PlatformDxe:Platform.obj
+ 0001:00000988 Callback 0000000000000c08 f PlatformDxe:Platform.obj
+ 0001:00000a04 CreateResolutionOptions 0000000000000c84 f PlatformDxe:Platform.obj
+ 0001:00000c14 PopulateForm 0000000000000e94 f PlatformDxe:Platform.obj
+ 0001:00000db8 GopInstalled 0000000000001038 f PlatformDxe:Platform.obj
+ 0003:000004c8 mPkgDevicePath 0000000000005388 PlatformDxe:Platform.obj
+ 0003:00000598 mVariableName 0000000000005458 PlatformDxe:PlatformConfig.obj
+ 0003:000005c0 mDebugIoPortChecked 0000000000005480 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0003:000005c1 mDebugIoPortFound 0000000000005481 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0003:00000618 mGopEvent 00000000000054d8 PlatformDxe:Platform.obj
+ 0003:00000620 mInstalledPackages 00000000000054e0 PlatformDxe:Platform.obj
+ 0003:00000628 mGopModes 00000000000054e8 PlatformDxe:Platform.obj
+ 0003:00000630 mConfigAccess 00000000000054f0 PlatformDxe:Platform.obj
+ 0003:00000648 mNumGopModes 0000000000005508 PlatformDxe:Platform.obj
+ 0003:00000650 mGopTracker 0000000000005510 PlatformDxe:Platform.obj
+ 0004:00000000 $pdata$_DriverUnloadHandler 0000000000005520 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0004:0000000c $pdata$_ModuleEntryPoint 000000000000552c UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0004:00000018 $pdata$ProcessLibraryConstructorList 0000000000005538 PlatformDxe:AutoGen.obj
+ 0004:00000024 $pdata$PlatformConfigToFormState 0000000000005544 PlatformDxe:Platform.obj
+ 0004:00000030 $pdata$ExtractConfig 0000000000005550 PlatformDxe:Platform.obj
+ 0004:0000003c $pdata$RouteConfig 000000000000555c PlatformDxe:Platform.obj
+ 0004:00000048 $pdata$Callback 0000000000005568 PlatformDxe:Platform.obj
+ 0004:00000054 $pdata$CreateResolutionOptions 0000000000005574 PlatformDxe:Platform.obj
+ 0004:00000060 $pdata$PopulateForm 0000000000005580 PlatformDxe:Platform.obj
+ 0004:0000006c $pdata$GopInstalled 000000000000558c PlatformDxe:Platform.obj
+ 0004:00000078 $pdata$PlatformInit 0000000000005598 PlatformDxe:Platform.obj
+ 0004:00000084 $pdata$PlatformConfigLoad 00000000000055a4 PlatformDxe:PlatformConfig.obj
+ 0004:00000090 $pdata$GetPcdProtocol 00000000000055b0 DxePcdLib:DxePcdLib.obj
+ 0004:0000009c $pdata$ZeroMem 00000000000055bc BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0004:000000a8 $pdata$CopyMem 00000000000055c8 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0004:000000b4 $pdata$UnicodeSPrintAsciiFormat 00000000000055d4 BasePrintLib:PrintLib.obj
+ 0004:000000c0 $pdata$AsciiSPrint 00000000000055e0 BasePrintLib:PrintLib.obj
+ 0004:000000cc $pdata$BasePrintLibValueToString 00000000000055ec BasePrintLib:PrintLibInternal.obj
+ 0004:000000d8 $pdata$BasePrintLibSPrintMarker 00000000000055f8 BasePrintLib:PrintLibInternal.obj
+ 0004:000000e4 $pdata$BasePrintLibSPrint 0000000000005604 BasePrintLib:PrintLibInternal.obj
+ 0004:000000f0 $pdata$DebugPrint 0000000000005610 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:000000fc $pdata$DebugPrintMarker 000000000000561c PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000108 $pdata$DebugAssert 0000000000005628 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000114 $pdata$PlatformDebugLibIoPortFound 0000000000005634 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0004:00000120 $pdata$InternalAllocatePool 0000000000005640 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:0000012c $pdata$AllocateZeroPool 000000000000564c UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000138 $pdata$InternalReallocatePool 0000000000005658 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000144 $pdata$FreePool 0000000000005664 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000150 $pdata$GetVariable2 0000000000005670 UefiLib:UefiLib.obj
+ 0004:0000015c $pdata$HiiAddPackages 000000000000567c UefiHiiLib:HiiLib.obj
+ 0004:00000168 $pdata$HiiRemovePackages 0000000000005688 UefiHiiLib:HiiLib.obj
+ 0004:00000174 $pdata$HiiAllocateOpCodeHandle 0000000000005694 UefiHiiLib:HiiLib.obj
+ 0004:00000180 $pdata$HiiFreeOpCodeHandle 00000000000056a0 UefiHiiLib:HiiLib.obj
+ 0004:0000018c $pdata$InternalHiiGrowOpCodeHandle 00000000000056ac UefiHiiLib:HiiLib.obj
+ 0004:00000198 $pdata$InternalHiiCreateOpCodeExtended 00000000000056b8 UefiHiiLib:HiiLib.obj
+ 0004:000001a4 $pdata$InternalHiiAppendOpCodes 00000000000056c4 UefiHiiLib:HiiLib.obj
+ 0004:000001b0 $pdata$HiiCreateEndOpCode 00000000000056d0 UefiHiiLib:HiiLib.obj
+ 0004:000001bc $pdata$InternalHiiUpdateFormPackageData 00000000000056dc UefiHiiLib:HiiLib.obj
+ 0004:000001c8 $pdata$HiiUpdateForm 00000000000056e8 UefiHiiLib:HiiLib.obj
+ 0004:000001d4 $pdata$HiiGetSupportedLanguages 00000000000056f4 UefiHiiLib:HiiLanguage.obj
+ 0004:000001e0 $pdata$CopyGuid 0000000000005700 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0004:000001ec $pdata$CompareGuid 000000000000570c BaseMemoryLibRepStr:MemLibGuid.obj
+ 0004:000001f8 $pdata$CompareMem 0000000000005718 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0004:00000204 $pdata$ReadUnaligned32 0000000000005724 BaseLib:Unaligned.obj
+ 0004:00000210 $pdata$ReadUnaligned64 0000000000005730 BaseLib:Unaligned.obj
+ 0004:0000021c $pdata$StrnLenS 000000000000573c BaseLib:SafeString.obj
+ 0004:00000228 $pdata$AsciiStrLen 0000000000005748 BaseLib:String.obj
+ 0004:00000234 $pdata$AsciiStrnCmp 0000000000005754 BaseLib:String.obj
+ 0004:00000240 $pdata$IoWriteFifo8 0000000000005760 BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0004:0000024c $pdata$TdIoRead8 000000000000576c BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0004:00000258 $pdata$TdIoWrite8 0000000000005778 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:00000000 $unwind$_DriverUnloadHandler 00000000000057a0 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0005:00000000 $unwind$TdIoWrite8 00000000000057a0 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:00000008 $unwind$_ModuleEntryPoint 00000000000057a8 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0005:00000008 $unwind$ReadUnaligned32 00000000000057a8 BaseLib:Unaligned.obj
+ 0005:00000008 $unwind$HiiFreeOpCodeHandle 00000000000057a8 UefiHiiLib:HiiLib.obj
+ 0005:00000008 $unwind$HiiRemovePackages 00000000000057a8 UefiHiiLib:HiiLib.obj
+ 0005:00000008 $unwind$StrnLenS 00000000000057a8 BaseLib:SafeString.obj
+ 0005:00000008 $unwind$HiiAllocateOpCodeHandle 00000000000057a8 UefiHiiLib:HiiLib.obj
+ 0005:00000008 $unwind$ReadUnaligned64 00000000000057a8 BaseLib:Unaligned.obj
+ 0005:00000008 $unwind$AllocateZeroPool 00000000000057a8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000010 $unwind$InternalReallocatePool 00000000000057b0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000010 $unwind$ProcessLibraryConstructorList 00000000000057b0 PlatformDxe:AutoGen.obj
+ 0005:00000010 $unwind$BasePrintLibValueToString 00000000000057b0 BasePrintLib:PrintLibInternal.obj
+ 0005:00000010 $unwind$CopyMem 00000000000057b0 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0005:00000024 $unwind$PlatformConfigToFormState 00000000000057c4 PlatformDxe:Platform.obj
+ 0005:00000024 $unwind$Callback 00000000000057c4 PlatformDxe:Platform.obj
+ 0005:00000030 $unwind$ExtractConfig 00000000000057d0 PlatformDxe:Platform.obj
+ 0005:00000044 $unwind$RouteConfig 00000000000057e4 PlatformDxe:Platform.obj
+ 0005:00000058 $unwind$CreateResolutionOptions 00000000000057f8 PlatformDxe:Platform.obj
+ 0005:00000074 $unwind$PopulateForm 0000000000005814 PlatformDxe:Platform.obj
+ 0005:0000008c $unwind$GopInstalled 000000000000582c PlatformDxe:Platform.obj
+ 0005:0000009c $unwind$PlatformInit 000000000000583c PlatformDxe:Platform.obj
+ 0005:000000a8 $unwind$PlatformConfigLoad 0000000000005848 PlatformDxe:PlatformConfig.obj
+ 0005:000000b8 $unwind$InternalAllocatePool 0000000000005858 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:000000b8 $unwind$PlatformDebugLibIoPortFound 0000000000005858 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0005:000000b8 $unwind$GetPcdProtocol 0000000000005858 DxePcdLib:DxePcdLib.obj
+ 0005:000000b8 $unwind$FreePool 0000000000005858 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:000000c0 $unwind$ZeroMem 0000000000005860 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0005:000000c0 $unwind$AsciiStrLen 0000000000005860 BaseLib:String.obj
+ 0005:000000c0 $unwind$HiiGetSupportedLanguages 0000000000005860 UefiHiiLib:HiiLanguage.obj
+ 0005:000000cc $unwind$UnicodeSPrintAsciiFormat 000000000000586c BasePrintLib:PrintLib.obj
+ 0005:000000d8 $unwind$AsciiSPrint 0000000000005878 BasePrintLib:PrintLib.obj
+ 0005:000000e0 $unwind$BasePrintLibSPrintMarker 0000000000005880 BasePrintLib:PrintLibInternal.obj
+ 0005:000000fc $unwind$BasePrintLibSPrint 000000000000589c BasePrintLib:PrintLibInternal.obj
+ 0005:00000104 $unwind$DebugPrint 00000000000058a4 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:0000010c $unwind$DebugPrintMarker 00000000000058ac PlatformDebugLibIoPort:DebugLib.obj
+ 0005:00000120 $unwind$DebugAssert 00000000000058c0 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:0000012c $unwind$GetVariable2 00000000000058cc UefiLib:UefiLib.obj
+ 0005:0000013c $unwind$HiiAddPackages 00000000000058dc UefiHiiLib:HiiLib.obj
+ 0005:00000150 $unwind$InternalHiiGrowOpCodeHandle 00000000000058f0 UefiHiiLib:HiiLib.obj
+ 0005:00000150 $unwind$CopyGuid 00000000000058f0 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0005:00000150 $unwind$IoWriteFifo8 00000000000058f0 BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0005:00000150 $unwind$CompareGuid 00000000000058f0 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0005:00000150 $unwind$InternalHiiAppendOpCodes 00000000000058f0 UefiHiiLib:HiiLib.obj
+ 0005:00000150 $unwind$AsciiStrnCmp 00000000000058f0 BaseLib:String.obj
+ 0005:00000160 $unwind$InternalHiiCreateOpCodeExtended 0000000000005900 UefiHiiLib:HiiLib.obj
+ 0005:00000160 $unwind$CompareMem 0000000000005900 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0005:00000178 $unwind$HiiCreateEndOpCode 0000000000005918 UefiHiiLib:HiiLib.obj
+ 0005:00000178 $unwind$TdIoRead8 0000000000005918 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:00000180 $unwind$InternalHiiUpdateFormPackageData 0000000000005920 UefiHiiLib:HiiLib.obj
+ 0005:0000019c $unwind$HiiUpdateForm 000000000000593c UefiHiiLib:HiiLib.obj
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxe.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxe.txt
new file mode 100644
index 000000000000..827ed558e64b
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxe.txt
@@ -0,0 +1,2 @@
+MODULE_SIZE = 22880
+TIME_STAMP = 0
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxeOffset.bin b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxeOffset.bin
new file mode 100644
index 0000000000000000000000000000000000000000..8d47d5b467df8e9080db684fe2f8e4255eec1bde
GIT binary patch
literal 48
xcmaEGRJik-ahvb#kIwHq|FESo_%ndPmYO{m+_U06R|yufyWL`2v>+HF4gmM)5kCL`
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxeStrDefs.hpk b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxeStrDefs.hpk
new file mode 100644
index 0000000000000000000000000000000000000000..6dca8c8ffd931d6dae4d8aca3e372a3b5d8525ef
GIT binary patch
literal 995
zcma)*T~5MK5QWF+5?H`})I@o51Bz&TP>HCCj|D3<ftFAT>UQ0T-<fN}p9V;p-p<T9
zbLPzD`_PWg%}md(-+`t1*>l$#ZOd(7Bg?F`A*jZKz1W>yTd)q{#Afzxg-vZtq{S)c
zI|EV?Q#SJ$z!vz#*-}d9oTr|wU=FsVoovyTmO>;dX(_F_uA{q=rdJ2<6d@^Zo!;p1
z$h$<$2x+yf;1Yw~llveV?2?Lt6C_Uvmek1~WFp-rD`*)2N8Am#1oRN$eIGLV6LDge
zKY^j@=DpwMO`^A+8-pFdpt_!`si=>JoD!4sf%u#!=Ol|{trn)Ck6lYnfAter?ig8e
zLSzAchM`N<b4R9B$+8P}9q5<Y7YuIv`X2XpI$o21yndx$MW;U6HAjhWDPI|me)660
z$fpJG)qQB{I9pA>zx&#f_NeLWUB`<qw{_uz-{lbw#Y#Dv;9){mTToryZx7!J{v=wc
bV5=^wk;WE%n|r7V?%$PbkRwx1?S|M7fTO6$
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxeUni.json b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxeUni.json
new file mode 100644
index 000000000000..16ac59964fa5
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformDxeUni.json
@@ -0,0 +1,23 @@
+{
+ "LanguageDef": [
+ [
+ "en-US",
+ "English"
+ ]
+ ],
+ "UniString": {
+ "en-US": {
+ "$LANGUAGE_NAME": "en-US",
+ "$PRINTABLE_LANGUAGE_NAME": "English",
+ "STR_FORMSET_TITLE": "OVMF Platform Configuration",
+ "STR_FORMSET_HELP": "Change various OVMF platform settings.",
+ "STR_MAIN_FORM_TITLE": "OVMF Settings",
+ "STR_RES_CUR": "Preferred Resolution at Next Boot",
+ "STR_RES_CUR_HELP": "The preferred resolution of the Graphics Console at next boot. It might be unset, or even invalid (hence ignored) wrt. the video RAM size.",
+ "STR_RES_NEXT": "Change Preferred Resolution for Next Boot",
+ "STR_RES_NEXT_HELP": "You can specify a new preference for the Graphics Console here. The list is filtered against the video RAM size.",
+ "STR_SAVE_EXIT": "Commit Changes and Exit",
+ "STR_DISCARD_EXIT": "Discard Changes and Exit"
+ }
+ }
+}
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformForms.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformForms.c.deps
new file mode 100644
index 000000000000..b2e2ce3b7415
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformForms.c.deps
@@ -0,0 +1,40 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\OUTPUT\PlatformForms.obj: \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\ovmfpkg\platformdxe\platform\debug\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\ovmfpkg\platformdxe\platform\debug\PlatformDxeStrDefs.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformForms.i b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformForms.i
new file mode 100644
index 000000000000..ed137115ea55
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/PlatformForms.i
@@ -0,0 +1,181 @@
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\OvmfPkg\\PlatformDxe\\PlatformForms.vfr"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\OvmfPkg\\PlatformDxe\\Platform\\DEBUG\\PlatformDxeStrDefs.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern unsigned char PlatformDxeStrings[];
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 53 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\OvmfPkg\\PlatformDxe\\Platform\\DEBUG\\PlatformDxeStrDefs.h"
+
+#line 55 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\OvmfPkg\\PlatformDxe\\Platform\\DEBUG\\PlatformDxeStrDefs.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\OvmfPkg\\PlatformDxe\\PlatformForms.vfr"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\OvmfPkg\\Include\\Guid/OvmfPlatformConfig.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern EFI_GUID {0x7235c51c, 0x0c80, 0x4cab, {0x87, 0xac, 0x3b, 0x08, 0x4a, 0x63, 0x04, 0xb1}};
+
+#line 19 "c:\\users\\mliang2x\\workspace\\edk2\\OvmfPkg\\Include\\Guid/OvmfPlatformConfig.h"
+#line 19 "c:\\users\\mliang2x\\workspace\\edk2\\OvmfPkg\\PlatformDxe\\PlatformForms.vfr"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\ovmfpkg\\platformdxe\\Platform.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct {
+ UINT16 CurrentPreferredResolution[16];
+ UINT32 NextPreferredResolution;
+} MAIN_FORM_STATE;
+
+#line 38 "c:\\users\\mliang2x\\workspace\\edk2\\ovmfpkg\\platformdxe\\Platform.h"
+#line 20 "c:\\users\\mliang2x\\workspace\\edk2\\OvmfPkg\\PlatformDxe\\PlatformForms.vfr"
+
+formset
+ guid = {0x7235c51c, 0x0c80, 0x4cab, {0x87, 0xac, 0x3b, 0x08, 0x4a, 0x63, 0x04, 0xb1}},
+ title = STRING_TOKEN(0x0002),
+ help = STRING_TOKEN(0x0003),
+
+ varstore MAIN_FORM_STATE,
+ varid = 1,
+ name = MainFormState,
+ guid = {0x7235c51c, 0x0c80, 0x4cab, {0x87, 0xac, 0x3b, 0x08, 0x4a, 0x63, 0x04, 0xb1}};
+
+ form
+ formid = 1,
+ title = STRING_TOKEN(0x0004);
+
+
+
+
+ string
+ varid = MainFormState.CurrentPreferredResolution,
+ questionid = 1,
+ prompt = STRING_TOKEN(0x0005),
+ help = STRING_TOKEN(0x0006),
+ flags = READ_ONLY,
+ minsize = 0,
+ maxsize = 16,
+ endstring;
+
+
+
+
+ label 1;
+
+ text
+ help = STRING_TOKEN(0x0009),
+ text = STRING_TOKEN(0x0009),
+ flags = INTERACTIVE,
+ key = 3;
+
+ text
+ help = STRING_TOKEN(0x000A),
+ text = STRING_TOKEN(0x000A),
+ flags = INTERACTIVE,
+ key = 4;
+
+ endform;
+
+endformset;
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/cc_resp_3.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/cc_resp_3.txt
new file mode 100644
index 000000000000..96f42cff2f77
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/cc_resp_3.txt
@@ -0,0 +1 @@
+ c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\DEBUG\PlatformForms.c c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\DEBUG\AutoGen.c c:\users\mliang2x\workspace\edk2\OvmfPkg\PlatformDxe\PlatformConfig.c c:\users\mliang2x\workspace\edk2\OvmfPkg\PlatformDxe\Platform.c
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/object_files.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/object_files.lst
new file mode 100644
index 000000000000..ab26d92c2383
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/object_files.lst
@@ -0,0 +1,4 @@
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/OvmfPkg/PlatformDxe/Platform/OUTPUT/Platform.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/OvmfPkg/PlatformDxe/Platform/OUTPUT/PlatformConfig.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/OvmfPkg/PlatformDxe/Platform/OUTPUT/PlatformForms.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/OvmfPkg/PlatformDxe/Platform/OUTPUT/AutoGen.obj
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/static_library_files.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/static_library_files.lst
new file mode 100644
index 000000000000..c63b0d64c1ae
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/OUTPUT/static_library_files.lst
@@ -0,0 +1,19 @@
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/RegisterFilterLibNull/RegisterFilterLibNull/OUTPUT/FilterLibNull.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/DxePcdLib/DxePcdLib/OUTPUT/DxePcdLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr/OUTPUT/BaseMemoryLibRepStr.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BaseLib/BaseLib/OUTPUT/BaseLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/TdxLib/TdxLib/OUTPUT/TdxLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/OvmfPkg/Library/CcProbeLib/CcProbeLib/OUTPUT/CcProbeLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib/OUTPUT/BaseDebugPrintErrorLevelLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsicSev/OUTPUT/BaseIoLibIntrinsicSev.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BasePrintLib/BasePrintLib/OUTPUT/BasePrintLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort/OUTPUT/PlatformDebugLibIoPort.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib/OUTPUT/UefiBootServicesTableLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib/OUTPUT/UefiMemoryAllocationLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib/OUTPUT/UefiRuntimeServicesTableLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol/OUTPUT/UefiDevicePathLibDevicePathProtocol.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiLib/UefiLib/OUTPUT/UefiLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib/OUTPUT/UefiHiiServicesLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdeModulePkg/Library/UefiHiiLib/UefiHiiLib/OUTPUT/UefiHiiLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint/OUTPUT/UefiDriverEntryPoint.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/OvmfPkg/PlatformDxe/Platform/OUTPUT/PlatformDxe.lib
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/PlatformDxe.makefile b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/PlatformDxe.makefile
new file mode 100644
index 000000000000..2167803aefc5
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/PlatformDxe.makefile
@@ -0,0 +1 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\Makefile
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/dependency b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/dependency
new file mode 100644
index 000000000000..796b8c23653c
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/dependency
@@ -0,0 +1,23 @@
+
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\DEBUG\PlatformForms.vfr.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\DEBUG\PlatformForms.vfr.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\OUTPUT\AutoGen.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\OUTPUT\AutoGen.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\OUTPUT\Platform.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\OUTPUT\Platform.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\OUTPUT\PlatformConfig.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\OUTPUT\PlatformConfig.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\OUTPUT\PlatformForms.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\OUTPUT\PlatformForms.c.deps
+!ENDIF
+
+
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/deps.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/deps.txt
new file mode 100644
index 000000000000..62b61428778e
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/deps.txt
@@ -0,0 +1,79 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\DEBUG\AutoGen.h
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\DEBUG\PlatformDxeStrDefs.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h
+c:\users\mliang2x\workspace\edk2\OvmfPkg\Include\Guid/OvmfPlatformConfig.h
+c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\ovmfpkg\platformdxe\platform\debug\AutoGen.h
+c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\ovmfpkg\platformdxe\platform\debug\PlatformDxeStrDefs.h
+c:\users\mliang2x\workspace\edk2\ovmfpkg\platformdxe\Platform.h
+c:\users\mliang2x\workspace\edk2\ovmfpkg\platformdxe\PlatformConfig.h
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/deps_target b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/deps_target
new file mode 100644
index 000000000000..482a74de22e3
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/Platform/deps_target
@@ -0,0 +1,79 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\DEBUG\AutoGen.h:
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\OvmfPkg\PlatformDxe\Platform\DEBUG\PlatformDxeStrDefs.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h:
+c:\users\mliang2x\workspace\edk2\OvmfPkg\Include\Guid/OvmfPlatformConfig.h:
+c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\ovmfpkg\platformdxe\platform\debug\AutoGen.h:
+c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\ovmfpkg\platformdxe\platform\debug\PlatformDxeStrDefs.h:
+c:\users\mliang2x\workspace\edk2\ovmfpkg\platformdxe\Platform.h:
+c:\users\mliang2x\workspace\edk2\ovmfpkg\platformdxe\PlatformConfig.h:
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/README.md b/BaseTools/Source/Python/tests/vfr_yaml_compiler/README.md
new file mode 100644
index 000000000000..a9aea6a13323
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/README.md
@@ -0,0 +1,17 @@
+# Unit testing of vfrcompiler
+
+## Pytest
+- install: pip install pytest
+
+## Run test
+- cd edk2\BaseTools\Source\Python\tests
+- open pytest.ini and Modify the parameters that need to be used
+```
+python_files =
+ # test_split.py
+ test_Vfrcompiler.py
+
+This parameter selects the test file.
+```
+
+- run pytest in cmd
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/AutoGenTimeStamp b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/AutoGenTimeStamp
new file mode 100644
index 000000000000..200ac9252e76
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/AutoGenTimeStamp
@@ -0,0 +1,34 @@
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskHii.vfr
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BasePrintLib\BasePrintLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDriver.c
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\DxeHobLib\DxeHobLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib.inf
+c:\users\mliang2x\workspace\edk2\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\DxeServicesLib\DxeServicesLib.inf
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG\RamDiskDxeStrDefs.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\DxePcdLib\DxePcdLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDisk.asl
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG\AutoGen.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskNVData.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiLib\UefiLib.inf
+c:\users\mliang2x\workspace\edk2\OvmfPkg\Library\CcProbeLib\CcProbeLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskProtocol.c
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseLib\BaseLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskImpl.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskHiiStrings.uni
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskImpl.c
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskFileExplorer.c
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\TdxLib\TdxLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskBlockIo.c
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskDxe.dll b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskDxe.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5a93ce52d43d6d5ec27660e28eb1da663ed184a7
GIT binary patch
literal 48320
zcmdqKd0<r46+iwa$v{}bL<L0=9VAGQ#XtZP13E)8@J41JB?M5}0?9y1Hj^0$bs;#3
zW_XTb)t0JlX>DEmZK+yF;uZu02(q|hQHi*{bX-tc7Dea#`P}<nGJ&AhZ-4*%rZw-q
zd(S=FJ@?#m&%N*Ay>6`%uP90a{)<Kxr2$v|9OCcy{~>Iji<|l=Pxp9bP=m$u%AlD`
zi>vGvmE}t+3rg*a3(CsM{q{vg_R2t+y|~PtGd<5<T3%Q*Dk-UFih;W5!3#16ee3^u
z?0+Niyz!x%mR%^W%a_@4ol(4aDPc^Ga$Sm2cw0Bc*Q>tJEIX`RV(%5#N3kzgl-6un
z`fN8vX^t}?6vd8P{%8Iy#!d6H67Enhi_%M!CCeJ)q9~_6x0jfxI$dj?Qk1dQj-ndi
zAA!f_2Nh*zNAdsj-6(%iwI5i{fy|VXvd79x0(M1NI;yg;z+a#!Hw}SqsuiWixU$~-
zITS@5CBYPXKSf#iJG3>fCJe8D+dis70#ZiG>M*XSz)c!eE#V%8ku}3$nvLseaFs<R
z<%^|`s4LJ=c#Zuz6lGHEGw)~3Rzq*9p*_>Wo^DY!^E)+kyvpj%JW-YG32k-<Tf3{9
z+v1O?e~$F<gmzyOzNvfkTT~qR)5!(%x9q}??RTr8w^;bFYTGzDia)cX>ae{MV74dJ
z4D{;lFCTea4eebZ8nL1AoBcC&v;YY0BPBI>sQVH1iO{|ykIxaXK);75(BAh%7YJCd
zcC-buBkJD*eNc4duYv9h8fc$e7NFQ59D`3i6F!4pSJk_YtnDm8-p^(T8n!>$n%=*-
z>N1Y$8rvTyUX0647dG(1s#Z&tt#P!)(rg<OY>f{dxA@~mH(z({^;;mA`}X7dKcdlS
zU30*C@<>Uf=Ld<O)^}H<+YTM~gtnOw_eh9tCy)3_BS|0h@_ptDbytJi;tu^M2CB3j
zPidsr2R%L$API+#wSyeiuW1J<BdImrK3AhHB-J8G9oADjNR<mxS~uSpYOqC+YKMwz
z$5T#HS~r3SQY|qm%2z`lIcGa(IrE(}^JdL<hjzL{uX{r;c|*HB+D$1-sV_wxy`%9{
zI8WE;S4STheROmb*Uwy|n_Z)K_-vM4Dm2s26WZ(1JSi34x*h&Rmc)BQ=Nr&FM!zbd
zfxtETz=HYLJLfv*Ip;eU%!^?~SllW6sG;pJ6;J3zZ)m$oYN$smOj+u!`_Mno9qOIp
z4$VwS^oDX$lD#2MN`EgN?cUJbl+;dS9C>Q+(==7HR{cd$JmH)aRn?NF<6aH-OZ+|N
zhPCS`sJ0)hS68SS0aj<s$eujK-`^9qx&n&QbdV6?q(=B7J>?4g$?MA|0QH2Ew!oRF
z!NQbOV7I=>2QBG~C)l80B2cSf&<^tdMp1NaF3etqwp9Jma}*{0fLeE;+Nu{~l2WxT
zYH(}X_0)^t8I9i7e<66YZbD=7?f}x@uL-=<;JdDQ<p__~jPl40iqZ)18vTuNgto?2
zf_1u3uznHl_2ThtDX=7c^j$QnhSWLwUj%JRztXB7fD@C9*vW_rZ6>Orl9XgM<WK4E
zoF!BlN=l=6+CSCsxQ}abSGOZ@cKBx_RBbn?K8+GR3J%oJz~hgz_CVlll&93O&F*mC
z82x?nr%hex2_?M;2pCS_0zh0KA)Mi#W$4cfkfaxgK+B$^hOAo!uI9i%KyCnJICmK2
zYQdd;w*>wrAW-=bF6pnL?lLIK8NJ&<m50aes!){Ys2)#voQ`|h<0}VIdD@%WEBf!p
zf)%X=4c`aSCOTyO3d#|jI2|aJ0L@|4ZK%qYI&C8DeuStyu<{ZQ`cHdP1)^E)h!W8y
zP18VM{~Tp7f-fEuEGC*PZu%9CLUK6pe&A*|TqIc{s$LRR(+pD7cIuBvG>=L&@8cpQ
z&Fw(bx&6*`Ayd;Fqx}-ueyMDKx7oh+zIHY`x7UpJ^NsdHW&2dw-fgzu`#^hp&Du*=
zPB1I)X-BT7Ocz?PpbBb!5o0Bq3;VKGi-Lh~uMr9e41l7C+yT{%M2thRH-HUj?`Hx`
zO@Oga14Z3>5sJmgQ^VG+z~<4cBLRa!x%+-piIErX_u{>xb=9M|gp=+i)wL>(qOmW;
z!mmcn+H9-cfjg+*Ru2GB>$i*u!$}{)N05k}w)GaufWwZ9o|l9BkaYr!;Pv{VdYuNQ
zy#~|Yj6sEFJ^2XHSSJEZ^i?4^GrGL9t}g~W?5`=$X#b38pVXW9gPRleM=l12W*P`=
zt=X`(e~mVc_Q5jHzK*tbt7teE&O$4pxAUju(z7_{!@+!-0q@j<n!upD7<@ekoi{Bb
z$#BxOA+*ksWIqDi;NJIJf;RhCnR@Ow7bPBTvr2EPYTKcqMZXcC=deY%-^_a`pYU^F
z)$mQzOHJRD35G$|hk~Z%lI)>+kbMQ^VC{26k@`4lHaMgW_bj`Ph=W@*+WrAE*rjS)
z)zF;&YN*1lhH~MU)Wq3zOP;VJ84A{{+QR@3C*AQ&Q_u9W&D9ryx7>30jj0a(=`?^m
zWA=XAPS62QSE6T{9JtqK3LPA0x7yTadY}lunzo1VSJn3DLy~wsjA~mwyd9~12cps*
zHEU1YLoH7T=a1<Ks9)fHxZm-+aS7c7#f6i0{kh!^1*+<ap0Fpyq5nG*Fwk74^y>Xe
zOwC0v7hH}&LDMElH5GlX-vePHy~tO-;Ojm1_#Aq1ZLaKj5w8hfPEFaNqa`Gsi`mXP
z4|ia26fVL%$F-}COq>g*Un2(&5Y%r52W@pEtyzc2cHjNUXqVKf-2k-f#XcA9Txf^>
z+yPi60)rg57md~M#2vUq($%n*hKNO7ojD^XZ>pbzKZDk>kc7fXIk?yVMhtKS2Uw;J
zP_qsOwo|+`*oA$;7CFbKAJA9KN34>*Ba*6WGhzP?GYU#`imR5{)yzrB{_(2zvVH^Y
zEV@Pa0@9=HgaxZ2CV;O<<()%#4Sgf3senz9MG!U_oTEq2qRb*d(6&dDjR|Cw?5EP7
zoBcF<l+b7`3YrR~3=1hk1m%(LE!Ka+j4X@+9Quc}!<czr^ilq-+0L1W%4RudtJ<gN
zu!U;arFyh41!tbHw-p>c3?!bgOLwJ5)v$L?`m3JM&2yY<jzx1b+|OA-6~7u!c*w`-
zJa^VhetM@Xsa1?6#jWkq=Ybnl%b%n77OLg^FI-qYfgU%2G6)3Xs`gqe@nHsWQU*a)
z<49SV$PPLi61lU!_5aB!=32Eby7E$wwhiXsDaLG!DJ^59P)`vag&C8Xy)4tbb6#+O
zuqS?}JL~PLX`XO)qARodcwn$wyK_A`%1m5wo?FXJcE{fd52mP_5A}A(C#zZes%)Nk
zSF1bhIPT8cT-7&%KJE7xNRC0_*l5vT8o}G0dH|w2YL8+}H}pY!{A$|z#!(*!p}zh2
zZ}0QdCc9@sznA`zTzdCI$GK>#hV%Dws^W-$3hh+QwHH>DnHG2rr0$la^m&5L&3m;K
z3Bi^OZMWVExultpX1gC*4=<ggO-UePEq|~6*?9!BKK=(@^7q3gNlR*Vyfm*qOUdRd
z`q#sS_J-oI2@87BmA^E^`<3X@ZEa4JYd0pS@!y215_0Nq?9ql9Skd1)i9tpI2B98Y
z4=}iX1Sp-)Ed&U=XJk9ewpuraWhhMzSEuHLmSWbO+S9kqk!Vp|Vb{ak9Q~m=;&}qR
zY;#;_$8Vd%eh!Vh!Id+03=7nd>#*L3;)SOsquHZS<YE2Wb4d}cYqoV)lnlik{?!IN
zxwYHY3zXC0)u-6;D0(?GB~>4Q7Fr$^rvK%9Dla>My;GmvgQlrj%h8Z(!=Mzl2%BpL
zYx{jtYg;c9TKf`@O@)Tm=0a@ZTS$THqPF_Yh=`pnw`~Ut7R<BSgDHZW;MRrC1z54n
zbIx5bAFGzr#wa{0W*Dta`-WB3{6ojexPczMnsNJ5SfU!9nNndIkrm2gC|-fp<mwC>
zU0|nHo#1>f1LU2<zYRuH11o^#SByU3%c?sW#aJoci6YbId@xK1m`nkiMfWCsif++Y
zKyX#t)<%oV7+3&g{tJNBA+YvyO0CroRPhYX(wo~>08rbLqaD*zgnl^5b+X-A#14ik
zoDHd96%oBYs-L2SZb`@qui9TfzlSI6OI5LetiTdDHFCW#^WwlbUruIuTws){)q$d-
zW=^pO2H`<;Z|0QLKwmX{A1y!)PfylYU|z0m4qT99+cYIk)!w3m*oiVedg5Dih94Id
z@yA_t(ZG6b7OY~o{wvs6{bX2!weWY6!Oj{pX47qO$c-RWqyHV;!zaFnf~J1#jBrxZ
z5@^f?O%kCS;<wQxfbuM$6kW;X0b~3QLo?!=@^-w}O1!rb?@)<%5%GS8a^n4xJyM5U
zjCv5BKhm?q6>&aW$oZ_3xf$^eqU5C*6%~kks_mE_I5`AAb$GQCZbT2-*RVge?p0gu
zBOvL;Ag}!$Zamu4DK(JRTX)n}8zwW_i|VocYSwn!?YFQ#Y#qNAe6|8cUnm3@^FXYx
zTF7Rh2GLazJ=`GrDfH-iv|-G#`fTEPXfGbwQE{*ZpnZX8FD2R@0<A91=!G6A!mp<7
zZed3EtjB{IRul9mF~C(#6VKW`f?9Nk8ov)yOmF=@R))QOVGR0Npl90@Y-U644PVHW
z;>OU@tp5kWVl=nEJJjt|QWud_cpT$aH55c3hK9TKkA#)k>K+!))-p5)eb&;6OdJJh
z4}3}1cedIfLBgA4kaAUfka7>Zcs<n<PFjVLsP`O79LK<nU0}OYV)JAj52SeOqW=D>
z_A3^7F&|1&`dyGF5+|a1zfIMy#yaL{w#_;ox!oPSR8e0rgVe}%bXJ%5CJ8A70$B#-
z8PIn&Od}@+A#l>h+sTi04=*yL>37bZY-9Cf#iSxnVuveEG!{UHvsB^tX}1PfSQ_}P
zx+)5G>JD+;7P-!?y$(tHfjxaDygX120!ruK5z9<Xbfq_^zZzYO$pIBux3W=i;#-KQ
z75~||dqdob5aGOI(P(-zEg!n$uSQxv7AtU*emc*a;O~N49bzENJv|S>td%f-RXf3T
zOz#d<k)dlW6A}X5YF1f#_{Y*fD+K??*C-QK1wK+6;?F?SAh%!(d{BaZgaU@A_f|Ds
z{{;7*@WcxttVcTxYttV?uhll&>iP(22gXseTDm*ypsn^BpjX2|X)77RR+!pYvIw>^
z478!ayv5MqdnxGnc*X{X(Py;<2CFoA?NOlcWPM4ec#jxt;pu(#MK<9Sp+JQ9<0JRf
zJhPpGAmIk9C_X_q^*vUxzK)cwjl39E@vVk?%{u=#ETUDQ6OCnCSmS8czd1`$g3oNl
ztpysEZ0ch$s0}mGFBSJY^^0)D)bTi-Wk+E3fbgAMt0jx|nHpSp7)-3}kDEj&G-<ft
z;B7cG9WDTZSodLcKv`ei0UB68fLp^(v3$EhMD%Eu6GpAM9)Cm#mZS*5^3wDd#-b84
z)<ks>;(0)~tRcVF6%zA0VrJwG^na<vJ=bD})a~I}q?;Pb&R_&E7prG1oXzzG@^Px>
z&fxIqDRNF~aB&9kO-*CbcyooE4IiD8Vh3@zB>wfUg;)cmSYtugAQ@bohUPm-<NCJ!
zum}-bFx4hh1}?`v494lM#wSaYdl}t<1=L-lIIHbRKAvuF#}~ld9uaj(wJ<%s{E~Ka
z`yMk{2~P(z`6VxgnY<YyJ?j+^;S6T-IxO=vGwDTP3?COA%=?}CF>%GLceR@Jo~_Qs
zHJ@0aisdTC--0cex%}rakKD%{O75_wEgj<<@mJleglYa>7@4<3$}%6mLaw56)1$66
zht)whXE1Y#)fDic>SeuGFY?E*F)&FD5By639>Wv=4=*sYG@5EFAAl1p#Qany`e-+e
z2sw~@M4aFY-h5e7V4sMxRIMV>g*8U^#spMH5}h^QSpxmicR-0>Aq>ZQ0`%XE<~m{>
zpht6Mh*^6OJqly={^I6<zmNg58VX>J-x<xbtJ;)AHPdz2?*XTA<SINdo)?qT&-u_b
zr=KA5FgR5kx`R3VYTAzCuc~=7u*^G-m9t^G*4>;yv^Vuz;H+h;W2Flu?^=lB@Wi#e
zm?WP%Gf968Nv)*~!vRRG|AZb?Ypjc8A}VJdY_`!t{7HLZzxp#53+TT9dRxs_G({c!
zOk@i9=uQU06BBtc`FMa2U5oxHf{=F6%^1WJMta1pU5|xERhnD-z&T%RN*H6%%z1aL
z#aDmoAa`1uZXLrc!)J!kFfD9@4w?=~=FcJX-(7@1?~0t32%!mdHi6!gK%dV?{o4TI
z6!qJ5M5XZ<;l7Z14n})U{nE4bdKM<2(5rpR0@iu7arfPexHJw(+~MCz6=t<ZB$l}#
z@U<imCV^@YaC62GffiW!8+D|KDW*Yzf5(iIQ~$&+1$Xf;JL9);jHh}LP>Jjw^HEJy
zyDt=^<Ix{YVsmeX*ox4v8-bOWZBwfcBZu<+63Cm9FsY*l`;h#JfsEB2U{e*i(y*b9
z()4NAjHmtO)R&~BIyZFlq0`25b(EHatp*H_J-(b!Vak}Cu-e@RKQz|2Ehl9{g5p7~
zU4Irz^=jkYQ6v?tx8K9L^02M$b1~b{jQbtA1!WY$59s^Hk>fr3AJcf<t>2HUC;VUv
zyApkmeqWY>{&%qd%~hUU;~}IfNr5W|7Bk*RbJ{lPBG`T#9^Y1b6J-?<3j^#jJbCa`
zEy8UPH?Ll)i;X0P0EO2<JF}&B4x^*=0~f+SU{!sst_GuVfvXxVcA#qyP<)68`ZREJ
zUPVkB%1(^*YfJzH%58PMfv2UL(vqFbnfE&gQ`rw#;{E+P5VU<lOF&`Zl12;B#G<y<
z?O-k3a_?`W(MS`PB!TGyjC7yiYA09!*);&c-20%Kc~eTR|33DSojsYW-%n?bs?|Ab
zvXklEP@~s<4QD~`wG_TR@<-6N*y`ru-nQwL)opR$!B+b^I(~Iq6qAOnwi)-s_t<Lh
zFs^^XHEWN5c_U5Jw&^9`@Xd`;*o+V9`P=)7`C{OGce4X0-ib>jyNlG}w{xK8HmT;&
z^-!~afRNLd`55gm(7Wa;#dcqF{c2(K+5kjtfrhqCFrPKu>a&yE{txbiOh_e9P1K)c
zXho6k69%?ZfA^bc)V-~n6}Z|~i?VKQ^Tl=I*J}l9M{rTKE0E|6-yZAaXaoz$-BXgg
z2n<4h^8z_BAFp|V3@Ls@TAbV!J@G&Eyx$?(b7w^ZPqC{CB<*gbZ6(c45%e6U`xnw4
zmolQDIWzG~e->-YG6USEhHn7a=41?*`!U};8`4O0G2}89_Thd{q8!UEhweow=Aiya
zbA$qp`uU05CMVD>Y@6I$fh^jr-gF3QsupJKs$U8Zt46VXJGp-*Qndaa`^tI;Z|QBR
zdNXr=Z{aDb>8QMbg{P?HSlEN44ub&<{t`rIkb#jGGP}EWrQ?9WsXkfAuzKZTdOo-I
zrCU3${R`2VpDI2%3%C&@5_c+bR{^&eXNR+vEros?;KcZ=i4=3+I+xpzu`7r?weF}N
z+mn9oCbX!>M5F)!&gY`p82Hl~+^Jb#uh>RG;Wx8hT=A@G``aE5TEuJXS*z`HYdiF_
z&`idX(2wwLeh6sD_TR{rLb=`|;&4(f4f}!qXOgSB=Eicy><x(k$FC;h>r&EOO6vX|
zNiY9?N!{8$Ls<Q?`0o+3tNu$<SFdcA{r5If80^0jqW>o3L(bWBPT{1b93oF4&SL+q
zY-Yl2DRV@WW+7Cqy&>Wi{T=u)dZUZ56YD=u)p{`?$9mej3a$lFdLmK-OJy&>xMDZO
zu-?P?h}q+oYn3zbwtgmf`>o_{*R|m7ydUPRKL=`8ynVp+&yV1Z9NA56$=OFJ>Krn&
zPcm~gnOSqLVGzxy^*<C7rDANRVtj)5k{HDpTPZR5CQN=6c0v6G5sq>PqB@zm&KwNX
z_FV>U@OKv}E!RtG)=PnGc7j-!T4AA_eBTCRG7av((8Dc5wh#BaU<HeJM`xi=Zc53B
zZ0typLt!hy>j8gH`n~6%Ws()HL2PSbEXBA8X<t%L$OtgJe_2n%z*Duoq@T}QWIgl?
zjk56cMBO3oxrKyu%=e8)VVe5;FmP3S1+lRHCU1cPBIz%SdoS*f>(BE(>qwvn(l>#G
z4Hl8ufm1tu;CEqjh(Zq=p@p`Y%bNx6@Y1MyY_FQ7FK2XhayGgfF(Jo=1Jj89KwomS
zEe2#YikrqtkbwlLCI}`tD^rbq=$o{+sL=Iqb8hL1Gt3uaf3<VIk>@__UW36e)vT8T
z-4S*OCtG(ka4xu;407RFSAe%d5{{k&!U!o?^#rSCqr;Qjtoo2u!JScexC}gOQHQrs
zLIPd@3B!3;0?<ytX9zg_pqdpC^8bnQUnzxCSpNX(MM4%L?begJ5D8W#rV;FX$DFCb
z5D1(b{@FF4qXG{I4<kB{;44cW^H_nBrm2$HVAhTjwKpcp>KayiWOV|oZK&R0p&4~P
zze8H=ymB^pMmBg2g6Qudg`|cCPywOq6U~OgE(|+HO80Gj3W6Tw!imB|6x{Lw-)o8D
z0fFLT9FIX~VObc$<Oysy!WP-HhDpbqCHfkk$UqjQGVhnjvWaXOk!23B-P>&P(s2f<
zNiZQ!Lw&(^Gi3bIi|x*3JNR3{gcGEZ)0zrikQBs`L8`;Bbt9)Cwn`uxCRNc3Jj3%U
z5JA8vh_3~apO|%#r9R$a_m@f4JxY*=1jrV8v|e!+rm4|pHEUbtf9Mf1jviQJ_y-|=
zy9{POOaTHO+o2K<5ZNpsGdVrQMyT}j2;U%H<c;)ZCQ{0^LsNJg?*E9dIhWHUd>
ze1X_k4WX}MxobaPW$H%zCn6c>rtVeI<F}GHa%*JvPGWhCSRi&!BQiM>f=h4V14LJk
z9qH8Z9;}@Ddzjk8={}5KEOqt^2lM68%@)y_Ylwe}#Q#^~cLV>?Ewb_>R;se{ZdQ&U
z@qJ%#k9;ZJh{$niJDm-3RlHl@L|_D-IDLoVw#%cv;|*owRNhoOsAsst+3+CSktcSC
zvUPop1kTv9%a#5r+}$lh;Z>?GQG++7q*`+7d-!|0amHk`o>=d+sPR~ox}z_8v-aME
z4BTd8eI~{U6xL$Fvg>7x77>JUzi5a45KJ924HQ?0v;yWUn8}tk35oUbjP|gDBl;o3
z93;X<g|1>Z-@_#-t?KGe?HDGm^bfsSn<rGXL3qKhJluCd%IH=9h}EAccC0H#(8PwK
z?^CF_sd9*HhaKogu!7+t4PmE*W%}x~Kp(&^By1jFBd<Q=m}FC&M_U~J3o(Z*XYJ2f
zJD0UjZ*#51Rf$|+*1bmyTg19`r~`*s&A#HcHGP~|<!N#Pl|Ivf?#S9A#!v+@aeWGf
zj3rMCz>@&up7Lc9(suhSF0r<`_LCF_J&-%}w_P1*8i^(#(R_w5P45ph#PGBPG8SpT
zK!%!t07jp`ohIAI7}NuHcm|({^g!TgtNjF>lzxCor$O^{PsqDY4b7|PM#;IFYpoid
zk4>__aZ_G*#~);sss;9|L8Q|XkOfL~+Mah=Hn-xs(W|KI)Lz@w!7sNB?M;r}@M<p+
zQ4denH@4tFl&Qg@X7u6#&!BmG$22=vf9x29O-t9KjxkYBC{R)FTIy^f)1FX%jidg#
zdT~2%y&62x(^h*v;%M9@*=k=w-U4?+{QaQo&wHxjc@1pt)eg0>Gdx<j1}&Wp3R`IN
zwu2Q<{O6ufDfTnIkMW&q$lCzKBW<_S+t_L!!(W&>jLKG91jf{$ZnxFSQKR?tW1#33
z|2ZnoE8FVwQ11@zPHan;H*sy3;l^8cIFL>*aXuUz)_oXAc54<lPLg>-g3Cy6x0aCN
z4sJz3(FQf-YHstw00g90JF63<SL@pjNfosX1|(=Ew7mdEabs!QNRERiMj5;ZPo(*W
z*lyb-OEZ^Ws)n6UtB)N-J6qi!WTWJ^)wm&}i9lf|pX{QL(0f|tRX~@yV(j$rg%3c9
z-thJMwD5)3{*WR;xT=LXJi|XH>az_U%xfn8wx7f3yxMC3s1fUSZ?D6md<M$lieRtR
z6wssnOPUdQSYo@q5S?qQ<>@*#*anN}F7M)PwPJDzwoSIxc4PP#Y_r;GkI1_o*bd@g
z3AV*yF%mpsvDF?%P1|%7Qp;x{oz$sAl2Fj8M_OTEt-{jCqem;M@oKxBtKU};yE<VV
z$M*B@fLGOH|5T&g+Vu{2)w%kRf|2K5{UXPoCv+ce88|-fZ42JTg*;%juiD<g?HNsz
zl+?xBF|=HY7+9u#_O#WV5W)1o%~*Z3m7zC*1PR$E@z}MQcf#Y{ZWubo(nvN&a1D*O
z4Z^))qUU!qJhygXyWw%6(Hpd0&I9Q$&|eH?&p(c9_{M}Bt<?-T7foltiSvF*$8o1u
zAsu1cgwXUxYz@nh)X@&{CLw-Ch>cVG*f!=R<=8f6_r{;8y>Mg0O<qs@xxNSfOSEme
z8na#n=2Wagy@!z_U6_M{IhfRPP?(FIf~&w=4l2|fEGr%OFT)wmy%gI8X|_#AkxRr$
znnGmCZ14{r4R#)$ci6E;xSO_tlqlF%VXJ*YT34K{wx_&<<vfaBM6Ja?kbiBp>qN~7
zSYU{Ea71mdVHGUwDn^4|&3!!5+pFQUyfM&ax+6Sr*9>U!F*HFhyAxn}XSr+}o$+{b
zT5;!&gJcd!g}_~iisUS|)C^JW5cL5dpm6#mIz<RVf!byRW4p!vs4h(g_))mhfroxZ
z8wymowU!~mf#RsbfM)mL7d={QTf8A0oLG+-`RK$tWFr@FnJb5@4KOJFRv`_e4&JMV
zCqcKz?JLHp%U<jUT7L!eYH&*=aux=rb;SU6+1uwMpL`4~sPX%;8FE<7+Hb21;mj07
z7F%Bsc`K`-4k7kb<l)*9LBk#V_-**FWco0Q-W~ft)nM}DZ~4^6t?drJpB%VYDr0dc
z`yTFIEbTio@CS9}T+`Cr8lPgfZ9I%PA+BLKEW+kG3~dEl6GMSV9k%<nIqGj-O6obz
zhMqJStRs7ak%O4kYhWfQII!|uaP@JYN*maXb8H-mmg=zsk>S*OvI8I!75ohhh@6MH
z(b<5gPa#%@H(2E#SQ)2bC5}^X-otv}C`WJ+oTbp1XE<hS*ffUeIXDZV9(x<E$vyZr
z4;JL1{PpgJCmxqSc9T2)fLm*JAN#<K4bXl6Qo{)|n&2F<;@hqc-v?@{EoUE^?RC^f
z{ZP&Ue}8v)Y7}kMWACGZCmwDre=iB*NFTz*=oa3)qg$!;-VS(H4bwoNV#pw9LY-)*
z2d{e$8ESBh4$a@&wt)|Fc6Mid)j6tw*TSUU;Q+nc+fD!+ma_{U!xM5<do{hSOkzOk
zlPK*9Nh}6fS`yu#$L9JMeP!EA*j(d;7tXdgYpSCP-j33~;`Zki&YBFxKiZr1P9+i`
zU$Mh_RbGOK2Qk4{h<T(>bwuHt-E}Yf6DfTBi;*U3z@z1_^JabEwN3f}^ExJsk8!fH
z#<}`K3p9X|{_fQ$nY9hzNU5t?^RD#{-%PFA{<hf@4}IpZBe|r?VNkD##!`g!I~(oj
z9iD!e`futme;tm;5HnJ907Ng@Y99cE=6bZY**`_gU+am-p;QwajxkDXqv1`P(|35Y
zzOK5|g_o&<Ut9dWNFTAjvwn)j6aTdu-OSnYrUQ`#(Mkh<-+6~`$<gMmrOnv>wneqL
z*2!SnR`)khMX+b9eHb@6;pu4}xLvzjdzH-o?g*JZF18-MT_7?<HiCHA8II`yhuy%j
zN1rDU2x+Bg+1_|W5Bcjjms~;kF}96+xdY;=$4Q^66leW;?%+2TrXOE4g<_>Q{u@)U
zw}1&=1;VYbZFXWe!khJ?E%*u8M*zv`ni_?f;=QWUbvbJSOKXsp=*z&zcIV$wU2~%a
z(a0mX!#rj2#z$-$<JHaYC(;}S?;vB?O^*80NfsxAC07{lk}I*SqN>}udXc?w6VfR8
z^=kZk?r1Yyh<_4?Qt)JaAQOupl!3>pD?p3rFD3dxkN~}SfwQIi2!T7nRlfw>K+I+a
zrZ>G$v2Jz1LwYn3z4V9G!)!{cVK?hwhP22)4mK2<)#2V6guCooPyBYV762KTpj;57
z;DrOTN7y@XK>F4%iPuXrqzTI9!S_Wp8@h-@Y;}9kzrx_Fk}ww1VKfM<zKrBSLa_+%
zHw7!1lOpCxI-w$1NP!;(q+8nt)rJ$!cV{(Mo!^2!gUR|6TCf^c<2N%JqfQTbhGY4H
zB;9Y+V@OOsn6i+Q_3Ev5T-x^=d8*V{FB@y+;NrvB-_1@HOXUR+6bn@>m1S-&H`x<%
zK$WT;>uQ{FarD;_O@RK^RN{%vx2*m&4TMByQKlze6&bnJ)0k+RhXCo<xYIEeDh=>o
zHEP{)f13Uj9x;URvK^v6e~O*+pV+-sfJ@(Z7;2ZhJ$rRO@^Rcvl~k_B++5WkJE`J*
z1LR&Lc_t!oXaYwIut$hx?Tw%*c9jKI{q-*(9x|yDB-tbb`D^-lK(219O_>9-{6(yK
z{}#f^BF=4}LzSd0-c^G#Y9`*|2V@|vLD^8F)MUg3dN;<Q@AQj-E7Glr_n%H^Yq8D-
zm<7qMdh2xDMY^rAPQg{EkV?hQfeX)M#Uajd;Jk)7H-rU39bBb~bOU^pP`H_6+Q)p|
z3ov#vmW)ZzkF3~hI4i18x?G?(b75xQ0(ojAK7^5N$bm{SF&el&XP3MnqFdy4kp|l@
zmhd-IYgbB;vk3B_0C`RK7$lM2MN$KUc)R}FHmWHm324|v`<VvFh%tl}4z|wrB9WnY
zClbu!VEsxAa4y#crrSq>Czc<;k`tRn1J$fA#0l7)s%_G@IM}a`7PNNj*kl8w*x)j9
zTu4eepd)VL89M#45=WnMRZubC3%VlHJdZmF@g0m~8VZ`mas7n%_q-7EA1D`^HucP{
zccHWc)W{Pg8&0~M8d(F-HD+qABkyU#KSB7-5<W`Q*AYJ3LLOm2r{NcN`cDbJhwzsP
zR<^{6G4$;ujv+2G?#V`7AJo}4nZ!@SMgE$;lDLAz^&Su7WBGC$6(7IF;6e10un%r`
zh;$+jby~kfi>6_)b5L`!^?I~M`P(eF$?}mbuNPSN=zC!sIPQpE+@t@S_t8MyQ<hGt
z(KF^QYl(D`M7ke2Zatky!`Ua*iQiyFDU7j(FpDM3(}b}R2CqB|)f{qi{gnx3tDz+Q
z2zIS~p^I&sPRV`BarSP79A{W&^gAE9I`eg0EIdvhY-ik?K+@EseT8iwyaO~for)Ua
z!dSsIKT*F-Xa(82W?QY8U2)*pw@pbvbn%iKXPnADrhxgFME2+(i&3>lzfxSqv1O6J
zhmcJ-OM$mwUqHVILOI2jF!<hwS`}%qAw+~xf`PwVzt9*`n)PgmC^ufBcwY@CQ{e6X
zC3re*xWw#O7&%EKaYgo)yIMwG_!4UWaxUd@zLDC$n~|wz{bM;*iFGKCMCGEk-%{)o
ztHHqpd=3tt<#uGjnmGuOzH9&v{%W{kwSs3ja`kVCD-;i9i9z-q1<#hWt|P4>f|jW7
zt+t=%j$|4K$4FhX_6H{*-*z1{r_G>#HK-dzG5B%Dp_i^hgMv5Aj__4<6*y_h`D<nh
zX1Mm`wam!M1HX23vPXO09MLPuTvRgm9DAi+9E9Z&V&)fLf@q#F-$c-MKgYF&e#aQ_
zmG#o{1nphEF}GX4kp<d*p4h2d4Tv?}(hp$nyJbR_KOi#3>DVy&DpKsMnUI2c^rT+}
zXdpGxeL@zt`J&s_bVvP>HQm!ci}XaBo@(@^H3^rqjhglD3Y^!1%_G~qN56%H;9Xs6
z{I@k%D}e^$IZq8nEdH}<CZvz_cjJBF-&{QX(jDBE=+>^F5OoZnphEa4c^Vq;pkPlW
z?6v4Yc{IiUKFru~*MIr|=WbrZK1M!r{v9unA<umYLd&lWmxAN{92@x6w2h@rYu4GN
zRF%s?Jb2Fy{T5v-GFv?Qk}P4;B@C7gNolxc|6<n}(VGLuvr@%q6ZREdD|U<7@=ee{
zl!=ot`PiHiZ#A))IYaD4xBWq0^+B+y2?@5kX5-muJa53WN4o;6T}vP_{iruQIU$0;
zez%?r06wYV+>`nv%m9g3DE-UvUJRmY_>z1v2<(cJCkoMXFFT_%62(k*lzY>=<(X-`
ze19$Yle}SQx^jVC4Y@M(D{1EVMgwNkCAh_D@7ft+K)W*BA#8r4Lo&n(oB7wz+tTrh
zC=PW#W9l{rG3d~XeCdY0-Y2ppNlCcZ_hSK#y@<%)&3FFO+}hhr&=7j+HGuvrRT54*
zNa)7}wDqB7*hr{G$QP$njYBUGt`T50`nxzXgoa;}%#*U=!)$m18@8YRii}30;})dy
z>0yx2k!L<(1T%mb&0l*d8g1kX5ijE7NO%Q%A7fL*Sf}p|qg%B7YyRm$ngx6_GhfP7
zKStbP%offDsy}kk3t!^Fm-UwaA|Lil&UeReuRY+my0dn!NWy9X$)~=Pd|7V<_WPWf
zV<-8Cnw10aJYo{|t+`0T8U(Ns!WzNXDlAAE^q}uRhcdK5z|o&43GCQ&?BqklXz27x
zWi|E^kha4D;$QG5PVJzJ?`?cX=RL&}z8O_J;JCQ6wnxTB`*Z|iE6!;z{7TFZ`_+9B
zF<7H5ZX9dIlA#658=NRQDthp3tQVR#P=Dd1&v38nSUPirvwKt6OaG9Sds(@Ym6~;H
zG2y-Yoelljg<7>k)n=>uj)SOOoc|79duzr>-44#8v-=AUqq7}+H-iO;vv0--D8dq|
zXoEXE<y#z%blWDiAo=&5JL?^o_M;vo2C!V(;2D10J^USboj7;!i+BifO}KXvQd%&J
zc^lmOzR(BLn#8yg{MJ&KR>`lO{0;!W*M$2PA*SYz#}E#)-FjmR78AYkfVW(HPMln1
z47?|MTaGU-8Ku$LIBrRgi1VA#*@?nWPXSV>?NMai=72-E#?NfEqfqE<umiVAgV?Vp
z_PEoqhk(5uGthQ)-)>!H)Q0YZ=<ckoD=vkq_yW%Gy<mcgC#=-sUqfT*sL@!wEeSP0
z>eaSBiAC~m-AWXi7Yz3Ha&+s7?5Yr60X1gH8ZHtOP=$_8z`Y**iY=gQ4ut?n?N-Bc
zfa^6+Sp8Oi=~6M!ehx^Xp53~Z%G-I^UBqOFHwE)7u^f?yMqwSU26yxoHQ0=d56<ek
z8dNP!%o00bj<h`453w2>HW(V~dz!}BAN^zd1A<e*GeBld{-<C9R^?gj(#g)^{13^_
z;`~-oo{A3gd*MbJX)gF7e%KtiMAfW`ODLG@uyDGnmYasMlRk(Rd@(tiyAV$w<B6MM
znggzGyHmanS^W<<nCg!8FkGs!)}4c+1YNxMmMivS5965d!u{gSH*uE00qswoEL3|Q
zF8VL9a2C@nM%yhYaE50&0Wz3%^SP)-$o6?JDxR@npa<O0*0#-%M}5A-hab$zu-j^J
z1|25)O-{yOfB%}SEKDKMEqDkVVM(`~dc3-WNjWKvsE1xg*k*X<L3m^mYBfqY`MYsi
z8Y@bkuhy&yK2m-IGmOtA%m^C;2=-C$;XZ+f`vlSCND^=GgoU_>9uEUibq|oW)h!bf
z5^`KHHu4TjsJ03UF-O~%rOM;&H)7n$BhGlCsw1|P(G??1>J<DTNDyZ;=%V&<St?#~
zg8#z3o{GgkxRsfahY-@3tB*ab?TK2LswecPly%UTTYE>pt0#qI7;UTVA$-TZqE5ev
z&LvX<f>Nf74g+3`vf5mC2q5$i{F^xR{fRgXD?@npg?Lk+&}oc2Q(d-A7&NshYuQaG
zbr`1;F!-zw7Lo<7W@&7VR)F9qOm>=l3;#;NHx{|g{s|s@_k#^&KLEc#Ei)LvhGP#R
zw<yC2gtCYtcj^OSOpuoLbT)2Hx%^40CMD6oAqlLjF;nf)KNs{689ta&16E-Bxv+it
zcJcSeziH?rvChHEo-#;i!Q!)tc~@B9*SOc~K4&L9EigODQ;YDiy9LOzqL@L=p?9Lu
zVDm{eyebjf9U3zG&4Ewq4%lk{48Y)){*Y?0NX$r`-^J#_SoO90@lyB#oEt93Hw8?D
zyY;(?P)9^I3tMr`Pz4q_{ctAB3kqs{M2540H*y%YX|G^#B+z7z02%tI|6-0>991#T
zbBPyh@eH=yHWl{Dd#LUy!Bb9(U7W2$R1y;un=ups+j9iANl;I`FubG#xYvE334)I-
zqCCvbNDpM@BOZYtma){`pQ0nf*5^^sWR(c+CxRhFfM{Htagpo%CQj7)R)LvTB%+`Z
zO$?#*zp_*=r^Hdluh2b_Rvi0G2K_DSw(LZLnFvqI8>|4yrgM6W?j1n#4}&e^e5+Oe
zv*>HSKW4waZ5<zAo$#3Ed7}1L6~qKSoVao&u02lRx=!GliohukU9<-WaF#nfS}#xd
zcJhP`1w$sf9D$(+NBp%CLzo!)6N3a-L+PpoC($(Gi<c*okOu|Y5KB6eQD<DkBOB#h
zgZbube(J(l>i!y3nr=4aC&h;&l%L-<2`5~HEb}Unk625vTO`=O9ROPeur=73b;P~b
z+}ge7gH=8EJL)gDZF~)LT>WfI@X#ueBQZ}zZkG(o^cB-q9qaJ6+&809(J#5MtERI#
z5SR_sO9t?+Uq6p57^AOv18%sH04;DyigUvP6$>MKyl8=!Tj(jG3>z`tVLhklfi4(y
zM~+-be5!8S^c8&ii6$GG<7U5p@&cs$F@02vH)WiStPq5ZRsEXH7*~9iW{eNp&13oE
z%y`sKNbtcPChBz}V5Q<9<sA0ULNJ1N?mFfIAEV~j15o0-Y0nzYd_THHypHmG0w@!`
zJ%`Z^!#kXf(o-Qm3!t285$LQ+&_37CMk(fC?$F!r-QpVaA<kk|55dHRb@*Xh@ShfJ
z+1NI6FXAm{uyqw@%Y&~Ym4+fbdg70(@%ozX6Z!<OHFFeiP=}|-F=dkn7_8G1p0Y%S
zk2w&TH36yj3G)K@?9B8yr&!&JcUAPuK_1rYwB5TEYl_QVwIBK~b8Gp^nn{*1Q!J0J
z3S0>4lPo07qsDvm?||5RA^U8D3pM_*8h^ZP61e6Y^_*m!&r$@kR6-!Pb`da0I0_iK
zYRy#3nCX_In^y%c1qJNykpf;|r?&LpfCyZVfQ-ZX3p;-2*)~qM1m6daFV*-H8uoE^
zsaaoEHkfy|;NL*jt+^Obcr{nDZQ~qE@Pk#J;fOo>_SYYOjZ=^-SsjiI6e^9p4LVh|
zwSelRTFE@V_W-6Tfp%|74d_4;@8GR!{F|QPE&6mcV!e^>GNv@-jR(K34u4aP$KEZz
zPm!)W2Y;IW63n7nABYz64evfchF=ZGR|V`%`fKx38XN=M$3PtCz+rRwF{jfPYjg0G
zgP5#O7Iq4n^3LKgN$NfkgZ-DE(8gp?a@#Oe&Xkq^0-zp1C1#k7coPJXX>0mXao#M@
zDppL})1%Q`d#9klR<{i{iLJ0!{VOyz7C^CIf%=oEw-y>0aUw_JA|{bSx79BYAl_DY
zJU?aPZPni*7a>N|oKHJ_REmeTu()W|pAwwX+4@_Z&-I1cVCgRAcJ}By_n~{k(~?_U
zb0GGDzWOCF?2zjnXVy!$+dcs()_e;cYp`(DzUAW48~>f`E;l}za3>l&weDin<;3gG
znpN>}fmAF{mU^*EuX%I1>VT6-6;YEOVPXzJW;g7ido%+NkrLM=;L6clymzi{72_Cg
zZ3IeDD93gD{+z7RcWk%bAjV6P>ZnBr+^qYvahTf^UIm5BYc;!T({Oaxdhn0FoH_#C
z)$$Q|4PDGn25D9c(wC-gF^BADcEz+PE>`|bjhRu^I`Lp+cQm0(rq$=1vaINo_ZAs;
zoCQw>`J1w6A=Y;@!G!}{fPMk;U<^wfbg>TH^1THkl<eQhYWz%mOpxJZL^Ng~;74+y
zSt8J^eSxf_F+xWX4;(_uID$|R|L>S0C6BT5xb?eh(Hc>79V2UepW=6T#vZ{S>qo4}
zT(ETcrRhhJD5!uWho+(^{!M+<9&z4#CD$gwmi}tif~A%3xZB^*$K=JYpf&<wjs8bu
z4k7&>6f~vD{&?m}Xkz?_LKCYbdGYbZ2+G5`NFpWuh7f%v#5_U>8N^{^gd~_+v?<`H
z_w{&TWIMXunhBUl1NSIT&m*;e)5Ol%4)Z@=ujI(!`2Zv=Ig8>~)3#O&7tUTx@p{D*
zzE%n|u+?6TCz0sI3xX3tt0B(L69Gj-d|CSgSO*~%xm<6>$l}KvTmXI&o_mjeDHbVC
z?RDP%`W&>1M=Q4I1KVTattdpxhBzn&ACG)!j;sbk<O(m>?=len8~kzqc(?vW4`H{w
zoh%TdVF$w9`e*~8#UM1+w&`3|OZp0VeZ4?r4uthofp`=B0Mf|%XSiVm@pq`ZErh}b
zi-Gk*+4^a=9^BD-9LPuTVd5G=yYgDwCXCZ$BC+lOD9sb=lcbk$AKi<&Gy}5WV{GlI
z;m9x^#$KrSKW)d+k2rJ$9=s~J(oOK|CFpkt;|i5=1tN@_5MjUqWN?nPyo_rbGr+dK
z>kuu90*W|!Xd@zQMc>HMP&Tp|%>gkmb}*HVb4&3>W&TQz58x9qw}@95E!mCmHtT2o
zE4f;&0{SNLd7^OAUAWhO@jfZx?FzUE<Ov6;!7nU<W9sS~j}xbOhiVUAkZzhsBMK*7
z&o-0M2FD44TaI@*CJnmRBA7c-bE91ez%Ai*2Tb7S>gSPT8{ULSrf$25wFRsDv)Za3
z7jo~^4~y$`qx6t`vP+oP#S^jvrY~rF5hYv`o)Xu8iPzy0>2NL<tgg-y67kb{-wuRC
zzmpP$u7E^-cxl4%{ioF3yx*y(!8LPQX?;b6Q8;<*>kq@=TLkT-(QT*GJt4nU79J~i
z*I?k^3iP5o`S#^)AlcLl%Lgd5C&~ZkAhZ(m>XBt9NefD+_`L7)3D~?q_^DT%$AN{V
z{)K|Rz7WrzaDu_i7Q70D(-^i}CqaB3DZ<NB!(lkb<7~HH&Z1y*oSUoNBhZ1m?{nP=
z-m#)KCS}^tvGHL4Im!N1-0S1PJ~ei(5R-`vu@c%uxMm4Am~ednXMP=OkM2MK;tO6q
zH_#nlzFHFJ=l5?n0L<77`Ypz?$n=S=A^Hy$U!c>D0eGnYMqe;%ZeW=&cw^kCKmjfZ
zqXHM<h*&qDGng?qaE`$7ivBK!GETU0kPnuy;{cQ(fi5$EczRFR@lJI(Ce$~P2lXJJ
z7`|8kooN1EB;EsU1h>S2^x#09iVQ}skaU~*@|xp&$F&ixwSTJ6L3Q$zd0ZYKhl<wL
zZ)VUM`aOHK*bGEs+Tp~U8t2kZM%QN0P;sI{b2)7Fd^z5wVG9h&qHA%lzr;uc@re;u
z)h?vMwQ6L^Tyw6`dSeju^8qV1q<#$=z^tkv8@~9v4ju)=4~VMI0_r)~4uWTrAJyBA
z0u`eTX$5?nW(vn@0Df?%ej#>b+qRM)&89C9u7j~y!0Oii9r*?1NGA;>H<6PHC;jd!
zZjm`8`)2l_xW74_<{=w`KCeMR(`N(<C!I`(M4zA>3><cDurPJMo7sns6#MA006!wZ
zUm<t{!NW-bl&hgCyIukw`4T5yYYa{4uYV@GYDF@*g5*;Yp^u~4u)J+k>=p~-Tqfg+
zRP0;w9m`IsFC4APSM}s~iSIbYr1cNG1oYFX<ZzOg^fM@iwnyN{d*Z-No`DO|b`N}=
zrWHUD8_gCE-{3*DxsEk*lR*E7tmFM36Zf~MZJLB>9Js$61Auo9kajk##CjIxgQN6l
zyX6i8tw+y-r|@XNpe5~RUNwS~CcaR1D&0A>wnu+haGw-GB{JrCiEcB~;`*lTMC@|7
zqb>Y2#I5242|O~U0B^2-gJ@*kh(?}Jb$_vw=P<KKNIdJg1nBq}Q0w=_Dh@N#=EYga
zu%lJv=Bzz)$xy$YSbkvH;^rHvecHd)ZL9wUI~WTp>{5!XfV4|`P+R?cQHQz1hFwPe
zGq8f08DB_Es-((pIGYw|_2C|iKIsA<gBtnKGayWJhZ0iorqTHViS>c$q+=5%CLCAn
zBIaEVk<jI|_1gs%Tiugl)Y$ZU&~x046=^fnKV>{05%qo~GRU__>n`_J85^h3w_?^T
zOtFI`EF{sb;qVD$+7TE+gAHy@(4T@+L@NPlav%Ap;68G(s-1^Tf&~32HnsWPHS`zW
zOz)$=2=Tn3s{~R^rZ)W#!mfA{*%rEr(-`(vk%Wcx=?5sk3Ktd@riCJ+!MorGR<_T^
zV$NAepSF~<Pz7U^YQz?X37{I>C&z5){!M)bM$2DK<RLK+BST_*Q3y`qHe@mB6!3mg
ztKwMml^SwEKly2>il0XPpForzPI>{6GS)pA?YrvLm+*`^JY<^TDqY9LCVAM4cjLaL
z0nfu+jI8xe{R6STO_lJKeuS2inYjSb-Hj%5Xx$2EESz{8`a;<kQH%<>7tD58Z=4g&
zg9ck7gGE{j{$Gh46h+?Spro%Cinaa&gIq>*T(9SfPhQG6K%B`CJFA^@M0W0=K0gOp
zp>!-Wce^z`NBctmNMv?}2Sxa9a@{r(-o^O>3{-^5yPVOPDH&~V(O~h3k!oA*zl7~h
zR)ej{IMa>qqS$K1H-WhHIe=Cu!pjd26N*LKQKV*0JUj`P@cdj`?IspLX_Fb9hSg{!
zk&zY7W$f?;Crlj`z?_jVRh&#epbp+|tG(TTKNs*ktzjDG48gt_HuQ|!M!|dCB|T$0
z?)8h_VjsQY%e-0fBLF`uJn02r@c8*Fy8D7J+I=CsRj@hEmzfzraFH~F+-Yw}o;caP
zV!LmPt_un!DHXNIy1xN7^f&)aoWc>*UIGa{S_SOLld{wu8l{HIa*5+jY~{Q0VGT-O
z`yaFt18uK2<V)7y6N70oy8IQq25et5S#8!6QY_B;$%Fi3^|4qvV=?CHMv0M6uhu6~
z2DoU*_XuR-`JZYJ+G2a)g_jVu_0UiL$AFM-_-9UVS%?LQaKmu9&iY&I?kF-8Nj_B3
z0qdDtC<MfkCV>nq_pYi%jtDOWu)`7THrqnIkdTDC7JYo%7sBL|?7-p)6~pE4*0&1{
zBWmg5tC;NJ5^AgC0Ftm#EHZfpfM4grziJWt4P^&-eDxYeAfLI`d_<eD>UZj7HR%Zy
z%YvIxpr^7lWc@Qr^$R7$ZwL{x-pZmcF$*=yuku(|qCkGKDanW19DcTGAM5$<BpMW>
z(5wB2<pgV>wR*IPS31zlV$EZ1W_f?xZ8xB^#jz12e7N8|{|FhwsH{lK$tbhi>i&v`
z$X(j%xH|)u`vZeh%;(s#+t;MnQ5xNhG}=riagt6j)CxPJ`Z{qq)4CeZ&c-CPwQbto
zq@)qL*#{c{u(i+xUM7GC{>6=I_$BAFiD-azv3@ItwoBV(e6A^en`=y*5(k+4G*B!Z
zkIs-^X1WC0az1Sll7R0)fg;<cRY<LP;ep2G1Fcv{VtN0b$ZGrI2j-&C7r$S(gMu$K
z4{753!?JmO2|o?h+ZVbSr}}oI?%yr0lla8!)FjfxzjRZA2;uL@@<c9!3Z|q2Yl|=5
z8dVvA)e!6E9BpS4JBq35R6Pvl5D|E@R`j>sdap=^TmKGdOw=<F%OQq*iceZn37%vk
zY(6#-xRdI@hoZ21%8x|dh+wMyLs2;RBiCj4P85$@VNIIW5M2e=cEC4yyKi{X4Zw*0
z0n#Zzs!#fo-HO+wD$<-8^9R{#YoTB`sYHEkv#`WLgi01m__8#}YEcJaw~<3<4l-!T
zcwYk}0~_-g;q(&KeQIvT5)^YA%EWg$JOIReIMl0kb8EBu>p48dBw@Sj2Tnp;y}?Wq
zlctXeW_IgC#8rGaNX(77@cQ_t0_49DB-iaiCMnVHr<f82h@?X7WG1b~y{gT@bjx97
z6WML+g#hK^nDIx*I-ek73Ez1w>qtL}0EtJQVo#;5hhlu8aifVMH0~0%4UIcTUJ`K8
zgJOgTC5+SKAQ<*-4=~=s_k?hv8^AQ&Z@qD!D$gO|7#KH0?9S-fP!ncT&DtU$y5lu4
z=!N$}1P>C}DELi#L6$72L4jUwZr_T{6n<(S;RE+kJSmC%w`T0BHqgeH6eRdri)V)M
zq%iYkZ{tq?a4&INKXQ><#wg)_e;*C#F8)QA^Rc7V2vyYR@n{58X((vQ6jqaT2a)|+
zAR`tH8T1bQ=G5c-q&Zj1oh7*??8bM3d9YZ1wIkzPur})!uyz%(xdpZdQ|d{<;Qrk~
z<bD-E1`y;@f*|@wB!c;bznVxs#5vaxXDP&4B*fX%9`aVdrt(v^5EdZ?52N;5i_8GW
z7@|l_H#sRwog2=lU8Hi=#va0#d`-vikRgbSL1Obhuo<LoF9&C5fir05=l#H79g?10
z^77=o{D4FdQL~xT{3I11iv$Q`tB!0(The_<v~;#jW+LIba3TWx$*%@5>NdCC1&K}7
ze2s;BIBzT%I83y?49el@^0O`5#n$9FR5gubt8mf|f_;b_jQNp;WH8=@yZ|fz!pd!^
zbR69#Kf!PbYoRID-pSg>n7-Nf1sq<B5gV?!m(ns@BvL9c0Q21oVTWQL97-Aq3?rnH
z{zF6yMIMOx5@bh)Rxtty4+Swq0VHMts6GKOO#r543d?G{48)9_P)t9VUy~sIrduR}
zTq5`e$t5gu@#?@3F4^qbi@wZr{M@38;=E8*FU~=keY0`AwmUv!W9A#uNK2dp?jj#V
z7wbR@mip%R7kK3RZ8E@r-e52p_!k&p-t`s`7m8%fXx2oGnnJSm8T-(UbC9%qXX9bA
zEhZk^)X)k<SdO{NIuQU&?1cMe;Z95p7?KY7zFor5+8C8`MA!g4M_~IBC6Nv4>hJhT
zhvh8ix3!&($5_6OV~=GVzs|;QSypT0h5o>4DeLfxOVwwrD95h`y-_9Tf+c68Sdwwx
zZd=5qPu4dp&Vm*Z(oVtY#L7M>sKj_ksDkNN0SRJS6Unp=B;p&*0?9xiv2E&(?>FL8
z0>i)Y;hX|eL3juKViW}q`$EIzN+6d39i|{=-LYO;N{1)Dsbh?n_V-H6?=mC*?u9+U
z*__r(H`C6TsAr(FA4~l9UeZ{@j0$U>M~w?R8b&w$8g<S_rtHtqO)anprqsgy?geN}
zH|=;?c9S^9WOUQt1-8k+7TM6iPJ+@!KQ)L74=aAnuM)AJZUSa!BR3i%LH6C*DBCOG
z@=(@RB02(JpTSA4J$NbRO)<~Xk7a#cIsEkA{Ig(B^rrZnfar)Uf#em{Hsuv|DoEhV
z_u&NfhkCWT16d)M;S`kGCO(CUY3zJ-snM7IB%^Qn?s(u|2%*wt&!RuuSHi|3_)KH3
z{hRanS4Ap@u$T6W@pr-;e-ELs>Gxm*VZQ#|4(a7M{GMdRdZXeaR2b&|<Tt$iod1N$
zaO5SiR*Z@<`8eR6jp8NvF2`ijFo=!AnH1NK9{(fY<(PbDyX<UnU<and{@W_B{RQMZ
zkI7x4{7II#kICbrjAxcHCh?6Hj3Gp(<{09)c!Y0oHa-UssqIpB9Xo%geu&XlmVV0c
zy|<&)miAUxhz>t!4&Q7HSPtKVV)(8=x1Tb6?*d~6>Fw=Ecn0~JaKeg6FJCB84PPIJ
zgP|C`y?mG%KSLiI->{DD<5RL7Faj9LfD8-14L6Ykp$aSI=9&rk%+(iL8u%F*<E&uE
zUL<!J&1oeC-suf+hCaS%AUu8#sNbC01`bB2qmJ{*-*MGH-9|-yhku%9b(EyUp3Onj
zG>w!{8lhSU1t)}eD}0&h_}5kB<c4J+w+zhr&G0*&&pGKcpj5DD?gto2&1XsCQ%NF~
zBo+%s_UMDz2d4l(Lg3FN@HZ&{9uHt&<`sc-#1xSX4sq=@Usm@(KRV51!6{byc=OAb
zW${ORnWO!K!8g7#8NN=Gf{B;qP>Y?S@oI1+V(zaPbE!}&XX4iefQKrXYgj=Zo@{|!
zQAb9We?+YA29VbqCERqvtpObOdZXL;zAz4ii^a1!p`N0%cE`+j5cxH?`yjQxj5-N6
zTSPkeD<EwuK!OQf_&K^$A4US0TwSqHpAu@3gxXH1ctXiOUOoo$L<mqM0Uja1Ato34
z<2$VW^RMg{;CE{+@U&#SMUC!R6OY$t4%wdXW_!NZ@a^hi9BVo)zBxq}@wTV@ejeZX
zJRd1Hyk&6Vn!f4!a`q)qV`v?Y^pr1yhVP&lry@mYks)4I;=k(1w^gxflvy-<?ZFbh
zW}yBu+o9V<axE1JELklNn}@IItv?0;oH|osry0h-NktHx1rvmA8~@pa!Ha*r=0yr%
zC(h+RgfpKwx%-J1FwnN+*VCDo=bABdformRfosN$=`-x9dHw=_pvpecKBRJ3PZM%b
zYHF%`+RSOgQfIhk=Fgb6AaAB~W`5o<1A5pn`viL$qJza(&J9!*RaVU{Eh#Q2TQa74
z?uzotWmOdgi;LzK6)qby*IQVWyKKo^Pw}G4g36V1^NW1NIhDoBiz;2%O<kE=UR>s%
zduqX`#U>j+jDJ#~xTJ9I^yQ_#IpfF9&2df2pR!<9-k7w}<Ek^p&t(}n@Rk<_N(3MI
zWu#qIP%@YQ!q;5mU;4_aE{eSsSmrtd{_-hBWs(`_!sW3miqXKixS}|FY0=_kSK71X
zKkJNtt+&8mWcM#EvO~9aXLhdJKC@s^Ns&FbvfN+3xV&V9Jy0eJ{N?tFz@n1ks-^ZB
zPOrTXj8xfCI1T@vkukSh4E=;amqe=4=?8TO?GRrW~*h4#GSC1tRP$|7>`WBT{M
z(XQxvs8n{jy`ZGBsGxAAy~<xu=`SkeM>jhEvdhbS#Y=M04B8!eRXcC?i4*NG(V;Vj
z4zu56PaT>))IMQ?Jp*=$CzMY%%BQrKqk8oCVKCWFzyGm(W?#2kusOKM?I|NEtvVyE
z^Dp1yA^YQob+G9zDlM;E=`E<R4<d@?<;8{e%Z7=eC*&~fBUjqfG+(j*%66l&uPF8}
zwO1Bld@e64w3iB0cK^zXq7kSnDQUOD7~AU#pHo<-9siWM*<D4|#Z`X(6XrDc4pWEm
zcGZ5GG;Ja{t%<?OVweF&PkC9<DFfht+&}Kpijwxep#pQ2N~K7t!vE}wOPPj$i`=Em
zz`b87$KS>HTZa2${0#uku8b1@>oB2dfbgTd2oU9fS)we(Qz@QH@m#5_#FNCe1Z9Nu
z1A>@*z*-{ih}|ckOO*oD7vsK686=4Oc>IfnBy3OYCY2eAQ}N=t5Ll~}Wd>G7ncPm@
zl#vpUKkB0Z@RX?%|DzOx+6A7BI`VBwMd&30H|bW2aw%UKo>u^p8i?hMn9szOqF}sK
z`lnZ9mlqbP1!aYBpIzI%tE}*Qq3khKatzt+c-yQ{xe_(kBb!}~rxN@ff#;5=d5UyF
zdH%}cvL)_9l1JuS@fH;p7mU1W65RZ<yy9O7wpji@woifIUEX1$o}#iP7{n7W_|vK<
zpYo%>7->(<7ZdfQfX`P{X&-K9-lF}NY9JVi;va)0r>M$b4EJALUM3O7BKwi@#?JSX
z3aW~v4?_enqo@LUots@=u@YsoD+?+riYle7|1F<+<$=n@MI9`j#`hWQ=EwBc5A$DI
zQBX;-Iz))&rz_GPI?OIi`KRy$O(LEuTUJy^tWtlx8+p~_^2!wjl_)M-))g`IpM;xK
zuy|S5K&)3WC7+?W;x6+SRhAW$uwTK4yNV5F6_j9FN;TWkWCqC^S80WRr9D-|dcu+n
zEA2uP(qw<CK148<7brDH&W{;4od(V@IdXm~{e0*IaZ^#D!9Y&&^5UxUN~)1=qW$+%
z@dID}__5XLV`dbU78I8iwvU@sLkbbc!*%+MF)_@3sXeVa4Wk~BQU?n^g+8LMGCz&Z
zyn&2}v83Cvr^4t;3;fbyBL3=3_J2apG&<7l+JM@<lu<8SG@a&xCAo_W7fdd$E-G~T
z#adwj3cLl?#ifB#XVv23V#&C)myWp0km}T7&`!tf(Eo}a79Wc-v2{&RVoXJ48JNjK
zu$QemXN(??a8GJ@#1BZ*6?S3N!tZ~tBD!iSMNKtzWH9yPSTP%63N;k_BN;ipp`q~!
zWdQ`NRbp1gey1XzmjsFn`J^aA(lV+?4oMr^{%1_}khC#;k~gPbMI-!?c>KksMJApx
zg_i@Ef5sNt?YzB`e<Y1LY?p)(f!pHz<pmZmE~=`M53zq|7gUx(e0zS`va<3OW%em0
zD=U@~z^uqADk(z9JGr2^M6R{WirJOLoyyx=7^Xk7yxg8wT2NBbUV)$qfl^L^zaW+a
zaqlUIFLzZ|mRH79xyzOdkDXgkSx^clL|uMaRiL7xoXfBdP_73JvK&&f;xs;3JgwYs
zpTV_UM`PqHik25I#)7yLeJLMTN=1v?iA@jq?d3jTs1g&qROqbol0a#ZJ-fWJGEm_+
z5F3S)VGkXou*47%T1N@)M2UUzQsgB%WFnuF%L8RGLLzT0I?<j}R8|}dNp>pA%c=~y
zi5!GV5w@UbV@S<}`Pj<?CWo?ygp6fv2dK02dRJCB7oDPY7Q3^(xu+;jQD#n_d3vF_
z=IjLRE?ZoVD8*mQ48$yCJP^<+c}0r@Fs_yMS;gfgBE|!u>>1geS_+;JUb8zo>lE6M
zE6LO`neC3SqcENMAo(+zPcANrQJraZ9`r|`V2P~B2A7rPrNvcPpmt@zX`{!aj~zGu
zii}L>r0g8mWa)oSb;~B*9}$l;QxqHE<w6lY%wRc1ivmj+(Uj++H|Cm;W;`L&X7(Wk
zsY5)0VOQctt`nBHOCidcmn#45{Kx#*r1Elq9yE=iQzcSJoO{nyVKBHPZ)TTDSu!cF
z%W_j=KZQRT&pS&*$_sWy_PQt&oOM98Ps#t)I%dg?uI2iF;eSS;j1Ip`6`!HbG=m?t
z-itLak?#~<Ft@<J6q=GQkq_p$l{wK^7*K;fvj0zOl<zMtDfSl^Rh^+%ry;&LLzPgO
zxz4(3qP+?Z9b-I|so)&fEO)kRL9TPAx*&JP^qJGMr+XO7U5cpQSb;K{OiLThj1|VY
z=*=#o_*Kyavunil$Jkd#{t)_U&l0N$&5S`{+JEOF(I-C!|Ec|9qQkYlUrnZ`VM07r
ze^kR1L>gU{W9bt(tpSi-c7}>PbB;B=;2ApdN2cF@l0BO8V}_cEq`k;Cq^3@qKHcMT
zBH^DlapLIqKv+!aGt23cT+8vg(5X5w^#&svJ!-UlaY5NoOnXvD84tuX9)$TbP`aq7
za=H(zPiey)OOqdMFJ1K~^2Al;B}MK1i3r~?T)6@xy{>qlS;~|I1GO%U8627UKA7H_
zoxG_8Tz`x`p3&afF|={PkQC)i%vF!fhsu$^#7Z6$5SQLvnJDs`B_gM2<`+G9DnrK3
z{QWQZjU7kdo0J1lSwFJ~c~~ZVPg8oT1Q70JxZPFlFDhf`!e^1cN~^vChvXCmUgjXL
z{}cX=fP@<VG5BKb4?9O{`6AJA;$j+LsVMC_=R>}|MP&gw7O;`Vhv^l}xsAN4qk>>R
zil5W%iGi1^x}v1KvZ#{0#Xd_8XO_<_s_tSmGmmz9uORXi<K*-j*ym}5bHVpCWjgYz
zlNGn(K}OxK<SEzUKW5jNjdr7cG9XO2S-AHo`KTkT2RZ9WxbvW%>JZtZkyl~E4o0)`
zOd|ro_zgjpn;G5f#oatvh`$rWvs~k`a0$lQtfI2Q^2&~h_B25V7pppB8*0?#q91ez
zKM)p@1@Zd{_7*!U!u(<$(Y5Au{bTdJaxK>$xc?}7i?#o*^1Ig+RhD;3j+(;a`rpdi
z75=;;KhTdJ-;sS)I`UD5KuANSngNcOiiaUnj%m%zhM9W$0Wf8dnQ#*OjUC%>j0ubh
z=Bkd}xc`lO?kZ|f3KA<L)o7;Oj8PzxZE_Rw)J&gL`cKg}Jw{%E&&X3re__&%$+OE$
z-zmgRIGGRc5=1bT8jI+ZS%B6E`LZik<|$lo6%NC4>q>i`bFvG^5N5ciO<9mVeH!kZ
z*!WnGt-7+OrVc3>X7?eLf&{D`aR;`q%W$5dr;=(g(gleQJ`gPY)Et?RgY7|padG?e
zRdz`kM$$35u&g)o=N<Z;Rt{OG<4{5gHhE*!G6MOCDnD=|@z<UTlt@Q(AeU)t>Z?pB
zOm=&_ANau>=owOf)IXBCN-8&NAVa%+=JOfk`^oke6Z236V{A>Z|F?NdLw@itVhH9_
z5#0?F{G+a;yr`gZ@zPUje=Ob8(v*r>B8g5euB<XM;*z1x^+?2&mlYbs1%N5<#P1i_
zL<5mz3q#ya7hkV>k=?=}FXfN;ukUZ=e*`k?@JfJ!gXl^F>i8djW*u{zYw_PMl=HtC
zc{zE-`(CXcb8Fo6U%ftm_q!jbT}9kK*w_Exoy{?h8DRPwRZ+MIyzn<sUfTao$)4$H
z2BT^`;&?y89n>UtQ<R;^cZ%nf(lP?KRx8Tb6qHpKiWDmKrCQAAlwbVf7ln%$F)#cb
z{y=G?B$%@BNky>}Zjnp?*E|J0Ry<co0DMM6d6cxPjRt7`htUJBUv%HAXWe<VvVKQ#
zWmdt#54D%?dG)Nvla$tV@x$*JcU~{s`rGeuKIzN5Bja!C?t|+yo~T;-SkCPqzaE*@
zx7PjCUHVOLO<g(p_D3Jx|K3MQ!z)v6eB{<czn}I;*Ne@EZhUt0FUw~4xVjYhGbR4J
zPkG*0)#s7}%g)KEwKn?yo>*}If*U4Zwt8ItHFs7GUw;4NX)oEYs@2A<o}sSYm4Css
zYgS$OR^=^oa(Atqeru1Hhh4n+54N8>9v*#g+2m<Y{xR}+XloDqwC7jGcYEvR><w3Z
z)^Pcz%0E?Z{{0tE{^6d<PYo>{bJDqR(k0hV`_;9D9sKx<-?lwI_#IE<&UO1%<c_)Q
z-DR!O?gbA|zVXTH9=zqHp>yv{{B`8uo)-7>Q{V3P=O_EzHWB*Fv?>W>p*#NfLqCgB
zR5mg{PwDFt%bXIi_0PO}U-QgC$7z6Uan6G0FqYutMx|IM$+H&#k3ASN0l_E_NAQ5d
zRR}KSfes#$C{!*-nLO;V9M{v2HdJ8=*(G%qQLq~gyy8Sf8Se6oa}qp>fhPEWwm>e=
zbaZuY!j9D)&vp25ssZ46;DAR;7K?)%a>*wTbnq|=`8x$CD+_Q+<Fw)eup_HZmq^GH
z%NftI@SI2~8kwhBy2NO9fq57uwjn9<APKpoGE78<_F`3B6(eR5y5MvcQ=t>iy6E(u
z(ooQJite>zEkgX%QU@K=hCm??JpTez>`JPl;#v*DqBCY1=X{o<EqkdeKJDPsY+eO;
zo**g_kc$M$Qt`|aK^3B7c}l4qsyXxd9=oy#kmWFeWq>lV3xQ0gX>zg0lV;+GP6bK~
z6XNY+P-F-2WE5#h0F!oCr<($Rq!KzTp#WVe&k7X?o><$tWd-;w2e)=mVwYEe4sDst
znS(6$<d7ZsI!-bPnI;JoJhnvJuLQ|rFi%oB0QTcQ!wAS7t7$J?+NM0N)X~KqHo5{h
zd7P?4>9KZ7h6{jN9uivuC?;6g*|cL~VY-E-^cM6LJZvVI?>vSs1&|BoLt@}i_SRy7
zo7g(AN|2Z??EvbG189_PQ<Boxe>HvDL&Y1*AAKXc&hu5~ins20{jB@1RMrl?db9Vn
zx27Ce{oQM4-9Jt~FWmBa<2TPfF#VV7@-~lOcgdXV@}5|6(lvEa{=#EVuHJW|Y|ttG
z{NGovPkriaYxbYcd**`a_a<HxnDTPl?AuOG`SmBaym?(>cFK0RG5&U)C$BSd^6;Ip
z|Ns6Hdf>&4|Kc|zd-4<kp4_?7(>Tu0-+tpd!7d(8`(sJytDHKA%N)F=6D-fz^S8^m
z{t598e`dLS>Uh3mh%8Ap#Mx?G`PKDoixSu8kyEM0De;QshTp{B<El%T`t<xUk>I5X
zedZ$EQWXBRD3;rl<OIcf_gTu>N`f69!igp%qqs-+bNIe>kM6V-%doh(+cD)U%CI;a
z{<+H@03f8I*lo6+N-xC%P&8DM+rj>Cd*>hOR(Zzp=j2}V``(=7Cif<_xk+8Iw*Cq+
z+b&bY>ZL1NS7H|R$~KHObmCe)hP%-*g~A3_C$wBd?^w~U)Z7l{=;~F9E1JJlL?O(M
zRq&56#^(MR8B|cY)P0`wo-|FoC~g<_Pg9<Lzvs<+p7(j5=gIry<m6o6V{RLpefOk>
z7f&)`uTnVLKR0@COrqlRbkgQ#A6Dka<%0G=Glq3m-fi_OJ)iPR2KR++?&~6}qX#D?
zCBD2d6P3|}X_=Cdeu1_k8n@w>#_j3Uo#$Wsdvoj0fAYrF4=>KQr8Zb=H}{+mmYAdA
zd^vpgP_5q%9S<LtO~GESw++AbdB-2~=7;=IiSeaj%SZUNzcpMqoDU<iN`PdwsD1jW
ziH%>@A9C{|?|Rsm#KpeHbUWhuI?Vl>1I~|-Gy~2jz=Z%x#(5N-RajMtP001JeVS;l
z*0{uFq+j4hP+JsP7ZeGPuEqK^kGAAChJSNYuucU!>Fe#cI(6~p7SVq@nI-O${<T$8
z%G<i&(8ZvcX7z?;e&)}ySt9jrXjW~#n}l^b?ah0=^;T~(zK?VD_FtXFbbi&DOpkPJ
zX>M%R%d8JjYcF>8rfb!<&#mv!ir(_vf9GCz`tQ%8!!6T=!5MKi^S+>xE+^`=>iVni
z%$*pcYY)!WFGSP>X1SuXvqK-Who-rnmA%z-??&n`w6@<`Z>s*B*?hR8X2o#P3B$40
z>*KRTzT)P<7VXLZ8t=ZZ{vR>#w@z2Kx$8g^xI7uYhS3^mXVC3~t*$}TB>JUBg58a4
zw^g+By3=}4{=xtH`Nbc3{jZ-;m&O9`!>PY0=x+`2(O^Ia2aJKp_no<>*=0uS&lu8g
zZ4I*OGvofHv4AA_Z$|Ecj2KLvwI2)k2w!@AX%Fc2S^Wb+dhPTysDCB?P53OBjEJ=1
zihn`=20sgqalx9$4U4UatiTojFmCiLgLfsk_RG)x=fKxldgtM~H+_qJ=?q-=r@zSX
zJvUr&$2yTcaK&Xr?NQWq_CCs2z^_e<9DvV&H|9kS!*!qLXODFn9t2-U&cJowb(B5V
z2XNhcJ<k40x$d)ckF^3<)P0t6#jkHNeVGCOiP*2uFR;k7CA5zv@YjgyIShW4OJ2%n
zz;Tuc8>w%DKSk7skANpVz6@S=wb2s<Z$`AvE#Lu<D~?`6pU|UNM6^x`ywBrx@F=48
z90SiIT3@aec@)_J-w!S!bMW`UEnK^(!LI>d;Mquf;3vR8AqU`Rzz>l_@Q=Vpxv;+o
z-w*x^`5n9q&hT~qDY)WpkKYeIg{Ym1VV+Z_wnf2TBCgNDHlpV$o=3F4+#+&4qPzh9
z%;S%MFM50#%xyI~^|^D;di)6ZE}}ZmfUR4N{}o@pjbqABfuGEh3-A^2g>8KI06zg%
zzG-r-3a%jMv<~>{x5=YF@*a5kcgS1#dhn&4_!)i*{5LmJl;P*Vd)ddS{dMr9$Ctr#
z9#?$kb`zsTa7V@1srVdHN6!)Ps_zmPxZ=?}@ICw(n3^LN@HF@eqP{&1{_1X{Q}>-u
ze2+d+=SlF-h}v@&-1&V|zYM<R@wdUPKQQOcg1`6p32@gvMo%5wz6-yhQ?Xhn=H$8J
zw^-D7DBl5ge~7>p>kr_!(+0Qxh(5w+!9_&vQFQj0&$8l2$P9H9-`Ptlz}w&r4;q_G
z;KzvO_6m6CLq^XW_$s1)Xo0&PCKlQ*_zl)_I-cAFZv3&ac{}(XqI%v3f5W2&lph0Q
zT!>daHuxUm)&Z~EXLteJkLb9k_%5R3(#0>!?-PH;S8%Zirh<~Hhb2`FNvZ^|#5>lg
zC8PM!O8X^Uk4U-{mUJcQSZrj&CBKA=e#e>$%Ty^TQzz~2cqiHpw}MWf<}X{xup~=S
zNfw97vr);;$0S=Hmuz)Rved~oGTo_8s%53oPkEa1H09|=vYY7Gj>U30S_(<D5_GJX
zUt-u2!<JYh;uyPaY#x`?0v0%tvXvW?T)iN<>h+Q<T_-u~DoJ-IJIQvUWjop*ZHG3h
zv{9m86|bFSP?Gf!J0`FcP}?2LE#tV#F@5fr(La2Z#8=5muU_w5uU;lBnfZ`p>OskH
zeunci#Z<@iAwVDKOOZarM<revbE36K!HQWDQ=hv&4j3PAh{y&8(+$=}Np&YW@pi1`
z*5)&6MJ$PE{RvAZZUqwoNz^w>f<ZrFT`3XmZ)ik9a9;tgG1YppQQ8kmtU~+Qpk#|C
z1`|%A7BAZc%MOUWE7T2iE^|g}BL$zfH4&7FdCsekNTlkMK#7ZWSA^t>zh2(Wbf(&=
zmV0)=*1B$-<HXq}&cvJeWEZ?RYp#`u*+RVA>xpYaWyl82(FJnTjRCn-jo@$m-oW3}
zVVOqfbY)#P-I;7BTL~v#v&+_|kZd}d?@o8tx7W4O&Qxu(kh)+`1bf2R6T+T;pRGht
z5{*bV)CshDy>(-R{@8+-&u)8BnJx~smy1enK2E;b<XTK}jSHDpcJ-2D32aVO+}x~L
zVV}mdU`_gEk{q9Gcy_zFGDfaM$(0DXLhdwDor^!S1N;c{A_e8==bk^%Jk(rlo^5uT
dA2hp7Sqd)MOX;Ok$6LqWJbw20z*!d#{sS-e()9oU
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskDxe.efi b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskDxe.efi
new file mode 100644
index 0000000000000000000000000000000000000000..1fd20c9e3a011eb244349c1d4aca18039ee012ba
GIT binary patch
literal 48320
zcmdqK33yc189#ip41^_2P@+*p2MH2nF%ZDSfX<LixFa)=5(21ffn*>hBr%zRP#1!e
zXolNStlCnwE!|xEZ>d@caSMV01X*0MsKouI<ATz%C_3Noch0@ZBm|}Y`#sP1eAAkH
z?>X;zxAUI&yyrdVUOd+;Kl<1Bqg(#pH_Ue`O7ZPIIw3luTx#nR+fT8rP?XjjS@jG+
znqxb_Y`EorU4PBbbinoLT6u=&q%)LvS6mDHBT>=(prXv|4&X<YjrNt)_|W!T$V@pY
zd$hbnYg3e^qpOOGd_{_K^HAufMp0^wE9=dlT~XB05=^lrE6T#(qOEZ?VR!}HPV;%3
z1-PC>nQ=ACd9^Fb<k2+};UjV23kK6{Tu+0mDk-a2EOkU(p{>Ge^v@1_(a*e}HCqk7
zp$7L&3%Pql)U5B+;E8IBE9+!+k~_H76=?0LZf%P@s{T3L%N^W%ZRqBnk#A9P^iQW2
z%-^;LKepei2H#}iL#lOCUIc$;N7Ui_CBSTVuo>vpJ6<~am>S%_Kr~`Q<2U;!>KFkK
zJU~in;QgLQ)yIPejy^U=zykd~qCk7^<J}-&z1q<h$d0Oi^Y=s1(ZBk8E@+H_jN2BV
z*dQE*PdyVpgI;&ldycN_EJ49fW(XSAKUkaIyQKPZj_F$KA0}Ob%gq-x^1`atm}={m
zF)=aC*0F)sxWI`RU+kFX>#w_E8w7LRaYFw`Boe7__FGOJEerSlAmP)7o@!*r`zPGN
z9VWy*5~9bcqu%A=#1Hy-Kl28As(~G`@Bb$XYI!@J<>5Xb^!iMI#J_*M9ps39Z97Og
zNv-Yixf*F9sTN7<h@RF#szQ*`dU(H311*A7J5+2to(huEdJsgAYKc-&p&I<iG21cA
zQRtXiFl)9exZ4$c%@cgl6Wr_8Zcbe)e4sjJ*OpHsisBse%9ulAj*W@n`k8Y~vvbTY
zuQg_m3e6<DgZtf@JGIhNzsr}vk~mNB0t0&2m{%k;5IDyiS}^|x$6Uue$9%_vc~Ptg
zi|fLV8r%s}aR*=U1b3RGhPk!k)TN&K4}F7N!M>@k;LOwnPcSz%$rE&^rg-pZ^91Ln
zrgb7?FHi%YrmLEz`Y(#&4&|n*s+Kq%_i89P;dhD>S+^dRp=t-gdQGLO5nxT`jGVkF
zz7%)J;`A#@(_un{61Tt~>8V%ZPr(2-0jN8axDC!k4HT!Q0lVc5K4^(wJkAEm2|%ra
zK^w^b8%2?I`7nDG+EVpL&Q+9*Lu&n@8jD^W&(dvbV0-!v)QjL5jo#9KCU~=KMq~1B
z2hzZ=2)x_iyS{nVNVnFE^6-s{vV}&jzdoMOme?w=P8SN+FUGxII)N<(mc);~i$v6*
zI!FJDpiSvlS@c72Vv-RX8Bw9l1T|QenxqDOsVR<GLY2Y9bc(0_Qw@#(xDI#qyZq;b
zelk+k_JZnDDA6O}Kn)H$@fd3l`OiUlYCYTR4Hb;l-y?t8)P?R~;=6!=;rK5E#Dx;V
z5&B7{{+s|we4YrjoH=UHvR&Y6_74K&MnH!0heNIw-062q;9md&m4Cz~;}z6h4n;X4
zciXA*(D*%-it;Sg;|`72aW8v()nF=5dqaC!|J^vSqP3vmdqCPmhpb;oIRcZW1Eu1p
zIgGv?RXI|pO{ASni26gTE_I{-v^P{Bn$?ad0bSBG4fOTTQ3fOU;!(k3g303MU(zTf
zhlB11Zg#`Pk|m<*BT+TYAVqDr{;)*zh(z-qE<)1$4m6$H@6Hf1HO(>FFOlt+%Jz4g
z?OX3_XQOj_&1gU0Xg^H0Pm}FkX8ZjQw71tRePrcCv+|yH<a+9Kp@kS!LCr5<tVHr*
zUzQqCFzBtdLIM7PQ1sBBLv^DN<5294U<2Cwi2zgMVeHdDQMX)-Vlnd6kYzitxi!lu
zz+h1By&qL#<b{%7xL35Uegv0L;=QE0PNh+7833{Ht5vhNTI+V<4(hiy007jIml0to
z@k96s60y;?-b5L2*l^Jca&aHDOk@$f-T+ju*TA&LVEUV}sL(8@9wr*gB!G#&Dh6jp
zmv`3nC4h(hH5C}`pBC*C`x1X(Yl8mpCBV>31A(nI8@BeZF{aTzSPt6P)7EYi4d=pH
zXl3+vzSMkr7RP)zm`^j|oqACd7<89_uV<n2re!1<O1v(J*13}GM_?P=dw)aFX5VU4
z&&hL9;?}mR^tP(D6B=6dYXN#LTZEEl-b49>p98CgZ<@Z`^i5e{7-YRDXj&o3zTW_{
zFQXi+eU2znA5YB&hPL6JW!DpNV0&iUKVSxXRBgK&oRgvkD{X2pAC5^)m`%6j4%w5S
zV9laE1n^Me&wpX+nO?TJ=3?-cUje@{)viC44v?qK-f!CtI^gLl^h}c-_xensgA?pl
ztNL^=6yaCf_DB3xwSD@~L|%`e+S&kbM{3`JsI*7T(i`_s%j3fNV>$xr=XoDWK5;iL
z!JDDDP~x6Hx7(pWRWr#Qa;Mt$e`f&(n#+=2J-N)(T;vMD<wz7XZI)Ei(C7L+5GLG*
zd=(15-er%^p%>TY%AObTn(*b+lnpvsLgM+D?JV<f2L?yuBFuAqyV}Uad0_fga$pBR
z{T6W0R!`EJWvFcT-JgthiJjUFM7uuhbJ5O;cIeMtfK|dU$U*zjSPf0ug-bX?4Qc6!
zSkyIHGja>2`Z)MAX&nnmD3q9sd;M?307r0$W!gYB`>=l}#Y=}>*cNP)b9}}jedT<_
zDjB=NX{t68_TM<8XnAgF^)j29H95&QLDgQ;Z={_?w&@-~y0zV~U{%Bf@D*vivkR}G
zZ$dQ{usOU4!X|-p^k{#|ECK{=XC%p(Kt{`cTK-eBpJtC18m&V?Q?Zm`A!P`oJlwOz
z@=usi3}XPh{vqu!YTg%pR5)w4V<w`qS&rGN_9;4Sp&D|kZtY9KnLFfZ1xF77i96)f
zof#1|<e8K4iaU7A9LL(@k^D^8vldXruhtzJ`Y}4smHncR-svi86=O+pX?yf};6~L7
z=jeTfYB~Q47gk81#|)rM0)e=yy&6q?xIvthK~U8=QdT9fgU*3OuIz7pe{zVqR;`b$
zy3DQZfH}BJF&kq_%N!-tQ-Vif#$;wc%QVlN=j|Zuj@#|Zeye(#JCu{)%&IxzAL7#P
z+(3@95>}q?((;pBad*OlDeBhu`?}(i)a(P*R(G7U)fKXzaAj|;9uP*KCjSMJV^G*P
z#po}N<n3<V4^i!P$1tWF`=LF4wQU1psgJ`@-$DGh|G8;-u9?v9Wq%--o`cYFKANhb
z!u_18IO3l~J5_V;hZSX|`(FjAyCo@oo}hEfer;uZpe0k=tG7ZfX(puE?ngGjOXq4+
z;)z%*+^>IjKEW)H{hpV?gRn``l3JZ0&8y#1viY+9^$4N8VR&rn12oj$FAVX1DY|q=
zn*-(AP4Q~nH^J)o+=iQawP6NU^fymokWqlas0Y^r4Xz&sO2@Mc0mAMX)y}fD&V^wa
zOjkoSX}Q6rn02T2_U^DJ#3;^?^PwH~6ljik9tSTw>=)Va+hMnzOXF^I=1v{U0yXG7
zqW7bCp{Yq|_6QVtME~|YQbg<89X%B#Q*niUxe-q;?e+}<<#c%UDK<QcUJg!4(+8r3
zRzQX6f4P9l%ZX?2H01Q6X=;`VG^E-vD1|M;=9<CUL9f)>_REFVzQkiwv7xoO5S#cG
zQsDZCwP7nFVn@sEJHbK>=2`8*RKZPP`$ES8tXSqb<}R3zRm*8(6dn~bjMk=o!>Sto
zp<`v-K#yL-xP2)sQ4P&Ztu&3u0_8Cjuf%F{O(u=bzgw$`cRZU3@{SST1|n(xmB8{#
zMj!BHHJyxNoD}b5iRp7b7%l`%qJYh!dlNrJx9BS&xT@`Fqs3(oDgrX!g}`bTSd$%6
zYYl@`JcF~0=C+jp)b{0S$Msa9A5L<eY<Cv1gP}@CV;WdRM6ZudR+Qka@wuVZ2OH-1
za)-QWDi)BHSOTYoZ}4Va;vetL&8mp?k5;vMP*l{cDK`ILJc#binv&)ppoZ?F1*oCv
zN%~66%XQ8E3v;cTr^Kq-n>6v=DC46$t~GbW2~iPu!dV~jZ_sAJD)#EXgpD=i!5S>Z
zzm*Jj)|fGy?tnwy0z$R=-@!e6;=3qlN@iz-5}TGlV@_z22wf1rjV1w<{ee<+C6@<`
z@jDF7h;J&|@m?qK-cG#3B;G~D`x(lK_e=IjJ#sPXVR-&<?+#bQ`D`KQvrgt_#5;(R
zmts^@BJQcNVS3=?5ct&Y(N4M$J!oIU{?z(ctaT5Aqz8k%?zgycYfq)tLRwG#F>76j
z%xEvD#}BI6JFR!z%KDIH!aDHT3K)H%5M0ay(Y|USn*|$1S3&epqv)sLBOB0$F~^#7
zi06;{@yL#fg)IQ>^F(_Y(e@H(b!kS=_d*eVwQY9`GrDI39@LN;uRnnSu4<Zi*6tD1
zBD>VM1DIm^>i4lS<QV{C(EEd)b#tJZ4Yk+3L1(H9Lrb	|Vh${1jKPM^{o8lT>It
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
WhftIcWw(4Rx7AnmUDeg)2OR+b+nTTd
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskDxe.map b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskDxe.map
new file mode 100644
index 000000000000..73597425c646
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskDxe.map
@@ -0,0 +1,655 @@
+ RamDiskDxe
+
+ Timestamp is 64880b66 (Tue Jun 13 14:23:34 2023)
+
+ Preferred load address is 0000000000000000
+
+ Start Length Name Class
+ 0001:00000000 00000348H .text CODE
+ 0001:00000348 000072cbH .text$mn CODE
+ 0002:00000000 00002434H .rdata DATA
+ 0002:00002434 00000148H .rdata$zzzdbg DATA
+ 0003:00000000 00001400H .data DATA
+ 0003:00001400 00000120H .bss DATA
+ 0004:00000000 00000534H .pdata DATA
+ 0005:00000000 000003a8H .xdata DATA
+
+ Address Publics by Value Rva+Base Lib:Object
+
+ 0000:00000000 __dynamic_value_reloc_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_iat_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_flags 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_iat_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_longjmp_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_longjmp_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_table 0000000000000000 <absolute>
+ 0001:00000000 InternalMemCopyMem 00000000000002c0 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000040 InternalMemCompareMem 0000000000000300 BaseMemoryLibRepStr:CompareMem.obj
+ 0001:00000060 InternalMemSetMem 0000000000000320 BaseMemoryLibRepStr:SetMem.obj
+ 0001:00000080 InternalMemZeroMem 0000000000000340 BaseMemoryLibRepStr:ZeroMem.obj
+ 0001:000000a0 InternalMemSetMem16 0000000000000360 BaseMemoryLibRepStr:SetMem16.obj
+ 0001:000000c0 InternalMemIsZeroBuffer 0000000000000380 BaseMemoryLibRepStr:IsZeroBuffer.obj
+ 0001:000000f0 InternalMemSetMem64 00000000000003b0 BaseMemoryLibRepStr:SetMem64.obj
+ 0001:00000110 InternalMemSetMem32 00000000000003d0 BaseMemoryLibRepStr:SetMem32.obj
+ 0001:00000130 CpuPause 00000000000003f0 BaseLib:CpuPause.obj
+ 0001:00000140 SevNoRepIo 0000000000000400 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000180 SevIoReadFifo8 0000000000000440 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001a2 SevIoReadFifo16 0000000000000462 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001c8 SevIoReadFifo32 0000000000000488 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001eb SevIoWriteFifo8 00000000000004ab BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000020d SevIoWriteFifo16 00000000000004cd BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000233 SevIoWriteFifo32 00000000000004f3 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000260 TdVmCall 0000000000000520 BaseLib:TdVmcall.obj
+ 0001:000002f0 TdCall 00000000000005b0 BaseLib:TdCall.obj
+ 0001:00000348 _DriverUnloadHandler 0000000000000608 f UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0001:000003fc _ModuleEntryPoint 00000000000006bc f UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0001:00000484 ProcessLibraryConstructorList 0000000000000744 f RamDiskDxe:AutoGen.obj
+ 0001:00000854 ProcessLibraryDestructorList 0000000000000b14 f RamDiskDxe:AutoGen.obj
+ 0001:00000918 ProcessModuleEntryPointList 0000000000000bd8 f RamDiskDxe:AutoGen.obj
+ 0001:00000a50 RamDiskAcpiCheck 0000000000000d10 f RamDiskDxe:RamDiskDriver.obj
+ 0001:00000b2c RamDiskPublishSsdt 0000000000000dec f RamDiskDxe:RamDiskProtocol.obj
+ 0001:00000bf4 RamDiskPublishNfit 0000000000000eb4 f RamDiskDxe:RamDiskProtocol.obj
+ 0001:00000f98 RamDiskUnpublishNfit 0000000000001258 f RamDiskDxe:RamDiskProtocol.obj
+ 0001:00001208 RamDiskRegister 00000000000014c8 f RamDiskDxe:RamDiskProtocol.obj
+ 0001:0000150c RamDiskUnregister 00000000000017cc f RamDiskDxe:RamDiskProtocol.obj
+ 0001:000016c4 InstallRamDiskConfigForm 0000000000001984 f RamDiskDxe:RamDiskImpl.obj
+ 0001:0000178c UninstallRamDiskConfigForm 0000000000001a4c f RamDiskDxe:RamDiskImpl.obj
+ 0001:000017f4 UnregisterAllRamDisks 0000000000001ab4 f RamDiskDxe:RamDiskImpl.obj
+ 0001:000018f4 LibExtractConfig 0000000000001bb4 f FileExplorerLib:FileExplorer.obj
+ 0001:000018f4 RamDiskExtractConfig 0000000000001bb4 f RamDiskDxe:RamDiskImpl.obj
+ 0001:00001918 LibRouteConfig 0000000000001bd8 f FileExplorerLib:FileExplorer.obj
+ 0001:00001918 RamDiskRouteConfig 0000000000001bd8 f RamDiskDxe:RamDiskImpl.obj
+ 0001:0000193c HiiCreateRamDisk 0000000000001bfc f RamDiskDxe:RamDiskImpl.obj
+ 0001:00001b78 UpdateMainForm 0000000000001e38 f RamDiskDxe:RamDiskImpl.obj
+ 0001:00001d7c RamDiskCallback 000000000000203c f RamDiskDxe:RamDiskImpl.obj
+ 0001:00002048 RamDiskInitBlockIo 0000000000002308 f RamDiskDxe:RamDiskBlockIo.obj
+ 0001:00002108 RamDiskBlkIoReset 00000000000023c8 f RamDiskDxe:RamDiskBlockIo.obj
+ 0001:00002108 RamDiskBlkIoFlushBlocks 00000000000023c8 f RamDiskDxe:RamDiskBlockIo.obj
+ 0001:00002108 RamDiskBlkIo2Reset 00000000000023c8 f RamDiskDxe:RamDiskBlockIo.obj
+ 0001:0000210c RamDiskBlkIoReadBlocks 00000000000023cc f RamDiskDxe:RamDiskBlockIo.obj
+ 0001:000021e4 RamDiskBlkIoWriteBlocks 00000000000024a4 f RamDiskDxe:RamDiskBlockIo.obj
+ 0001:000022cc RamDiskBlkIo2ReadBlocksEx 000000000000258c f RamDiskDxe:RamDiskBlockIo.obj
+ 0001:00002368 RamDiskBlkIo2WriteBlocksEx 0000000000002628 f RamDiskDxe:RamDiskBlockIo.obj
+ 0001:00002404 RamDiskBlkIo2FlushBlocksEx 00000000000026c4 f RamDiskDxe:RamDiskBlockIo.obj
+ 0001:00002478 FileInfo 0000000000002738 f RamDiskDxe:RamDiskFileExplorer.obj
+ 0001:0000252c CopyGuid 00000000000027ec f BaseMemoryLibRepStr:MemLibGuid.obj
+ 0001:00002574 CompareGuid 0000000000002834 f BaseMemoryLibRepStr:MemLibGuid.obj
+ 0001:000025dc CopyMem 000000000000289c f BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0001:00002678 CompareMem 0000000000002938 f BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0001:00002750 InternalBaseLibIsListValid 0000000000002a10 f BaseLib:LinkedList.obj
+ 0001:000027bc InitializeListHead 0000000000002a7c f BaseLib:LinkedList.obj
+ 0001:000027f4 InsertTailList 0000000000002ab4 f BaseLib:LinkedList.obj
+ 0001:00002848 IsListEmpty 0000000000002b08 f BaseLib:LinkedList.obj
+ 0001:00002880 RemoveEntryList 0000000000002b40 f BaseLib:LinkedList.obj
+ 0001:000028c8 CalculateCheckSum8 0000000000002b88 f BaseLib:CheckSum.obj
+ 0001:00002944 ReadUnaligned32 0000000000002c04 f BaseLib:Unaligned.obj
+ 0001:00002974 ReadUnaligned64 0000000000002c34 f BaseLib:Unaligned.obj
+ 0001:000029a4 WriteUnaligned64 0000000000002c64 f BaseLib:Unaligned.obj
+ 0001:000029e4 DivU64x32Remainder 0000000000002ca4 f BaseLib:DivU64x32Remainder.obj
+ 0001:00002a40 UnicodeSPrint 0000000000002d00 f BasePrintLib:PrintLib.obj
+ 0001:00002ac0 AsciiSPrint 0000000000002d80 f BasePrintLib:PrintLib.obj
+ 0001:00002ae8 BasePrintLibFillBuffer 0000000000002da8 f BasePrintLib:PrintLibInternal.obj
+ 0001:00002b1c BasePrintLibValueToString 0000000000002ddc f BasePrintLib:PrintLibInternal.obj
+ 0001:00002b6c BasePrintLibSPrintMarker 0000000000002e2c f BasePrintLib:PrintLibInternal.obj
+ 0001:000039f0 BasePrintLibSPrint 0000000000003cb0 f BasePrintLib:PrintLibInternal.obj
+ 0001:00003a14 DebugPrint 0000000000003cd4 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:00003a38 DebugPrintMarker 0000000000003cf8 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:00003ac0 DebugAssert 0000000000003d80 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:00003b30 PlatformDebugLibIoPortFound 0000000000003df0 f PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0001:00003b78 InternalAllocatePool 0000000000003e38 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00003ba8 AllocateZeroPool 0000000000003e68 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00003bd4 InternalAllocateCopyPool 0000000000003e94 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00003c4c InternalReallocatePool 0000000000003f0c f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00003ccc FreePool 0000000000003f8c f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00003d10 DevicePathType 0000000000003fd0 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00003d40 DevicePathSubType 0000000000004000 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00003d70 DevicePathNodeLength 0000000000004030 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00003dbc NextDevicePathNode 000000000000407c f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00003df4 IsDevicePathEnd 00000000000040b4 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00003e60 SetDevicePathNodeLength 0000000000004120 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00003ee0 DevicePathFromHandle 00000000000041a0 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00003f14 FileDevicePath 00000000000041d4 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00004000 GetEfiGlobalVariable2 00000000000042c0 f UefiLib:UefiLib.obj
+ 0001:000040f8 GetBestLanguage 00000000000043b8 f UefiLib:UefiLib.obj
+ 0001:0000423c EfiOpenFileByDevicePath 00000000000044fc f UefiLib:UefiLib.obj
+ 0001:000043f0 EfiCreateEventReadyToBootEx 00000000000046b0 f UefiLib:UefiNotTiano.obj
+ 0001:00004494 UefiLibGetStringWidth 0000000000004754 f UefiLib:Console.obj
+ 0001:0000453c CreatePopUp 00000000000047fc f UefiLib:Console.obj
+ 0001:00004900 HiiSetString 0000000000004bc0 f UefiHiiLib:HiiString.obj
+ 0001:00004a5c HiiGetString 0000000000004d1c f UefiHiiLib:HiiString.obj
+ 0001:00004bf8 HiiAddPackages 0000000000004eb8 f UefiHiiLib:HiiLib.obj
+ 0001:00004d34 HiiRemovePackages 0000000000004ff4 f UefiHiiLib:HiiLib.obj
+ 0001:00004da4 HiiAllocateOpCodeHandle 0000000000005064 f UefiHiiLib:HiiLib.obj
+ 0001:00004df4 HiiFreeOpCodeHandle 00000000000050b4 f UefiHiiLib:HiiLib.obj
+ 0001:00004e34 InternalHiiGrowOpCodeHandle 00000000000050f4 f UefiHiiLib:HiiLib.obj
+ 0001:00004ed8 InternalHiiCreateOpCodeExtended 0000000000005198 f UefiHiiLib:HiiLib.obj
+ 0001:00004f8c HiiCreateGuidOpCode 000000000000524c f UefiHiiLib:HiiLib.obj
+ 0001:00004fe0 HiiCreateGotoOpCode 00000000000052a0 f UefiHiiLib:HiiLib.obj
+ 0001:00005068 InternalHiiUpdateFormPackageData 0000000000005328 f UefiHiiLib:HiiLib.obj
+ 0001:000052e4 HiiUpdateForm 00000000000055a4 f UefiHiiLib:HiiLib.obj
+ 0001:00005558 HiiGetSupportedLanguages 0000000000005818 f UefiHiiLib:HiiLanguage.obj
+ 0001:000055fc GetHobList 00000000000058bc f DxeHobLib:HobLib.obj
+ 0001:000056dc LibCallback 000000000000599c f FileExplorerLib:FileExplorer.obj
+ 0001:000058cc LibCreateMenuEntry 0000000000005b8c f FileExplorerLib:FileExplorer.obj
+ 0001:00005918 LibGetMenuEntry 0000000000005bd8 f FileExplorerLib:FileExplorer.obj
+ 0001:00005990 LibDestroyMenuEntry 0000000000005c50 f FileExplorerLib:FileExplorer.obj
+ 0001:00005a0c LibFreeMenu 0000000000005ccc f FileExplorerLib:FileExplorer.obj
+ 0001:00005a84 LibStrDuplicate 0000000000005d44 f FileExplorerLib:FileExplorer.obj
+ 0001:00005af0 LibAppendFileName 0000000000005db0 f FileExplorerLib:FileExplorer.obj
+ 0001:00005ca4 LibFindFileSystem 0000000000005f64 f FileExplorerLib:FileExplorer.obj
+ 0001:00005f88 LibGetFileHandleFromDevicePath 0000000000006248 f FileExplorerLib:FileExplorer.obj
+ 0001:00006194 LibCreateNewFile 0000000000006454 f FileExplorerLib:FileExplorer.obj
+ 0001:0000628c LibFindFiles 000000000000654c f FileExplorerLib:FileExplorer.obj
+ 0001:00006530 LibUpdateFileExplorePage 00000000000067f0 f FileExplorerLib:FileExplorer.obj
+ 0001:000067a4 LibUpdateFileExplorer 0000000000006a64 f FileExplorerLib:FileExplorer.obj
+ 0001:00006884 LibGetDevicePath 0000000000006b44 f FileExplorerLib:FileExplorer.obj
+ 0001:000068d8 ChooseFile 0000000000006b98 f FileExplorerLib:FileExplorer.obj
+ 0001:000069b0 InternalImageHandleToFvHandle 0000000000006c70 f DxeServicesLib:DxeServicesLib.obj
+ 0001:00006a38 InternalGetSectionFromFv 0000000000006cf8 f DxeServicesLib:DxeServicesLib.obj
+ 0001:00006b10 ZeroMem 0000000000006dd0 f BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0001:00006b74 SetMem16 0000000000006e34 f BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0001:00006c3c IsZeroBuffer 0000000000006efc f BaseMemoryLibRepStr:IsZeroBufferWrapper.obj
+ 0001:00006c98 StrnLenS 0000000000006f58 f BaseLib:SafeString.obj
+ 0001:00006d00 StrCpyS 0000000000006fc0 f BaseLib:SafeString.obj
+ 0001:00006ea4 StrnCpyS 0000000000007164 f BaseLib:SafeString.obj
+ 0001:0000707c StrCatS 000000000000733c f BaseLib:SafeString.obj
+ 0001:00007264 AsciiStrnLenS 0000000000007524 f BaseLib:SafeString.obj
+ 0001:00007288 StrLen 0000000000007548 f BaseLib:String.obj
+ 0001:0000731c StrStr 00000000000075dc f BaseLib:String.obj
+ 0001:000073e4 AsciiStrLen 00000000000076a4 f BaseLib:String.obj
+ 0001:00007450 AsciiStrnCmp 0000000000007710 f BaseLib:String.obj
+ 0001:0000751c IoWriteFifo8 00000000000077dc f BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0001:00007570 TdIoRead8 0000000000007830 f BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0001:000075c0 TdIoWrite8 0000000000007880 f BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0002:00000000 ??_C@_0CB@DMEJJJHA@?6ASSERT_EFI_ERROR?5?$CIStatus?5?$DN?5?$CFr?$CJ?6@ 00000000000078e0 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:00000028 ??_C@_0CH@BBNBJKHK@?$CB?$CI?$CI?$CIINTN?$CJ?$CIRETURN_STATUS?$CJ?$CIStatus?$CJ@ 0000000000007908 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:00000050 ??_C@_0FI@PIDCFOGG@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000007930 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:000000b0 ??_C@_0IF@FEBLDIJK@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000007990 RamDiskDxe:AutoGen.obj
+ 0002:00000138 _gPcd_FixedAtBuild_PcdAcpiDefaultOemId 0000000000007a18 RamDiskDxe:AutoGen.obj
+ 0002:00000140 ??_C@_0GD@BNLIKAOG@RamDiskAcpiCheck?3?5Cannot?5locate?5@ 0000000000007a20 RamDiskDxe:RamDiskDriver.obj
+ 0002:000001b0 ??_C@_0GB@MEOCDBHF@RamDiskAcpiCheck?3?5Cannot?5locate?5@ 0000000000007a90 RamDiskDxe:RamDiskDriver.obj
+ 0002:00000218 ??_C@_0BF@NDBIKIKC@CR?5has?5Bad?5Signature?$AA@ 0000000000007af8 RamDiskDxe:RamDiskDriver.obj
+ 0002:00000230 ??_C@_0FI@CEMDHKBL@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000007b10 RamDiskDxe:RamDiskDriver.obj
+ 0002:00000288 ??_C@_0BJ@KGHECGOD@Driver?5already?5started?$CB?6?$AA@ 0000000000007b68 RamDiskDxe:RamDiskDriver.obj
+ 0002:000002b0 ??_C@_0FC@PHDEKBJC@ConfigPrivate?9?$DOSignature?5?$DN?$DN?5?$CI?$CI?$CI?8@ 0000000000007b90 RamDiskDxe:RamDiskDriver.obj
+ 0002:00000310 ??_C@_0FK@BLPPACJE@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000007bf0 RamDiskDxe:RamDiskProtocol.obj
+ 0002:00000370 ??_C@_0DJ@CIDFFKAG@Status?5?$DN?$DN?5?$CI?$CIRETURN_STATUS?$CJ?$CI0x800@ 0000000000007c50 RamDiskDxe:RamDiskProtocol.obj
+ 0002:000003b0 ??_C@_0BK@BEMEMBP@MemoryMap?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000007c90 RamDiskDxe:RamDiskProtocol.obj
+ 0002:000003d0 ??_C@_0EP@DLAOFOF@RamDiskPublishNfit?3?5RAM?5disk?5wit@ 0000000000007cb0 RamDiskDxe:RamDiskProtocol.obj
+ 0002:00000420 ??_C@_0EA@CHLMIELN@RamDiskPublishNfit?3?5A?5NFIT?5is?5al@ 0000000000007d00 RamDiskDxe:RamDiskProtocol.obj
+ 0002:00000460 ??_C@_0EE@JOJIMDHM@RamDiskPublishNfit?3?5No?5NFIT?5is?5i@ 0000000000007d40 RamDiskDxe:RamDiskProtocol.obj
+ 0002:000004b0 ??_C@_0FG@OMEOLKBK@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000007d90 RamDiskDxe:RamDiskImpl.obj
+ 0002:00000508 ??_C@_11LOCGONAA@?$AA?$AA@ 0000000000007de8 RamDiskDxe:RamDiskImpl.obj
+ 0002:00000510 ??_C@_1DI@OGKNCJLH@?$AAP?$AAr?$AAe?$AAs?$AAs?$AA?5?$AAE?$AAN?$AAT?$AAE?$AAR?$AA?5?$AAt?$AAo?$AA?5?$AAc?$AAo?$AAn?$AAt?$AAi?$AAn?$AAu?$AAe?$AA?5?$AA?4?$AA?4?$AA?4?$AA?$AA@ 0000000000007df0 RamDiskDxe:RamDiskImpl.obj
+ 0002:00000550 ??_C@_1FO@LPLEAKEO@?$AAN?$AAo?$AAt?$AA?5?$AAe?$AAn?$AAo?$AAu?$AAg?$AAh?$AA?5?$AAm?$AAe?$AAm?$AAo?$AAr?$AAy?$AA?5?$AAt?$AAo?$AA?5?$AAg?$AAe?$AAt?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAf?$AAi?$AAl@ 0000000000007e30 RamDiskDxe:RamDiskImpl.obj
+ 0002:000005b0 ??_C@_1FE@INMJPINH@?$AAN?$AAo?$AAt?$AA?5?$AAe?$AAn?$AAo?$AAu?$AAg?$AAh?$AA?5?$AAm?$AAe?$AAm?$AAo?$AAr?$AAy?$AA?5?$AAt?$AAo?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAt?$AAh?$AAe?$AA?5@ 0000000000007e90 RamDiskDxe:RamDiskImpl.obj
+ 0002:00000608 ??_C@_1DC@FPBJCKFI@?$AAF?$AAi?$AAl?$AAe?$AA?5?$AAc?$AAo?$AAn?$AAt?$AAe?$AAn?$AAt?$AA?5?$AAr?$AAe?$AAa?$AAd?$AA?5?$AAe?$AAr?$AAr?$AAo?$AAr?$AA?$CB?$AA?$AA@ 0000000000007ee8 RamDiskDxe:RamDiskImpl.obj
+ 0002:00000640 ??_C@_1FK@CHJMPKHK@?$AAF?$AAa?$AAi?$AAl?$AA?5?$AAt?$AAo?$AA?5?$AAr?$AAe?$AAg?$AAi?$AAs?$AAt?$AAe?$AAr?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAn?$AAe?$AAw?$AAl?$AAy?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt@ 0000000000007f20 RamDiskDxe:RamDiskImpl.obj
+ 0002:000006a0 ??_C@_0CC@PIBHJFDN@StartOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 0000000000007f80 RamDiskDxe:RamDiskImpl.obj
+ 0002:000006c8 ??_C@_0CA@FMKGPAPI@EndOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000007fa8 RamDiskDxe:RamDiskImpl.obj
+ 0002:000006e8 ??_C@_1DO@IMLEIFHC@?$AA?5?$AA?5?$AAR?$AAA?$AAM?$AA?5?$AAD?$AAi?$AAs?$AAk?$AA?5?$AA?$CF?$AAd?$AA?3?$AA?5?$AA?$FL?$AA0?$AAx?$AA?$CF?$AAl?$AAx?$AA?0?$AA?5?$AA0?$AAx?$AA?$CF?$AAl?$AAx?$AA?$FN?$AA?6?$AA?$AA@ 0000000000007fc8 RamDiskDxe:RamDiskImpl.obj
+ 0002:00000728 ??_C@_0O@EMMLPDMJ@StringId?5?$CB?$DN?50?$AA@ 0000000000008008 RamDiskDxe:RamDiskImpl.obj
+ 0002:00000738 ??_C@_0BG@CJDFNAOE@Media?9?$DOBlockSize?5?$CB?$DN?50?$AA@ 0000000000008018 RamDiskDxe:RamDiskBlockIo.obj
+ 0002:00000750 ??_C@_0FJ@OJBFKIJE@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008030 RamDiskDxe:RamDiskBlockIo.obj
+ 0002:000007b0 ??_C@_0DG@EEENIGGL@Length?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFFFFFULL@ 0000000000008090 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0002:000007f0 ??_C@_0ED@MKGCMJG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 00000000000080d0 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00000840 ??_C@_0FF@LLAFLLDM@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008120 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00000898 ??_C@_0DO@MAOBOFEG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 0000000000008178 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:000008d8 ??_C@_0CC@JOEHDGKB@DestinationBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 00000000000081b8 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00000900 ??_C@_0FI@NCCCHAEB@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000081e0 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00000958 ??_C@_0BN@MDMCNBCC@SourceBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000008238 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00000978 ??_C@_0BF@NJNGJMPC@List?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000008258 BaseLib:LinkedList.obj
+ 0002:00000990 ??_C@_0EF@PHMLHICE@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008270 BaseLib:LinkedList.obj
+ 0002:000009d8 ??_C@_0CC@KDLPLAED@List?9?$DOForwardLink?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 00000000000082b8 BaseLib:LinkedList.obj
+ 0002:00000a00 ??_C@_0BP@IJJCCMAK@List?9?$DOBackLink?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000082e0 BaseLib:LinkedList.obj
+ 0002:00000a20 ??_C@_0BJ@NJABNCDK@ListHead?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000008300 BaseLib:LinkedList.obj
+ 0002:00000a40 ??_C@_0CG@LGIALJFK@InternalBaseLibIsListValid?5?$CIList@ 0000000000008320 BaseLib:LinkedList.obj
+ 0002:00000a68 ??_C@_0BF@NMBJJECB@?$CBIsListEmpty?5?$CIEntry?$CJ?$AA@ 0000000000008348 BaseLib:LinkedList.obj
+ 0002:00000a80 ??_C@_0BH@IACGKAP@Buffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000008360 BaseLib:CheckSum.obj
+ 0002:00000aa0 ??_C@_0ED@GJHPOIEN@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008380 BaseLib:CheckSum.obj
+ 0002:00000ae8 ??_C@_0DI@FAOGOFLE@Length?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFFFFFULL@ 00000000000083c8 BaseLib:CheckSum.obj
+ 0002:00000b20 ??_C@_0EE@FAJFAODK@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008400 BaseLib:Unaligned.obj
+ 0002:00000b68 ??_C@_0N@KGHEHMDL@Divisor?5?$CB?$DN?50?$AA@ 0000000000008448 BaseLib:DivU64x32Remainder.obj
+ 0002:00000b80 ??_C@_0EN@EIGKPMFG@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008460 BaseLib:DivU64x32Remainder.obj
+ 0002:00000bd0 ??_C@_0CI@BGLNHBLM@?$CI?$CI?$CIUINTN?$CJ?5?$CIStartOfBuffer?$CJ?$CJ?5?$CG?50x0@ 00000000000084b0 BasePrintLib:PrintLib.obj
+ 0002:00000c00 ??_C@_0EI@PHEOPKNG@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000084e0 BasePrintLib:PrintLib.obj
+ 0002:00000c48 ??_C@_0CH@KJLBGOBB@?$CI?$CI?$CIUINTN?$CJ?5?$CIFormatString?$CJ?$CJ?5?$CG?50x01@ 0000000000008528 BasePrintLib:PrintLib.obj
+ 0002:00000c70 ??_C@_0FA@JGMHCDLA@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008550 BasePrintLib:PrintLibInternal.obj
+ 0002:00000cc0 ??_C@_0BJ@CNKJJNE@?$CIBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 00000000000085a0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000ce0 ??_C@_0EB@HDGIDCIO@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 00000000000085c0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000d28 ??_C@_0BJ@PPAKKDJG@?$CIFormat?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 0000000000008608 BasePrintLib:PrintLibInternal.obj
+ 0002:00000d50 ??_C@_0ED@LPDDCECB@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 0000000000008630 BasePrintLib:PrintLibInternal.obj
+ 0002:00000da0 ??_C@_0IM@BFJJFLGB@?$CIStrnLenS?5?$CI?$CICHAR16?5?$CK?$CJFormat?0?5?$CI_g@ 0000000000008680 BasePrintLib:PrintLibInternal.obj
+ 0002:00000e30 ??_C@_0ID@PLGJGION@?$CIAsciiStrnLenS?5?$CIFormat?0?5?$CI_gPcd_F@ 0000000000008710 BasePrintLib:PrintLibInternal.obj
+ 0002:00000eb8 ??_C@_0O@MLOLIMFM@?$DMnull?5string?$DO?$AA@ 0000000000008798 BasePrintLib:PrintLibInternal.obj
+ 0002:00000ec8 ??_C@_0M@BJJDNPHK@?$DMnull?5guid?$DO?$AA@ 00000000000087a8 BasePrintLib:PrintLibInternal.obj
+ 0002:00000ed8 ??_C@_0DB@PMLHLBMO@?$CF08x?9?$CF04x?9?$CF04x?9?$CF02x?$CF02x?9?$CF02x?$CF02x@ 00000000000087b8 BasePrintLib:PrintLibInternal.obj
+ 0002:00000f10 ??_C@_0M@LHGBCIKM@?$DMnull?5time?$DO?$AA@ 00000000000087f0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000f20 ??_C@_0BK@FCPKCIDD@?$CF02d?1?$CF02d?1?$CF04d?5?5?$CF02d?3?$CF02d?$AA@ 0000000000008800 BasePrintLib:PrintLibInternal.obj
+ 0002:00000f3c ??_C@_04JIMNDDED@?$CF08X?$AA@ 000000000000881c BasePrintLib:PrintLibInternal.obj
+ 0002:00000f44 ??_C@_02PCIJFNDE@?$AN?6?$AA@ 0000000000008824 BasePrintLib:PrintLibInternal.obj
+ 0002:00000f48 ??_C@_01LIIJDEN@?$AN?$AA@ 0000000000008828 BasePrintLib:PrintLibInternal.obj
+ 0002:00000f50 mWarningString 0000000000008830 BasePrintLib:PrintLibInternal.obj
+ 0002:00000ff0 mErrorString 00000000000088d0 BasePrintLib:PrintLibInternal.obj
+ 0002:000012b0 mHexStr 0000000000008b90 BasePrintLib:PrintLibInternal.obj
+ 0002:000012c0 ??_C@_0BH@LKMBFCBF@Format?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000008ba0 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:000012e0 ??_C@_0FD@OABGLBHF@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008bc0 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00001338 ??_C@_0BE@ECBJLCDE@ASSERT?5?$CFa?$CI?$CFLu?$CJ?3?5?$CFa?6?$AA@ 0000000000008c18 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00001350 ??_C@_0BN@COECPDCC@gImageHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000008c30 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00001370 ??_C@_0GE@FKBNDHHB@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008c50 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:000013d8 ??_C@_0BE@DGNHAHIL@gST?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000008cb8 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:000013f0 ??_C@_0BE@BDFJLGLN@gBS?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000008cd0 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00001410 ??_C@_0FO@BEMDJMPM@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008cf0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:00001470 ??_C@_0DO@GEEICOOO@AllocationSize?5?$DM?$DN?5?$CI0xFFFFFFFFFFF@ 0000000000008d50 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:000014b0 ??_C@_0BE@OBDFIHND@gRT?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000008d90 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:000014d0 ??_C@_0GK@FJIMGEPP@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008db0 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:00001540 ??_C@_0GI@KEFAHLGJ@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008e20 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:000015a8 ??_C@_0DC@CNNBPJA@mDevicePathLibDevicePathUtilitie@ 0000000000008e88 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:000015e0 ??_C@_0BF@CBLMFKOC@Node?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000008ec0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00001600 ??_C@_0EH@ENCEEKKL@?$CILength?5?$DO?$DN?5sizeof?5?$CIEFI_DEVICE_PA@ 0000000000008ee0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00001648 ??_C@_0BF@MBJFHGBE@Size?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000008f28 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00001660 mUefiDevicePathLibEndDevicePath 0000000000008f40 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00001670 ??_C@_0FO@HNLMMFDN@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008f50 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0002:000016d0 ??_C@_0EC@DCGCAOKF@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008fb0 UefiLib:UefiLib.obj
+ 0002:00001720 ??_C@_0EG@GOBFPEEP@Name?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5Guid?5?$CB?$DN?5@ 0000000000009000 UefiLib:UefiLib.obj
+ 0002:00001768 ??_C@_0BH@FMEOEIBC@?$CKValue?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000009048 UefiLib:UefiLib.obj
+ 0002:00001780 ??_C@_0CD@OLFKAJF@SupportedLanguages?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?5@ 0000000000009060 UefiLib:UefiLib.obj
+ 0002:000017a8 ??_C@_0CG@CADOKAGM@?$CI?$CI?$CIINTN?$CJ?$CIRETURN_STATUS?$CJ?$CIStatus?$CJ?$CJ@ 0000000000009088 UefiLib:UefiLib.obj
+ 0002:000017d0 ??_C@_0EH@BHJPKNIJ@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000090b0 UefiLib:UefiNotTiano.obj
+ 0002:00001818 ??_C@_0BC@FEDIJHFF@?$CI?$CIBOOLEAN?$CJ?$CI0?$DN?$DN1?$CJ?$CJ?$AA@ 00000000000090f8 UefiLib:UefiNotTiano.obj
+ 0002:00001830 ??_C@_0CB@LNNMJOKK@ReadyToBootEvent?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ@ 0000000000009110 UefiLib:UefiNotTiano.obj
+ 0002:00001858 ??_C@_0CH@LOBIJKLE@EFI1?41?5can?8t?5support?5ReadyToBoot@ 0000000000009138 UefiLib:UefiNotTiano.obj
+ 0002:00001880 ??_C@_0BD@BHENKNKP@NumberOfLines?5?$CB?$DN?50?$AA@ 0000000000009160 UefiLib:Console.obj
+ 0002:000018a0 ??_C@_0EC@EJLIGNPA@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000009180 UefiLib:Console.obj
+ 0002:000018e8 ??_C@_0P@ICDOOCHP@MaxLength?5?$CB?$DN?50?$AA@ 00000000000091c8 UefiLib:Console.obj
+ 0002:000018f8 ??_C@_0BF@DMEONNDO@Line?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000091d8 UefiLib:Console.obj
+ 0002:00001910 ??_C@_0BK@IHAIHFJE@TmpString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000091f0 UefiLib:Console.obj
+ 0002:00001930 ??_C@_17LGKOMLJ@?$AA?4?$AA?4?$AA?4?$AA?$AA@ 0000000000009210 UefiLib:Console.obj
+ 0002:00001938 ??_C@_0BK@KLJHMMPJ@HiiHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000009218 UefiHiiLib:HiiString.obj
+ 0002:00001960 ??_C@_0EN@DDBLCGFI@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000009240 UefiHiiLib:HiiString.obj
+ 0002:000019b0 ??_C@_0BH@MAAHKCPC@String?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000009290 UefiHiiLib:HiiString.obj
+ 0002:000019c8 ??_C@_06PLDEFKP@x?9UEFI?$AA@ 00000000000092a8 UefiHiiLib:HiiString.obj
+ 0002:000019d0 ??_C@_0CA@OEKIMLLB@PackageListGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000092b0 UefiHiiLib:HiiString.obj
+ 0002:000019f0 ??_C@_1BK@GGGENMOA@?$AAP?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AAL?$AAa?$AAn?$AAg?$AA?$AA@ 00000000000092d0 UefiHiiLib:HiiString.obj
+ 0002:00001a0a ??_C@_00CNPNBAHC@?$AA@ 00000000000092ea UefiHiiLib:HiiString.obj
+ 0002:00001a10 ??_C@_0EK@CCOCGB@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000092f0 UefiHiiLib:HiiLib.obj
+ 0002:00001a60 ??_C@_0BN@OKKMNGPH@OpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000009340 UefiHiiLib:HiiLib.obj
+ 0002:00001a80 ??_C@_0BP@IOABAFLF@OpCodeTemplate?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000009360 UefiHiiLib:HiiLib.obj
+ 0002:00001aa0 ??_C@_0CF@DPHCOLMP@?$CIOpCodeSize?5?$CL?5ExtensionSize?$CJ?5?$DM?$DN?5@ 0000000000009380 UefiHiiLib:HiiLib.obj
+ 0002:00001ac8 mEndOfPakageList 00000000000093a8 UefiHiiLib:HiiLib.obj
+ 0002:00001ad0 ??_C@_0EP@LMJDKFAP@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000093b0 UefiHiiLib:HiiLanguage.obj
+ 0002:00001b20 ??_C@_0ED@HPBEEAH@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000009400 DxeHobLib:HobLib.obj
+ 0002:00001b68 ??_C@_0BJ@OBFMLLDO@mHobList?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000009448 DxeHobLib:HobLib.obj
+ 0002:00001b88 ??_C@_0CE@MDBJFLCA@MenuNumber?5?$DM?5MenuOption?9?$DOMenuNum@ 0000000000009468 FileExplorerLib:FileExplorer.obj
+ 0002:00001bb0 ??_C@_0FF@NGAEBIMK@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000009490 FileExplorerLib:FileExplorer.obj
+ 0002:00001c08 ??_C@_0BH@GHAKFHML@ToText?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000094e8 FileExplorerLib:FileExplorer.obj
+ 0002:00001c20 ??_C@_0BF@CPBCKIGP@Dest?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000009500 FileExplorerLib:FileExplorer.obj
+ 0002:00001c38 ??_C@_0BH@FMMHHFDB@TmpStr?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000009518 FileExplorerLib:FileExplorer.obj
+ 0002:00001c50 ??_C@_0BE@LNIAOOBG@Str?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000009530 FileExplorerLib:FileExplorer.obj
+ 0002:00001c64 ??_C@_13FPGAJAPJ@?$AA?2?$AA?$AA@ 0000000000009544 FileExplorerLib:FileExplorer.obj
+ 0002:00001c68 ??_C@_1CI@JGIGCDAN@?$AAN?$AAO?$AA?5?$AAF?$AAI?$AAL?$AAE?$AA?5?$AAS?$AAY?$AAS?$AAT?$AAE?$AAM?$AA?5?$AAI?$AAN?$AAF?$AAO?$AA?$AA@ 0000000000009548 FileExplorerLib:FileExplorer.obj
+ 0002:00001c90 ??_C@_1CA@KOPNEOKK@?$AAN?$AAO?$AA?5?$AAV?$AAO?$AAL?$AAU?$AAM?$AAE?$AA?5?$AAL?$AAA?$AAB?$AAE?$AAL?$AA?$AA@ 0000000000009570 FileExplorerLib:FileExplorer.obj
+ 0002:00001cb0 ??_C@_0CJ@CDKCBEKC@MenuEntry?9?$DODisplayString?5?$CB?$DN?5?$CI?$CIvo@ 0000000000009590 FileExplorerLib:FileExplorer.obj
+ 0002:00001ce0 ??_C@_1BC@GMOFGFBO@?$AA?$CF?$AAs?$AA?0?$AA?5?$AA?$FL?$AA?$CF?$AAs?$AA?$FN?$AA?$AA@ 00000000000095c0 FileExplorerLib:FileExplorer.obj
+ 0002:00001cf8 ??_C@_19ECGOGJPA@?$AA?$DM?$AA?$CF?$AAs?$AA?$DO?$AA?$AA@ 00000000000095d8 FileExplorerLib:FileExplorer.obj
+ 0002:00001d08 ??_C@_0CF@KMPENEEM@gHiiVendorDevicePath?5?$CB?$DN?5?$CI?$CIvoid?5?$CK@ 00000000000095e8 FileExplorerLib:FileExplorer.obj
+ 0002:00001d30 ??_C@_0DB@BODFOPAI@gFileExplorerPrivate?4FeHiiHandle@ 0000000000009610 FileExplorerLib:FileExplorer.obj
+ 0002:00001d68 ??_C@_0BM@PHFBGKMM@ImageHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000009648 DxeServicesLib:DxeServicesLib.obj
+ 0002:00001d90 ??_C@_0FA@LFFAEHFG@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000009670 DxeServicesLib:DxeServicesLib.obj
+ 0002:00001de0 ??_C@_0DI@DAGDPLPG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 00000000000096c0 BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0002:00001e20 ??_C@_0FF@PKHNKPL@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000009700 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:00001e80 ??_C@_0FG@BHBOFAHM@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000009760 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00001ed8 ??_C@_0CO@LECKNDNC@?$CI?$CI?$CIUINTN?$CJBuffer?$CJ?5?$CG?5?$CIsizeof?5?$CIValu@ 00000000000097b8 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00001f08 ??_C@_0CF@LEICOABD@?$CILength?5?$CG?5?$CIsizeof?5?$CIValue?$CJ?5?9?51?$CJ?$CJ?5@ 00000000000097e8 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00001f30 ??_C@_0CI@MNELLLEK@?$CB?$CIBuffer?5?$DN?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5Leng@ 0000000000009810 BaseMemoryLibRepStr:IsZeroBufferWrapper.obj
+ 0002:00001f60 ??_C@_0FK@BHBEFCFM@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000009840 BaseMemoryLibRepStr:IsZeroBufferWrapper.obj
+ 0002:00001fc0 ??_C@_0CC@GFNLNIOC@?$CI?$CIUINTN?$CJString?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 00000000000098a0 BaseLib:SafeString.obj
+ 0002:00001ff0 ??_C@_0EF@MFKKFBPN@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000098d0 BaseLib:SafeString.obj
+ 0002:00002038 ??_C@_0CH@LALFPBMC@?$CI?$CIUINTN?$CJDestination?5?$CG?50x00000001@ 0000000000009918 BaseLib:SafeString.obj
+ 0002:00002060 ??_C@_0CC@HEBCMBPF@?$CI?$CIUINTN?$CJSource?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 0000000000009940 BaseLib:SafeString.obj
+ 0002:00002088 ??_C@_0BO@ECNIOIHG@?$CIDestination?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 0000000000009968 BaseLib:SafeString.obj
+ 0002:000020a8 ??_C@_07KBGDFDAM@StrCpyS?$AA@ 0000000000009988 BaseLib:SafeString.obj
+ 0002:000020b0 ??_C@_0EA@PDPDJJNN@?$CFa?$CI?$CFd?$CJ?5?$CFa?3?5SAFE_STRING_CONSTRAIN@ 0000000000009990 BaseLib:SafeString.obj
+ 0002:000020f0 ??_C@_0BJ@EAEEJIP@?$CISource?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 00000000000099d0 BaseLib:SafeString.obj
+ 0002:00002110 ??_C@_0EA@BBALOHPI@?$CIDestMax?5?$DM?$DN?5?$CI_gPcd_FixedAtBuild_@ 00000000000099f0 BaseLib:SafeString.obj
+ 0002:00002150 ??_C@_0P@PMIMLIHM@?$CIDestMax?5?$CB?$DN?50?$CJ?$AA@ 0000000000009a30 BaseLib:SafeString.obj
+ 0002:00002160 ??_C@_0BG@EEGIIOKH@?$CIDestMax?5?$DO?5SourceLen?$CJ?$AA@ 0000000000009a40 BaseLib:SafeString.obj
+ 0002:00002180 ??_C@_0FH@PPBLBDBJ@InternalSafeStringNoStrOverlap?5?$CI@ 0000000000009a60 BaseLib:SafeString.obj
+ 0002:000021d8 ??_C@_08INOAHJON@StrnCpyS?$AA@ 0000000000009ab8 BaseLib:SafeString.obj
+ 0002:000021e8 ??_C@_0DP@PBOJGJC@?$CILength?5?$DM?$DN?5?$CI_gPcd_FixedAtBuild_P@ 0000000000009ac8 BaseLib:SafeString.obj
+ 0002:00002228 ??_C@_07EBBOPAKF@StrCatS?$AA@ 0000000000009b08 BaseLib:SafeString.obj
+ 0002:00002230 ??_C@_0P@BHOOOJPD@?$CICopyLen?5?$CB?$DN?50?$CJ?$AA@ 0000000000009b10 BaseLib:SafeString.obj
+ 0002:00002240 ??_C@_0BG@BPGICNPK@?$CICopyLen?5?$DO?5SourceLen?$CJ?$AA@ 0000000000009b20 BaseLib:SafeString.obj
+ 0002:00002260 ??_C@_0EB@OHCINBMP@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000009b40 BaseLib:String.obj
+ 0002:000022a8 ??_C@_0DK@EOJCOAME@Length?5?$DM?5_gPcd_FixedAtBuild_PcdM@ 0000000000009b88 BaseLib:String.obj
+ 0002:000022e8 ??_C@_0BG@KBNOLIGE@StrSize?5?$CIString?$CJ?5?$CB?$DN?50?$AA@ 0000000000009bc8 BaseLib:String.obj
+ 0002:00002300 ??_C@_0BM@NNBLOHJD@StrSize?5?$CISearchString?$CJ?5?$CB?$DN?50?$AA@ 0000000000009be0 BaseLib:String.obj
+ 0002:00002320 ??_C@_0DI@MDIKFADO@Length?5?$DM?5_gPcd_FixedAtBuild_PcdM@ 0000000000009c00 BaseLib:String.obj
+ 0002:00002358 ??_C@_0BL@IKFBNFIL@AsciiStrSize?5?$CIFirstString?$CJ?$AA@ 0000000000009c38 BaseLib:String.obj
+ 0002:00002378 ??_C@_0BM@EDNOKLLE@AsciiStrSize?5?$CISecondString?$CJ?$AA@ 0000000000009c58 BaseLib:String.obj
+ 0002:00002398 ??_C@_0DJ@JJHGIFMP@Length?5?$DM?$DN?5_gPcd_FixedAtBuild_Pcd@ 0000000000009c78 BaseLib:String.obj
+ 0003:00000000 gEfiLoadedImageProtocolGuid 0000000000009e60 RamDiskDxe:AutoGen.obj
+ 0003:00000010 gEfiGlobalVariableGuid 0000000000009e70 RamDiskDxe:AutoGen.obj
+ 0003:00000020 gEfiIfrTianoGuid 0000000000009e80 RamDiskDxe:AutoGen.obj
+ 0003:00000030 gEfiRamDiskProtocolGuid 0000000000009e90 RamDiskDxe:AutoGen.obj
+ 0003:00000040 gEfiEventReadyToBootGuid 0000000000009ea0 RamDiskDxe:AutoGen.obj
+ 0003:00000050 gEfiBlockIo2ProtocolGuid 0000000000009eb0 RamDiskDxe:AutoGen.obj
+ 0003:00000060 gEfiFileInfoGuid 0000000000009ec0 RamDiskDxe:AutoGen.obj
+ 0003:00000070 gEfiDevicePathProtocolGuid 0000000000009ed0 RamDiskDxe:AutoGen.obj
+ 0003:00000080 gEfiFirmwareVolume2ProtocolGuid 0000000000009ee0 RamDiskDxe:AutoGen.obj
+ 0003:00000090 gRamDiskFormSetGuid 0000000000009ef0 RamDiskDxe:AutoGen.obj
+ 0003:000000a0 gEfiDevicePathToTextProtocolGuid 0000000000009f00 RamDiskDxe:AutoGen.obj
+ 0003:000000b0 gEfiHiiConfigRoutingProtocolGuid 0000000000009f10 RamDiskDxe:AutoGen.obj
+ 0003:000000c0 gEfiHiiImageProtocolGuid 0000000000009f20 RamDiskDxe:AutoGen.obj
+ 0003:000000d0 gEfiDevicePathUtilitiesProtocolGuid 0000000000009f30 RamDiskDxe:AutoGen.obj
+ 0003:000000e0 gEfiHiiDatabaseProtocolGuid 0000000000009f40 RamDiskDxe:AutoGen.obj
+ 0003:000000f0 gEfiSimpleFileSystemProtocolGuid 0000000000009f50 RamDiskDxe:AutoGen.obj
+ 0003:00000100 gEfiHiiStringProtocolGuid 0000000000009f60 RamDiskDxe:AutoGen.obj
+ 0003:00000110 gEfiAcpiTableProtocolGuid 0000000000009f70 RamDiskDxe:AutoGen.obj
+ 0003:00000120 gEfiAcpiSdtProtocolGuid 0000000000009f80 RamDiskDxe:AutoGen.obj
+ 0003:00000130 RamDiskDxeStrings 0000000000009f90 RamDiskDxe:AutoGen.obj
+ 0003:00000670 gEfiHiiConfigAccessProtocolGuid 000000000000a4d0 RamDiskDxe:AutoGen.obj
+ 0003:00000680 gEfiHobListGuid 000000000000a4e0 RamDiskDxe:AutoGen.obj
+ 0003:00000690 gEfiFileSystemVolumeLabelInfoIdGuid 000000000000a4f0 RamDiskDxe:AutoGen.obj
+ 0003:000006a0 gEfiFormBrowser2ProtocolGuid 000000000000a500 RamDiskDxe:AutoGen.obj
+ 0003:000006b0 gEfiVirtualDiskGuid 000000000000a510 RamDiskDxe:AutoGen.obj
+ 0003:000006c0 gEfiBlockIoProtocolGuid 000000000000a520 RamDiskDxe:AutoGen.obj
+ 0003:000006d0 gEfiCallerIdGuid 000000000000a530 RamDiskDxe:AutoGen.obj
+ 0003:000006e0 gEfiHiiFontProtocolGuid 000000000000a540 RamDiskDxe:AutoGen.obj
+ 0003:000006f0 mRamDiskProtocol 000000000000a550 RamDiskDxe:RamDiskDriver.obj
+ 0003:00000700 mRamDiskPrivateDataTemplate 000000000000a560 RamDiskDxe:RamDiskProtocol.obj
+ 0003:000007e0 mRamDiskDeviceNodeTemplate 000000000000a640 RamDiskDxe:RamDiskProtocol.obj
+ 0003:00000810 mRamDiskConfigPrivateDataTemplate 000000000000a670 RamDiskDxe:RamDiskImpl.obj
+ 0003:00000850 mRamDiskHiiVendorDevicePath 000000000000a6b0 RamDiskDxe:RamDiskImpl.obj
+ 0003:00000868 mRamDiskBlockIoTemplate 000000000000a6c8 RamDiskDxe:RamDiskBlockIo.obj
+ 0003:00000898 mRamDiskBlockIo2Template 000000000000a6f8 RamDiskDxe:RamDiskBlockIo.obj
+ 0003:000008c0 RamDiskHiiBin 000000000000a720 RamDiskDxe:RamDiskHii.obj
+ 0003:00000a08 FeHiiVendorDevicePath 000000000000a868 FileExplorerLib:FileExplorer.obj
+ 0003:00000a20 FileExplorerGuid 000000000000a880 FileExplorerLib:FileExplorer.obj
+ 0003:00000a30 mNewFolderQuestionId 000000000000a890 FileExplorerLib:FileExplorer.obj
+ 0003:00000a40 gFileExplorerPrivate 000000000000a8a0 FileExplorerLib:FileExplorer.obj
+ 0003:00000a98 mNewFileQuestionId 000000000000a8f8 FileExplorerLib:FileExplorer.obj
+ 0003:00000aa0 mFsOptionMenu 000000000000a900 FileExplorerLib:FileExplorer.obj
+ 0003:00000ad0 FileExplorerVfrBin 000000000000a930 FileExplorerLib:FileExplorerVfr.obj
+ 0003:00000bd0 FileExplorerLibStrings 000000000000aa30 FileExplorerLib:AutoGen.obj
+ 0003:00001400 mAcpiTableProtocol 000000000000b260 RamDiskDxe:RamDiskDriver.obj
+ 0003:00001408 mAcpiSdtProtocol 000000000000b268 RamDiskDxe:RamDiskDriver.obj
+ 0003:00001410 mRamDiskHandle 000000000000b270 RamDiskDxe:RamDiskDriver.obj
+ 0003:00001418 mRamDiskSsdtTableKeyValid 000000000000b278 RamDiskDxe:RamDiskProtocol.obj
+ 0003:00001420 gST 000000000000b280 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00001428 gBS 000000000000b288 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00001430 gImageHandle 000000000000b290 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00001438 gRT 000000000000b298 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0003:00001440 mDevicePathLibDevicePathUtilities 000000000000b2a0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0003:00001448 gHiiString 000000000000b2a8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00001450 gHiiFont 000000000000b2b0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00001458 gHiiConfigRouting 000000000000b2b8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00001460 gHiiImage 000000000000b2c0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00001468 gHiiDatabase 000000000000b2c8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00001470 mHobList 000000000000b2d0 DxeHobLib:HobLib.obj
+ 0003:00001478 mLibEndOpCodeHandle 000000000000b2d8 FileExplorerLib:FileExplorer.obj
+ 0003:00001480 mLibStartLabel 000000000000b2e0 FileExplorerLib:FileExplorer.obj
+ 0003:00001488 mLibStartOpCodeHandle 000000000000b2e8 FileExplorerLib:FileExplorer.obj
+ 0003:00001490 mLibEndLabel 000000000000b2f0 FileExplorerLib:FileExplorer.obj
+ 0003:00001498 mQuestionIdUpdate 000000000000b2f8 <common>
+ 0003:000014a0 mNewFolderName 000000000000b300 <common>
+ 0003:000014c8 gHiiVendorDevicePath 000000000000b328 <common>
+ 0003:000014e0 mNewFileName 000000000000b340 <common>
+ 0003:00001508 mRamDiskSsdtTableKey 000000000000b368 <common>
+ 0003:00001510 RegisteredRamDisks 000000000000b370 <common>
+
+ entry point at 0001:000003fc
+
+ Static symbols
+
+ 0001:0000001a InternalMemCopyMem.0 00000000000002da BaseMemoryLibRepStr:CopyMem.obj
+ 0001:0000002a @CopyBackward 00000000000002ea BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000033 @CopyBytes 00000000000002f3 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:000000e5 @ReturnFalse 00000000000003a5 BaseMemoryLibRepStr:IsZeroBuffer.obj
+ 0001:0000017a @UseRepIo 000000000000043a BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000017c @SevNoRepIo_Done 000000000000043c BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000194 @IoReadFifo8_NoRep 0000000000000454 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000196 @IoReadFifo8_Loop 0000000000000456 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000019e @IoReadFifo8_Done 000000000000045e BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001b7 @IoReadFifo16_NoRep 0000000000000477 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001b9 @IoReadFifo16_Loop 0000000000000479 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001c4 @IoReadFifo16_Done 0000000000000484 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001dc @IoReadFifo32_NoRep 000000000000049c BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001de @IoReadFifo32_Loop 000000000000049e BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001e7 @IoReadFifo32_Done 00000000000004a7 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001ff @IoWriteFifo8_NoRep 00000000000004bf BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000201 @IoWriteFifo8_Loop 00000000000004c1 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000209 @IoWriteFifo8_Done 00000000000004c9 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000222 @IoWriteFifo16_NoRep 00000000000004e2 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000224 @IoWriteFifo16_Loop 00000000000004e4 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000022f @IoWriteFifo16_Done 00000000000004ef BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000247 @IoWriteFifo32_NoRep 0000000000000507 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000249 @IoWriteFifo32_Loop 0000000000000509 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000252 @IoWriteFifo32_Done 0000000000000512 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000002be TdVmCall.no_return_data 000000000000057e BaseLib:TdVmcall.obj
+ 0001:0000033b TdCall.exit 00000000000005fb BaseLib:TdCall.obj
+ 0003:00001419 mDebugIoPortChecked 000000000000b279 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0003:0000141a mDebugIoPortFound 000000000000b27a PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0004:00000000 $pdata$_DriverUnloadHandler 000000000000b380 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0004:0000000c $pdata$_ModuleEntryPoint 000000000000b38c UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0004:00000018 $pdata$ProcessLibraryConstructorList 000000000000b398 RamDiskDxe:AutoGen.obj
+ 0004:00000024 $pdata$ProcessLibraryDestructorList 000000000000b3a4 RamDiskDxe:AutoGen.obj
+ 0004:00000030 $pdata$ProcessModuleEntryPointList 000000000000b3b0 RamDiskDxe:AutoGen.obj
+ 0004:0000003c $pdata$RamDiskAcpiCheck 000000000000b3bc RamDiskDxe:RamDiskDriver.obj
+ 0004:00000048 $pdata$RamDiskPublishSsdt 000000000000b3c8 RamDiskDxe:RamDiskProtocol.obj
+ 0004:00000054 $pdata$RamDiskPublishNfit 000000000000b3d4 RamDiskDxe:RamDiskProtocol.obj
+ 0004:00000060 $pdata$RamDiskUnpublishNfit 000000000000b3e0 RamDiskDxe:RamDiskProtocol.obj
+ 0004:0000006c $pdata$RamDiskRegister 000000000000b3ec RamDiskDxe:RamDiskProtocol.obj
+ 0004:00000078 $pdata$RamDiskUnregister 000000000000b3f8 RamDiskDxe:RamDiskProtocol.obj
+ 0004:00000084 $pdata$InstallRamDiskConfigForm 000000000000b404 RamDiskDxe:RamDiskImpl.obj
+ 0004:00000090 $pdata$UninstallRamDiskConfigForm 000000000000b410 RamDiskDxe:RamDiskImpl.obj
+ 0004:0000009c $pdata$UnregisterAllRamDisks 000000000000b41c RamDiskDxe:RamDiskImpl.obj
+ 0004:000000a8 $pdata$HiiCreateRamDisk 000000000000b428 RamDiskDxe:RamDiskImpl.obj
+ 0004:000000b4 $pdata$UpdateMainForm 000000000000b434 RamDiskDxe:RamDiskImpl.obj
+ 0004:000000c0 $pdata$RamDiskCallback 000000000000b440 RamDiskDxe:RamDiskImpl.obj
+ 0004:000000cc $pdata$RamDiskInitBlockIo 000000000000b44c RamDiskDxe:RamDiskBlockIo.obj
+ 0004:000000d8 $pdata$RamDiskBlkIoReadBlocks 000000000000b458 RamDiskDxe:RamDiskBlockIo.obj
+ 0004:000000e4 $pdata$RamDiskBlkIoWriteBlocks 000000000000b464 RamDiskDxe:RamDiskBlockIo.obj
+ 0004:000000f0 $pdata$RamDiskBlkIo2ReadBlocksEx 000000000000b470 RamDiskDxe:RamDiskBlockIo.obj
+ 0004:000000fc $pdata$RamDiskBlkIo2WriteBlocksEx 000000000000b47c RamDiskDxe:RamDiskBlockIo.obj
+ 0004:00000108 $pdata$RamDiskBlkIo2FlushBlocksEx 000000000000b488 RamDiskDxe:RamDiskBlockIo.obj
+ 0004:00000114 $pdata$FileInfo 000000000000b494 RamDiskDxe:RamDiskFileExplorer.obj
+ 0004:00000120 $pdata$CopyGuid 000000000000b4a0 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0004:0000012c $pdata$CompareGuid 000000000000b4ac BaseMemoryLibRepStr:MemLibGuid.obj
+ 0004:00000138 $pdata$CopyMem 000000000000b4b8 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0004:00000144 $pdata$CompareMem 000000000000b4c4 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0004:00000150 $pdata$InternalBaseLibIsListValid 000000000000b4d0 BaseLib:LinkedList.obj
+ 0004:0000015c $pdata$InitializeListHead 000000000000b4dc BaseLib:LinkedList.obj
+ 0004:00000168 $pdata$InsertTailList 000000000000b4e8 BaseLib:LinkedList.obj
+ 0004:00000174 $pdata$IsListEmpty 000000000000b4f4 BaseLib:LinkedList.obj
+ 0004:00000180 $pdata$RemoveEntryList 000000000000b500 BaseLib:LinkedList.obj
+ 0004:0000018c $pdata$CalculateCheckSum8 000000000000b50c BaseLib:CheckSum.obj
+ 0004:00000198 $pdata$ReadUnaligned32 000000000000b518 BaseLib:Unaligned.obj
+ 0004:000001a4 $pdata$ReadUnaligned64 000000000000b524 BaseLib:Unaligned.obj
+ 0004:000001b0 $pdata$WriteUnaligned64 000000000000b530 BaseLib:Unaligned.obj
+ 0004:000001bc $pdata$DivU64x32Remainder 000000000000b53c BaseLib:DivU64x32Remainder.obj
+ 0004:000001c8 $pdata$UnicodeSPrint 000000000000b548 BasePrintLib:PrintLib.obj
+ 0004:000001d4 $pdata$AsciiSPrint 000000000000b554 BasePrintLib:PrintLib.obj
+ 0004:000001e0 $pdata$BasePrintLibValueToString 000000000000b560 BasePrintLib:PrintLibInternal.obj
+ 0004:000001ec $pdata$BasePrintLibSPrintMarker 000000000000b56c BasePrintLib:PrintLibInternal.obj
+ 0004:000001f8 $pdata$BasePrintLibSPrint 000000000000b578 BasePrintLib:PrintLibInternal.obj
+ 0004:00000204 $pdata$DebugPrint 000000000000b584 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000210 $pdata$DebugPrintMarker 000000000000b590 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:0000021c $pdata$DebugAssert 000000000000b59c PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000228 $pdata$PlatformDebugLibIoPortFound 000000000000b5a8 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0004:00000234 $pdata$InternalAllocatePool 000000000000b5b4 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000240 $pdata$AllocateZeroPool 000000000000b5c0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:0000024c $pdata$InternalAllocateCopyPool 000000000000b5cc UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000258 $pdata$InternalReallocatePool 000000000000b5d8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000264 $pdata$FreePool 000000000000b5e4 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000270 $pdata$DevicePathType 000000000000b5f0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:0000027c $pdata$DevicePathSubType 000000000000b5fc UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000288 $pdata$DevicePathNodeLength 000000000000b608 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000294 $pdata$NextDevicePathNode 000000000000b614 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002a0 $pdata$IsDevicePathEnd 000000000000b620 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002ac $pdata$SetDevicePathNodeLength 000000000000b62c UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002b8 $pdata$DevicePathFromHandle 000000000000b638 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002c4 $pdata$FileDevicePath 000000000000b644 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002d0 $pdata$GetEfiGlobalVariable2 000000000000b650 UefiLib:UefiLib.obj
+ 0004:000002dc $pdata$GetBestLanguage 000000000000b65c UefiLib:UefiLib.obj
+ 0004:000002e8 $pdata$EfiOpenFileByDevicePath 000000000000b668 UefiLib:UefiLib.obj
+ 0004:000002f4 $pdata$EfiCreateEventReadyToBootEx 000000000000b674 UefiLib:UefiNotTiano.obj
+ 0004:00000300 $pdata$UefiLibGetStringWidth 000000000000b680 UefiLib:Console.obj
+ 0004:0000030c $pdata$CreatePopUp 000000000000b68c UefiLib:Console.obj
+ 0004:00000318 $pdata$HiiSetString 000000000000b698 UefiHiiLib:HiiString.obj
+ 0004:00000324 $pdata$HiiGetString 000000000000b6a4 UefiHiiLib:HiiString.obj
+ 0004:00000330 $pdata$HiiAddPackages 000000000000b6b0 UefiHiiLib:HiiLib.obj
+ 0004:0000033c $pdata$HiiRemovePackages 000000000000b6bc UefiHiiLib:HiiLib.obj
+ 0004:00000348 $pdata$HiiAllocateOpCodeHandle 000000000000b6c8 UefiHiiLib:HiiLib.obj
+ 0004:00000354 $pdata$HiiFreeOpCodeHandle 000000000000b6d4 UefiHiiLib:HiiLib.obj
+ 0004:00000360 $pdata$InternalHiiGrowOpCodeHandle 000000000000b6e0 UefiHiiLib:HiiLib.obj
+ 0004:0000036c $pdata$InternalHiiCreateOpCodeExtended 000000000000b6ec UefiHiiLib:HiiLib.obj
+ 0004:00000378 $pdata$HiiCreateGuidOpCode 000000000000b6f8 UefiHiiLib:HiiLib.obj
+ 0004:00000384 $pdata$HiiCreateGotoOpCode 000000000000b704 UefiHiiLib:HiiLib.obj
+ 0004:00000390 $pdata$InternalHiiUpdateFormPackageData 000000000000b710 UefiHiiLib:HiiLib.obj
+ 0004:0000039c $pdata$HiiUpdateForm 000000000000b71c UefiHiiLib:HiiLib.obj
+ 0004:000003a8 $pdata$HiiGetSupportedLanguages 000000000000b728 UefiHiiLib:HiiLanguage.obj
+ 0004:000003b4 $pdata$GetHobList 000000000000b734 DxeHobLib:HobLib.obj
+ 0004:000003c0 $pdata$LibCallback 000000000000b740 FileExplorerLib:FileExplorer.obj
+ 0004:000003cc $pdata$LibCreateMenuEntry 000000000000b74c FileExplorerLib:FileExplorer.obj
+ 0004:000003d8 $pdata$LibGetMenuEntry 000000000000b758 FileExplorerLib:FileExplorer.obj
+ 0004:000003e4 $pdata$LibDestroyMenuEntry 000000000000b764 FileExplorerLib:FileExplorer.obj
+ 0004:000003f0 $pdata$LibFreeMenu 000000000000b770 FileExplorerLib:FileExplorer.obj
+ 0004:000003fc $pdata$LibStrDuplicate 000000000000b77c FileExplorerLib:FileExplorer.obj
+ 0004:00000408 $pdata$LibAppendFileName 000000000000b788 FileExplorerLib:FileExplorer.obj
+ 0004:00000414 $pdata$LibFindFileSystem 000000000000b794 FileExplorerLib:FileExplorer.obj
+ 0004:00000420 $pdata$LibGetFileHandleFromDevicePath 000000000000b7a0 FileExplorerLib:FileExplorer.obj
+ 0004:0000042c $pdata$LibCreateNewFile 000000000000b7ac FileExplorerLib:FileExplorer.obj
+ 0004:00000438 $pdata$LibFindFiles 000000000000b7b8 FileExplorerLib:FileExplorer.obj
+ 0004:00000444 $pdata$LibUpdateFileExplorePage 000000000000b7c4 FileExplorerLib:FileExplorer.obj
+ 0004:00000450 $pdata$LibUpdateFileExplorer 000000000000b7d0 FileExplorerLib:FileExplorer.obj
+ 0004:0000045c $pdata$LibGetDevicePath 000000000000b7dc FileExplorerLib:FileExplorer.obj
+ 0004:00000468 $pdata$ChooseFile 000000000000b7e8 FileExplorerLib:FileExplorer.obj
+ 0004:00000474 $pdata$InternalImageHandleToFvHandle 000000000000b7f4 DxeServicesLib:DxeServicesLib.obj
+ 0004:00000480 $pdata$InternalGetSectionFromFv 000000000000b800 DxeServicesLib:DxeServicesLib.obj
+ 0004:0000048c $pdata$ZeroMem 000000000000b80c BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0004:00000498 $pdata$SetMem16 000000000000b818 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0004:000004a4 $pdata$IsZeroBuffer 000000000000b824 BaseMemoryLibRepStr:IsZeroBufferWrapper.obj
+ 0004:000004b0 $pdata$StrnLenS 000000000000b830 BaseLib:SafeString.obj
+ 0004:000004bc $pdata$StrCpyS 000000000000b83c BaseLib:SafeString.obj
+ 0004:000004c8 $pdata$StrnCpyS 000000000000b848 BaseLib:SafeString.obj
+ 0004:000004d4 $pdata$StrCatS 000000000000b854 BaseLib:SafeString.obj
+ 0004:000004e0 $pdata$StrLen 000000000000b860 BaseLib:String.obj
+ 0004:000004ec $pdata$StrStr 000000000000b86c BaseLib:String.obj
+ 0004:000004f8 $pdata$AsciiStrLen 000000000000b878 BaseLib:String.obj
+ 0004:00000504 $pdata$AsciiStrnCmp 000000000000b884 BaseLib:String.obj
+ 0004:00000510 $pdata$IoWriteFifo8 000000000000b890 BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0004:0000051c $pdata$TdIoRead8 000000000000b89c BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0004:00000528 $pdata$TdIoWrite8 000000000000b8a8 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:00000000 $unwind$RamDiskPublishSsdt 000000000000b8c0 RamDiskDxe:RamDiskProtocol.obj
+ 0005:00000000 $unwind$EfiCreateEventReadyToBootEx 000000000000b8c0 UefiLib:UefiNotTiano.obj
+ 0005:00000000 $unwind$_DriverUnloadHandler 000000000000b8c0 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0005:00000000 $unwind$UninstallRamDiskConfigForm 000000000000b8c0 RamDiskDxe:RamDiskImpl.obj
+ 0005:00000000 $unwind$TdIoWrite8 000000000000b8c0 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:00000008 $unwind$InitializeListHead 000000000000b8c8 BaseLib:LinkedList.obj
+ 0005:00000008 $unwind$ReadUnaligned32 000000000000b8c8 BaseLib:Unaligned.obj
+ 0005:00000008 $unwind$LibCreateMenuEntry 000000000000b8c8 FileExplorerLib:FileExplorer.obj
+ 0005:00000008 $unwind$IsListEmpty 000000000000b8c8 BaseLib:LinkedList.obj
+ 0005:00000008 $unwind$ReadUnaligned64 000000000000b8c8 BaseLib:Unaligned.obj
+ 0005:00000008 $unwind$DevicePathNodeLength 000000000000b8c8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000008 $unwind$HiiAllocateOpCodeHandle 000000000000b8c8 UefiHiiLib:HiiLib.obj
+ 0005:00000008 $unwind$_ModuleEntryPoint 000000000000b8c8 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0005:00000008 $unwind$IsZeroBuffer 000000000000b8c8 BaseMemoryLibRepStr:IsZeroBufferWrapper.obj
+ 0005:00000008 $unwind$DevicePathType 000000000000b8c8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000008 $unwind$RemoveEntryList 000000000000b8c8 BaseLib:LinkedList.obj
+ 0005:00000008 $unwind$AllocateZeroPool 000000000000b8c8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000008 $unwind$HiiRemovePackages 000000000000b8c8 UefiHiiLib:HiiLib.obj
+ 0005:00000008 $unwind$DevicePathSubType 000000000000b8c8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000008 $unwind$NextDevicePathNode 000000000000b8c8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000008 $unwind$HiiFreeOpCodeHandle 000000000000b8c8 UefiHiiLib:HiiLib.obj
+ 0005:00000008 $unwind$LibGetDevicePath 000000000000b8c8 FileExplorerLib:FileExplorer.obj
+ 0005:00000008 $unwind$InternalBaseLibIsListValid 000000000000b8c8 BaseLib:LinkedList.obj
+ 0005:00000010 $unwind$ProcessLibraryConstructorList 000000000000b8d0 RamDiskDxe:AutoGen.obj
+ 0005:00000024 $unwind$TdIoRead8 000000000000b8e4 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:00000024 $unwind$ProcessLibraryDestructorList 000000000000b8e4 RamDiskDxe:AutoGen.obj
+ 0005:0000002c $unwind$ProcessModuleEntryPointList 000000000000b8ec RamDiskDxe:AutoGen.obj
+ 0005:0000003c $unwind$HiiGetSupportedLanguages 000000000000b8fc UefiHiiLib:HiiLanguage.obj
+ 0005:0000003c $unwind$InternalAllocateCopyPool 000000000000b8fc UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:0000003c $unwind$StrnLenS 000000000000b8fc BaseLib:SafeString.obj
+ 0005:0000003c $unwind$RamDiskBlkIo2FlushBlocksEx 000000000000b8fc RamDiskDxe:RamDiskBlockIo.obj
+ 0005:0000003c $unwind$LibGetMenuEntry 000000000000b8fc FileExplorerLib:FileExplorer.obj
+ 0005:0000003c $unwind$CopyGuid 000000000000b8fc BaseMemoryLibRepStr:MemLibGuid.obj
+ 0005:0000003c $unwind$AsciiStrLen 000000000000b8fc BaseLib:String.obj
+ 0005:0000003c $unwind$LibDestroyMenuEntry 000000000000b8fc FileExplorerLib:FileExplorer.obj
+ 0005:0000003c $unwind$IsDevicePathEnd 000000000000b8fc UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:0000003c $unwind$WriteUnaligned64 000000000000b8fc BaseLib:Unaligned.obj
+ 0005:0000003c $unwind$ZeroMem 000000000000b8fc BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0005:0000003c $unwind$InsertTailList 000000000000b8fc BaseLib:LinkedList.obj
+ 0005:0000003c $unwind$SetDevicePathNodeLength 000000000000b8fc UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:0000003c $unwind$RamDiskAcpiCheck 000000000000b8fc RamDiskDxe:RamDiskDriver.obj
+ 0005:00000048 $unwind$RamDiskPublishNfit 000000000000b908 RamDiskDxe:RamDiskProtocol.obj
+ 0005:00000060 $unwind$RamDiskUnpublishNfit 000000000000b920 RamDiskDxe:RamDiskProtocol.obj
+ 0005:00000078 $unwind$LibGetFileHandleFromDevicePath 000000000000b938 FileExplorerLib:FileExplorer.obj
+ 0005:00000078 $unwind$RamDiskRegister 000000000000b938 RamDiskDxe:RamDiskProtocol.obj
+ 0005:00000078 $unwind$StrCatS 000000000000b938 BaseLib:SafeString.obj
+ 0005:00000094 $unwind$RamDiskUnregister 000000000000b954 RamDiskDxe:RamDiskProtocol.obj
+ 0005:00000094 $unwind$StrnCpyS 000000000000b954 BaseLib:SafeString.obj
+ 0005:000000ac $unwind$InstallRamDiskConfigForm 000000000000b96c RamDiskDxe:RamDiskImpl.obj
+ 0005:000000b8 $unwind$ChooseFile 000000000000b978 FileExplorerLib:FileExplorer.obj
+ 0005:000000b8 $unwind$UnregisterAllRamDisks 000000000000b978 RamDiskDxe:RamDiskImpl.obj
+ 0005:000000c8 $unwind$HiiCreateRamDisk 000000000000b988 RamDiskDxe:RamDiskImpl.obj
+ 0005:000000dc $unwind$UpdateMainForm 000000000000b99c RamDiskDxe:RamDiskImpl.obj
+ 0005:000000fc $unwind$RamDiskCallback 000000000000b9bc RamDiskDxe:RamDiskImpl.obj
+ 0005:00000114 $unwind$RamDiskInitBlockIo 000000000000b9d4 RamDiskDxe:RamDiskBlockIo.obj
+ 0005:00000128 $unwind$CompareGuid 000000000000b9e8 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0005:00000128 $unwind$CopyMem 000000000000b9e8 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0005:00000128 $unwind$InternalReallocatePool 000000000000b9e8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000128 $unwind$RamDiskBlkIoWriteBlocks 000000000000b9e8 RamDiskDxe:RamDiskBlockIo.obj
+ 0005:00000128 $unwind$RamDiskBlkIoReadBlocks 000000000000b9e8 RamDiskDxe:RamDiskBlockIo.obj
+ 0005:0000013c $unwind$RamDiskBlkIo2WriteBlocksEx 000000000000b9fc RamDiskDxe:RamDiskBlockIo.obj
+ 0005:0000013c $unwind$RamDiskBlkIo2ReadBlocksEx 000000000000b9fc RamDiskDxe:RamDiskBlockIo.obj
+ 0005:00000150 $unwind$FileInfo 000000000000ba10 RamDiskDxe:RamDiskFileExplorer.obj
+ 0005:00000164 $unwind$FileDevicePath 000000000000ba24 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000164 $unwind$CompareMem 000000000000ba24 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0005:00000164 $unwind$InternalHiiCreateOpCodeExtended 000000000000ba24 UefiHiiLib:HiiLib.obj
+ 0005:0000017c $unwind$CalculateCheckSum8 000000000000ba3c BaseLib:CheckSum.obj
+ 0005:0000017c $unwind$InternalHiiGrowOpCodeHandle 000000000000ba3c UefiHiiLib:HiiLib.obj
+ 0005:0000017c $unwind$SetMem16 000000000000ba3c BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0005:0000017c $unwind$DivU64x32Remainder 000000000000ba3c BaseLib:DivU64x32Remainder.obj
+ 0005:0000017c $unwind$LibStrDuplicate 000000000000ba3c FileExplorerLib:FileExplorer.obj
+ 0005:0000017c $unwind$StrStr 000000000000ba3c BaseLib:String.obj
+ 0005:0000017c $unwind$IoWriteFifo8 000000000000ba3c BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0005:0000017c $unwind$StrLen 000000000000ba3c BaseLib:String.obj
+ 0005:0000017c $unwind$LibFreeMenu 000000000000ba3c FileExplorerLib:FileExplorer.obj
+ 0005:0000017c $unwind$GetHobList 000000000000ba3c DxeHobLib:HobLib.obj
+ 0005:0000017c $unwind$AsciiStrnCmp 000000000000ba3c BaseLib:String.obj
+ 0005:0000018c $unwind$UnicodeSPrint 000000000000ba4c BasePrintLib:PrintLib.obj
+ 0005:00000198 $unwind$AsciiSPrint 000000000000ba58 BasePrintLib:PrintLib.obj
+ 0005:000001a0 $unwind$BasePrintLibValueToString 000000000000ba60 BasePrintLib:PrintLibInternal.obj
+ 0005:000001ac $unwind$BasePrintLibSPrintMarker 000000000000ba6c BasePrintLib:PrintLibInternal.obj
+ 0005:000001c8 $unwind$BasePrintLibSPrint 000000000000ba88 BasePrintLib:PrintLibInternal.obj
+ 0005:000001d0 $unwind$DebugPrint 000000000000ba90 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:000001d8 $unwind$DebugPrintMarker 000000000000ba98 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:000001ec $unwind$DebugAssert 000000000000baac PlatformDebugLibIoPort:DebugLib.obj
+ 0005:000001f8 $unwind$PlatformDebugLibIoPortFound 000000000000bab8 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0005:000001f8 $unwind$InternalAllocatePool 000000000000bab8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:000001f8 $unwind$FreePool 000000000000bab8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:000001f8 $unwind$DevicePathFromHandle 000000000000bab8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000200 $unwind$GetEfiGlobalVariable2 000000000000bac0 UefiLib:UefiLib.obj
+ 0005:0000020c $unwind$GetBestLanguage 000000000000bacc UefiLib:UefiLib.obj
+ 0005:00000220 $unwind$EfiOpenFileByDevicePath 000000000000bae0 UefiLib:UefiLib.obj
+ 0005:00000234 $unwind$UefiLibGetStringWidth 000000000000baf4 UefiLib:Console.obj
+ 0005:00000248 $unwind$CreatePopUp 000000000000bb08 UefiLib:Console.obj
+ 0005:00000260 $unwind$HiiSetString 000000000000bb20 UefiHiiLib:HiiString.obj
+ 0005:0000027c $unwind$HiiGetString 000000000000bb3c UefiHiiLib:HiiString.obj
+ 0005:00000290 $unwind$HiiAddPackages 000000000000bb50 UefiHiiLib:HiiLib.obj
+ 0005:000002a4 $unwind$HiiCreateGuidOpCode 000000000000bb64 UefiHiiLib:HiiLib.obj
+ 0005:000002ac $unwind$HiiCreateGotoOpCode 000000000000bb6c UefiHiiLib:HiiLib.obj
+ 0005:000002c0 $unwind$InternalHiiUpdateFormPackageData 000000000000bb80 UefiHiiLib:HiiLib.obj
+ 0005:000002d8 $unwind$HiiUpdateForm 000000000000bb98 UefiHiiLib:HiiLib.obj
+ 0005:000002f0 $unwind$LibAppendFileName 000000000000bbb0 FileExplorerLib:FileExplorer.obj
+ 0005:000002f0 $unwind$LibCallback 000000000000bbb0 FileExplorerLib:FileExplorer.obj
+ 0005:0000030c $unwind$LibFindFileSystem 000000000000bbcc FileExplorerLib:FileExplorer.obj
+ 0005:00000320 $unwind$LibCreateNewFile 000000000000bbe0 FileExplorerLib:FileExplorer.obj
+ 0005:00000330 $unwind$LibFindFiles 000000000000bbf0 FileExplorerLib:FileExplorer.obj
+ 0005:00000348 $unwind$LibUpdateFileExplorePage 000000000000bc08 FileExplorerLib:FileExplorer.obj
+ 0005:00000364 $unwind$LibUpdateFileExplorer 000000000000bc24 FileExplorerLib:FileExplorer.obj
+ 0005:00000378 $unwind$InternalImageHandleToFvHandle 000000000000bc38 DxeServicesLib:DxeServicesLib.obj
+ 0005:00000380 $unwind$InternalGetSectionFromFv 000000000000bc40 DxeServicesLib:DxeServicesLib.obj
+ 0005:00000390 $unwind$StrCpyS 000000000000bc50 BaseLib:SafeString.obj
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskHii.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskHii.lst
new file mode 100644
index 000000000000..ce6cc9df6d13
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskHii.lst
@@ -0,0 +1,523 @@
+//
+// VFR compiler version 2.01 (UEFI 2.4) Developer Build based on Revision: Unknown
+//
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Universal\\Disk\\RamDiskDxe\\RamDiskHii.vfr"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Universal\\Disk\\RamDiskDxe\\RamDiskDxe\\DEBUG\\RamDiskDxeStrDefs.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern unsigned char RamDiskDxeStrings[];
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 82 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Universal\\Disk\\RamDiskDxe\\RamDiskDxe\\DEBUG\\RamDiskDxeStrDefs.h"
+
+#line 84 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Universal\\Disk\\RamDiskDxe\\RamDiskDxe\\DEBUG\\RamDiskDxeStrDefs.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Universal\\Disk\\RamDiskDxe\\RamDiskHii.vfr"
+
+
+
+
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\mdemodulepkg\\universal\\disk\\ramdiskdxe\\RamDiskNVData.h"
+
+
+
+
+
+
+
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Guid/HiiPlatformSetupFormset.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern EFI_GUID gEfiHiiPlatformSetupFormsetGuid;
+extern EFI_GUID gEfiHiiDriverHealthFormsetGuid;
+extern EFI_GUID gEfiHiiUserCredentialFormsetGuid;
+extern EFI_GUID gEfiHiiRestStyleFormsetGuid;
+
+#line 34 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Guid/HiiPlatformSetupFormset.h"
+#line 14 "c:\\users\\mliang2x\\workspace\\edk2\\mdemodulepkg\\universal\\disk\\ramdiskdxe\\RamDiskNVData.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Include\\Guid/RamDiskHii.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern EFI_GUID { 0x2a46715f, 0x3581, 0x4a55, { 0x8e, 0x73, 0x2b, 0x76, 0x9a, 0xaa, 0x30, 0xc5 }};
+
+#line 20 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Include\\Guid/RamDiskHii.h"
+#line 15 "c:\\users\\mliang2x\\workspace\\edk2\\mdemodulepkg\\universal\\disk\\ramdiskdxe\\RamDiskNVData.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct {
+
+
+
+ UINT64 Size;
+
+
+
+ UINT8 MemType;
+} RAM_DISK_CONFIGURATION;
+
+#line 45 "c:\\users\\mliang2x\\workspace\\edk2\\mdemodulepkg\\universal\\disk\\ramdiskdxe\\RamDiskNVData.h"
+#line 11 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Universal\\Disk\\RamDiskDxe\\RamDiskHii.vfr"
+
+formset
+>00000000: 0E A7 5F 71 46 2A 81 35 55 4A 8E 73 2B 76 9A AA 30 C5 02 00 03 00 01 71 99 03 93 45 85 04 4B B4 5E 32 EB 83 26 04 0E
+>00000027: 5C 06 00 00 00 00
+>0000002D: 5C 06 00 00 01 00
+ guid = { 0x2a46715f, 0x3581, 0x4a55, {0x8e, 0x73, 0x2b, 0x76, 0x9a, 0xaa, 0x30, 0xc5} },
+ title = STRING_TOKEN(0x0002),
+ help = STRING_TOKEN(0x0003),
+ classguid = { 0x93039971, 0x8545, 0x4b04, { 0xb4, 0x5e, 0x32, 0xeb, 0x83, 0x26, 0x4, 0xe } },
+
+
+
+
+ form formid = 0x1000,
+>00000033: 01 86 00 10 04 00
+ title = STRING_TOKEN(0x0004);
+
+ oneof
+>00000039: 05 91 11 00 12 00 04 20 00 00 FF FF 04 10 00 01 00
+ questionid = 0x2004,
+ prompt = STRING_TOKEN(0x0011),
+ help = STRING_TOKEN(0x0012),
+ flags = NUMERIC_SIZE_1 | INTERACTIVE,
+ option text = STRING_TOKEN(0x0013), value = 0x00, flags = DEFAULT;
+>0000004A: 09 07 13 00 10 00 00
+ option text = STRING_TOKEN(0x0014), value = 0x01, flags = 0;
+>00000051: 09 07 14 00 00 00 01
+ endoneof;
+>00000058: 29 02
+
+ subtitle text = STRING_TOKEN(0x0005);
+>0000005A: 02 87 05 00 00 00 00
+>00000061: 29 02
+
+ goto 0x2000,
+>00000063: 0F 0F 08 00 09 00 01 00 00 00 FF FF 00 00 20
+ prompt = STRING_TOKEN(0x0008),
+ help = STRING_TOKEN(0x0009);
+
+ goto 0x1000,
+>00000072: 0F 0F 0A 00 0B 00 01 10 00 00 FF FF 04 00 10
+ prompt = STRING_TOKEN(0x000A),
+ help = STRING_TOKEN(0x000B),
+ flags = INTERACTIVE,
+ key = 0x1001;
+
+ subtitle text = STRING_TOKEN(0x0005);
+>00000081: 02 87 05 00 00 00 00
+>00000088: 29 02
+ subtitle text = STRING_TOKEN(0x0006);
+>0000008A: 02 87 06 00 00 00 00
+>00000091: 29 02
+
+ label 0x1003;
+>00000093: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 03 10
+ label 0x1004;
+>000000A8: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 04 10
+
+ subtitle text = STRING_TOKEN(0x0005);
+>000000BD: 02 87 05 00 00 00 00
+>000000C4: 29 02
+
+ text
+ help = STRING_TOKEN(0x000C),
+ text = STRING_TOKEN(0x000D),
+ flags = INTERACTIVE,
+>000000C6: 0C 8F 0D 00 0C 00 02 10 00 00 FF FF 04 00 00
+ key = 0x1002;
+>000000D5: 29 02
+
+ endform;
+>000000D7: 29 02
+
+
+
+
+ form formid = 0x2000,
+>000000D9: 01 86 00 20 0E 00
+ title = STRING_TOKEN(0x000E);
+
+ subtitle text = STRING_TOKEN(0x0005);
+>000000DF: 02 87 05 00 00 00 00
+>000000E6: 29 02
+
+ numeric
+>000000E8: 07 A6 0F 00 10 00 01 20 00 00 FF FF 04 23 01 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00
+ questionid = 0x2001,
+ prompt = STRING_TOKEN(0x000F),
+ help = STRING_TOKEN(0x0010),
+ flags = NUMERIC_SIZE_8 | DISPLAY_UINT_HEX | INTERACTIVE,
+ minimum = 1,
+ maximum = 0xFFFFFFFFFFFFFFFF,
+ endnumeric;
+>0000010E: 29 02
+
+ subtitle text = STRING_TOKEN(0x0005);
+>00000110: 02 87 05 00 00 00 00
+>00000117: 29 02
+
+ text
+ help = STRING_TOKEN(0x0015),
+ text = STRING_TOKEN(0x0016),
+ flags = INTERACTIVE,
+>00000119: 0C 8F 16 00 15 00 02 20 00 00 FF FF 04 00 00
+ key = 0x2002;
+>00000128: 29 02
+
+ text
+ help = STRING_TOKEN(0x0017),
+ text = STRING_TOKEN(0x0018),
+ flags = INTERACTIVE,
+>0000012A: 0C 8F 18 00 17 00 03 20 00 00 FF FF 04 00 00
+ key = 0x2003;
+>00000139: 29 02
+
+ endform;
+>0000013B: 29 02
+
+endformset;
+>0000013D: 29 02
+
+
+
+
+
+
+
+
+
+
+
+
+formset
+ guid = { 0x2a46715f, 0x3581, 0x4a55, {0x8e, 0x73, 0x2b, 0x76, 0x9a, 0xaa, 0x30, 0xc5} },
+ title = STRING_TOKEN(0x0002),
+ help = STRING_TOKEN(0x0003),
+ classguid = { 0x93039971, 0x8545, 0x4b04, { 0xb4, 0x5e, 0x32, 0xeb, 0x83, 0x26, 0x4, 0xe } },
+
+
+
+
+ form formid = 0x1000,
+ title = STRING_TOKEN(0x0004);
+
+ oneof
+ questionid = 0x2004,
+ prompt = STRING_TOKEN(0x0011),
+ help = STRING_TOKEN(0x0012),
+ flags = NUMERIC_SIZE_1 | INTERACTIVE,
+ option text = STRING_TOKEN(0x0013), value = 0x00, flags = DEFAULT;
+ option text = STRING_TOKEN(0x0014), value = 0x01, flags = 0;
+ endoneof;
+
+ subtitle text = STRING_TOKEN(0x0005);
+
+ goto 0x2000,
+ prompt = STRING_TOKEN(0x0008),
+ help = STRING_TOKEN(0x0009);
+
+ goto 0x1000,
+ prompt = STRING_TOKEN(0x000A),
+ help = STRING_TOKEN(0x000B),
+ flags = INTERACTIVE,
+ key = 0x1001;
+
+ subtitle text = STRING_TOKEN(0x0005);
+ subtitle text = STRING_TOKEN(0x0006);
+
+ label 0x1003;
+ label 0x1004;
+
+ subtitle text = STRING_TOKEN(0x0005);
+
+ text
+ help = STRING_TOKEN(0x000C),
+ text = STRING_TOKEN(0x000D),
+ flags = INTERACTIVE,
+ key = 0x1002;
+
+ endform;
+
+
+
+
+ form formid = 0x2000,
+ title = STRING_TOKEN(0x000E);
+
+ subtitle text = STRING_TOKEN(0x0005);
+
+ numeric
+ questionid = 0x2001,
+ prompt = STRING_TOKEN(0x000F),
+ help = STRING_TOKEN(0x0010),
+ flags = NUMERIC_SIZE_8 | DISPLAY_UINT_HEX | INTERACTIVE,
+ minimum = 1,
+ maximum = 0xFFFFFFFFFFFFFFFF,
+ endnumeric;
+
+ subtitle text = STRING_TOKEN(0x0005);
+
+ text
+ help = STRING_TOKEN(0x0015),
+ text = STRING_TOKEN(0x0016),
+ flags = INTERACTIVE,
+ key = 0x2002;
+
+ text
+ help = STRING_TOKEN(0x0017),
+ text = STRING_TOKEN(0x0018),
+ flags = INTERACTIVE,
+ key = 0x2003;
+
+ endform;
+
+endformset;
+
+
+//
+// All Opcode Record List
+//
+>00000000: 0E A7 5F 71 46 2A 81 35 55 4A 8E 73 2B 76 9A AA 30 C5 02 00 03 00 01 71 99 03 93 45 85 04 4B B4 5E 32 EB 83 26 04 0E
+>00000027: 5C 06 00 00 00 00
+>0000002D: 5C 06 00 00 01 00
+>00000033: 01 86 00 10 04 00
+>00000039: 05 91 11 00 12 00 04 20 00 00 FF FF 04 10 00 01 00
+>0000004A: 09 07 13 00 10 00 00
+>00000051: 09 07 14 00 00 00 01
+>00000058: 29 02
+>0000005A: 02 87 05 00 00 00 00
+>00000061: 29 02
+>00000063: 0F 0F 08 00 09 00 01 00 00 00 FF FF 00 00 20
+>00000072: 0F 0F 0A 00 0B 00 01 10 00 00 FF FF 04 00 10
+>00000081: 02 87 05 00 00 00 00
+>00000088: 29 02
+>0000008A: 02 87 06 00 00 00 00
+>00000091: 29 02
+>00000093: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 03 10
+>000000A8: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 04 10
+>000000BD: 02 87 05 00 00 00 00
+>000000C4: 29 02
+>000000C6: 0C 8F 0D 00 0C 00 02 10 00 00 FF FF 04 00 00
+>000000D5: 29 02
+>000000D7: 29 02
+>000000D9: 01 86 00 20 0E 00
+>000000DF: 02 87 05 00 00 00 00
+>000000E6: 29 02
+>000000E8: 07 A6 0F 00 10 00 01 20 00 00 FF FF 04 23 01 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00
+>0000010E: 29 02
+>00000110: 02 87 05 00 00 00 00
+>00000117: 29 02
+>00000119: 0C 8F 16 00 15 00 02 20 00 00 FF FF 04 00 00
+>00000128: 29 02
+>0000012A: 0C 8F 18 00 17 00 03 20 00 00 FF FF 04 00 00
+>00000139: 29 02
+>0000013B: 29 02
+>0000013D: 29 02
+
+Total Size of all record is 0x0000013F
+
+
+***************************************************************
+ mPackAlign = 8
+ struct RAM_DISK_CONFIGURATION : mAlign [8] mTotalSize [0x10]
+
+ struct RAM_DISK_CONFIGURATION {
+ +00000000[00000000] Size <UINT64>
+ +00000008[00000008] MemType <UINT8>
+ };
+---------------------------------------------------------------
+ struct EFI_HII_REF : mAlign [16] mTotalSize [0x16]
+
+ struct EFI_HII_REF {
+ +00000000[00000000] QuestionId <UINT16>
+ +00000002[00000002] FormId <UINT16>
+ +00000004[00000004] FormSetGuid <(null)>
+ +00000020[00000014] DevicePath <EFI_STRING_ID>
+ };
+---------------------------------------------------------------
+ struct EFI_HII_TIME : mAlign [1] mTotalSize [0x3]
+
+ struct EFI_HII_TIME {
+ +00000000[00000000] Hours <UINT8>
+ +00000001[00000001] Minutes <UINT8>
+ +00000002[00000002] Seconds <UINT8>
+ };
+---------------------------------------------------------------
+ struct EFI_STRING_ID : mAlign [2] mTotalSize [0x2]
+
+ struct EFI_STRING_ID {
+ };
+---------------------------------------------------------------
+ struct EFI_HII_DATE : mAlign [2] mTotalSize [0x4]
+
+ struct EFI_HII_DATE {
+ +00000000[00000000] Year <UINT16>
+ +00000002[00000002] Month <UINT8>
+ +00000003[00000003] Day <UINT8>
+ };
+---------------------------------------------------------------
+ struct BOOLEAN : mAlign [1] mTotalSize [0x1]
+
+ struct BOOLEAN {
+ };
+---------------------------------------------------------------
+ struct UINT8 : mAlign [1] mTotalSize [0x1]
+
+ struct UINT8 {
+ };
+---------------------------------------------------------------
+ struct UINT16 : mAlign [2] mTotalSize [0x2]
+
+ struct UINT16 {
+ };
+---------------------------------------------------------------
+ struct UINT32 : mAlign [4] mTotalSize [0x4]
+
+ struct UINT32 {
+ };
+---------------------------------------------------------------
+ struct UINT64 : mAlign [8] mTotalSize [0x8]
+
+ struct UINT64 {
+ };
+---------------------------------------------------------------
+***************************************************************
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskHii.vfr.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskHii.vfr.deps
new file mode 100644
index 000000000000..6dd08bcc217c
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskHii.vfr.deps
@@ -0,0 +1,5 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG\RamDiskHii.c: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG\RamDiskDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\universal\disk\ramdiskdxe\RamDiskNVData.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/RamDiskHii.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskHiiCompiled.yml b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskHiiCompiled.yml
new file mode 100644
index 000000000000..80a0fad88e75
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskHiiCompiled.yml
@@ -0,0 +1,110 @@
+## DO NOT REMOVE -- YAML Mode
+include:
+- RamDiskNVData.h
+
+formset:
+ guid: '{0x2a46715f, 0x3581, 0x4a55, { 0x8e, 0x73, 0x2b, 0x76, 0x9a, 0xaa, 0x30, 0xc5 }}'
+ help: 'Press <Enter> to add/remove RAM disks.'
+ title: 'RAM Disk Configuration'
+ classguid1: '{0x93039971, 0x8545, 0x4b04, { 0xb4, 0x5e, 0x32, 0xeb, 0x83, 0x26, 0x4, 0xe }}'
+ component:
+ - form:
+ formid: 4096
+ title: 'RAM Disk HII Main Screen'
+ component:
+ - oneof:
+ questionid: 8196
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Disk Memory Type:'
+ help: 'Specifies type of memory to use from available memory pool in system to create a disk.'
+ opcodeflags: 0x10 # optional input
+ maximum: 1 # Optional Input
+ minimum: 0 # Optional Input
+ step: 0x0 # Optional Input
+ component:
+ - option:
+ text: 'Boot Service Data'
+ flags: 16 # Optional Input
+ type: 0x0000 # Optional Input
+ value: <VfrCompiler.IfrCtypes.c_ubyte_Array_1 object at 0x000001D6C4FB3440>
+ - option:
+ text: 'Reserved'
+ flags: 0 # Optional Input
+ type: 0x0000 # Optional Input
+ value: <VfrCompiler.IfrCtypes.c_ubyte_Array_1 object at 0x000001D6C4FB3440>
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - goto:
+ questionid: 1
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 0 # Optional Input
+ prompt: 'Create raw'
+ help: 'Create a raw RAM disk.'
+ formid: 0x2000
+ question: 0x0001 # Optional Input
+ - goto:
+ questionid: 4097
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Create from file'
+ help: 'Create a RAM disk from a given file.'
+ formid: 0x1000
+ question: 0x1001 # Optional Input
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - subtitle:
+ prompt: 'Created RAM disk list:'
+ flags: 0 # Optional Input
+ - label:
+ number: 0x1003 # Number
+ - label:
+ number: 0x1004 # Number
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - text:
+ help: 'Remove selected RAM disk(s)'
+ prompt: 'Remove selected RAM disk(s).'
+ flags: 4 # Optional Input, Question Flags
+ key: 0x1002 # Optional Input, Question QuestionId
+ - form:
+ formid: 8192
+ title: 'Add A Raw RAM Disk'
+ component:
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - numeric:
+ questionid: 8193
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Size (Hex):'
+ help: 'The valid RAM disk size should be multiples of the RAM disk block size.'
+ opcodeflags: 0x23 # optional input
+ maximum: 18446744073709551615 # Optional Input
+ minimum: 1 # Optional Input
+ step: 0 # Optional Input
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - text:
+ help: 'Create a new RAM disk with the given starting and ending address.'
+ prompt: 'Create & Exit'
+ flags: 4 # Optional Input, Question Flags
+ key: 0x2002 # Optional Input, Question QuestionId
+ - text:
+ help: 'Discard and exit.'
+ prompt: 'Discard & Exit'
+ flags: 4 # Optional Input, Question Flags
+ key: 0x2003 # Optional Input, Question QuestionId
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskHiiProcessed.yml b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskHiiProcessed.yml
new file mode 100644
index 000000000000..a04cc1cf4286
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/DEBUG/RamDiskHiiProcessed.yml
@@ -0,0 +1,83 @@
+formset:
+ classguid: '{0x93039971, 0x8545, 0x4b04, {0xb4, 0x5e, 0x32, 0xeb, 0x83, 0x26, 0x4, 0xe}}'
+ component:
+ - form:
+ component:
+ - oneof:
+ component:
+ - option:
+ flags: DEFAULT
+ text: STRING_TOKEN(0x0013)
+ value: 0
+ - option:
+ flags: 0
+ text: STRING_TOKEN(0x0014)
+ value: 1
+ flags:
+ - NUMERIC_SIZE_1
+ - INTERACTIVE
+ help: STRING_TOKEN(0x0012)
+ prompt: STRING_TOKEN(0x0011)
+ questionid: 8196
+ - subtitle:
+ text: STRING_TOKEN(0x0005)
+ - goto:
+ formid: 8192
+ help: STRING_TOKEN(0x0009)
+ prompt: STRING_TOKEN(0x0008)
+ - goto:
+ flags: INTERACTIVE
+ formid: 4096
+ help: STRING_TOKEN(0x000B)
+ key: 4097
+ prompt: STRING_TOKEN(0x000A)
+ - subtitle:
+ text: STRING_TOKEN(0x0005)
+ - subtitle:
+ text: STRING_TOKEN(0x0006)
+ - label:
+ number: 4099
+ - label:
+ number: 4100
+ - subtitle:
+ text: STRING_TOKEN(0x0005)
+ - text:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x000C)
+ key: 4098
+ prompt: STRING_TOKEN(0x000D)
+ formid: 4096
+ title: STRING_TOKEN(0x0004)
+ - form:
+ component:
+ - subtitle:
+ text: STRING_TOKEN(0x0005)
+ - numeric:
+ flags:
+ - NUMERIC_SIZE_8
+ - DISPLAY_UINT_HEX
+ - INTERACTIVE
+ help: STRING_TOKEN(0x0010)
+ maximum: 18446744073709551615
+ minimum: 1
+ prompt: STRING_TOKEN(0x000F)
+ questionid: 8193
+ - subtitle:
+ text: STRING_TOKEN(0x0005)
+ - text:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0015)
+ key: 8194
+ prompt: STRING_TOKEN(0x0016)
+ - text:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0017)
+ key: 8195
+ prompt: STRING_TOKEN(0x0018)
+ formid: 8192
+ title: STRING_TOKEN(0x000E)
+ guid: '{0x2a46715f, 0x3581, 0x4a55, {0x8e, 0x73, 0x2b, 0x76, 0x9a, 0xaa, 0x30, 0xc5}}'
+ help: STRING_TOKEN(0x0003)
+ title: STRING_TOKEN(0x0002)
+include:
+- RamDiskNVData.h
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/Makefile b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/Makefile
new file mode 100644
index 000000000000..f5a72dda43d9
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/Makefile
@@ -0,0 +1,474 @@
+#
+# DO NOT EDIT
+# This file is auto-generated by build utility
+#
+# Module Name:
+#
+# Makefile
+#
+# Abstract:
+#
+# Auto-generated makefile for building modules, libraries or platform
+#
+
+
+#
+# Platform Macro Definition
+#
+PLATFORM_NAME = Ovmf
+PLATFORM_GUID = 5a9e7754-d81b-49ea-85ad-69eaa7b1539b
+PLATFORM_VERSION = 0.1
+PLATFORM_RELATIVE_DIR = OvmfPkg
+PLATFORM_DIR = c:\users\mliang2x\workspace\edk2\OvmfPkg
+PLATFORM_OUTPUT_DIR = Build\OvmfX64
+
+#
+# Module Macro Definition
+#
+MODULE_NAME = RamDiskDxe
+MODULE_GUID = 28A03FF4-12B3-4305-A417-BB1A4F94081E
+MODULE_NAME_GUID = RamDiskDxe
+MODULE_VERSION = 1.0
+MODULE_TYPE = DXE_DRIVER
+MODULE_FILE = RamDiskDxe.inf
+MODULE_FILE_BASE_NAME = RamDiskDxe
+BASE_NAME = $(MODULE_NAME)
+MODULE_RELATIVE_DIR = MdeModulePkg\Universal\Disk\RamDiskDxe
+PACKAGE_RELATIVE_DIR = Universal\Disk\RamDiskDxe
+MODULE_DIR = c:\users\mliang2x\workspace\edk2\MdeModulePkg\Universal\Disk\RamDiskDxe
+FFS_OUTPUT_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\FV\Ffs\28A03FF4-12B3-4305-A417-BB1A4F94081ERamDiskDxe
+
+MODULE_ENTRY_POINT = RamDiskDxeEntryPoint
+ARCH_ENTRY_POINT = RamDiskDxeEntryPoint
+IMAGE_ENTRY_POINT = _ModuleEntryPoint
+
+INF_VERSION = 0x00010005
+BASE_NAME = RamDiskDxe
+MODULE_UNI_FILE = RamDiskDxe.uni
+FILE_GUID = 28A03FF4-12B3-4305-A417-BB1A4F94081E
+MODULE_TYPE = DXE_DRIVER
+VERSION_STRING = 1.0
+
+#
+# Build Configuration Macro Definition
+#
+ARCH = X64
+TOOLCHAIN = VS2015x86
+TOOLCHAIN_TAG = VS2015x86
+TARGET = DEBUG
+
+#
+# Build Directory Macro Definition
+#
+# PLATFORM_BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86
+BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86
+BIN_DIR = $(BUILD_DIR)\X64
+LIB_DIR = $(BIN_DIR)
+MODULE_BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe
+OUTPUT_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT
+DEBUG_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG
+DEST_DIR_OUTPUT = $(OUTPUT_DIR)
+DEST_DIR_DEBUG = $(DEBUG_DIR)
+
+#
+# Shell Command Macro
+#
+CP = copy /y
+MV = move /y
+RM = del /f /q
+MD = mkdir
+RD = rmdir /s /q
+
+
+#
+# Tools definitions specific to this module
+#
+APP_FLAGS = /nologo /E /TC
+APP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASL_FLAGS =
+ASL_OUTFLAGS = -p
+ASL = C:\ASL\iasl.exe
+
+ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable
+ASLCC = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE
+ASLDLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\link.exe
+
+ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h
+ASLPP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+ASM = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\ml64.exe
+
+ASM16 = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\ml.exe
+
+ASMLINK_FLAGS = /nologo /tiny
+ASMLINK = C:\WINDDK\3790.1830\bin\bin16\link16.exe
+
+BROTLI_GUID = 3D532050-5CDA-4FD0-879E-0F7F630D5AFB
+BROTLI = BrotliCompress
+
+CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /D DISABLE_NEW_DEPRECATED_INTERFACES /D TDX_GUEST_SUPPORTED /D ENABLE_MD5_DEPRECATED_INTERFACES
+CC = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+CRC32_GUID = FC1BCDB0-7D31-49AA-936A-A4600D9DD083
+CRC32 = GenCrc32
+
+DEPS_FLAGS = /showIncludes
+
+DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+DLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\link.exe
+
+DLINK2_FLAGS =
+
+DTC_FLAGS = -H epapr
+DTC = dtc
+
+DTCPP = cpp
+
+GENFW_FLAGS =
+GENFW = GenFw
+
+LZMA_GUID = EE4E5898-3914-4259-9D6E-DC7BD79403CF
+LZMA = LzmaCompress
+
+LZMAF86_GUID = D42AE6BD-1352-4bfb-909A-CA72A6EAE889
+LZMAF86 = LzmaF86Compress
+
+MAKE = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\nmake.exe
+
+NASM_FLAGS = -Ox -f win64 -g
+NASM = C:\nasm\nasm
+
+NASMB_FLAGS = -f bin
+
+OBJCOPY_ADDDEBUGFLAG = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_NAME).debug
+OBJCOPY_FLAGS = objcopy not needed for
+OBJCOPY = echo
+OBJCOPY_STRIPFLAG = --strip-unneeded -R .eh_frame
+
+OPTROM_FLAGS = -e
+OPTROM = EfiRom
+
+PKCS7SIGN_GUID = 4AAFD29D-68DF-49EE-8AA9-347D375665A7
+PKCS7SIGN = Pkcs7Sign
+
+PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+PP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+PYVFR = PyVfrCompile
+
+RC = c:\Program Files (x86)\Windows Kits\8.1\bin\x64\rc.exe
+
+RSA2048SHA256SIGN_GUID = A7717414-C616-4977-9420-844712A735BF
+RSA2048SHA256SIGN = Rsa2048Sha256Sign
+
+SLINK_FLAGS = /NOLOGO /LTCG
+SLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\lib.exe
+
+SYMRENAME_FLAGS = Symbol renaming not needed for
+SYMRENAME = echo
+
+TIANO_GUID = A31280AD-481E-41B6-95E8-127F4C984779
+TIANO = TianoCompress
+
+VFR_FLAGS = -l -n
+VFR = VfrCompile
+
+VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+VFRPP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+VPDTOOL_GUID = 8C3D856A-9BE6-468E-850A-24F7A8D38E08
+VPDTOOL = BPDG
+
+cc_resp_7 = @c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\cc_resp_7.txt
+
+MAKE_FILE = $(MODULE_BUILD_DIR)\Makefile
+
+#
+# Build Macro
+#
+STATIC_LIBRARY_FILES = \
+ $(BIN_DIR)\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\OUTPUT\FileExplorerLib.lib \
+ $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\OUTPUT\UefiHiiLib.lib \
+ $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\OUTPUT\UefiHiiServicesLib.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\OUTPUT\BaseDebugPrintErrorLevelLib.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\OUTPUT\BaseIoLibIntrinsicSev.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\OUTPUT\BaseLib.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\OUTPUT\BaseMemoryLibRepStr.lib \
+ $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\OUTPUT\BasePrintLib.lib \
+ $(BIN_DIR)\MdePkg\Library\DxeHobLib\DxeHobLib\OUTPUT\DxeHobLib.lib \
+ $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\OUTPUT\DxePcdLib.lib \
+ $(BIN_DIR)\MdePkg\Library\DxeServicesLib\DxeServicesLib\OUTPUT\DxeServicesLib.lib \
+ $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\OUTPUT\FilterLibNull.lib \
+ $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\OUTPUT\TdxLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\OUTPUT\UefiBootServicesTableLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\OUTPUT\UefiDevicePathLibDevicePathProtocol.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint\OUTPUT\UefiDriverEntryPoint.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\OUTPUT\UefiLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\OUTPUT\UefiMemoryAllocationLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\OUTPUT\UefiRuntimeServicesTableLib.lib \
+ $(BIN_DIR)\OvmfPkg\Library\CcProbeLib\CcProbeLib\OUTPUT\CcProbeLib.lib \
+ $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\OUTPUT\PlatformDebugLibIoPort.lib \
+ $(OUTPUT_DIR)\RamDiskDxe.lib
+
+OBJECT_FILES = \
+ $(OUTPUT_DIR)\AutoGen.obj \
+ $(OUTPUT_DIR)\RamDisk.obj \
+ $(OUTPUT_DIR)\RamDiskBlockIo.obj \
+ $(OUTPUT_DIR)\RamDiskDriver.obj \
+ $(OUTPUT_DIR)\RamDiskFileExplorer.obj \
+ $(OUTPUT_DIR)\RamDiskHii.obj \
+ $(OUTPUT_DIR)\RamDiskImpl.obj \
+ $(OUTPUT_DIR)\RamDiskProtocol.obj
+
+INC = \
+ /I$(WORKSPACE)\MdeModulePkg\Universal\Disk\RamDiskDxe \
+ /I$(DEBUG_DIR) \
+ /I$(WORKSPACE)\MdePkg \
+ /I$(WORKSPACE)\MdePkg\Include \
+ /I$(WORKSPACE)\MdePkg\Test\UnitTest\Include \
+ /I$(WORKSPACE)\MdePkg\Include\X64 \
+ /I$(WORKSPACE)\MdeModulePkg \
+ /I$(WORKSPACE)\MdeModulePkg\Include \
+ /I$(WORKSPACE)\MdeModulePkg\Library\BrotliCustomDecompressLib\brotli\c\include
+
+STATIC_LIBRARY_FILES_LIST = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\static_library_files.lst
+OBJECT_FILES_LIST = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\object_files.lst
+INC_LIST = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\inc.lst
+OBJLIST_0 = $(OUTPUT_DIR)\RamDisk.obj $(OUTPUT_DIR)\AutoGen.obj $(OUTPUT_DIR)\RamDiskHii.obj $(OUTPUT_DIR)\RamDiskFileExplorer.obj $(OUTPUT_DIR)\RamDiskBlockIo.obj $(OUTPUT_DIR)\RamDiskDriver.obj $(OUTPUT_DIR)\RamDiskProtocol.obj $(OUTPUT_DIR)\RamDiskImpl.obj
+
+
+#
+# Overridable Target Macro Definitions
+#
+FORCE_REBUILD = force_build
+INIT_TARGET = init
+PCH_TARGET =
+BC_TARGET =
+CODA_TARGET = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDisk.aml \
+ c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDiskDxe.efi \
+ $(FFS_OUTPUT_DIR)\$(MODULE_GUID).map \
+ $(FFS_OUTPUT_DIR)\$(MODULE_GUID).ffs \
+
+
+#
+# Default target, which will build dependent libraries in addition to source files
+#
+
+all: mbuild
+
+
+#
+# Target used when called from platform makefile, which will bypass the build of dependent libraries
+#
+
+pbuild: $(INIT_TARGET) $(BC_TARGET) $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# ModuleTarget
+#
+
+mbuild: $(INIT_TARGET) $(BC_TARGET) gen_libs $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# Build Target used in multi-thread build mode, which will bypass the init and gen_libs targets
+#
+
+tbuild: $(BC_TARGET) $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# Phony target which is used to force executing commands for a target
+#
+force_build:
+ -@
+
+#
+# Target to update the FD
+#
+
+fds: mbuild gen_fds
+
+#
+# Initialization target: print build information and create necessary directories
+#
+init: info dirs
+
+info:
+ -@echo Building ... $(MODULE_DIR)\$(MODULE_FILE) [$(ARCH)]
+
+dirs:
+ -@if not exist $(DEBUG_DIR) $(MD) $(DEBUG_DIR)
+ -@if not exist $(OUTPUT_DIR) $(MD) $(OUTPUT_DIR)
+
+
+strdefs:
+ -@$(CP) $(DEBUG_DIR)\AutoGen.h $(DEBUG_DIR)\$(MODULE_NAME)StrDefs.h
+
+#
+# GenLibsTarget
+#
+gen_libs:
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\CcProbeLib\CcProbeLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxeHobLib\DxeHobLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxeServicesLib\DxeServicesLib\Makefile
+ @cd $(MODULE_BUILD_DIR)
+
+#
+# Build Flash Device Image
+#
+gen_fds:
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BUILD_DIR)\Makefile fds
+ @cd $(MODULE_BUILD_DIR)
+
+!INCLUDE $(MODULE_BUILD_DIR)\dependency
+!INCLUDE $(MODULE_BUILD_DIR)\deps_target
+
+#
+# Individual Object Build Targets
+#
+$(DEBUG_DIR)\RamDiskDxe.dll : $(MAKE_FILE)
+$(DEBUG_DIR)\RamDiskDxe.dll : $(STATIC_LIBRARY_FILES)
+$(DEBUG_DIR)\RamDiskDxe.dll : $(STATIC_LIBRARY_FILES_LIST)
+ "$(DLINK)" /OUT:c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG\RamDiskDxe.dll $(DLINK_FLAGS) $(DLINK2_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST)
+ "$(DLINK)" /OUT:c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG\RamDiskDxe.dll $(DLINK_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST)
+
+$(OUTPUT_DIR)\RamDiskDxe.efi : $(DEBUG_DIR)\RamDiskDxe.dll
+ "$(GENFW)" -e $(MODULE_TYPE) -o c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDiskDxe.efi c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG\RamDiskDxe.dll $(GENFW_FLAGS)
+ $(CP) c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDiskDxe.efi $(DEBUG_DIR)
+ $(CP) c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDiskDxe.efi $(BIN_DIR)\$(MODULE_NAME_GUID).efi
+ -$(CP) $(DEBUG_DIR)\*.map $(OUTPUT_DIR)
+ -$(CP) $(DEBUG_DIR)\*.pdb $(OUTPUT_DIR)
+
+$(DEBUG_DIR)\RamDiskDxe.efi : $(OUTPUT_DIR)\RamDiskDxe.efi
+
+
+$(OUTPUT_DIR)\RamDiskDxe.map : $(OUTPUT_DIR)\RamDiskDxe.efi
+
+
+$(OBJLIST_0): \
+ $(MAKE_FILE) \
+ $(WORKSPACE)\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDriver.c \
+ $(DEBUG_DIR)\AutoGen.h \
+ $(DEBUG_DIR)\RamDiskDxeStrDefs.h \
+ $(WORKSPACE)\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskImpl.c \
+ $(WORKSPACE)\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskProtocol.c \
+ $(DEBUG_DIR)\RamDiskHii.c \
+ $(OUTPUT_DIR)\RamDisk.c \
+ $(WORKSPACE)\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskFileExplorer.c \
+ $(WORKSPACE)\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskBlockIo.c \
+ $(DEBUG_DIR)\AutoGen.c
+ "$(CC)" /Foc:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\.\ $(DEPS_FLAGS) $(CC_FLAGS) $(INC) $(cc_resp_7)
+
+$(OUTPUT_DIR)\RamDiskDxe.lib : $(OBJECT_FILES)
+$(OUTPUT_DIR)\RamDiskDxe.lib : $(OBJECT_FILES_LIST)
+ "$(SLINK)" $(SLINK_FLAGS) /OUT:c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDiskDxe.lib @$(OBJECT_FILES_LIST)
+
+$(DEBUG_DIR)\RamDiskHii.c : $(MAKE_FILE)
+$(DEBUG_DIR)\RamDiskHii.c : $(DEBUG_DIR)\AutoGen.h
+$(DEBUG_DIR)\RamDiskHii.c : $(DEBUG_DIR)\RamDiskDxeStrDefs.h
+$(DEBUG_DIR)\RamDiskHii.c : $(WORKSPACE)\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskHii.vfr
+ "$(VFRPP)" $(DEPS_FLAGS) $(VFRPP_FLAGS) $(INC) c:\users\mliang2x\workspace\edk2\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskHii.vfr > $(OUTPUT_DIR)\RamDiskHii.i
+ "$(VFR)" $(VFR_FLAGS) --string-db $(OUTPUT_DIR)\$(MODULE_NAME)StrDefs.hpk --output-directory c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG\. $(OUTPUT_DIR)\RamDiskHii.i
+ "$(PYVFR)" c:\users\mliang2x\workspace\edk2\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskHii.vfr -i $(INC) -m $(MODULE_NAME) -o $(OUTPUT_DIR) --vfr
+
+$(OUTPUT_DIR)\RamDisk.aml : $(MAKE_FILE)
+$(OUTPUT_DIR)\RamDisk.aml : $(DEBUG_DIR)\AutoGen.h
+$(OUTPUT_DIR)\RamDisk.aml : $(DEBUG_DIR)\RamDiskDxeStrDefs.h
+$(OUTPUT_DIR)\RamDisk.aml : $(WORKSPACE)\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDisk.asl
+ Trim --asl-file --asl-deps -o $(OUTPUT_DIR)\.\RamDisk.i -i $(INC_LIST) c:\users\mliang2x\workspace\edk2\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDisk.asl
+ "$(ASLPP)" $(DEPS_FLAGS) $(ASLPP_FLAGS) $(INC) /Ic:\users\mliang2x\workspace\edk2\MdeModulePkg\Universal\Disk\RamDiskDxe $(OUTPUT_DIR)\.\RamDisk.i > $(OUTPUT_DIR)\.\RamDisk.iii
+ Trim --source-code -l -o $(OUTPUT_DIR)\.\RamDisk.iiii $(OUTPUT_DIR)\.\RamDisk.iii
+ "$(ASL)" $(ASL_FLAGS) $(ASL_OUTFLAGS)c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\.\RamDisk.aml $(OUTPUT_DIR)\.\RamDisk.iiii
+ $(CP) $(OUTPUT_DIR)\.\RamDisk.aml $(OUTPUT_DIR)\.\RamDisk.amli
+
+$(OUTPUT_DIR)\RamDisk.amli : $(OUTPUT_DIR)\RamDisk.aml
+
+
+$(OUTPUT_DIR)\RamDisk.c : $(OUTPUT_DIR)\RamDisk.amli
+ -AmlToC c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDisk.amli
+
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID).map : $(OUTPUT_DIR)\RamDiskDxe.map
+ if exist $(OUTPUT_DIR)\RamDiskDxe.map $(CP) $(OUTPUT_DIR)\RamDiskDxe.map $(FFS_OUTPUT_DIR)\$(MODULE_GUID).map
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID).ffs : $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC1.1.dpx $(FFS_OUTPUT_DIR)\RamDiskDxeOffset.raw $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.1.pe32 $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ui $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC4.ver $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC6.1.raw
+ GenFfs -t EFI_FV_FILETYPE_DRIVER -g $(MODULE_GUID) -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID).ffs -oi $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC1.1.dpx -oi $(FFS_OUTPUT_DIR)\RamDiskDxeOffset.raw -oi $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.1.pe32 -oi $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ui -oi $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC4.ver -oi $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC6.1.raw
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC1.1.dpx : $(OUTPUT_DIR)\RamDiskDxe.depex
+ if exist $(OUTPUT_DIR)\RamDiskDxe.depex GenSec -s EFI_SECTION_DXE_DEPEX -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC1.1.dpx $(OUTPUT_DIR)\RamDiskDxe.depex
+$(FFS_OUTPUT_DIR)\RamDiskDxeOffset.raw : $(FFS_OUTPUT_DIR)\RamDiskDxe.offset
+ if exist $(FFS_OUTPUT_DIR)\RamDiskDxe.offset GenSec -s EFI_SECTION_RAW -o $(FFS_OUTPUT_DIR)\RamDiskDxeOffset.raw $(FFS_OUTPUT_DIR)\RamDiskDxe.offset
+$(FFS_OUTPUT_DIR)\RamDiskDxe.offset : $(DEBUG_DIR)\RamDiskDxe.efi
+ Trim --Vfr-Uni-Offset -o $(FFS_OUTPUT_DIR)\RamDiskDxe.offset --ModuleName=RamDiskDxe --DebugDir=c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.1.pe32 : $(OUTPUT_DIR)\RamDiskDxe.efi
+ if exist $(OUTPUT_DIR)\RamDiskDxe.efi GenSec -s EFI_SECTION_PE32 -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.1.pe32 $(OUTPUT_DIR)\RamDiskDxe.efi
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ui : $(MODULE_DIR)\$(MODULE_FILE)
+ GenSec -s EFI_SECTION_USER_INTERFACE -n $(MODULE_NAME) -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ui
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC4.ver : $(MODULE_DIR)\$(MODULE_FILE)
+ GenSec -s EFI_SECTION_VERSION -n 1.0 -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC4.ver
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC6.1.raw : $(OUTPUT_DIR)\RamDisk.aml
+ if exist $(OUTPUT_DIR)\RamDisk.aml GenSec -s EFI_SECTION_RAW -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC6.1.raw $(OUTPUT_DIR)\RamDisk.aml
+
+
+#
+# clean all intermediate files
+#
+clean:
+ if exist $(OUTPUT_DIR) $(RD) $(OUTPUT_DIR)
+ $(RM) AutoGenTimeStamp
+
+#
+# clean all generated files
+#
+cleanall:
+ if exist $(DEBUG_DIR) $(RD) $(DEBUG_DIR)
+ if exist $(OUTPUT_DIR) $(RD) $(OUTPUT_DIR)
+ $(RM) *.pdb *.idb > NUL 2>&1
+ $(RM) $(BIN_DIR)\$(MODULE_NAME).efi
+ $(RM) AutoGenTimeStamp
+
+#
+# clean all dependent libraries built
+#
+cleanlib:
+ -@if exist $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\OvmfPkg\Library\CcProbeLib\CcProbeLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\CcProbeLib\CcProbeLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\DxeHobLib\DxeHobLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxeHobLib\DxeHobLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\DxeServicesLib\DxeServicesLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxeServicesLib\DxeServicesLib\Makefile cleanall
+ @cd $(MODULE_BUILD_DIR)
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/AutoGen.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/AutoGen.c.deps
new file mode 100644
index 000000000000..a68cfb99d401
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/AutoGen.c.deps
@@ -0,0 +1,44 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\AutoGen.c: \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\mdemodulepkg\universal\disk\ramdiskdxe\ramdiskdxe\debug\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\mdemodulepkg\universal\disk\ramdiskdxe\ramdiskdxe\debug\RamDiskDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.aml b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.aml
new file mode 100644
index 0000000000000000000000000000000000000000..9b87ee8d0408ae39f9e1df54e881c91d5a88631f
GIT binary patch
literal 124
zcmWFzb_uCrU|?Wc=;;^Y>Z1^pnCp^RoUOnhz`y_$@loYeP!MoujfoF-ijQvcWAO`f
z3F3(N@O0sIbPn(|FfcS?;D`?n2@=%gQuAX7V{l>cWbg$-1%@Dod>||VvRoKa8Oj(k
T8IplC1A_=BP`x9=5-xrK<`fzM
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.amli b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.amli
new file mode 100644
index 0000000000000000000000000000000000000000..9b87ee8d0408ae39f9e1df54e881c91d5a88631f
GIT binary patch
literal 124
zcmWFzb_uCrU|?Wc=;;^Y>Z1^pnCp^RoUOnhz`y_$@loYeP!MoujfoF-ijQvcWAO`f
z3F3(N@O0sIbPn(|FfcS?;D`?n2@=%gQuAX7V{l>cWbg$-1%@Dod>||VvRoKa8Oj(k
T8IplC1A_=BP`x9=5-xrK<`fzM
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.asl.trim.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.asl.trim.deps
new file mode 100644
index 000000000000..10ae51ed72e3
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.asl.trim.deps
@@ -0,0 +1,2 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDisk.aml:
+# Updated
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.i b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.i
new file mode 100644
index 000000000000..509acf4a6d68
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.i
@@ -0,0 +1,40 @@
+#undef MIN
+#undef MAX
+/** @file
+ The definition block in ACPI table for NVDIMM root device.
+
+Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+DefinitionBlock (
+ "RamDisk.aml",
+ "SSDT",
+ 2,
+ "INTEL ",
+ "RamDisk ",
+ 0x1000
+ )
+{
+ Scope (\_SB)
+ {
+ Device (NVDR)
+ {
+ //
+ // Define _HID, "ACPI0012" NVDIMM Root Device
+ //
+ Name (_HID, "ACPI0012")
+
+ //
+ // Readable name of this device
+ //
+ Name (_STR, Unicode ("NVDIMM Root Device"))
+
+ Method (_STA, 0)
+ {
+ Return (0x0f)
+ }
+ }
+ }
+}
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.i.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.i.deps
new file mode 100644
index 000000000000..4b8f670dff9f
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.i.deps
@@ -0,0 +1,40 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDisk.aml: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\mdemodulepkg\universal\disk\ramdiskdxe\ramdiskdxe\debug\RamDiskDxeStrDefs.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.iii b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.iii
new file mode 100644
index 000000000000..0aa21d7402c3
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.iii
@@ -0,0 +1,28121 @@
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Universal\\Disk\\RamDiskDxe\\RamDiskDxe\\OUTPUT\\.\\RamDisk.i"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Universal\\Disk\\RamDiskDxe\\RamDiskDxe\\DEBUG\\AutoGen.h"
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ AutoGen.h
+ Abstract: Auto-generated AutoGen.h for building module or library.
+**/
+
+
+
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\PiDxe.h"
+/** @file
+
+ Root include file for Mde Package DXE_CORE, DXE, RUNTIME, SMM, SAL type modules.
+
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiBaseType.h"
+/** @file
+ Defines data types and constants introduced in UEFI.
+
+Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.<BR>
+Portions copyright (c) 2011 - 2016, ARM Ltd. All rights reserved.<BR>
+Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
+
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+/** @file
+ Root include file for Mde Package Base type modules
+
+ This is the include file for any module of type base. Base modules only use
+ types defined via this include file and can be ported easily to any
+ environment. There are a set of base libraries in the Mde Package that can
+ be used to implement base modules.
+
+Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.<BR>
+Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+
+
+
+//
+// Include processor specific binding
+//
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\X64\\ProcessorBind.h"
+/** @file
+ Processor or Compiler specific defines and types x64 (Intel 64, AMD64).
+
+ Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+
+
+
+///
+/// Define the processor type so other code can make processor based choices
+///
+
+
+//
+// Make sure we are using the correct packing rules per EFI specification
+//
+
+ #pragma pack()
+#line 23 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\X64\\ProcessorBind.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 37 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\X64\\ProcessorBind.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 64 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\X64\\ProcessorBind.h"
+
+
+
+//
+// Disable warning that make it impossible to compile at /W4
+// This only works for Microsoft* tools
+//
+
+//
+// Disabling bitfield type checking warnings.
+//
+ #pragma warning ( disable : 4214 )
+
+//
+// Disabling the unreferenced formal parameter warnings.
+//
+ #pragma warning ( disable : 4100 )
+
+//
+// Disable slightly different base types warning as CHAR8 * can not be set
+// to a constant string.
+//
+ #pragma warning ( disable : 4057 )
+
+//
+// ASSERT(FALSE) or while (TRUE) are legal constructs so suppress this warning
+//
+ #pragma warning ( disable : 4127 )
+
+//
+// This warning is caused by functions defined but not used. For precompiled header only.
+//
+ #pragma warning ( disable : 4505 )
+
+//
+// This warning is caused by empty (after preprocessing) source file. For precompiled header only.
+//
+ #pragma warning ( disable : 4206 )
+
+
+
+//
+// Disable these warnings for VS2013.
+//
+
+//
+// This warning is for potentially uninitialized local variable, and it may cause false
+// positive issues in VS2013 and VS2015 build
+//
+ #pragma warning ( disable : 4701 )
+
+//
+// This warning is for potentially uninitialized local pointer variable, and it may cause
+// false positive issues in VS2013 and VS2015 build
+//
+ #pragma warning ( disable : 4703 )
+
+ #line 122 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\X64\\ProcessorBind.h"
+
+#line 124 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\X64\\ProcessorBind.h"
+
+
+//
+// use Microsoft C compiler dependent integer width types
+//
+
+///
+/// 8-byte unsigned value
+///
+typedef unsigned __int64 UINT64;
+///
+/// 8-byte signed value
+///
+typedef __int64 INT64;
+///
+/// 4-byte unsigned value
+///
+typedef unsigned __int32 UINT32;
+///
+/// 4-byte signed value
+///
+typedef __int32 INT32;
+///
+/// 2-byte unsigned value
+///
+typedef unsigned short UINT16;
+///
+/// 2-byte Character. Unless otherwise specified all strings are stored in the
+/// UTF-16 encoding format as defined by Unicode 2.1 and ISO/IEC 10646 standards.
+///
+typedef unsigned short CHAR16;
+///
+/// 2-byte signed value
+///
+typedef short INT16;
+///
+/// Logical Boolean. 1-byte value containing 0 for FALSE or a 1 for TRUE. Other
+/// values are undefined.
+///
+typedef unsigned char BOOLEAN;
+///
+/// 1-byte unsigned value
+///
+typedef unsigned char UINT8;
+///
+/// 1-byte Character
+///
+typedef char CHAR8;
+///
+/// 1-byte signed value
+///
+typedef signed char INT8;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 224 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\X64\\ProcessorBind.h"
+
+///
+/// Unsigned value of native width. (4 bytes on supported 32-bit processor instructions,
+/// 8 bytes on supported 64-bit processor instructions)
+///
+typedef UINT64 UINTN;
+///
+/// Signed value of native width. (4 bytes on supported 32-bit processor instructions,
+/// 8 bytes on supported 64-bit processor instructions)
+///
+typedef INT64 INTN;
+
+//
+// Processor specific defines
+//
+
+///
+/// A value of native width with the highest bit set.
+///
+
+///
+/// A value of native width with the two highest bits set.
+///
+
+
+///
+/// Maximum legal x64 address
+///
+
+
+///
+/// Maximum usable address at boot time
+///
+
+
+///
+/// Maximum legal x64 INTN and UINTN values.
+///
+
+
+
+///
+/// Minimum legal x64 INTN value.
+///
+
+
+///
+/// The stack alignment required for x64
+///
+
+
+///
+/// Page allocation granularity for x64
+///
+
+
+
+//
+// Modifier to ensure that all protocol member functions and EFI intrinsics
+// use the correct C calling convention. All protocol member functions and
+// EFI intrinsics are required to modify their member functions with EFIAPI.
+//
+
+
+
+
+
+///
+/// Microsoft* compiler specific method for EFIAPI calling convention.
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 312 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\X64\\ProcessorBind.h"
+
+
+
+
+
+
+
+#line 320 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\X64\\ProcessorBind.h"
+
+/**
+ Return the pointer to the first instruction of a function given a function pointer.
+ On x64 CPU architectures, these two pointer values are the same,
+ so the implementation of this macro is very simple.
+
+ @param FunctionPointer A pointer to a function.
+
+ @return The pointer to the first instruction of a function given a function pointer.
+
+**/
+
+
+
+
+#line 336 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\X64\\ProcessorBind.h"
+
+#line 338 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\X64\\ProcessorBind.h"
+#line 22 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+
+
+//
+// Disable warning when last field of data structure is a zero sized array.
+//
+ #pragma warning ( disable : 4200 )
+#line 29 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+
+//
+// The Microsoft* C compiler can removed references to unreferenced data items
+// if the /OPT:REF linker option is used. We defined a macro as this is a
+// a non standard extension
+//
+
+
+
+
+
+
+
+#line 43 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+///
+/// Remove the global variable from the linked image if there are no references
+/// to it after all compiler and linker optimizations have been performed.
+///
+///
+
+#line 50 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+
+//
+// Should be used in combination with NORETURN to avoid 'noreturn' returns
+// warnings.
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 71 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+
+
+///
+/// Signal compilers and analyzers that this call is not reachable. It is
+/// up to the compiler to remove any code past that point.
+///
+
+ #line 79 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+#line 80 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+
+//
+// Signaling compilers and analyzers that a certain function cannot return may
+// remove all following code and thus lead to better optimization and less
+// false positives.
+//
+
+
+
+
+
+
+
+
+#line 95 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+///
+/// Signal compilers and analyzers that the function cannot return.
+/// It is up to the compiler to remove any code past a call to functions
+/// flagged with this attribute.
+///
+
+
+
+
+
+
+
+
+#line 109 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+#line 110 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+
+//
+// Should be used in combination with ANALYZER_NORETURN to avoid 'noreturn'
+// returns warnings.
+//
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// Signal the analyzer that this call is not reachable.
+/// This excludes compilers.
+///
+
+ #line 133 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+#line 134 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+
+//
+// Static Analyzers may issue errors about potential NULL-dereferences when
+// dereferencing a pointer, that has been checked before, outside of a
+// NULL-check. This may lead to false positives, such as when using ASSERT()
+// for verification.
+//
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// Signal the analyzer that the function cannot return.
+/// This excludes compilers.
+///
+
+ #line 159 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+#line 160 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+
+///
+/// Tell the code optimizer that the function will return twice.
+/// This prevents wrong optimizations which can cause bugs.
+///
+
+
+
+
+
+
+
+#line 173 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+///
+/// Tell the code optimizer that the function will return twice.
+/// This prevents wrong optimizations which can cause bugs.
+///
+
+ #line 179 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+#line 180 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+
+//
+// For symbol name in assembly code, an extra "_" is sometimes necessary
+//
+
+///
+/// Private worker functions for ASM_PFX()
+///
+
+
+
+///
+/// The __USER_LABEL_PREFIX__ macro predefined by GNUC represents the prefix
+/// on symbols in assembly language.
+///
+
+
+
+
+
+
+
+
+
+
+#line 206 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+
+
+
+///
+/// 128 bit buffer containing a unique identifier value.
+/// Unless otherwise specified, aligned on a 64 bit boundary.
+///
+typedef struct {
+ UINT32 Data1;
+ UINT16 Data2;
+ UINT16 Data3;
+ UINT8 Data4[8];
+} GUID;
+
+///
+/// 4-byte buffer. An IPv4 internet protocol address.
+///
+typedef struct {
+ UINT8 Addr[4];
+} IPv4_ADDRESS;
+
+///
+/// 16-byte buffer. An IPv6 internet protocol address.
+///
+typedef struct {
+ UINT8 Addr[16];
+} IPv6_ADDRESS;
+
+//
+// 8-bytes unsigned value that represents a physical system address.
+//
+typedef UINT64 PHYSICAL_ADDRESS;
+
+///
+/// LIST_ENTRY structure definition.
+///
+typedef struct _LIST_ENTRY LIST_ENTRY;
+
+///
+/// _LIST_ENTRY structure definition.
+///
+struct _LIST_ENTRY {
+ LIST_ENTRY *ForwardLink;
+ LIST_ENTRY *BackLink;
+};
+
+//
+// Modifiers to abstract standard types to aid in debug of problems
+//
+
+///
+/// Datum is read-only.
+///
+
+
+///
+/// Datum is scoped to the current file or function.
+///
+
+
+///
+/// Undeclared type.
+///
+
+
+//
+// Modifiers for Data Types used to self document code.
+// This concept is borrowed for UEFI specification.
+//
+
+///
+/// Datum is passed to the function.
+///
+
+
+///
+/// Datum is returned from the function.
+///
+
+
+///
+/// Passing the datum to the function is optional, and a NULL
+/// is passed if the value is not supplied.
+///
+
+
+//
+// UEFI specification claims 1 and 0. We are concerned about the
+// compiler portability so we did it this way.
+//
+
+///
+/// Boolean true value. UEFI Specification defines this value to be 1,
+/// but this form is more portable.
+///
+
+
+///
+/// Boolean false value. UEFI Specification defines this value to be 0,
+/// but this form is more portable.
+///
+
+
+///
+/// NULL pointer (VOID *)
+///
+
+
+//
+// Null character
+//
+
+
+///
+/// Maximum values for common UEFI Data Types
+///
+
+
+
+
+
+
+
+
+
+///
+/// Minimum values for the signed UEFI Data Types
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+//
+// Support for variable argument lists in freestanding edk2 modules.
+//
+// For modules that use the ISO C library interfaces for variable
+// argument lists, refer to "StdLib/Include/stdarg.h".
+//
+// VA_LIST - typedef for argument list.
+// VA_START (VA_LIST Marker, argument before the ...) - Init Marker for use.
+// VA_END (VA_LIST Marker) - Clear Marker
+// VA_ARG (VA_LIST Marker, var arg type) - Use Marker to get an argument from
+// the ... list. You must know the type and pass it in this macro. Type
+// must be compatible with the type of the actual next argument (as promoted
+// according to the default argument promotions.)
+// VA_COPY (VA_LIST Dest, VA_LIST Start) - Initialize Dest as a copy of Start.
+//
+// Example:
+//
+// UINTN
+// EFIAPI
+// ExampleVarArg (
+// IN UINTN NumberOfArgs,
+// ...
+// )
+// {
+// VA_LIST Marker;
+// UINTN Index;
+// UINTN Result;
+//
+// //
+// // Initialize the Marker
+// //
+// VA_START (Marker, NumberOfArgs);
+// for (Index = 0, Result = 0; Index < NumberOfArgs; Index++) {
+// //
+// // The ... list is a series of UINTN values, so sum them up.
+// //
+// Result += VA_ARG (Marker, UINTN);
+// }
+//
+// VA_END (Marker);
+// return Result;
+// }
+//
+// Notes:
+// - Functions that call VA_START() / VA_END() must have a variable
+// argument list and must be declared EFIAPI.
+// - Functions that call VA_COPY() / VA_END() must be declared EFIAPI.
+// - Functions that only use VA_LIST and VA_ARG() need not be EFIAPI.
+//
+
+/**
+ Return the size of argument that has been aligned to sizeof (UINTN).
+
+ @param n The parameter size to be aligned.
+
+ @return The aligned size.
+**/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 586 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 631 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+///
+/// Variable used to traverse the list of arguments. This type can vary by
+/// implementation and could be an array or structure.
+///
+typedef CHAR8 *VA_LIST;
+
+/**
+ Retrieves a pointer to the beginning of a variable argument list, based on
+ the name of the parameter that immediately precedes the variable argument list.
+
+ This function initializes Marker to point to the beginning of the variable
+ argument list that immediately follows Parameter. The method for computing the
+ pointer to the next argument in the argument list is CPU-specific following the
+ EFIAPI ABI.
+
+ @param Marker The VA_LIST used to traverse the list of arguments.
+ @param Parameter The name of the parameter that immediately precedes
+ the variable argument list.
+
+ @return A pointer to the beginning of a variable argument list.
+
+**/
+
+
+/**
+ Returns an argument of a specified type from a variable argument list and updates
+ the pointer to the variable argument list to point to the next argument.
+
+ This function returns an argument of the type specified by TYPE from the beginning
+ of the variable argument list specified by Marker. Marker is then updated to point
+ to the next argument in the variable argument list. The method for computing the
+ pointer to the next argument in the argument list is CPU-specific following the EFIAPI ABI.
+
+ @param Marker VA_LIST used to traverse the list of arguments.
+ @param TYPE The type of argument to retrieve from the beginning
+ of the variable argument list.
+
+ @return An argument of the type specified by TYPE.
+
+**/
+
+
+/**
+ Terminates the use of a variable argument list.
+
+ This function initializes Marker so it can no longer be used with VA_ARG().
+ After this macro is used, the only way to access the variable argument list is
+ by using VA_START() again.
+
+ @param Marker VA_LIST used to traverse the list of arguments.
+
+**/
+
+
+/**
+ Initializes a VA_LIST as a copy of an existing VA_LIST.
+
+ This macro initializes Dest as a copy of Start, as if the VA_START macro had been applied to Dest
+ followed by the same sequence of uses of the VA_ARG macro as had previously been used to reach
+ the present state of Start.
+
+ @param Dest VA_LIST used to traverse the list of arguments.
+ @param Start VA_LIST used to traverse the list of arguments.
+
+**/
+
+
+#line 699 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+
+///
+/// Pointer to the start of a variable argument list stored in a memory buffer. Same as UINT8 *.
+///
+typedef UINTN *BASE_LIST;
+
+/**
+ Returns the size of a data type in sizeof(UINTN) units rounded up to the nearest UINTN boundary.
+
+ @param TYPE The date type to determine the size of.
+
+ @return The size of TYPE in sizeof (UINTN) units rounded up to the nearest UINTN boundary.
+**/
+
+
+/**
+ Returns an argument of a specified type from a variable argument list and updates
+ the pointer to the variable argument list to point to the next argument.
+
+ This function returns an argument of the type specified by TYPE from the beginning
+ of the variable argument list specified by Marker. Marker is then updated to point
+ to the next argument in the variable argument list. The method for computing the
+ pointer to the next argument in the argument list is CPU specific following the EFIAPI ABI.
+
+ @param Marker The pointer to the beginning of a variable argument list.
+ @param TYPE The type of argument to retrieve from the beginning
+ of the variable argument list.
+
+ @return An argument of the type specified by TYPE.
+
+**/
+
+
+/**
+ The macro that returns the byte offset of a field in a data structure.
+
+ This function returns the offset, in bytes, of field specified by Field from the
+ beginning of the data structure specified by TYPE. If TYPE does not contain Field,
+ the module will not compile.
+
+ @param TYPE The name of the data structure that contains the field specified by Field.
+ @param Field The name of the field in the data structure.
+
+ @return Offset, in bytes, of field.
+
+**/
+
+
+#line 748 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+
+
+
+#line 752 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+
+/**
+ Portable definition for compile time assertions.
+ Equivalent to C11 static_assert macro from assert.h.
+
+ @param Expression Boolean expression.
+ @param Message Raised compiler diagnostic message when expression is false.
+
+**/
+
+
+
+
+
+
+#line 768 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+
+//
+// Verify that ProcessorBind.h produced UEFI Data Types that are compliant with
+// Section 2.3.1 of the UEFI 2.3 Specification.
+//
+
+static_assert (sizeof (BOOLEAN) == 1, "sizeof (BOOLEAN) does not meet UEFI Specification Data Type requirements");
+static_assert (sizeof (INT8) == 1, "sizeof (INT8) does not meet UEFI Specification Data Type requirements");
+static_assert (sizeof (UINT8) == 1, "sizeof (UINT8) does not meet UEFI Specification Data Type requirements");
+static_assert (sizeof (INT16) == 2, "sizeof (INT16) does not meet UEFI Specification Data Type requirements");
+static_assert (sizeof (UINT16) == 2, "sizeof (UINT16) does not meet UEFI Specification Data Type requirements");
+static_assert (sizeof (INT32) == 4, "sizeof (INT32) does not meet UEFI Specification Data Type requirements");
+static_assert (sizeof (UINT32) == 4, "sizeof (UINT32) does not meet UEFI Specification Data Type requirements");
+static_assert (sizeof (INT64) == 8, "sizeof (INT64) does not meet UEFI Specification Data Type requirements");
+static_assert (sizeof (UINT64) == 8, "sizeof (UINT64) does not meet UEFI Specification Data Type requirements");
+static_assert (sizeof (CHAR8) == 1, "sizeof (CHAR8) does not meet UEFI Specification Data Type requirements");
+static_assert (sizeof (CHAR16) == 2, "sizeof (CHAR16) does not meet UEFI Specification Data Type requirements");
+static_assert (sizeof (L'A') == 2, "sizeof (L'A') does not meet UEFI Specification Data Type requirements");
+static_assert (sizeof (L"A") == 4, "sizeof (L\"A\") does not meet UEFI Specification Data Type requirements");
+
+//
+// The following three enum types are used to verify that the compiler
+// configuration for enum types is compliant with Section 2.3.1 of the
+// UEFI 2.3 Specification. These enum types and enum values are not
+// intended to be used. A prefix of '__' is used avoid conflicts with
+// other types.
+//
+typedef enum {
+ __VerifyUint8EnumValue = 0xff
+} __VERIFY_UINT8_ENUM_SIZE;
+
+typedef enum {
+ __VerifyUint16EnumValue = 0xffff
+} __VERIFY_UINT16_ENUM_SIZE;
+
+typedef enum {
+ __VerifyUint32EnumValue = 0xffffffff
+} __VERIFY_UINT32_ENUM_SIZE;
+
+static_assert (sizeof (__VERIFY_UINT8_ENUM_SIZE) == 4, "Size of enum does not meet UEFI Specification Data Type requirements");
+static_assert (sizeof (__VERIFY_UINT16_ENUM_SIZE) == 4, "Size of enum does not meet UEFI Specification Data Type requirements");
+static_assert (sizeof (__VERIFY_UINT32_ENUM_SIZE) == 4, "Size of enum does not meet UEFI Specification Data Type requirements");
+
+/**
+ Macro that returns a pointer to the data structure that contains a specified field of
+ that data structure. This is a lightweight method to hide information by placing a
+ public data structure inside a larger private data structure and using a pointer to
+ the public data structure to retrieve a pointer to the private data structure.
+
+ This function computes the offset, in bytes, of field specified by Field from the beginning
+ of the data structure specified by TYPE. This offset is subtracted from Record, and is
+ used to return a pointer to a data structure of the type specified by TYPE. If the data type
+ specified by TYPE does not contain the field specified by Field, then the module will not compile.
+
+ @param Record Pointer to the field specified by Field within a data structure of type TYPE.
+ @param TYPE The name of the data structure type to return. This data structure must
+ contain the field specified by Field.
+ @param Field The name of the field in the data structure specified by TYPE to which Record points.
+
+ @return A pointer to the structure from one of it's elements.
+
+**/
+
+
+/**
+ Rounds a value up to the next boundary using a specified alignment.
+
+ This function rounds Value up to the next boundary using the specified Alignment.
+ This aligned value is returned.
+
+ @param Value The value to round up.
+ @param Alignment The alignment boundary used to return the aligned value.
+
+ @return A value up to the next boundary.
+
+**/
+
+
+/**
+ Adjust a pointer by adding the minimum offset required for it to be aligned on
+ a specified alignment boundary.
+
+ This function rounds the pointer specified by Pointer to the next alignment boundary
+ specified by Alignment. The pointer to the aligned address is returned.
+
+ @param Pointer The pointer to round up.
+ @param Alignment The alignment boundary to use to return an aligned pointer.
+
+ @return Pointer to the aligned address.
+
+**/
+
+
+/**
+ Rounds a value up to the next natural boundary for the current CPU.
+ This is 4-bytes for 32-bit CPUs and 8-bytes for 64-bit CPUs.
+
+ This function rounds the value specified by Value up to the next natural boundary for the
+ current CPU. This rounded value is returned.
+
+ @param Value The value to round up.
+
+ @return Rounded value specified by Value.
+
+**/
+
+
+/**
+ Return the maximum of two operands.
+
+ This macro returns the maximum of two operand specified by a and b.
+ Both a and b must be the same numerical types, signed or unsigned.
+
+ @param a The first operand with any numerical type.
+ @param b The second operand. Can be any numerical type as long as is
+ the same type as a.
+
+ @return Maximum of two operands.
+
+**/
+
+
+
+/**
+ Return the minimum of two operands.
+
+ This macro returns the minimal of two operand specified by a and b.
+ Both a and b must be the same numerical types, signed or unsigned.
+
+ @param a The first operand with any numerical type.
+ @param b The second operand. It should be the same any numerical type with a.
+
+ @return Minimum of two operands.
+
+**/
+
+
+
+/**
+ Return the absolute value of a signed operand.
+
+ This macro returns the absolute value of the signed operand specified by a.
+
+ @param a The signed operand.
+
+ @return The absolute value of the signed operand.
+
+**/
+
+
+
+//
+// Status codes common to all execution phases
+//
+typedef UINTN RETURN_STATUS;
+
+/**
+ Produces a RETURN_STATUS code with the highest bit set.
+
+ @param StatusCode The status code value to convert into a warning code.
+ StatusCode must be in the range 0x00000000..0x7FFFFFFF.
+
+ @return The value specified by StatusCode with the highest bit set.
+
+**/
+
+
+/**
+ Produces a RETURN_STATUS code with the highest bit clear.
+
+ @param StatusCode The status code value to convert into a warning code.
+ StatusCode must be in the range 0x00000000..0x7FFFFFFF.
+
+ @return The value specified by StatusCode with the highest bit clear.
+
+**/
+
+
+/**
+ Returns TRUE if a specified RETURN_STATUS code is an error code.
+
+ This function returns TRUE if StatusCode has the high bit set. Otherwise, FALSE is returned.
+
+ @param StatusCode The status code value to evaluate.
+
+ @retval TRUE The high bit of StatusCode is set.
+ @retval FALSE The high bit of StatusCode is clear.
+
+**/
+
+
+///
+/// The operation completed successfully.
+///
+
+
+///
+/// The image failed to load.
+///
+
+
+///
+/// The parameter was incorrect.
+///
+
+
+///
+/// The operation is not supported.
+///
+
+
+///
+/// The buffer was not the proper size for the request.
+///
+
+
+///
+/// The buffer was not large enough to hold the requested data.
+/// The required buffer size is returned in the appropriate
+/// parameter when this error occurs.
+///
+
+
+///
+/// There is no data pending upon return.
+///
+
+
+///
+/// The physical device reported an error while attempting the
+/// operation.
+///
+
+
+///
+/// The device can not be written to.
+///
+
+
+///
+/// The resource has run out.
+///
+
+
+///
+/// An inconsistency was detected on the file system causing the
+/// operation to fail.
+///
+
+
+///
+/// There is no more space on the file system.
+///
+
+
+///
+/// The device does not contain any medium to perform the
+/// operation.
+///
+
+
+///
+/// The medium in the device has changed since the last
+/// access.
+///
+
+
+///
+/// The item was not found.
+///
+
+
+///
+/// Access was denied.
+///
+
+
+///
+/// The server was not found or did not respond to the request.
+///
+
+
+///
+/// A mapping to the device does not exist.
+///
+
+
+///
+/// A timeout time expired.
+///
+
+
+///
+/// The protocol has not been started.
+///
+
+
+///
+/// The protocol has already been started.
+///
+
+
+///
+/// The operation was aborted.
+///
+
+
+///
+/// An ICMP error occurred during the network operation.
+///
+
+
+///
+/// A TFTP error occurred during the network operation.
+///
+
+
+///
+/// A protocol error occurred during the network operation.
+///
+
+
+///
+/// A function encountered an internal version that was
+/// incompatible with a version requested by the caller.
+///
+
+
+///
+/// The function was not performed due to a security violation.
+///
+
+
+///
+/// A CRC error was detected.
+///
+
+
+///
+/// The beginning or end of media was reached.
+///
+
+
+///
+/// The end of the file was reached.
+///
+
+
+///
+/// The language specified was invalid.
+///
+
+
+///
+/// The security status of the data is unknown or compromised
+/// and the data must be updated or replaced to restore a valid
+/// security status.
+///
+
+
+///
+/// A HTTP error occurred during the network operation.
+///
+
+
+///
+/// The string contained one or more characters that
+/// the device could not render and were skipped.
+///
+
+
+///
+/// The handle was closed, but the file was not deleted.
+///
+
+
+///
+/// The handle was closed, but the data to the file was not
+/// flushed properly.
+///
+
+
+///
+/// The resulting buffer was too small, and the data was
+/// truncated to the buffer size.
+///
+
+
+///
+/// The data has not been updated within the timeframe set by
+/// local policy for this type of data.
+///
+
+
+///
+/// The resulting buffer contains UEFI-compliant file system.
+///
+
+
+/**
+ Returns a 16-bit signature built from 2 ASCII characters.
+
+ This macro returns a 16-bit value built from the two ASCII characters specified
+ by A and B.
+
+ @param A The first ASCII character.
+ @param B The second ASCII character.
+
+ @return A 16-bit value built from the two ASCII characters specified by A and B.
+
+**/
+
+
+/**
+ Returns a 32-bit signature built from 4 ASCII characters.
+
+ This macro returns a 32-bit value built from the four ASCII characters specified
+ by A, B, C, and D.
+
+ @param A The first ASCII character.
+ @param B The second ASCII character.
+ @param C The third ASCII character.
+ @param D The fourth ASCII character.
+
+ @return A 32-bit value built from the two ASCII characters specified by A, B,
+ C and D.
+
+**/
+
+
+/**
+ Returns a 64-bit signature built from 8 ASCII characters.
+
+ This macro returns a 64-bit value built from the eight ASCII characters specified
+ by A, B, C, D, E, F, G,and H.
+
+ @param A The first ASCII character.
+ @param B The second ASCII character.
+ @param C The third ASCII character.
+ @param D The fourth ASCII character.
+ @param E The fifth ASCII character.
+ @param F The sixth ASCII character.
+ @param G The seventh ASCII character.
+ @param H The eighth ASCII character.
+
+ @return A 64-bit value built from the two ASCII characters specified by A, B,
+ C, D, E, F, G and H.
+
+**/
+
+
+
+
+void *
+_ReturnAddress (
+ void
+ );
+
+ #pragma intrinsic(_ReturnAddress)
+
+/**
+ Get the return address of the calling function.
+
+ Based on intrinsic function _ReturnAddress that provides the address of
+ the instruction in the calling function that will be executed after
+ control returns to the caller.
+
+ @param L Return Level.
+
+ @return The return address of the calling function or 0 if L != 0.
+
+**/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 1267 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+
+/**
+ Return the number of elements in an array.
+
+ @param Array An object of array type. Array is only used as an argument to
+ the sizeof operator, therefore Array is never evaluated. The
+ caller is responsible for ensuring that Array's type is not
+ incomplete; that is, Array must have known constant size.
+
+ @return The number of elements in Array. The result has type UINTN.
+
+**/
+
+
+#line 1282 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Base.h"
+
+#line 16 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiBaseType.h"
+
+//
+// Basic data type definitions introduced in UEFI.
+//
+
+///
+/// 128-bit buffer containing a unique identifier value.
+///
+typedef GUID EFI_GUID;
+///
+/// Function return status for EFI API.
+///
+typedef RETURN_STATUS EFI_STATUS;
+///
+/// A collection of related interfaces.
+///
+typedef void *EFI_HANDLE;
+///
+/// Handle to an event structure.
+///
+typedef void *EFI_EVENT;
+///
+/// Task priority level.
+///
+typedef UINTN EFI_TPL;
+///
+/// Logical block address.
+///
+typedef UINT64 EFI_LBA;
+
+///
+/// 64-bit physical memory address.
+///
+typedef UINT64 EFI_PHYSICAL_ADDRESS;
+
+///
+/// 64-bit virtual memory address.
+///
+typedef UINT64 EFI_VIRTUAL_ADDRESS;
+
+///
+/// EFI Time Abstraction:
+/// Year: 1900 - 9999
+/// Month: 1 - 12
+/// Day: 1 - 31
+/// Hour: 0 - 23
+/// Minute: 0 - 59
+/// Second: 0 - 59
+/// Nanosecond: 0 - 999,999,999
+/// TimeZone: -1440 to 1440 or 2047
+///
+typedef struct {
+ UINT16 Year;
+ UINT8 Month;
+ UINT8 Day;
+ UINT8 Hour;
+ UINT8 Minute;
+ UINT8 Second;
+ UINT8 Pad1;
+ UINT32 Nanosecond;
+ INT16 TimeZone;
+ UINT8 Daylight;
+ UINT8 Pad2;
+} EFI_TIME;
+
+///
+/// 4-byte buffer. An IPv4 internet protocol address.
+///
+typedef IPv4_ADDRESS EFI_IPv4_ADDRESS;
+
+///
+/// 16-byte buffer. An IPv6 internet protocol address.
+///
+typedef IPv6_ADDRESS EFI_IPv6_ADDRESS;
+
+///
+/// 32-byte buffer containing a network Media Access Control address.
+///
+typedef struct {
+ UINT8 Addr[32];
+} EFI_MAC_ADDRESS;
+
+///
+/// 16-byte buffer aligned on a 4-byte boundary.
+/// An IPv4 or IPv6 internet protocol address.
+///
+typedef union {
+ UINT32 Addr[4];
+ EFI_IPv4_ADDRESS v4;
+ EFI_IPv6_ADDRESS v6;
+} EFI_IP_ADDRESS;
+
+///
+/// Enumeration of EFI_STATUS.
+///@{
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///@}
+
+///
+/// Define macro to encode the status code.
+///
+
+
+
+
+///
+/// ICMP error definitions
+///@{
+
+
+
+
+///@}
+
+///
+/// Tcp connection status definitions
+///@{
+
+
+
+///@}
+
+//
+// The EFI memory allocation functions work in units of EFI_PAGEs that are
+// 4KB. This should in no way be confused with the page size of the processor.
+// An EFI_PAGE is just the quanta of memory in EFI.
+//
+
+
+
+
+/**
+ Macro that converts a size, in bytes, to a number of EFI_PAGESs.
+
+ @param Size A size in bytes. This parameter is assumed to be type UINTN.
+ Passing in a parameter that is larger than UINTN may produce
+ unexpected results.
+
+ @return The number of EFI_PAGESs associated with the number of bytes specified
+ by Size.
+
+**/
+
+
+/**
+ Macro that converts a number of EFI_PAGEs to a size in bytes.
+
+ @param Pages The number of EFI_PAGES. This parameter is assumed to be
+ type UINTN. Passing in a parameter that is larger than
+ UINTN may produce unexpected results.
+
+ @return The number of bytes associated with the number of EFI_PAGEs specified
+ by Pages.
+
+**/
+
+
+///
+/// PE32+ Machine type for IA32 UEFI images.
+///
+
+
+///
+/// PE32+ Machine type for IA64 UEFI images.
+///
+
+
+///
+/// PE32+ Machine type for EBC UEFI images.
+///
+
+
+///
+/// PE32+ Machine type for X64 UEFI images.
+///
+
+
+///
+/// PE32+ Machine type for ARM mixed ARM and Thumb/Thumb2 images.
+///
+
+
+///
+/// PE32+ Machine type for AARCH64 A64 images.
+///
+
+
+///
+/// PE32+ Machine type for RISC-V 32/64/128
+///
+
+
+
+
+
+
+
+
+
+
+
+
+#line 258 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiBaseType.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 296 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiBaseType.h"
+
+
+
+
+
+
+
+
+
+
+
+#line 308 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiBaseType.h"
+
+#line 310 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiBaseType.h"
+#line 14 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\PiDxe.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiSpec.h"
+/** @file
+ Include file that supports UEFI.
+
+ This include file must contain things defined in the UEFI 2.7 specification.
+ If a code construct is defined in the UEFI 2.7 specification it must be included
+ by this include file.
+
+Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.<BR>
+Portions Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
+
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiMultiPhase.h"
+/** @file
+ This includes some definitions introduced in UEFI that will be used in both PEI and DXE phases.
+
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+
+
+
+///
+/// Attributes of variable.
+///
+
+
+
+///
+/// This attribute is identified by the mnemonic 'HR'
+/// elsewhere in this specification.
+///
+
+///
+/// Attributes of Authenticated Variable
+///
+
+
+///
+/// NOTE: EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS is deprecated and should be considered reserved.
+///
+
+
+
+ #line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Guid/WinCertificate.h"
+/** @file
+ GUID for UEFI WIN_CERTIFICATE structure.
+
+ Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ GUID defined in UEFI 2.0 spec.
+**/
+
+
+
+
+//
+// _WIN_CERTIFICATE.wCertificateType
+//
+
+
+
+
+///
+/// The WIN_CERTIFICATE structure is part of the PE/COFF specification.
+///
+typedef struct {
+ ///
+ /// The length of the entire certificate,
+ /// including the length of the header, in bytes.
+ ///
+ UINT32 dwLength;
+ ///
+ /// The revision level of the WIN_CERTIFICATE
+ /// structure. The current revision level is 0x0200.
+ ///
+ UINT16 wRevision;
+ ///
+ /// The certificate type. See WIN_CERT_TYPE_xxx for the UEFI
+ /// certificate types. The UEFI specification reserves the range of
+ /// certificate type values from 0x0EF0 to 0x0EFF.
+ ///
+ UINT16 wCertificateType;
+ ///
+ /// The following is the actual certificate. The format of
+ /// the certificate depends on wCertificateType.
+ ///
+ /// UINT8 bCertificate[ANYSIZE_ARRAY];
+ ///
+} WIN_CERTIFICATE;
+
+///
+/// WIN_CERTIFICATE_UEFI_GUID.CertType
+///
+
+
+
+///
+/// WIN_CERTIFICATE_UEFI_GUID.CertData
+///
+typedef struct {
+ EFI_GUID HashType;
+ UINT8 PublicKey[256];
+ UINT8 Signature[256];
+} EFI_CERT_BLOCK_RSA_2048_SHA256;
+
+///
+/// Certificate which encapsulates a GUID-specific digital signature
+///
+typedef struct {
+ ///
+ /// This is the standard WIN_CERTIFICATE header, where
+ /// wCertificateType is set to WIN_CERT_TYPE_EFI_GUID.
+ ///
+ WIN_CERTIFICATE Hdr;
+ ///
+ /// This is the unique id which determines the
+ /// format of the CertData. .
+ ///
+ EFI_GUID CertType;
+ ///
+ /// The following is the certificate data. The format of
+ /// the data is determined by the CertType.
+ /// If CertType is EFI_CERT_TYPE_RSA2048_SHA256_GUID,
+ /// the CertData will be EFI_CERT_BLOCK_RSA_2048_SHA256 structure.
+ ///
+ UINT8 CertData[1];
+} WIN_CERTIFICATE_UEFI_GUID;
+
+///
+/// Certificate which encapsulates the RSASSA_PKCS1-v1_5 digital signature.
+///
+/// The WIN_CERTIFICATE_UEFI_PKCS1_15 structure is derived from
+/// WIN_CERTIFICATE and encapsulate the information needed to
+/// implement the RSASSA-PKCS1-v1_5 digital signature algorithm as
+/// specified in RFC2437.
+///
+typedef struct {
+ ///
+ /// This is the standard WIN_CERTIFICATE header, where
+ /// wCertificateType is set to WIN_CERT_TYPE_UEFI_PKCS1_15.
+ ///
+ WIN_CERTIFICATE Hdr;
+ ///
+ /// This is the hashing algorithm which was performed on the
+ /// UEFI executable when creating the digital signature.
+ ///
+ EFI_GUID HashAlgorithm;
+ ///
+ /// The following is the actual digital signature. The
+ /// size of the signature is the same size as the key
+ /// (1024-bit key is 128 bytes) and can be determined by
+ /// subtracting the length of the other parts of this header
+ /// from the total length of the certificate as found in
+ /// Hdr.dwLength.
+ ///
+ /// UINT8 Signature[];
+ ///
+} WIN_CERTIFICATE_EFI_PKCS1_15;
+
+extern EFI_GUID gEfiCertTypeRsa2048Sha256Guid;
+
+#line 121 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Guid/WinCertificate.h"
+#line 35 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiMultiPhase.h"
+///
+/// Enumeration of memory types introduced in UEFI.
+///
+typedef enum {
+ ///
+ /// Not used.
+ ///
+ EfiReservedMemoryType,
+ ///
+ /// The code portions of a loaded application.
+ /// (Note that UEFI OS loaders are UEFI applications.)
+ ///
+ EfiLoaderCode,
+ ///
+ /// The data portions of a loaded application and the default data allocation
+ /// type used by an application to allocate pool memory.
+ ///
+ EfiLoaderData,
+ ///
+ /// The code portions of a loaded Boot Services Driver.
+ ///
+ EfiBootServicesCode,
+ ///
+ /// The data portions of a loaded Boot Serves Driver, and the default data
+ /// allocation type used by a Boot Services Driver to allocate pool memory.
+ ///
+ EfiBootServicesData,
+ ///
+ /// The code portions of a loaded Runtime Services Driver.
+ ///
+ EfiRuntimeServicesCode,
+ ///
+ /// The data portions of a loaded Runtime Services Driver and the default
+ /// data allocation type used by a Runtime Services Driver to allocate pool memory.
+ ///
+ EfiRuntimeServicesData,
+ ///
+ /// Free (unallocated) memory.
+ ///
+ EfiConventionalMemory,
+ ///
+ /// Memory in which errors have been detected.
+ ///
+ EfiUnusableMemory,
+ ///
+ /// Memory that holds the ACPI tables.
+ ///
+ EfiACPIReclaimMemory,
+ ///
+ /// Address space reserved for use by the firmware.
+ ///
+ EfiACPIMemoryNVS,
+ ///
+ /// Used by system firmware to request that a memory-mapped IO region
+ /// be mapped by the OS to a virtual address so it can be accessed by EFI runtime services.
+ ///
+ EfiMemoryMappedIO,
+ ///
+ /// System memory-mapped IO region that is used to translate memory
+ /// cycles to IO cycles by the processor.
+ ///
+ EfiMemoryMappedIOPortSpace,
+ ///
+ /// Address space reserved by the firmware for code that is part of the processor.
+ ///
+ EfiPalCode,
+ ///
+ /// A memory region that operates as EfiConventionalMemory,
+ /// however it happens to also support byte-addressable non-volatility.
+ ///
+ EfiPersistentMemory,
+ EfiMaxMemoryType
+} EFI_MEMORY_TYPE;
+
+///
+/// Enumeration of reset types.
+///
+typedef enum {
+ ///
+ /// Used to induce a system-wide reset. This sets all circuitry within the
+ /// system to its initial state. This type of reset is asynchronous to system
+ /// operation and operates withgout regard to cycle boundaries. EfiColdReset
+ /// is tantamount to a system power cycle.
+ ///
+ EfiResetCold,
+ ///
+ /// Used to induce a system-wide initialization. The processors are set to their
+ /// initial state, and pending cycles are not corrupted. If the system does
+ /// not support this reset type, then an EfiResetCold must be performed.
+ ///
+ EfiResetWarm,
+ ///
+ /// Used to induce an entry into a power state equivalent to the ACPI G2/S5 or G3
+ /// state. If the system does not support this reset type, then when the system
+ /// is rebooted, it should exhibit the EfiResetCold attributes.
+ ///
+ EfiResetShutdown,
+ ///
+ /// Used to induce a system-wide reset. The exact type of the reset is defined by
+ /// the EFI_GUID that follows the Null-terminated Unicode string passed into
+ /// ResetData. If the platform does not recognize the EFI_GUID in ResetData the
+ /// platform must pick a supported reset type to perform. The platform may
+ /// optionally log the parameters from any non-normal reset that occurs.
+ ///
+ EfiResetPlatformSpecific
+} EFI_RESET_TYPE;
+
+///
+/// Data structure that precedes all of the standard EFI table types.
+///
+typedef struct {
+ ///
+ /// A 64-bit signature that identifies the type of table that follows.
+ /// Unique signatures have been generated for the EFI System Table,
+ /// the EFI Boot Services Table, and the EFI Runtime Services Table.
+ ///
+ UINT64 Signature;
+ ///
+ /// The revision of the EFI Specification to which this table
+ /// conforms. The upper 16 bits of this field contain the major
+ /// revision value, and the lower 16 bits contain the minor revision
+ /// value. The minor revision values are limited to the range of 00..99.
+ ///
+ UINT32 Revision;
+ ///
+ /// The size, in bytes, of the entire table including the EFI_TABLE_HEADER.
+ ///
+ UINT32 HeaderSize;
+ ///
+ /// The 32-bit CRC for the entire table. This value is computed by
+ /// setting this field to 0, and computing the 32-bit CRC for HeaderSize bytes.
+ ///
+ UINT32 CRC32;
+ ///
+ /// Reserved field that must be set to 0.
+ ///
+ UINT32 Reserved;
+} EFI_TABLE_HEADER;
+
+///
+/// AuthInfo is a WIN_CERTIFICATE using the wCertificateType
+/// WIN_CERTIFICATE_UEFI_GUID and the CertType
+/// EFI_CERT_TYPE_RSA2048_SHA256_GUID. If the attribute specifies
+/// authenticated access, then the Data buffer should begin with an
+/// authentication descriptor prior to the data payload and DataSize
+/// should reflect the the data.and descriptor size. The caller
+/// shall digest the Monotonic Count value and the associated data
+/// for the variable update using the SHA-256 1-way hash algorithm.
+/// The ensuing the 32-byte digest will be signed using the private
+/// key associated w/ the public/private 2048-bit RSA key-pair. The
+/// WIN_CERTIFICATE shall be used to describe the signature of the
+/// Variable data *Data. In addition, the signature will also
+/// include the MonotonicCount value to guard against replay attacks.
+///
+typedef struct {
+ ///
+ /// Included in the signature of
+ /// AuthInfo.Used to ensure freshness/no
+ /// replay. Incremented during each
+ /// "Write" access.
+ ///
+ UINT64 MonotonicCount;
+ ///
+ /// Provides the authorization for the variable
+ /// access. It is a signature across the
+ /// variable data and the Monotonic Count
+ /// value. Caller uses Private key that is
+ /// associated with a public key that has been
+ /// provisioned via the key exchange.
+ ///
+ WIN_CERTIFICATE_UEFI_GUID AuthInfo;
+} EFI_VARIABLE_AUTHENTICATION;
+
+///
+/// When the attribute EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS is
+/// set, then the Data buffer shall begin with an instance of a complete (and serialized)
+/// EFI_VARIABLE_AUTHENTICATION_2 descriptor. The descriptor shall be followed by the new
+/// variable value and DataSize shall reflect the combined size of the descriptor and the new
+/// variable value. The authentication descriptor is not part of the variable data and is not
+/// returned by subsequent calls to GetVariable().
+///
+typedef struct {
+ ///
+ /// For the TimeStamp value, components Pad1, Nanosecond, TimeZone, Daylight and
+ /// Pad2 shall be set to 0. This means that the time shall always be expressed in GMT.
+ ///
+ EFI_TIME TimeStamp;
+ ///
+ /// Only a CertType of EFI_CERT_TYPE_PKCS7_GUID is accepted.
+ ///
+ WIN_CERTIFICATE_UEFI_GUID AuthInfo;
+} EFI_VARIABLE_AUTHENTICATION_2;
+#line 228 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiMultiPhase.h"
+
+#line 230 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiMultiPhase.h"
+#line 19 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiSpec.h"
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Protocol/DevicePath.h"
+/** @file
+ The device path protocol as defined in UEFI 2.0.
+
+ The device path represents a programmatic path to a device,
+ from a software point of view. The path must persist from boot to boot, so
+ it can not contain things like PCI bus numbers that change from boot to boot.
+
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Guid/PcAnsi.h"
+/** @file
+ Terminal Device Path Vendor Guid.
+
+ Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ GUIDs defined in UEFI 2.0 spec.
+
+**/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern EFI_GUID gEfiPcAnsiGuid;
+extern EFI_GUID gEfiVT100Guid;
+extern EFI_GUID gEfiVT100PlusGuid;
+extern EFI_GUID gEfiVTUTF8Guid;
+extern EFI_GUID gEfiUartDevicePathGuid;
+extern EFI_GUID gEfiSasDevicePathGuid;
+
+#line 53 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Guid/PcAnsi.h"
+#line 17 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Protocol/DevicePath.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/Bluetooth.h"
+/** @file
+ This file contains the Bluetooth definitions that are consumed by drivers.
+ These definitions are from Bluetooth Core Specification Version 4.0 June, 2010
+
+ Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+
+
+
+#pragma pack(1)
+
+///
+/// BLUETOOTH_ADDRESS
+///
+typedef struct {
+ ///
+ /// 48bit Bluetooth device address.
+ ///
+ UINT8 Address[6];
+} BLUETOOTH_ADDRESS;
+
+///
+/// BLUETOOTH_CLASS_OF_DEVICE. See Bluetooth specification for detail.
+///
+typedef struct {
+ UINT8 FormatType : 2;
+ UINT8 MinorDeviceClass : 6;
+ UINT16 MajorDeviceClass : 5;
+ UINT16 MajorServiceClass : 11;
+} BLUETOOTH_CLASS_OF_DEVICE;
+
+///
+/// BLUETOOTH_LE_ADDRESS
+///
+typedef struct {
+ ///
+ /// 48-bit Bluetooth device address
+ ///
+ UINT8 Address[6];
+ ///
+ /// 0x00 - Public Device Address
+ /// 0x01 - Random Device Address
+ ///
+ UINT8 Type;
+} BLUETOOTH_LE_ADDRESS;
+
+#pragma pack()
+
+
+
+
+
+#line 57 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/Bluetooth.h"
+#line 18 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Protocol/DevicePath.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/Acpi60.h"
+/** @file
+ ACPI 6.0 definitions from the ACPI Specification Revision 6.0 Errata A January, 2016.
+
+ Copyright (c) 2015 - 2022, Intel Corporation. All rights reserved.<BR>
+ (C) Copyright 2015-2016 Hewlett Packard Enterprise Development LP<BR>
+ Copyright (c) 2020, ARM Ltd. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/Acpi51.h"
+/** @file
+ ACPI 5.1 definitions from the ACPI Specification Revision 5.1 Errata B January, 2016.
+
+ Copyright (c) 2014 Hewlett-Packard Development Company, L.P.<BR>
+ Copyright (c) 2014 - 2022, Intel Corporation. All rights reserved.<BR>
+ (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>
+ Copyright (c) 2020, ARM Ltd. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/Acpi50.h"
+/** @file
+ ACPI 5.0 definitions from the ACPI Specification Revision 5.0a November 13, 2013.
+
+ Copyright (c) 2014 Hewlett-Packard Development Company, L.P.<BR>
+ Copyright (c) 2011 - 2022, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2020, ARM Ltd. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/Acpi40.h"
+/** @file
+ ACPI 4.0 definitions from the ACPI Specification Revision 4.0a April 5, 2010
+
+ Copyright (c) 2010 - 2022, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/Acpi30.h"
+/** @file
+ ACPI 3.0 definitions from the ACPI Specification Revision 3.0b October 10, 2006
+
+ Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/Acpi20.h"
+/** @file
+ ACPI 2.0 definitions from the ACPI Specification, revision 2.0
+
+ Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/Acpi10.h"
+/** @file
+ ACPI 1.0b definitions from the ACPI Specification, revision 1.0b
+
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2020, Arm Limited. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/AcpiAml.h"
+/** @file
+ This file contains AML code definition in the latest ACPI spec.
+
+ Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2019 - 2021, Arm Limited. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+
+
+
+//
+// ACPI AML definition
+//
+
+//
+// Primary OpCode
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+//
+// Extended OpCode
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+//
+// FieldElement OpCode
+//
+
+
+
+
+
+//
+// AML Name segment definitions
+//
+
+
+#line 185 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/AcpiAml.h"
+#line 13 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/Acpi10.h"
+
+///
+/// Common table header, this prefaces all ACPI tables, including FACS, but
+/// excluding the RSD PTR structure.
+///
+typedef struct {
+ UINT32 Signature;
+ UINT32 Length;
+} EFI_ACPI_COMMON_HEADER;
+
+#pragma pack(1)
+///
+/// The common ACPI description table header. This structure prefaces most ACPI tables.
+///
+typedef struct {
+ UINT32 Signature;
+ UINT32 Length;
+ UINT8 Revision;
+ UINT8 Checksum;
+ UINT8 OemId[6];
+ UINT64 OemTableId;
+ UINT32 OemRevision;
+ UINT32 CreatorId;
+ UINT32 CreatorRevision;
+} EFI_ACPI_DESCRIPTION_HEADER;
+#pragma pack()
+
+//
+// Define for Descriptor
+//
+
+
+
+//
+// Small Item Descriptor Name
+//
+
+
+
+
+
+
+
+
+
+//
+// Large Item Descriptor Name
+//
+
+
+
+
+
+
+
+
+
+//
+// Small Item Descriptor Value
+//
+
+
+
+
+
+
+
+
+
+
+//
+// Large Item Descriptor Value
+//
+
+
+
+
+
+
+
+
+
+//
+// Resource Type
+//
+
+
+
+
+///
+/// Power Management Timer frequency is fixed at 3.579545MHz.
+///
+
+
+//
+// Ensure proper structure formats
+//
+#pragma pack(1)
+
+///
+/// The common definition of QWORD, DWORD, and WORD
+/// Address Space Descriptors.
+///
+typedef struct {
+ UINT8 Desc;
+ UINT16 Len;
+ UINT8 ResType;
+ UINT8 GenFlag;
+ UINT8 SpecificFlag;
+ UINT64 AddrSpaceGranularity;
+ UINT64 AddrRangeMin;
+ UINT64 AddrRangeMax;
+ UINT64 AddrTranslationOffset;
+ UINT64 AddrLen;
+} EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR;
+
+typedef union {
+ UINT8 Byte;
+ struct {
+ UINT8 Length : 3;
+ UINT8 Name : 4;
+ UINT8 Type : 1;
+ } Bits;
+} ACPI_SMALL_RESOURCE_HEADER;
+
+typedef struct {
+ union {
+ UINT8 Byte;
+ struct {
+ UINT8 Name : 7;
+ UINT8 Type : 1;
+ } Bits;
+ } Header;
+ UINT16 Length;
+} ACPI_LARGE_RESOURCE_HEADER;
+
+///
+/// IRQ Descriptor.
+///
+typedef struct {
+ ACPI_SMALL_RESOURCE_HEADER Header;
+ UINT16 Mask;
+} EFI_ACPI_IRQ_NOFLAG_DESCRIPTOR;
+
+///
+/// IRQ Descriptor.
+///
+typedef struct {
+ ACPI_SMALL_RESOURCE_HEADER Header;
+ UINT16 Mask;
+ UINT8 Information;
+} EFI_ACPI_IRQ_DESCRIPTOR;
+
+///
+/// DMA Descriptor.
+///
+typedef struct {
+ ACPI_SMALL_RESOURCE_HEADER Header;
+ UINT8 ChannelMask;
+ UINT8 Information;
+} EFI_ACPI_DMA_DESCRIPTOR;
+
+///
+/// I/O Port Descriptor
+///
+typedef struct {
+ ACPI_SMALL_RESOURCE_HEADER Header;
+ UINT8 Information;
+ UINT16 BaseAddressMin;
+ UINT16 BaseAddressMax;
+ UINT8 Alignment;
+ UINT8 Length;
+} EFI_ACPI_IO_PORT_DESCRIPTOR;
+
+///
+/// Fixed Location I/O Port Descriptor.
+///
+typedef struct {
+ ACPI_SMALL_RESOURCE_HEADER Header;
+ UINT16 BaseAddress;
+ UINT8 Length;
+} EFI_ACPI_FIXED_LOCATION_IO_PORT_DESCRIPTOR;
+
+///
+/// 24-Bit Memory Range Descriptor
+///
+typedef struct {
+ ACPI_LARGE_RESOURCE_HEADER Header;
+ UINT8 Information;
+ UINT16 BaseAddressMin;
+ UINT16 BaseAddressMax;
+ UINT16 Alignment;
+ UINT16 Length;
+} EFI_ACPI_24_BIT_MEMORY_RANGE_DESCRIPTOR;
+
+///
+/// 32-Bit Memory Range Descriptor
+///
+typedef struct {
+ ACPI_LARGE_RESOURCE_HEADER Header;
+ UINT8 Information;
+ UINT32 BaseAddressMin;
+ UINT32 BaseAddressMax;
+ UINT32 Alignment;
+ UINT32 Length;
+} EFI_ACPI_32_BIT_MEMORY_RANGE_DESCRIPTOR;
+
+///
+/// Fixed 32-Bit Fixed Memory Range Descriptor
+///
+typedef struct {
+ ACPI_LARGE_RESOURCE_HEADER Header;
+ UINT8 Information;
+ UINT32 BaseAddress;
+ UINT32 Length;
+} EFI_ACPI_32_BIT_FIXED_MEMORY_RANGE_DESCRIPTOR;
+
+///
+/// QWORD Address Space Descriptor
+///
+typedef struct {
+ ACPI_LARGE_RESOURCE_HEADER Header;
+ UINT8 ResType;
+ UINT8 GenFlag;
+ UINT8 SpecificFlag;
+ UINT64 AddrSpaceGranularity;
+ UINT64 AddrRangeMin;
+ UINT64 AddrRangeMax;
+ UINT64 AddrTranslationOffset;
+ UINT64 AddrLen;
+} EFI_ACPI_QWORD_ADDRESS_SPACE_DESCRIPTOR;
+
+///
+/// DWORD Address Space Descriptor
+///
+typedef struct {
+ ACPI_LARGE_RESOURCE_HEADER Header;
+ UINT8 ResType;
+ UINT8 GenFlag;
+ UINT8 SpecificFlag;
+ UINT32 AddrSpaceGranularity;
+ UINT32 AddrRangeMin;
+ UINT32 AddrRangeMax;
+ UINT32 AddrTranslationOffset;
+ UINT32 AddrLen;
+} EFI_ACPI_DWORD_ADDRESS_SPACE_DESCRIPTOR;
+
+///
+/// WORD Address Space Descriptor
+///
+typedef struct {
+ ACPI_LARGE_RESOURCE_HEADER Header;
+ UINT8 ResType;
+ UINT8 GenFlag;
+ UINT8 SpecificFlag;
+ UINT16 AddrSpaceGranularity;
+ UINT16 AddrRangeMin;
+ UINT16 AddrRangeMax;
+ UINT16 AddrTranslationOffset;
+ UINT16 AddrLen;
+} EFI_ACPI_WORD_ADDRESS_SPACE_DESCRIPTOR;
+
+///
+/// Extended Interrupt Descriptor
+///
+typedef struct {
+ ACPI_LARGE_RESOURCE_HEADER Header;
+ UINT8 InterruptVectorFlags;
+ UINT8 InterruptTableLength;
+ UINT32 InterruptNumber[1];
+} EFI_ACPI_EXTENDED_INTERRUPT_DESCRIPTOR;
+
+#pragma pack()
+
+///
+/// The End tag identifies an end of resource data.
+///
+typedef struct {
+ UINT8 Desc;
+ UINT8 Checksum;
+} EFI_ACPI_END_TAG_DESCRIPTOR;
+
+//
+// General use definitions
+//
+
+
+
+
+
+//
+// Resource Type Specific Flags
+// Ref ACPI specification 6.4.3.5.5
+//
+// Bit [0] : Write Status, _RW
+//
+
+
+//
+// Bit [2:1] : Memory Attributes, _MEM
+//
+
+
+
+
+//
+// Bit [4:3] : Memory Attributes, _MTP
+//
+
+
+
+
+//
+// Bit [5] : Memory to I/O Translation, _TTP
+//
+
+
+
+//
+// IRQ Information
+// Ref ACPI specification 6.4.2.1
+//
+
+
+
+
+
+
+
+
+
+
+
+//
+// DMA Information
+// Ref ACPI specification 6.4.2.2
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+//
+// IO Information
+// Ref ACPI specification 6.4.2.5
+//
+
+
+
+
+//
+// Memory Information
+// Ref ACPI specification 6.4.3.4
+//
+
+
+
+
+//
+// Interrupt Vector Flags definitions for Extended Interrupt Descriptor
+// Ref ACPI specification 6.4.3.6
+//
+
+
+
+
+
+
+//
+// Ensure proper structure formats
+//
+#pragma pack(1)
+//
+// ACPI 1.0b table structures
+//
+
+///
+/// Root System Description Pointer Structure.
+///
+typedef struct {
+ UINT64 Signature;
+ UINT8 Checksum;
+ UINT8 OemId[6];
+ UINT8 Reserved;
+ UINT32 RsdtAddress;
+} EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER;
+
+//
+// Root System Description Table
+// No definition needed as it is a common description table header, the same with
+// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers.
+//
+
+///
+/// RSDT Revision (as defined in ACPI 1.0b specification).
+///
+
+
+///
+/// Fixed ACPI Description Table Structure (FADT).
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 FirmwareCtrl;
+ UINT32 Dsdt;
+ UINT8 IntModel;
+ UINT8 Reserved1;
+ UINT16 SciInt;
+ UINT32 SmiCmd;
+ UINT8 AcpiEnable;
+ UINT8 AcpiDisable;
+ UINT8 S4BiosReq;
+ UINT8 Reserved2;
+ UINT32 Pm1aEvtBlk;
+ UINT32 Pm1bEvtBlk;
+ UINT32 Pm1aCntBlk;
+ UINT32 Pm1bCntBlk;
+ UINT32 Pm2CntBlk;
+ UINT32 PmTmrBlk;
+ UINT32 Gpe0Blk;
+ UINT32 Gpe1Blk;
+ UINT8 Pm1EvtLen;
+ UINT8 Pm1CntLen;
+ UINT8 Pm2CntLen;
+ UINT8 PmTmLen;
+ UINT8 Gpe0BlkLen;
+ UINT8 Gpe1BlkLen;
+ UINT8 Gpe1Base;
+ UINT8 Reserved3;
+ UINT16 PLvl2Lat;
+ UINT16 PLvl3Lat;
+ UINT16 FlushSize;
+ UINT16 FlushStride;
+ UINT8 DutyOffset;
+ UINT8 DutyWidth;
+ UINT8 DayAlrm;
+ UINT8 MonAlrm;
+ UINT8 Century;
+ UINT8 Reserved4;
+ UINT8 Reserved5;
+ UINT8 Reserved6;
+ UINT32 Flags;
+} EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE;
+
+///
+/// FADT Version (as defined in ACPI 1.0b specification).
+///
+
+
+
+
+
+//
+// Fixed ACPI Description Table Fixed Feature Flags
+// All other bits are reserved and must be set to 0.
+//
+
+
+
+
+
+
+
+
+
+
+
+///
+/// Firmware ACPI Control Structure.
+///
+typedef struct {
+ UINT32 Signature;
+ UINT32 Length;
+ UINT32 HardwareSignature;
+ UINT32 FirmwareWakingVector;
+ UINT32 GlobalLock;
+ UINT32 Flags;
+ UINT8 Reserved[40];
+} EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE;
+
+///
+/// Firmware Control Structure Feature Flags.
+/// All other bits are reserved and must be set to 0.
+///
+
+
+///
+/// Multiple APIC Description Table header definition. The rest of the table
+/// must be defined in a platform-specific manner.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 LocalApicAddress;
+ UINT32 Flags;
+} EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;
+
+///
+/// MADT Revision (as defined in ACPI 1.0b specification).
+///
+
+
+///
+/// Multiple APIC Flags
+/// All other bits are reserved and must be set to 0.
+///
+
+
+//
+// Multiple APIC Description Table APIC structure types
+// All other values between 0x05 an 0xFF are reserved and
+// will be ignored by OSPM.
+//
+
+
+
+
+
+
+//
+// APIC Structure Definitions
+//
+
+///
+/// Processor Local APIC Structure Definition.
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 AcpiProcessorId;
+ UINT8 ApicId;
+ UINT32 Flags;
+} EFI_ACPI_1_0_PROCESSOR_LOCAL_APIC_STRUCTURE;
+
+///
+/// Local APIC Flags. All other bits are reserved and must be 0.
+///
+
+
+///
+/// IO APIC Structure.
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 IoApicId;
+ UINT8 Reserved;
+ UINT32 IoApicAddress;
+ UINT32 SystemVectorBase;
+} EFI_ACPI_1_0_IO_APIC_STRUCTURE;
+
+///
+/// Interrupt Source Override Structure.
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 Bus;
+ UINT8 Source;
+ UINT32 GlobalSystemInterruptVector;
+ UINT16 Flags;
+} EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE;
+
+///
+/// Non-Maskable Interrupt Source Structure.
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Flags;
+ UINT32 GlobalSystemInterruptVector;
+} EFI_ACPI_1_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE;
+
+///
+/// Local APIC NMI Structure.
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 AcpiProcessorId;
+ UINT16 Flags;
+ UINT8 LocalApicInti;
+} EFI_ACPI_1_0_LOCAL_APIC_NMI_STRUCTURE;
+
+///
+/// Smart Battery Description Table (SBST)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 WarningEnergyLevel;
+ UINT32 LowEnergyLevel;
+ UINT32 CriticalEnergyLevel;
+} EFI_ACPI_1_0_SMART_BATTERY_DESCRIPTION_TABLE;
+
+//
+// Known table signatures
+//
+
+///
+/// "RSD PTR " Root System Description Pointer.
+///
+
+
+///
+/// "APIC" Multiple APIC Description Table.
+///
+
+
+///
+/// "DSDT" Differentiated System Description Table.
+///
+
+
+///
+/// "FACS" Firmware ACPI Control Structure.
+///
+
+
+///
+/// "FACP" Fixed ACPI Description Table.
+///
+
+
+///
+/// "PSDT" Persistent System Description Table.
+///
+
+
+///
+/// "RSDT" Root System Description Table.
+///
+
+
+///
+/// "SBST" Smart Battery Specification Table.
+///
+
+
+///
+/// "SSDT" Secondary System Description Table.
+///
+
+
+#pragma pack()
+
+#line 667 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/Acpi10.h"
+#line 12 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/Acpi20.h"
+
+//
+// Define for Descriptor
+//
+
+
+
+
+//
+// Ensure proper structure formats
+//
+#pragma pack(1)
+
+///
+/// Generic Register Descriptor
+///
+typedef struct {
+ ACPI_LARGE_RESOURCE_HEADER Header;
+ UINT8 AddressSpaceId;
+ UINT8 RegisterBitWidth;
+ UINT8 RegisterBitOffset;
+ UINT8 AddressSize;
+ UINT64 RegisterAddress;
+} EFI_ACPI_GENERIC_REGISTER_DESCRIPTOR;
+
+#pragma pack()
+
+//
+// Ensure proper structure formats
+//
+#pragma pack(1)
+
+///
+/// ACPI 2.0 Generic Address Space definition
+///
+typedef struct {
+ UINT8 AddressSpaceId;
+ UINT8 RegisterBitWidth;
+ UINT8 RegisterBitOffset;
+ UINT8 Reserved;
+ UINT64 Address;
+} EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE;
+
+//
+// Generic Address Space Address IDs
+//
+
+
+
+
+
+
+
+//
+// ACPI 2.0 table structures
+//
+
+///
+/// Root System Description Pointer Structure
+///
+typedef struct {
+ UINT64 Signature;
+ UINT8 Checksum;
+ UINT8 OemId[6];
+ UINT8 Revision;
+ UINT32 RsdtAddress;
+ UINT32 Length;
+ UINT64 XsdtAddress;
+ UINT8 ExtendedChecksum;
+ UINT8 Reserved[3];
+} EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER;
+
+///
+/// RSD_PTR Revision (as defined in ACPI 2.0 spec.)
+///
+
+
+///
+/// Common table header, this prefaces all ACPI tables, including FACS, but
+/// excluding the RSD PTR structure
+///
+typedef struct {
+ UINT32 Signature;
+ UINT32 Length;
+} EFI_ACPI_2_0_COMMON_HEADER;
+
+//
+// Root System Description Table
+// No definition needed as it is a common description table header, the same with
+// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers.
+//
+
+///
+/// RSDT Revision (as defined in ACPI 2.0 spec.)
+///
+
+
+//
+// Extended System Description Table
+// No definition needed as it is a common description table header, the same with
+// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers.
+//
+
+///
+/// XSDT Revision (as defined in ACPI 2.0 spec.)
+///
+
+
+///
+/// Fixed ACPI Description Table Structure (FADT)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 FirmwareCtrl;
+ UINT32 Dsdt;
+ UINT8 Reserved0;
+ UINT8 PreferredPmProfile;
+ UINT16 SciInt;
+ UINT32 SmiCmd;
+ UINT8 AcpiEnable;
+ UINT8 AcpiDisable;
+ UINT8 S4BiosReq;
+ UINT8 PstateCnt;
+ UINT32 Pm1aEvtBlk;
+ UINT32 Pm1bEvtBlk;
+ UINT32 Pm1aCntBlk;
+ UINT32 Pm1bCntBlk;
+ UINT32 Pm2CntBlk;
+ UINT32 PmTmrBlk;
+ UINT32 Gpe0Blk;
+ UINT32 Gpe1Blk;
+ UINT8 Pm1EvtLen;
+ UINT8 Pm1CntLen;
+ UINT8 Pm2CntLen;
+ UINT8 PmTmrLen;
+ UINT8 Gpe0BlkLen;
+ UINT8 Gpe1BlkLen;
+ UINT8 Gpe1Base;
+ UINT8 CstCnt;
+ UINT16 PLvl2Lat;
+ UINT16 PLvl3Lat;
+ UINT16 FlushSize;
+ UINT16 FlushStride;
+ UINT8 DutyOffset;
+ UINT8 DutyWidth;
+ UINT8 DayAlrm;
+ UINT8 MonAlrm;
+ UINT8 Century;
+ UINT16 IaPcBootArch;
+ UINT8 Reserved1;
+ UINT32 Flags;
+ EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE ResetReg;
+ UINT8 ResetValue;
+ UINT8 Reserved2[3];
+ UINT64 XFirmwareCtrl;
+ UINT64 XDsdt;
+ EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk;
+ EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk;
+ EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk;
+ EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk;
+ EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk;
+ EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk;
+ EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk;
+ EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk;
+} EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE;
+
+///
+/// FADT Version (as defined in ACPI 2.0 spec.)
+///
+
+
+//
+// Fixed ACPI Description Table Preferred Power Management Profile
+//
+
+
+
+
+
+
+
+
+//
+// Fixed ACPI Description Table Boot Architecture Flags
+// All other bits are reserved and must be set to 0.
+//
+
+
+
+//
+// Fixed ACPI Description Table Fixed Feature Flags
+// All other bits are reserved and must be set to 0.
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// Firmware ACPI Control Structure
+///
+typedef struct {
+ UINT32 Signature;
+ UINT32 Length;
+ UINT32 HardwareSignature;
+ UINT32 FirmwareWakingVector;
+ UINT32 GlobalLock;
+ UINT32 Flags;
+ UINT64 XFirmwareWakingVector;
+ UINT8 Version;
+ UINT8 Reserved[31];
+} EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE;
+
+///
+/// FACS Version (as defined in ACPI 2.0 spec.)
+///
+
+
+///
+/// Firmware Control Structure Feature Flags
+/// All other bits are reserved and must be set to 0.
+///
+
+
+///
+/// Multiple APIC Description Table header definition. The rest of the table
+/// must be defined in a platform specific manner.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 LocalApicAddress;
+ UINT32 Flags;
+} EFI_ACPI_2_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;
+
+///
+/// MADT Revision (as defined in ACPI 2.0 spec.)
+///
+
+
+///
+/// Multiple APIC Flags
+/// All other bits are reserved and must be set to 0.
+///
+
+
+//
+// Multiple APIC Description Table APIC structure types
+// All other values between 0x09 an 0xFF are reserved and
+// will be ignored by OSPM.
+//
+
+
+
+
+
+
+
+
+
+
+//
+// APIC Structure Definitions
+//
+
+///
+/// Processor Local APIC Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 AcpiProcessorId;
+ UINT8 ApicId;
+ UINT32 Flags;
+} EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE;
+
+///
+/// Local APIC Flags. All other bits are reserved and must be 0.
+///
+
+
+///
+/// IO APIC Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 IoApicId;
+ UINT8 Reserved;
+ UINT32 IoApicAddress;
+ UINT32 GlobalSystemInterruptBase;
+} EFI_ACPI_2_0_IO_APIC_STRUCTURE;
+
+///
+/// Interrupt Source Override Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 Bus;
+ UINT8 Source;
+ UINT32 GlobalSystemInterrupt;
+ UINT16 Flags;
+} EFI_ACPI_2_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE;
+
+///
+/// Non-Maskable Interrupt Source Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Flags;
+ UINT32 GlobalSystemInterrupt;
+} EFI_ACPI_2_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE;
+
+///
+/// Local APIC NMI Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 AcpiProcessorId;
+ UINT16 Flags;
+ UINT8 LocalApicLint;
+} EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE;
+
+///
+/// Local APIC Address Override Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Reserved;
+ UINT64 LocalApicAddress;
+} EFI_ACPI_2_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE;
+
+///
+/// IO SAPIC Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 IoApicId;
+ UINT8 Reserved;
+ UINT32 GlobalSystemInterruptBase;
+ UINT64 IoSapicAddress;
+} EFI_ACPI_2_0_IO_SAPIC_STRUCTURE;
+
+///
+/// Local SAPIC Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 AcpiProcessorId;
+ UINT8 LocalSapicId;
+ UINT8 LocalSapicEid;
+ UINT8 Reserved[3];
+ UINT32 Flags;
+} EFI_ACPI_2_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE;
+
+///
+/// Platform Interrupt Sources Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Flags;
+ UINT8 InterruptType;
+ UINT8 ProcessorId;
+ UINT8 ProcessorEid;
+ UINT8 IoSapicVector;
+ UINT32 GlobalSystemInterrupt;
+ UINT32 Reserved;
+} EFI_ACPI_2_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE;
+
+///
+/// Smart Battery Description Table (SBST)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 WarningEnergyLevel;
+ UINT32 LowEnergyLevel;
+ UINT32 CriticalEnergyLevel;
+} EFI_ACPI_2_0_SMART_BATTERY_DESCRIPTION_TABLE;
+
+///
+/// SBST Version (as defined in ACPI 2.0 spec.)
+///
+
+
+///
+/// Embedded Controller Boot Resources Table (ECDT)
+/// The table is followed by a null terminated ASCII string that contains
+/// a fully qualified reference to the name space object.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE EcControl;
+ EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE EcData;
+ UINT32 Uid;
+ UINT8 GpeBit;
+} EFI_ACPI_2_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE;
+
+///
+/// ECDT Version (as defined in ACPI 2.0 spec.)
+///
+
+
+//
+// Known table signatures
+//
+
+///
+/// "RSD PTR " Root System Description Pointer
+///
+
+
+///
+/// "SPIC" Multiple SAPIC Description Table
+///
+/// BUGBUG: Don't know where this came from except SR870BN4 uses it.
+/// #define EFI_ACPI_2_0_MULTIPLE_SAPIC_DESCRIPTION_TABLE_SIGNATURE 0x43495053
+///
+
+
+///
+/// "BOOT" MS Simple Boot Spec
+///
+
+
+///
+/// "DBGP" MS Bebug Port Spec
+///
+
+
+///
+/// "DSDT" Differentiated System Description Table
+///
+
+
+///
+/// "ECDT" Embedded Controller Boot Resources Table
+///
+
+
+///
+/// "ETDT" Event Timer Description Table
+///
+
+
+///
+/// "FACS" Firmware ACPI Control Structure
+///
+
+
+///
+/// "FACP" Fixed ACPI Description Table
+///
+
+
+///
+/// "APIC" Multiple APIC Description Table
+///
+
+
+///
+/// "PSDT" Persistent System Description Table
+///
+
+
+///
+/// "RSDT" Root System Description Table
+///
+
+
+///
+/// "SBST" Smart Battery Specification Table
+///
+
+
+///
+/// "SLIT" System Locality Information Table
+///
+
+
+///
+/// "SPCR" Serial Port Console Redirection Table
+///
+
+
+///
+/// "SRAT" Static Resource Affinity Table
+///
+
+
+///
+/// "SSDT" Secondary System Description Table
+///
+
+
+///
+/// "SPMI" Server Platform Management Interface Table
+///
+
+
+///
+/// "XSDT" Extended System Description Table
+///
+
+
+///
+/// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table
+///
+
+
+#pragma pack()
+
+#line 540 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/Acpi20.h"
+#line 12 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/Acpi30.h"
+
+//
+// Define for Descriptor
+//
+
+
+
+
+//
+// Ensure proper structure formats
+//
+#pragma pack(1)
+
+///
+/// Extended Address Space Descriptor
+///
+typedef struct {
+ ACPI_LARGE_RESOURCE_HEADER Header;
+ UINT8 ResType;
+ UINT8 GenFlag;
+ UINT8 SpecificFlag;
+ UINT8 RevisionId;
+ UINT8 Reserved;
+ UINT64 AddrSpaceGranularity;
+ UINT64 AddrRangeMin;
+ UINT64 AddrRangeMax;
+ UINT64 AddrTranslationOffset;
+ UINT64 AddrLen;
+ UINT64 TypeSpecificAttribute;
+} EFI_ACPI_EXTENDED_ADDRESS_SPACE_DESCRIPTOR;
+
+#pragma pack()
+
+//
+// Memory Type Specific Flags
+//
+
+
+
+
+
+
+
+//
+// Ensure proper structure formats
+//
+#pragma pack(1)
+
+///
+/// ACPI 3.0 Generic Address Space definition
+///
+typedef struct {
+ UINT8 AddressSpaceId;
+ UINT8 RegisterBitWidth;
+ UINT8 RegisterBitOffset;
+ UINT8 AccessSize;
+ UINT64 Address;
+} EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE;
+
+//
+// Generic Address Space Address IDs
+//
+
+
+
+
+
+
+
+//
+// Generic Address Space Access Sizes
+//
+
+
+
+
+
+
+//
+// ACPI 3.0 table structures
+//
+
+///
+/// Root System Description Pointer Structure
+///
+typedef struct {
+ UINT64 Signature;
+ UINT8 Checksum;
+ UINT8 OemId[6];
+ UINT8 Revision;
+ UINT32 RsdtAddress;
+ UINT32 Length;
+ UINT64 XsdtAddress;
+ UINT8 ExtendedChecksum;
+ UINT8 Reserved[3];
+} EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER;
+
+///
+/// RSD_PTR Revision (as defined in ACPI 3.0b spec.)
+///
+
+
+///
+/// Common table header, this prefaces all ACPI tables, including FACS, but
+/// excluding the RSD PTR structure
+///
+typedef struct {
+ UINT32 Signature;
+ UINT32 Length;
+} EFI_ACPI_3_0_COMMON_HEADER;
+
+//
+// Root System Description Table
+// No definition needed as it is a common description table header, the same with
+// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers.
+//
+
+///
+/// RSDT Revision (as defined in ACPI 3.0 spec.)
+///
+
+
+//
+// Extended System Description Table
+// No definition needed as it is a common description table header, the same with
+// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers.
+//
+
+///
+/// XSDT Revision (as defined in ACPI 3.0 spec.)
+///
+
+
+///
+/// Fixed ACPI Description Table Structure (FADT)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 FirmwareCtrl;
+ UINT32 Dsdt;
+ UINT8 Reserved0;
+ UINT8 PreferredPmProfile;
+ UINT16 SciInt;
+ UINT32 SmiCmd;
+ UINT8 AcpiEnable;
+ UINT8 AcpiDisable;
+ UINT8 S4BiosReq;
+ UINT8 PstateCnt;
+ UINT32 Pm1aEvtBlk;
+ UINT32 Pm1bEvtBlk;
+ UINT32 Pm1aCntBlk;
+ UINT32 Pm1bCntBlk;
+ UINT32 Pm2CntBlk;
+ UINT32 PmTmrBlk;
+ UINT32 Gpe0Blk;
+ UINT32 Gpe1Blk;
+ UINT8 Pm1EvtLen;
+ UINT8 Pm1CntLen;
+ UINT8 Pm2CntLen;
+ UINT8 PmTmrLen;
+ UINT8 Gpe0BlkLen;
+ UINT8 Gpe1BlkLen;
+ UINT8 Gpe1Base;
+ UINT8 CstCnt;
+ UINT16 PLvl2Lat;
+ UINT16 PLvl3Lat;
+ UINT16 FlushSize;
+ UINT16 FlushStride;
+ UINT8 DutyOffset;
+ UINT8 DutyWidth;
+ UINT8 DayAlrm;
+ UINT8 MonAlrm;
+ UINT8 Century;
+ UINT16 IaPcBootArch;
+ UINT8 Reserved1;
+ UINT32 Flags;
+ EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE ResetReg;
+ UINT8 ResetValue;
+ UINT8 Reserved2[3];
+ UINT64 XFirmwareCtrl;
+ UINT64 XDsdt;
+ EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk;
+ EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk;
+ EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk;
+ EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk;
+ EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk;
+ EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk;
+ EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk;
+ EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk;
+} EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE;
+
+///
+/// FADT Version (as defined in ACPI 3.0 spec.)
+///
+
+
+//
+// Fixed ACPI Description Table Preferred Power Management Profile
+//
+
+
+
+
+
+
+
+
+
+//
+// Fixed ACPI Description Table Boot Architecture Flags
+// All other bits are reserved and must be set to 0.
+//
+
+
+
+
+
+
+//
+// Fixed ACPI Description Table Fixed Feature Flags
+// All other bits are reserved and must be set to 0.
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// Firmware ACPI Control Structure
+///
+typedef struct {
+ UINT32 Signature;
+ UINT32 Length;
+ UINT32 HardwareSignature;
+ UINT32 FirmwareWakingVector;
+ UINT32 GlobalLock;
+ UINT32 Flags;
+ UINT64 XFirmwareWakingVector;
+ UINT8 Version;
+ UINT8 Reserved[31];
+} EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE;
+
+///
+/// FACS Version (as defined in ACPI 3.0 spec.)
+///
+
+
+///
+/// Firmware Control Structure Feature Flags
+/// All other bits are reserved and must be set to 0.
+///
+
+
+//
+// Differentiated System Description Table,
+// Secondary System Description Table
+// and Persistent System Description Table,
+// no definition needed as they are common description table header, the same with
+// EFI_ACPI_DESCRIPTION_HEADER, followed by a definition block.
+//
+
+
+
+///
+/// Multiple APIC Description Table header definition. The rest of the table
+/// must be defined in a platform specific manner.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 LocalApicAddress;
+ UINT32 Flags;
+} EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;
+
+///
+/// MADT Revision (as defined in ACPI 3.0 spec.)
+///
+
+
+///
+/// Multiple APIC Flags
+/// All other bits are reserved and must be set to 0.
+///
+
+
+//
+// Multiple APIC Description Table APIC structure types
+// All other values between 0x09 an 0xFF are reserved and
+// will be ignored by OSPM.
+//
+
+
+
+
+
+
+
+
+
+
+//
+// APIC Structure Definitions
+//
+
+///
+/// Processor Local APIC Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 AcpiProcessorId;
+ UINT8 ApicId;
+ UINT32 Flags;
+} EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_STRUCTURE;
+
+///
+/// Local APIC Flags. All other bits are reserved and must be 0.
+///
+
+
+///
+/// IO APIC Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 IoApicId;
+ UINT8 Reserved;
+ UINT32 IoApicAddress;
+ UINT32 GlobalSystemInterruptBase;
+} EFI_ACPI_3_0_IO_APIC_STRUCTURE;
+
+///
+/// Interrupt Source Override Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 Bus;
+ UINT8 Source;
+ UINT32 GlobalSystemInterrupt;
+ UINT16 Flags;
+} EFI_ACPI_3_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE;
+
+///
+/// Platform Interrupt Sources Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Flags;
+ UINT8 InterruptType;
+ UINT8 ProcessorId;
+ UINT8 ProcessorEid;
+ UINT8 IoSapicVector;
+ UINT32 GlobalSystemInterrupt;
+ UINT32 PlatformInterruptSourceFlags;
+ UINT8 CpeiProcessorOverride;
+ UINT8 Reserved[31];
+} EFI_ACPI_3_0_PLATFORM_INTERRUPT_APIC_STRUCTURE;
+
+//
+// MPS INTI flags.
+// All other bits are reserved and must be set to 0.
+//
+
+
+
+///
+/// Non-Maskable Interrupt Source Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Flags;
+ UINT32 GlobalSystemInterrupt;
+} EFI_ACPI_3_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE;
+
+///
+/// Local APIC NMI Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 AcpiProcessorId;
+ UINT16 Flags;
+ UINT8 LocalApicLint;
+} EFI_ACPI_3_0_LOCAL_APIC_NMI_STRUCTURE;
+
+///
+/// Local APIC Address Override Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Reserved;
+ UINT64 LocalApicAddress;
+} EFI_ACPI_3_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE;
+
+///
+/// IO SAPIC Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 IoApicId;
+ UINT8 Reserved;
+ UINT32 GlobalSystemInterruptBase;
+ UINT64 IoSapicAddress;
+} EFI_ACPI_3_0_IO_SAPIC_STRUCTURE;
+
+///
+/// Local SAPIC Structure
+/// This struct followed by a null-terminated ASCII string - ACPI Processor UID String
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 AcpiProcessorId;
+ UINT8 LocalSapicId;
+ UINT8 LocalSapicEid;
+ UINT8 Reserved[3];
+ UINT32 Flags;
+ UINT32 ACPIProcessorUIDValue;
+} EFI_ACPI_3_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE;
+
+///
+/// Platform Interrupt Sources Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Flags;
+ UINT8 InterruptType;
+ UINT8 ProcessorId;
+ UINT8 ProcessorEid;
+ UINT8 IoSapicVector;
+ UINT32 GlobalSystemInterrupt;
+ UINT32 PlatformInterruptSourceFlags;
+} EFI_ACPI_3_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE;
+
+///
+/// Platform Interrupt Source Flags.
+/// All other bits are reserved and must be set to 0.
+///
+
+
+///
+/// Smart Battery Description Table (SBST)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 WarningEnergyLevel;
+ UINT32 LowEnergyLevel;
+ UINT32 CriticalEnergyLevel;
+} EFI_ACPI_3_0_SMART_BATTERY_DESCRIPTION_TABLE;
+
+///
+/// SBST Version (as defined in ACPI 3.0 spec.)
+///
+
+
+///
+/// Embedded Controller Boot Resources Table (ECDT)
+/// The table is followed by a null terminated ASCII string that contains
+/// a fully qualified reference to the name space object.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE EcControl;
+ EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE EcData;
+ UINT32 Uid;
+ UINT8 GpeBit;
+} EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE;
+
+///
+/// ECDT Version (as defined in ACPI 3.0 spec.)
+///
+
+
+///
+/// System Resource Affinity Table (SRAT. The rest of the table
+/// must be defined in a platform specific manner.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 Reserved1; ///< Must be set to 1
+ UINT64 Reserved2;
+} EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER;
+
+///
+/// SRAT Version (as defined in ACPI 3.0 spec.)
+///
+
+
+//
+// SRAT structure types.
+// All other values between 0x02 an 0xFF are reserved and
+// will be ignored by OSPM.
+//
+
+
+
+///
+/// Processor Local APIC/SAPIC Affinity Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 ProximityDomain7To0;
+ UINT8 ApicId;
+ UINT32 Flags;
+ UINT8 LocalSapicEid;
+ UINT8 ProximityDomain31To8[3];
+ UINT8 Reserved[4];
+} EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY_STRUCTURE;
+
+///
+/// Local APIC/SAPIC Flags. All other bits are reserved and must be 0.
+///
+
+
+///
+/// Memory Affinity Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT32 ProximityDomain;
+ UINT16 Reserved1;
+ UINT32 AddressBaseLow;
+ UINT32 AddressBaseHigh;
+ UINT32 LengthLow;
+ UINT32 LengthHigh;
+ UINT32 Reserved2;
+ UINT32 Flags;
+ UINT64 Reserved3;
+} EFI_ACPI_3_0_MEMORY_AFFINITY_STRUCTURE;
+
+//
+// Memory Flags. All other bits are reserved and must be 0.
+//
+
+
+
+
+///
+/// System Locality Distance Information Table (SLIT).
+/// The rest of the table is a matrix.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT64 NumberOfSystemLocalities;
+} EFI_ACPI_3_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_HEADER;
+
+///
+/// SLIT Version (as defined in ACPI 3.0 spec.)
+///
+
+
+//
+// Known table signatures
+//
+
+///
+/// "RSD PTR " Root System Description Pointer
+///
+
+
+///
+/// "APIC" Multiple APIC Description Table
+///
+
+
+///
+/// "DSDT" Differentiated System Description Table
+///
+
+
+///
+/// "ECDT" Embedded Controller Boot Resources Table
+///
+
+
+///
+/// "FACP" Fixed ACPI Description Table
+///
+
+
+///
+/// "FACS" Firmware ACPI Control Structure
+///
+
+
+///
+/// "PSDT" Persistent System Description Table
+///
+
+
+///
+/// "RSDT" Root System Description Table
+///
+
+
+///
+/// "SBST" Smart Battery Specification Table
+///
+
+
+///
+/// "SLIT" System Locality Information Table
+///
+
+
+///
+/// "SRAT" System Resource Affinity Table
+///
+
+
+///
+/// "SSDT" Secondary System Description Table
+///
+
+
+///
+/// "XSDT" Extended System Description Table
+///
+
+
+///
+/// "BOOT" MS Simple Boot Spec
+///
+
+
+///
+/// "CPEP" Corrected Platform Error Polling Table
+///
+
+
+///
+/// "DBGP" MS Debug Port Spec
+///
+
+
+///
+/// "ETDT" Event Timer Description Table
+///
+
+
+///
+/// "HPET" IA-PC High Precision Event Timer Table
+///
+
+
+///
+/// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table
+///
+
+
+///
+/// "SPCR" Serial Port Console Redirection Table
+///
+
+
+///
+/// "SPMI" Server Platform Management Interface Table
+///
+
+
+///
+/// "TCPA" Trusted Computing Platform Alliance Capabilities Table
+///
+
+
+///
+/// "WDRT" Watchdog Resource Table
+///
+
+
+///
+/// "WDAT" Watchdog Action Table
+///
+
+
+///
+/// "WSPT" Windows Specific Properties Table
+///
+
+
+///
+/// "iBFT" iSCSI Boot Firmware Table
+///
+
+
+#pragma pack()
+
+#line 724 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/Acpi30.h"
+#line 12 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/Acpi40.h"
+
+//
+// Ensure proper structure formats
+//
+#pragma pack(1)
+
+///
+/// ACPI 4.0 Generic Address Space definition
+///
+typedef struct {
+ UINT8 AddressSpaceId;
+ UINT8 RegisterBitWidth;
+ UINT8 RegisterBitOffset;
+ UINT8 AccessSize;
+ UINT64 Address;
+} EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE;
+
+//
+// Generic Address Space Address IDs
+//
+
+
+
+
+
+
+
+//
+// Generic Address Space Access Sizes
+//
+
+
+
+
+
+
+//
+// ACPI 4.0 table structures
+//
+
+///
+/// Root System Description Pointer Structure
+///
+typedef struct {
+ UINT64 Signature;
+ UINT8 Checksum;
+ UINT8 OemId[6];
+ UINT8 Revision;
+ UINT32 RsdtAddress;
+ UINT32 Length;
+ UINT64 XsdtAddress;
+ UINT8 ExtendedChecksum;
+ UINT8 Reserved[3];
+} EFI_ACPI_4_0_ROOT_SYSTEM_DESCRIPTION_POINTER;
+
+///
+/// RSD_PTR Revision (as defined in ACPI 4.0b spec.)
+///
+
+
+///
+/// Common table header, this prefaces all ACPI tables, including FACS, but
+/// excluding the RSD PTR structure
+///
+typedef struct {
+ UINT32 Signature;
+ UINT32 Length;
+} EFI_ACPI_4_0_COMMON_HEADER;
+
+//
+// Root System Description Table
+// No definition needed as it is a common description table header, the same with
+// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers.
+//
+
+///
+/// RSDT Revision (as defined in ACPI 4.0 spec.)
+///
+
+
+//
+// Extended System Description Table
+// No definition needed as it is a common description table header, the same with
+// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers.
+//
+
+///
+/// XSDT Revision (as defined in ACPI 4.0 spec.)
+///
+
+
+///
+/// Fixed ACPI Description Table Structure (FADT)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 FirmwareCtrl;
+ UINT32 Dsdt;
+ UINT8 Reserved0;
+ UINT8 PreferredPmProfile;
+ UINT16 SciInt;
+ UINT32 SmiCmd;
+ UINT8 AcpiEnable;
+ UINT8 AcpiDisable;
+ UINT8 S4BiosReq;
+ UINT8 PstateCnt;
+ UINT32 Pm1aEvtBlk;
+ UINT32 Pm1bEvtBlk;
+ UINT32 Pm1aCntBlk;
+ UINT32 Pm1bCntBlk;
+ UINT32 Pm2CntBlk;
+ UINT32 PmTmrBlk;
+ UINT32 Gpe0Blk;
+ UINT32 Gpe1Blk;
+ UINT8 Pm1EvtLen;
+ UINT8 Pm1CntLen;
+ UINT8 Pm2CntLen;
+ UINT8 PmTmrLen;
+ UINT8 Gpe0BlkLen;
+ UINT8 Gpe1BlkLen;
+ UINT8 Gpe1Base;
+ UINT8 CstCnt;
+ UINT16 PLvl2Lat;
+ UINT16 PLvl3Lat;
+ UINT16 FlushSize;
+ UINT16 FlushStride;
+ UINT8 DutyOffset;
+ UINT8 DutyWidth;
+ UINT8 DayAlrm;
+ UINT8 MonAlrm;
+ UINT8 Century;
+ UINT16 IaPcBootArch;
+ UINT8 Reserved1;
+ UINT32 Flags;
+ EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE ResetReg;
+ UINT8 ResetValue;
+ UINT8 Reserved2[3];
+ UINT64 XFirmwareCtrl;
+ UINT64 XDsdt;
+ EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk;
+ EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk;
+ EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk;
+ EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk;
+ EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk;
+ EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk;
+ EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk;
+ EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk;
+} EFI_ACPI_4_0_FIXED_ACPI_DESCRIPTION_TABLE;
+
+///
+/// FADT Version (as defined in ACPI 4.0 spec.)
+///
+
+
+//
+// Fixed ACPI Description Table Preferred Power Management Profile
+//
+
+
+
+
+
+
+
+
+
+//
+// Fixed ACPI Description Table Boot Architecture Flags
+// All other bits are reserved and must be set to 0.
+//
+
+
+
+
+
+
+//
+// Fixed ACPI Description Table Fixed Feature Flags
+// All other bits are reserved and must be set to 0.
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// Firmware ACPI Control Structure
+///
+typedef struct {
+ UINT32 Signature;
+ UINT32 Length;
+ UINT32 HardwareSignature;
+ UINT32 FirmwareWakingVector;
+ UINT32 GlobalLock;
+ UINT32 Flags;
+ UINT64 XFirmwareWakingVector;
+ UINT8 Version;
+ UINT8 Reserved0[3];
+ UINT32 OspmFlags;
+ UINT8 Reserved1[24];
+} EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE;
+
+///
+/// FACS Version (as defined in ACPI 4.0 spec.)
+///
+
+
+///
+/// Firmware Control Structure Feature Flags
+/// All other bits are reserved and must be set to 0.
+///
+
+
+
+///
+/// OSPM Enabled Firmware Control Structure Flags
+/// All other bits are reserved and must be set to 0.
+///
+
+
+//
+// Differentiated System Description Table,
+// Secondary System Description Table
+// and Persistent System Description Table,
+// no definition needed as they are common description table header, the same with
+// EFI_ACPI_DESCRIPTION_HEADER, followed by a definition block.
+//
+
+
+
+///
+/// Multiple APIC Description Table header definition. The rest of the table
+/// must be defined in a platform specific manner.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 LocalApicAddress;
+ UINT32 Flags;
+} EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;
+
+///
+/// MADT Revision (as defined in ACPI 4.0 spec.)
+///
+
+
+///
+/// Multiple APIC Flags
+/// All other bits are reserved and must be set to 0.
+///
+
+
+//
+// Multiple APIC Description Table APIC structure types
+// All other values between 0x0B an 0xFF are reserved and
+// will be ignored by OSPM.
+//
+
+
+
+
+
+
+
+
+
+
+
+
+//
+// APIC Structure Definitions
+//
+
+///
+/// Processor Local APIC Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 AcpiProcessorId;
+ UINT8 ApicId;
+ UINT32 Flags;
+} EFI_ACPI_4_0_PROCESSOR_LOCAL_APIC_STRUCTURE;
+
+///
+/// Local APIC Flags. All other bits are reserved and must be 0.
+///
+
+
+///
+/// IO APIC Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 IoApicId;
+ UINT8 Reserved;
+ UINT32 IoApicAddress;
+ UINT32 GlobalSystemInterruptBase;
+} EFI_ACPI_4_0_IO_APIC_STRUCTURE;
+
+///
+/// Interrupt Source Override Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 Bus;
+ UINT8 Source;
+ UINT32 GlobalSystemInterrupt;
+ UINT16 Flags;
+} EFI_ACPI_4_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE;
+
+///
+/// Platform Interrupt Sources Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Flags;
+ UINT8 InterruptType;
+ UINT8 ProcessorId;
+ UINT8 ProcessorEid;
+ UINT8 IoSapicVector;
+ UINT32 GlobalSystemInterrupt;
+ UINT32 PlatformInterruptSourceFlags;
+ UINT8 CpeiProcessorOverride;
+ UINT8 Reserved[31];
+} EFI_ACPI_4_0_PLATFORM_INTERRUPT_APIC_STRUCTURE;
+
+//
+// MPS INTI flags.
+// All other bits are reserved and must be set to 0.
+//
+
+
+
+///
+/// Non-Maskable Interrupt Source Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Flags;
+ UINT32 GlobalSystemInterrupt;
+} EFI_ACPI_4_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE;
+
+///
+/// Local APIC NMI Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 AcpiProcessorId;
+ UINT16 Flags;
+ UINT8 LocalApicLint;
+} EFI_ACPI_4_0_LOCAL_APIC_NMI_STRUCTURE;
+
+///
+/// Local APIC Address Override Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Reserved;
+ UINT64 LocalApicAddress;
+} EFI_ACPI_4_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE;
+
+///
+/// IO SAPIC Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 IoApicId;
+ UINT8 Reserved;
+ UINT32 GlobalSystemInterruptBase;
+ UINT64 IoSapicAddress;
+} EFI_ACPI_4_0_IO_SAPIC_STRUCTURE;
+
+///
+/// Local SAPIC Structure
+/// This struct followed by a null-terminated ASCII string - ACPI Processor UID String
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 AcpiProcessorId;
+ UINT8 LocalSapicId;
+ UINT8 LocalSapicEid;
+ UINT8 Reserved[3];
+ UINT32 Flags;
+ UINT32 ACPIProcessorUIDValue;
+} EFI_ACPI_4_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE;
+
+///
+/// Platform Interrupt Sources Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Flags;
+ UINT8 InterruptType;
+ UINT8 ProcessorId;
+ UINT8 ProcessorEid;
+ UINT8 IoSapicVector;
+ UINT32 GlobalSystemInterrupt;
+ UINT32 PlatformInterruptSourceFlags;
+} EFI_ACPI_4_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE;
+
+///
+/// Platform Interrupt Source Flags.
+/// All other bits are reserved and must be set to 0.
+///
+
+
+///
+/// Processor Local x2APIC Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 Reserved[2];
+ UINT32 X2ApicId;
+ UINT32 Flags;
+ UINT32 AcpiProcessorUid;
+} EFI_ACPI_4_0_PROCESSOR_LOCAL_X2APIC_STRUCTURE;
+
+///
+/// Local x2APIC NMI Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Flags;
+ UINT32 AcpiProcessorUid;
+ UINT8 LocalX2ApicLint;
+ UINT8 Reserved[3];
+} EFI_ACPI_4_0_LOCAL_X2APIC_NMI_STRUCTURE;
+
+///
+/// Smart Battery Description Table (SBST)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 WarningEnergyLevel;
+ UINT32 LowEnergyLevel;
+ UINT32 CriticalEnergyLevel;
+} EFI_ACPI_4_0_SMART_BATTERY_DESCRIPTION_TABLE;
+
+///
+/// SBST Version (as defined in ACPI 4.0 spec.)
+///
+
+
+///
+/// Embedded Controller Boot Resources Table (ECDT)
+/// The table is followed by a null terminated ASCII string that contains
+/// a fully qualified reference to the name space object.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE EcControl;
+ EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE EcData;
+ UINT32 Uid;
+ UINT8 GpeBit;
+} EFI_ACPI_4_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE;
+
+///
+/// ECDT Version (as defined in ACPI 4.0 spec.)
+///
+
+
+///
+/// System Resource Affinity Table (SRAT. The rest of the table
+/// must be defined in a platform specific manner.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 Reserved1; ///< Must be set to 1
+ UINT64 Reserved2;
+} EFI_ACPI_4_0_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER;
+
+///
+/// SRAT Version (as defined in ACPI 4.0 spec.)
+///
+
+
+//
+// SRAT structure types.
+// All other values between 0x03 an 0xFF are reserved and
+// will be ignored by OSPM.
+//
+
+
+
+
+///
+/// Processor Local APIC/SAPIC Affinity Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 ProximityDomain7To0;
+ UINT8 ApicId;
+ UINT32 Flags;
+ UINT8 LocalSapicEid;
+ UINT8 ProximityDomain31To8[3];
+ UINT32 ClockDomain;
+} EFI_ACPI_4_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY_STRUCTURE;
+
+///
+/// Local APIC/SAPIC Flags. All other bits are reserved and must be 0.
+///
+
+
+///
+/// Memory Affinity Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT32 ProximityDomain;
+ UINT16 Reserved1;
+ UINT32 AddressBaseLow;
+ UINT32 AddressBaseHigh;
+ UINT32 LengthLow;
+ UINT32 LengthHigh;
+ UINT32 Reserved2;
+ UINT32 Flags;
+ UINT64 Reserved3;
+} EFI_ACPI_4_0_MEMORY_AFFINITY_STRUCTURE;
+
+//
+// Memory Flags. All other bits are reserved and must be 0.
+//
+
+
+
+
+///
+/// Processor Local x2APIC Affinity Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 Reserved1[2];
+ UINT32 ProximityDomain;
+ UINT32 X2ApicId;
+ UINT32 Flags;
+ UINT32 ClockDomain;
+ UINT8 Reserved2[4];
+} EFI_ACPI_4_0_PROCESSOR_LOCAL_X2APIC_AFFINITY_STRUCTURE;
+
+///
+/// System Locality Distance Information Table (SLIT).
+/// The rest of the table is a matrix.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT64 NumberOfSystemLocalities;
+} EFI_ACPI_4_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_HEADER;
+
+///
+/// SLIT Version (as defined in ACPI 4.0 spec.)
+///
+
+
+///
+/// Corrected Platform Error Polling Table (CPEP)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT8 Reserved[8];
+} EFI_ACPI_4_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_HEADER;
+
+///
+/// CPEP Version (as defined in ACPI 4.0 spec.)
+///
+
+
+//
+// CPEP processor structure types.
+//
+
+
+///
+/// Corrected Platform Error Polling Processor Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 ProcessorId;
+ UINT8 ProcessorEid;
+ UINT32 PollingInterval;
+} EFI_ACPI_4_0_CPEP_PROCESSOR_APIC_SAPIC_STRUCTURE;
+
+///
+/// Maximum System Characteristics Table (MSCT)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 OffsetProxDomInfo;
+ UINT32 MaximumNumberOfProximityDomains;
+ UINT32 MaximumNumberOfClockDomains;
+ UINT64 MaximumPhysicalAddress;
+} EFI_ACPI_4_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_HEADER;
+
+///
+/// MSCT Version (as defined in ACPI 4.0 spec.)
+///
+
+
+///
+/// Maximum Proximity Domain Information Structure Definition
+///
+typedef struct {
+ UINT8 Revision;
+ UINT8 Length;
+ UINT32 ProximityDomainRangeLow;
+ UINT32 ProximityDomainRangeHigh;
+ UINT32 MaximumProcessorCapacity;
+ UINT64 MaximumMemoryCapacity;
+} EFI_ACPI_4_0_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE;
+
+///
+/// Boot Error Record Table (BERT)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 BootErrorRegionLength;
+ UINT64 BootErrorRegion;
+} EFI_ACPI_4_0_BOOT_ERROR_RECORD_TABLE_HEADER;
+
+///
+/// BERT Version (as defined in ACPI 4.0 spec.)
+///
+
+
+///
+/// Boot Error Region Block Status Definition
+///
+typedef struct {
+ UINT32 UncorrectableErrorValid : 1;
+ UINT32 CorrectableErrorValid : 1;
+ UINT32 MultipleUncorrectableErrors : 1;
+ UINT32 MultipleCorrectableErrors : 1;
+ UINT32 ErrorDataEntryCount : 10;
+ UINT32 Reserved : 18;
+} EFI_ACPI_4_0_ERROR_BLOCK_STATUS;
+
+///
+/// Boot Error Region Definition
+///
+typedef struct {
+ EFI_ACPI_4_0_ERROR_BLOCK_STATUS BlockStatus;
+ UINT32 RawDataOffset;
+ UINT32 RawDataLength;
+ UINT32 DataLength;
+ UINT32 ErrorSeverity;
+} EFI_ACPI_4_0_BOOT_ERROR_REGION_STRUCTURE;
+
+//
+// Boot Error Severity types
+//
+
+
+
+
+
+
+///
+/// Generic Error Data Entry Definition
+///
+typedef struct {
+ UINT8 SectionType[16];
+ UINT32 ErrorSeverity;
+ UINT16 Revision;
+ UINT8 ValidationBits;
+ UINT8 Flags;
+ UINT32 ErrorDataLength;
+ UINT8 FruId[16];
+ UINT8 FruText[20];
+} EFI_ACPI_4_0_GENERIC_ERROR_DATA_ENTRY_STRUCTURE;
+
+///
+/// Generic Error Data Entry Version (as defined in ACPI 4.0 spec.)
+///
+
+
+///
+/// HEST - Hardware Error Source Table
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 ErrorSourceCount;
+} EFI_ACPI_4_0_HARDWARE_ERROR_SOURCE_TABLE_HEADER;
+
+///
+/// HEST Version (as defined in ACPI 4.0 spec.)
+///
+
+
+//
+// Error Source structure types.
+//
+
+
+
+
+
+
+
+
+//
+// Error Source structure flags.
+//
+
+
+
+///
+/// IA-32 Architecture Machine Check Exception Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT64 GlobalCapabilityInitData;
+ UINT64 GlobalControlInitData;
+ UINT8 NumberOfHardwareBanks;
+ UINT8 Reserved1[7];
+} EFI_ACPI_4_0_IA32_ARCHITECTURE_MACHINE_CHECK_EXCEPTION_STRUCTURE;
+
+///
+/// IA-32 Architecture Machine Check Bank Structure Definition
+///
+typedef struct {
+ UINT8 BankNumber;
+ UINT8 ClearStatusOnInitialization;
+ UINT8 StatusDataFormat;
+ UINT8 Reserved0;
+ UINT32 ControlRegisterMsrAddress;
+ UINT64 ControlInitData;
+ UINT32 StatusRegisterMsrAddress;
+ UINT32 AddressRegisterMsrAddress;
+ UINT32 MiscRegisterMsrAddress;
+} EFI_ACPI_4_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_BANK_STRUCTURE;
+
+///
+/// IA-32 Architecture Machine Check Bank Structure MCA data format
+///
+
+
+
+
+//
+// Hardware Error Notification types. All other values are reserved
+//
+
+
+
+
+
+
+///
+/// Hardware Error Notification Configuration Write Enable Structure Definition
+///
+typedef struct {
+ UINT16 Type : 1;
+ UINT16 PollInterval : 1;
+ UINT16 SwitchToPollingThresholdValue : 1;
+ UINT16 SwitchToPollingThresholdWindow : 1;
+ UINT16 ErrorThresholdValue : 1;
+ UINT16 ErrorThresholdWindow : 1;
+ UINT16 Reserved : 10;
+} EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_CONFIGURATION_WRITE_ENABLE_STRUCTURE;
+
+///
+/// Hardware Error Notification Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_CONFIGURATION_WRITE_ENABLE_STRUCTURE ConfigurationWriteEnable;
+ UINT32 PollInterval;
+ UINT32 Vector;
+ UINT32 SwitchToPollingThresholdValue;
+ UINT32 SwitchToPollingThresholdWindow;
+ UINT32 ErrorThresholdValue;
+ UINT32 ErrorThresholdWindow;
+} EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE;
+
+///
+/// IA-32 Architecture Corrected Machine Check Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE NotificationStructure;
+ UINT8 NumberOfHardwareBanks;
+ UINT8 Reserved1[3];
+} EFI_ACPI_4_0_IA32_ARCHITECTURE_CORRECTED_MACHINE_CHECK_STRUCTURE;
+
+///
+/// IA-32 Architecture NMI Error Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT32 MaxRawDataLength;
+} EFI_ACPI_4_0_IA32_ARCHITECTURE_NMI_ERROR_STRUCTURE;
+
+///
+/// PCI Express Root Port AER Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT32 Bus;
+ UINT16 Device;
+ UINT16 Function;
+ UINT16 DeviceControl;
+ UINT8 Reserved1[2];
+ UINT32 UncorrectableErrorMask;
+ UINT32 UncorrectableErrorSeverity;
+ UINT32 CorrectableErrorMask;
+ UINT32 AdvancedErrorCapabilitiesAndControl;
+ UINT32 RootErrorCommand;
+} EFI_ACPI_4_0_PCI_EXPRESS_ROOT_PORT_AER_STRUCTURE;
+
+///
+/// PCI Express Device AER Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT32 Bus;
+ UINT16 Device;
+ UINT16 Function;
+ UINT16 DeviceControl;
+ UINT8 Reserved1[2];
+ UINT32 UncorrectableErrorMask;
+ UINT32 UncorrectableErrorSeverity;
+ UINT32 CorrectableErrorMask;
+ UINT32 AdvancedErrorCapabilitiesAndControl;
+} EFI_ACPI_4_0_PCI_EXPRESS_DEVICE_AER_STRUCTURE;
+
+///
+/// PCI Express Bridge AER Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT32 Bus;
+ UINT16 Device;
+ UINT16 Function;
+ UINT16 DeviceControl;
+ UINT8 Reserved1[2];
+ UINT32 UncorrectableErrorMask;
+ UINT32 UncorrectableErrorSeverity;
+ UINT32 CorrectableErrorMask;
+ UINT32 AdvancedErrorCapabilitiesAndControl;
+ UINT32 SecondaryUncorrectableErrorMask;
+ UINT32 SecondaryUncorrectableErrorSeverity;
+ UINT32 SecondaryAdvancedErrorCapabilitiesAndControl;
+} EFI_ACPI_4_0_PCI_EXPRESS_BRIDGE_AER_STRUCTURE;
+
+///
+/// Generic Hardware Error Source Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT16 RelatedSourceId;
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT32 MaxRawDataLength;
+ EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE ErrorStatusAddress;
+ EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE NotificationStructure;
+ UINT32 ErrorStatusBlockLength;
+} EFI_ACPI_4_0_GENERIC_HARDWARE_ERROR_SOURCE_STRUCTURE;
+
+///
+/// Generic Error Status Definition
+///
+typedef struct {
+ EFI_ACPI_4_0_ERROR_BLOCK_STATUS BlockStatus;
+ UINT32 RawDataOffset;
+ UINT32 RawDataLength;
+ UINT32 DataLength;
+ UINT32 ErrorSeverity;
+} EFI_ACPI_4_0_GENERIC_ERROR_STATUS_STRUCTURE;
+
+///
+/// ERST - Error Record Serialization Table
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 SerializationHeaderSize;
+ UINT8 Reserved0[4];
+ UINT32 InstructionEntryCount;
+} EFI_ACPI_4_0_ERROR_RECORD_SERIALIZATION_TABLE_HEADER;
+
+///
+/// ERST Version (as defined in ACPI 4.0 spec.)
+///
+
+
+///
+/// ERST Serialization Actions
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// ERST Action Command Status
+///
+
+
+
+
+
+
+
+///
+/// ERST Serialization Instructions
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// ERST Instruction Flags
+///
+
+
+///
+/// ERST Serialization Instruction Entry
+///
+typedef struct {
+ UINT8 SerializationAction;
+ UINT8 Instruction;
+ UINT8 Flags;
+ UINT8 Reserved0;
+ EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE RegisterRegion;
+ UINT64 Value;
+ UINT64 Mask;
+} EFI_ACPI_4_0_ERST_SERIALIZATION_INSTRUCTION_ENTRY;
+
+///
+/// EINJ - Error Injection Table
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 InjectionHeaderSize;
+ UINT8 InjectionFlags;
+ UINT8 Reserved0[3];
+ UINT32 InjectionEntryCount;
+} EFI_ACPI_4_0_ERROR_INJECTION_TABLE_HEADER;
+
+///
+/// EINJ Version (as defined in ACPI 4.0 spec.)
+///
+
+
+///
+/// EINJ Error Injection Actions
+///
+
+
+
+
+
+
+
+
+
+
+///
+/// EINJ Action Command Status
+///
+
+
+
+
+///
+/// EINJ Error Type Definition
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// EINJ Injection Instructions
+///
+
+
+
+
+
+
+///
+/// EINJ Instruction Flags
+///
+
+
+///
+/// EINJ Injection Instruction Entry
+///
+typedef struct {
+ UINT8 InjectionAction;
+ UINT8 Instruction;
+ UINT8 Flags;
+ UINT8 Reserved0;
+ EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE RegisterRegion;
+ UINT64 Value;
+ UINT64 Mask;
+} EFI_ACPI_4_0_EINJ_INJECTION_INSTRUCTION_ENTRY;
+
+///
+/// EINJ Trigger Action Table
+///
+typedef struct {
+ UINT32 HeaderSize;
+ UINT32 Revision;
+ UINT32 TableSize;
+ UINT32 EntryCount;
+} EFI_ACPI_4_0_EINJ_TRIGGER_ACTION_TABLE;
+
+//
+// Known table signatures
+//
+
+///
+/// "RSD PTR " Root System Description Pointer
+///
+
+
+///
+/// "APIC" Multiple APIC Description Table
+///
+
+
+///
+/// "BERT" Boot Error Record Table
+///
+
+
+///
+/// "CPEP" Corrected Platform Error Polling Table
+///
+
+
+///
+/// "DSDT" Differentiated System Description Table
+///
+
+
+///
+/// "ECDT" Embedded Controller Boot Resources Table
+///
+
+
+///
+/// "EINJ" Error Injection Table
+///
+
+
+///
+/// "ERST" Error Record Serialization Table
+///
+
+
+///
+/// "FACP" Fixed ACPI Description Table
+///
+
+
+///
+/// "FACS" Firmware ACPI Control Structure
+///
+
+
+///
+/// "HEST" Hardware Error Source Table
+///
+
+
+///
+/// "MSCT" Maximum System Characteristics Table
+///
+
+
+///
+/// "PSDT" Persistent System Description Table
+///
+
+
+///
+/// "RSDT" Root System Description Table
+///
+
+
+///
+/// "SBST" Smart Battery Specification Table
+///
+
+
+///
+/// "SLIT" System Locality Information Table
+///
+
+
+///
+/// "SRAT" System Resource Affinity Table
+///
+
+
+///
+/// "SSDT" Secondary System Description Table
+///
+
+
+///
+/// "XSDT" Extended System Description Table
+///
+
+
+///
+/// "BOOT" MS Simple Boot Spec
+///
+
+
+///
+/// "DBGP" MS Debug Port Spec
+///
+
+
+///
+/// "DMAR" DMA Remapping Table
+///
+
+
+///
+/// "ETDT" Event Timer Description Table
+///
+
+
+///
+/// "HPET" IA-PC High Precision Event Timer Table
+///
+
+
+///
+/// "iBFT" iSCSI Boot Firmware Table
+///
+
+
+///
+/// "IVRS" I/O Virtualization Reporting Structure
+///
+
+
+///
+/// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table
+///
+
+
+///
+/// "MCHI" Management Controller Host Interface Table
+///
+
+
+///
+/// "SPCR" Serial Port Console Redirection Table
+///
+
+
+///
+/// "SPMI" Server Platform Management Interface Table
+///
+
+
+///
+/// "TCPA" Trusted Computing Platform Alliance Capabilities Table
+///
+
+
+///
+/// "UEFI" UEFI ACPI Data Table
+///
+
+
+///
+/// "WAET" Windows ACPI Enlightenment Table
+///
+
+
+///
+/// "WDAT" Watchdog Action Table
+///
+
+
+///
+/// "WDRT" Watchdog Resource Table
+///
+
+
+#pragma pack()
+
+#line 1305 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/Acpi40.h"
+
+#line 14 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/Acpi50.h"
+
+//
+// Define for Descriptor
+//
+
+
+
+
+
+
+
+
+#pragma pack(1)
+
+///
+/// Generic DMA Descriptor.
+///
+typedef struct {
+ ACPI_SMALL_RESOURCE_HEADER Header;
+ UINT16 DmaRequestLine;
+ UINT16 DmaChannel;
+ UINT8 DmaTransferWidth;
+} EFI_ACPI_FIXED_DMA_DESCRIPTOR;
+
+///
+/// GPIO Connection Descriptor
+///
+typedef struct {
+ ACPI_LARGE_RESOURCE_HEADER Header;
+ UINT8 RevisionId;
+ UINT8 ConnectionType;
+ UINT16 GeneralFlags;
+ UINT16 InterruptFlags;
+ UINT8 PinConfiguration;
+ UINT16 OutputDriveStrength;
+ UINT16 DebounceTimeout;
+ UINT16 PinTableOffset;
+ UINT8 ResourceSourceIndex;
+ UINT16 ResourceSourceNameOffset;
+ UINT16 VendorDataOffset;
+ UINT16 VendorDataLength;
+} EFI_ACPI_GPIO_CONNECTION_DESCRIPTOR;
+
+
+
+
+///
+/// Serial Bus Resource Descriptor (Generic)
+///
+typedef struct {
+ ACPI_LARGE_RESOURCE_HEADER Header;
+ UINT8 RevisionId;
+ UINT8 ResourceSourceIndex;
+ UINT8 SerialBusType;
+ UINT8 GeneralFlags;
+ UINT16 TypeSpecificFlags;
+ UINT8 TypeSpecificRevisionId;
+ UINT16 TypeDataLength;
+ // Type specific data
+} EFI_ACPI_SERIAL_BUS_RESOURCE_DESCRIPTOR;
+
+
+
+
+
+///
+/// Serial Bus Resource Descriptor (I2C)
+///
+typedef struct {
+ ACPI_LARGE_RESOURCE_HEADER Header;
+ UINT8 RevisionId;
+ UINT8 ResourceSourceIndex;
+ UINT8 SerialBusType;
+ UINT8 GeneralFlags;
+ UINT16 TypeSpecificFlags;
+ UINT8 TypeSpecificRevisionId;
+ UINT16 TypeDataLength;
+ UINT32 ConnectionSpeed;
+ UINT16 SlaveAddress;
+} EFI_ACPI_SERIAL_BUS_RESOURCE_I2C_DESCRIPTOR;
+
+///
+/// Serial Bus Resource Descriptor (SPI)
+///
+typedef struct {
+ ACPI_LARGE_RESOURCE_HEADER Header;
+ UINT8 RevisionId;
+ UINT8 ResourceSourceIndex;
+ UINT8 SerialBusType;
+ UINT8 GeneralFlags;
+ UINT16 TypeSpecificFlags;
+ UINT8 TypeSpecificRevisionId;
+ UINT16 TypeDataLength;
+ UINT32 ConnectionSpeed;
+ UINT8 DataBitLength;
+ UINT8 Phase;
+ UINT8 Polarity;
+ UINT16 DeviceSelection;
+} EFI_ACPI_SERIAL_BUS_RESOURCE_SPI_DESCRIPTOR;
+
+///
+/// Serial Bus Resource Descriptor (UART)
+///
+typedef struct {
+ ACPI_LARGE_RESOURCE_HEADER Header;
+ UINT8 RevisionId;
+ UINT8 ResourceSourceIndex;
+ UINT8 SerialBusType;
+ UINT8 GeneralFlags;
+ UINT16 TypeSpecificFlags;
+ UINT8 TypeSpecificRevisionId;
+ UINT16 TypeDataLength;
+ UINT32 DefaultBaudRate;
+ UINT16 RxFIFO;
+ UINT16 TxFIFO;
+ UINT8 Parity;
+ UINT8 SerialLinesEnabled;
+} EFI_ACPI_SERIAL_BUS_RESOURCE_UART_DESCRIPTOR;
+
+#pragma pack()
+
+//
+// Ensure proper structure formats
+//
+#pragma pack(1)
+
+///
+/// ACPI 5.0 Generic Address Space definition
+///
+typedef struct {
+ UINT8 AddressSpaceId;
+ UINT8 RegisterBitWidth;
+ UINT8 RegisterBitOffset;
+ UINT8 AccessSize;
+ UINT64 Address;
+} EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE;
+
+//
+// Generic Address Space Address IDs
+//
+
+
+
+
+
+
+
+
+//
+// Generic Address Space Access Sizes
+//
+
+
+
+
+
+
+//
+// ACPI 5.0 table structures
+//
+
+///
+/// Root System Description Pointer Structure
+///
+typedef struct {
+ UINT64 Signature;
+ UINT8 Checksum;
+ UINT8 OemId[6];
+ UINT8 Revision;
+ UINT32 RsdtAddress;
+ UINT32 Length;
+ UINT64 XsdtAddress;
+ UINT8 ExtendedChecksum;
+ UINT8 Reserved[3];
+} EFI_ACPI_5_0_ROOT_SYSTEM_DESCRIPTION_POINTER;
+
+///
+/// RSD_PTR Revision (as defined in ACPI 5.0 spec.)
+///
+
+
+///
+/// Common table header, this prefaces all ACPI tables, including FACS, but
+/// excluding the RSD PTR structure
+///
+typedef struct {
+ UINT32 Signature;
+ UINT32 Length;
+} EFI_ACPI_5_0_COMMON_HEADER;
+
+//
+// Root System Description Table
+// No definition needed as it is a common description table header, the same with
+// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers.
+//
+
+///
+/// RSDT Revision (as defined in ACPI 5.0 spec.)
+///
+
+
+//
+// Extended System Description Table
+// No definition needed as it is a common description table header, the same with
+// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers.
+//
+
+///
+/// XSDT Revision (as defined in ACPI 5.0 spec.)
+///
+
+
+///
+/// Fixed ACPI Description Table Structure (FADT)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 FirmwareCtrl;
+ UINT32 Dsdt;
+ UINT8 Reserved0;
+ UINT8 PreferredPmProfile;
+ UINT16 SciInt;
+ UINT32 SmiCmd;
+ UINT8 AcpiEnable;
+ UINT8 AcpiDisable;
+ UINT8 S4BiosReq;
+ UINT8 PstateCnt;
+ UINT32 Pm1aEvtBlk;
+ UINT32 Pm1bEvtBlk;
+ UINT32 Pm1aCntBlk;
+ UINT32 Pm1bCntBlk;
+ UINT32 Pm2CntBlk;
+ UINT32 PmTmrBlk;
+ UINT32 Gpe0Blk;
+ UINT32 Gpe1Blk;
+ UINT8 Pm1EvtLen;
+ UINT8 Pm1CntLen;
+ UINT8 Pm2CntLen;
+ UINT8 PmTmrLen;
+ UINT8 Gpe0BlkLen;
+ UINT8 Gpe1BlkLen;
+ UINT8 Gpe1Base;
+ UINT8 CstCnt;
+ UINT16 PLvl2Lat;
+ UINT16 PLvl3Lat;
+ UINT16 FlushSize;
+ UINT16 FlushStride;
+ UINT8 DutyOffset;
+ UINT8 DutyWidth;
+ UINT8 DayAlrm;
+ UINT8 MonAlrm;
+ UINT8 Century;
+ UINT16 IaPcBootArch;
+ UINT8 Reserved1;
+ UINT32 Flags;
+ EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE ResetReg;
+ UINT8 ResetValue;
+ UINT8 Reserved2[3];
+ UINT64 XFirmwareCtrl;
+ UINT64 XDsdt;
+ EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk;
+ EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk;
+ EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk;
+ EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk;
+ EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk;
+ EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk;
+ EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk;
+ EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk;
+ EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE SleepControlReg;
+ EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE SleepStatusReg;
+} EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE;
+
+///
+/// FADT Version (as defined in ACPI 5.0 spec.)
+///
+
+
+//
+// Fixed ACPI Description Table Preferred Power Management Profile
+//
+
+
+
+
+
+
+
+
+
+
+//
+// Fixed ACPI Description Table Boot Architecture Flags
+// All other bits are reserved and must be set to 0.
+//
+
+
+
+
+
+
+
+//
+// Fixed ACPI Description Table Fixed Feature Flags
+// All other bits are reserved and must be set to 0.
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// Firmware ACPI Control Structure
+///
+typedef struct {
+ UINT32 Signature;
+ UINT32 Length;
+ UINT32 HardwareSignature;
+ UINT32 FirmwareWakingVector;
+ UINT32 GlobalLock;
+ UINT32 Flags;
+ UINT64 XFirmwareWakingVector;
+ UINT8 Version;
+ UINT8 Reserved0[3];
+ UINT32 OspmFlags;
+ UINT8 Reserved1[24];
+} EFI_ACPI_5_0_FIRMWARE_ACPI_CONTROL_STRUCTURE;
+
+///
+/// FACS Version (as defined in ACPI 5.0 spec.)
+///
+
+
+///
+/// Firmware Control Structure Feature Flags
+/// All other bits are reserved and must be set to 0.
+///
+
+
+
+///
+/// OSPM Enabled Firmware Control Structure Flags
+/// All other bits are reserved and must be set to 0.
+///
+
+
+//
+// Differentiated System Description Table,
+// Secondary System Description Table
+// and Persistent System Description Table,
+// no definition needed as they are common description table header, the same with
+// EFI_ACPI_DESCRIPTION_HEADER, followed by a definition block.
+//
+
+
+
+///
+/// Multiple APIC Description Table header definition. The rest of the table
+/// must be defined in a platform specific manner.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 LocalApicAddress;
+ UINT32 Flags;
+} EFI_ACPI_5_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;
+
+///
+/// MADT Revision (as defined in ACPI 5.0 spec.)
+///
+
+
+///
+/// Multiple APIC Flags
+/// All other bits are reserved and must be set to 0.
+///
+
+
+//
+// Multiple APIC Description Table APIC structure types
+// All other values between 0x0D and 0x7F are reserved and
+// will be ignored by OSPM. 0x80 ~ 0xFF are reserved for OEM.
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+//
+// APIC Structure Definitions
+//
+
+///
+/// Processor Local APIC Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 AcpiProcessorId;
+ UINT8 ApicId;
+ UINT32 Flags;
+} EFI_ACPI_5_0_PROCESSOR_LOCAL_APIC_STRUCTURE;
+
+///
+/// Local APIC Flags. All other bits are reserved and must be 0.
+///
+
+
+///
+/// IO APIC Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 IoApicId;
+ UINT8 Reserved;
+ UINT32 IoApicAddress;
+ UINT32 GlobalSystemInterruptBase;
+} EFI_ACPI_5_0_IO_APIC_STRUCTURE;
+
+///
+/// Interrupt Source Override Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 Bus;
+ UINT8 Source;
+ UINT32 GlobalSystemInterrupt;
+ UINT16 Flags;
+} EFI_ACPI_5_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE;
+
+///
+/// Platform Interrupt Sources Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Flags;
+ UINT8 InterruptType;
+ UINT8 ProcessorId;
+ UINT8 ProcessorEid;
+ UINT8 IoSapicVector;
+ UINT32 GlobalSystemInterrupt;
+ UINT32 PlatformInterruptSourceFlags;
+ UINT8 CpeiProcessorOverride;
+ UINT8 Reserved[31];
+} EFI_ACPI_5_0_PLATFORM_INTERRUPT_APIC_STRUCTURE;
+
+//
+// MPS INTI flags.
+// All other bits are reserved and must be set to 0.
+//
+
+
+
+///
+/// Non-Maskable Interrupt Source Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Flags;
+ UINT32 GlobalSystemInterrupt;
+} EFI_ACPI_5_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE;
+
+///
+/// Local APIC NMI Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 AcpiProcessorId;
+ UINT16 Flags;
+ UINT8 LocalApicLint;
+} EFI_ACPI_5_0_LOCAL_APIC_NMI_STRUCTURE;
+
+///
+/// Local APIC Address Override Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Reserved;
+ UINT64 LocalApicAddress;
+} EFI_ACPI_5_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE;
+
+///
+/// IO SAPIC Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 IoApicId;
+ UINT8 Reserved;
+ UINT32 GlobalSystemInterruptBase;
+ UINT64 IoSapicAddress;
+} EFI_ACPI_5_0_IO_SAPIC_STRUCTURE;
+
+///
+/// Local SAPIC Structure
+/// This struct followed by a null-terminated ASCII string - ACPI Processor UID String
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 AcpiProcessorId;
+ UINT8 LocalSapicId;
+ UINT8 LocalSapicEid;
+ UINT8 Reserved[3];
+ UINT32 Flags;
+ UINT32 ACPIProcessorUIDValue;
+} EFI_ACPI_5_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE;
+
+///
+/// Platform Interrupt Sources Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Flags;
+ UINT8 InterruptType;
+ UINT8 ProcessorId;
+ UINT8 ProcessorEid;
+ UINT8 IoSapicVector;
+ UINT32 GlobalSystemInterrupt;
+ UINT32 PlatformInterruptSourceFlags;
+} EFI_ACPI_5_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE;
+
+///
+/// Platform Interrupt Source Flags.
+/// All other bits are reserved and must be set to 0.
+///
+
+
+///
+/// Processor Local x2APIC Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 Reserved[2];
+ UINT32 X2ApicId;
+ UINT32 Flags;
+ UINT32 AcpiProcessorUid;
+} EFI_ACPI_5_0_PROCESSOR_LOCAL_X2APIC_STRUCTURE;
+
+///
+/// Local x2APIC NMI Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Flags;
+ UINT32 AcpiProcessorUid;
+ UINT8 LocalX2ApicLint;
+ UINT8 Reserved[3];
+} EFI_ACPI_5_0_LOCAL_X2APIC_NMI_STRUCTURE;
+
+///
+/// GIC Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Reserved;
+ UINT32 GicId;
+ UINT32 AcpiProcessorUid;
+ UINT32 Flags;
+ UINT32 ParkingProtocolVersion;
+ UINT32 PerformanceInterruptGsiv;
+ UINT64 ParkedAddress;
+ UINT64 PhysicalBaseAddress;
+} EFI_ACPI_5_0_GIC_STRUCTURE;
+
+///
+/// GIC Flags. All other bits are reserved and must be 0.
+///
+
+
+
+///
+/// GIC Distributor Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Reserved1;
+ UINT32 GicId;
+ UINT64 PhysicalBaseAddress;
+ UINT32 SystemVectorBase;
+ UINT32 Reserved2;
+} EFI_ACPI_5_0_GIC_DISTRIBUTOR_STRUCTURE;
+
+///
+/// Smart Battery Description Table (SBST)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 WarningEnergyLevel;
+ UINT32 LowEnergyLevel;
+ UINT32 CriticalEnergyLevel;
+} EFI_ACPI_5_0_SMART_BATTERY_DESCRIPTION_TABLE;
+
+///
+/// SBST Version (as defined in ACPI 5.0 spec.)
+///
+
+
+///
+/// Embedded Controller Boot Resources Table (ECDT)
+/// The table is followed by a null terminated ASCII string that contains
+/// a fully qualified reference to the name space object.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE EcControl;
+ EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE EcData;
+ UINT32 Uid;
+ UINT8 GpeBit;
+} EFI_ACPI_5_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE;
+
+///
+/// ECDT Version (as defined in ACPI 5.0 spec.)
+///
+
+
+///
+/// System Resource Affinity Table (SRAT). The rest of the table
+/// must be defined in a platform specific manner.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 Reserved1; ///< Must be set to 1
+ UINT64 Reserved2;
+} EFI_ACPI_5_0_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER;
+
+///
+/// SRAT Version (as defined in ACPI 5.0 spec.)
+///
+
+
+//
+// SRAT structure types.
+// All other values between 0x03 an 0xFF are reserved and
+// will be ignored by OSPM.
+//
+
+
+
+
+///
+/// Processor Local APIC/SAPIC Affinity Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 ProximityDomain7To0;
+ UINT8 ApicId;
+ UINT32 Flags;
+ UINT8 LocalSapicEid;
+ UINT8 ProximityDomain31To8[3];
+ UINT32 ClockDomain;
+} EFI_ACPI_5_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY_STRUCTURE;
+
+///
+/// Local APIC/SAPIC Flags. All other bits are reserved and must be 0.
+///
+
+
+///
+/// Memory Affinity Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT32 ProximityDomain;
+ UINT16 Reserved1;
+ UINT32 AddressBaseLow;
+ UINT32 AddressBaseHigh;
+ UINT32 LengthLow;
+ UINT32 LengthHigh;
+ UINT32 Reserved2;
+ UINT32 Flags;
+ UINT64 Reserved3;
+} EFI_ACPI_5_0_MEMORY_AFFINITY_STRUCTURE;
+
+//
+// Memory Flags. All other bits are reserved and must be 0.
+//
+
+
+
+
+///
+/// Processor Local x2APIC Affinity Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 Reserved1[2];
+ UINT32 ProximityDomain;
+ UINT32 X2ApicId;
+ UINT32 Flags;
+ UINT32 ClockDomain;
+ UINT8 Reserved2[4];
+} EFI_ACPI_5_0_PROCESSOR_LOCAL_X2APIC_AFFINITY_STRUCTURE;
+
+///
+/// System Locality Distance Information Table (SLIT).
+/// The rest of the table is a matrix.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT64 NumberOfSystemLocalities;
+} EFI_ACPI_5_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_HEADER;
+
+///
+/// SLIT Version (as defined in ACPI 5.0 spec.)
+///
+
+
+///
+/// Corrected Platform Error Polling Table (CPEP)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT8 Reserved[8];
+} EFI_ACPI_5_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_HEADER;
+
+///
+/// CPEP Version (as defined in ACPI 5.0 spec.)
+///
+
+
+//
+// CPEP processor structure types.
+//
+
+
+///
+/// Corrected Platform Error Polling Processor Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 ProcessorId;
+ UINT8 ProcessorEid;
+ UINT32 PollingInterval;
+} EFI_ACPI_5_0_CPEP_PROCESSOR_APIC_SAPIC_STRUCTURE;
+
+///
+/// Maximum System Characteristics Table (MSCT)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 OffsetProxDomInfo;
+ UINT32 MaximumNumberOfProximityDomains;
+ UINT32 MaximumNumberOfClockDomains;
+ UINT64 MaximumPhysicalAddress;
+} EFI_ACPI_5_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_HEADER;
+
+///
+/// MSCT Version (as defined in ACPI 5.0 spec.)
+///
+
+
+///
+/// Maximum Proximity Domain Information Structure Definition
+///
+typedef struct {
+ UINT8 Revision;
+ UINT8 Length;
+ UINT32 ProximityDomainRangeLow;
+ UINT32 ProximityDomainRangeHigh;
+ UINT32 MaximumProcessorCapacity;
+ UINT64 MaximumMemoryCapacity;
+} EFI_ACPI_5_0_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE;
+
+///
+/// ACPI RAS Feature Table definition.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT8 PlatformCommunicationChannelIdentifier[12];
+} EFI_ACPI_5_0_RAS_FEATURE_TABLE;
+
+///
+/// RASF Version (as defined in ACPI 5.0 spec.)
+///
+
+
+///
+/// ACPI RASF Platform Communication Channel Shared Memory Region definition.
+///
+typedef struct {
+ UINT32 Signature;
+ UINT16 Command;
+ UINT16 Status;
+ UINT16 Version;
+ UINT8 RASCapabilities[16];
+ UINT8 SetRASCapabilities[16];
+ UINT16 NumberOfRASFParameterBlocks;
+ UINT32 SetRASCapabilitiesStatus;
+} EFI_ACPI_5_0_RASF_PLATFORM_COMMUNICATION_CHANNEL_SHARED_MEMORY_REGION;
+
+///
+/// ACPI RASF PCC command code
+///
+
+
+///
+/// ACPI RASF Platform RAS Capabilities
+///
+
+
+
+///
+/// ACPI RASF Parameter Block structure for PATROL_SCRUB
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 Version;
+ UINT16 Length;
+ UINT16 PatrolScrubCommand;
+ UINT64 RequestedAddressRange[2];
+ UINT64 ActualAddressRange[2];
+ UINT16 Flags;
+ UINT8 RequestedSpeed;
+} EFI_ACPI_5_0_RASF_PATROL_SCRUB_PLATFORM_BLOCK_STRUCTURE;
+
+///
+/// ACPI RASF Patrol Scrub command
+///
+
+
+
+
+///
+/// Memory Power State Table definition.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT8 PlatformCommunicationChannelIdentifier;
+ UINT8 Reserved[3];
+ // Memory Power Node Structure
+ // Memory Power State Characteristics
+} EFI_ACPI_5_0_MEMORY_POWER_STATUS_TABLE;
+
+///
+/// MPST Version (as defined in ACPI 5.0 spec.)
+///
+
+
+///
+/// MPST Platform Communication Channel Shared Memory Region definition.
+///
+typedef struct {
+ UINT32 Signature;
+ UINT16 Command;
+ UINT16 Status;
+ UINT32 MemoryPowerCommandRegister;
+ UINT32 MemoryPowerStatusRegister;
+ UINT32 PowerStateId;
+ UINT32 MemoryPowerNodeId;
+ UINT64 MemoryEnergyConsumed;
+ UINT64 ExpectedAveragePowerComsuned;
+} EFI_ACPI_5_0_MPST_PLATFORM_COMMUNICATION_CHANNEL_SHARED_MEMORY_REGION;
+
+///
+/// ACPI MPST PCC command code
+///
+
+
+///
+/// ACPI MPST Memory Power command
+///
+
+
+
+
+
+///
+/// MPST Memory Power Node Table
+///
+typedef struct {
+ UINT8 PowerStateValue;
+ UINT8 PowerStateInformationIndex;
+} EFI_ACPI_5_0_MPST_MEMORY_POWER_STATE;
+
+typedef struct {
+ UINT8 Flag;
+ UINT8 Reserved;
+ UINT16 MemoryPowerNodeId;
+ UINT32 Length;
+ UINT64 AddressBase;
+ UINT64 AddressLength;
+ UINT32 NumberOfPowerStates;
+ UINT32 NumberOfPhysicalComponents;
+ // EFI_ACPI_5_0_MPST_MEMORY_POWER_STATE MemoryPowerState[NumberOfPowerStates];
+ // UINT16 PhysicalComponentIdentifier[NumberOfPhysicalComponents];
+} EFI_ACPI_5_0_MPST_MEMORY_POWER_STRUCTURE;
+
+
+
+
+
+typedef struct {
+ UINT16 MemoryPowerNodeCount;
+ UINT8 Reserved[2];
+} EFI_ACPI_5_0_MPST_MEMORY_POWER_NODE_TABLE;
+
+///
+/// MPST Memory Power State Characteristics Table
+///
+typedef struct {
+ UINT8 PowerStateStructureID;
+ UINT8 Flag;
+ UINT16 Reserved;
+ UINT32 AveragePowerConsumedInMPS0;
+ UINT32 RelativePowerSavingToMPS0;
+ UINT64 ExitLatencyToMPS0;
+} EFI_ACPI_5_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE;
+
+
+
+
+
+typedef struct {
+ UINT16 MemoryPowerStateCharacteristicsCount;
+ UINT8 Reserved[2];
+} EFI_ACPI_5_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_TABLE;
+
+///
+/// Memory Topology Table definition.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 Reserved;
+} EFI_ACPI_5_0_MEMORY_TOPOLOGY_TABLE;
+
+///
+/// PMTT Version (as defined in ACPI 5.0 spec.)
+///
+
+
+///
+/// Common Memory Aggregator Device Structure.
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Reserved;
+ UINT16 Length;
+ UINT16 Flags;
+ UINT16 Reserved1;
+} EFI_ACPI_5_0_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE;
+
+///
+/// Memory Aggregator Device Type
+///
+
+
+
+
+///
+/// Socket Memory Aggregator Device Structure.
+///
+typedef struct {
+ EFI_ACPI_5_0_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE Header;
+ UINT16 SocketIdentifier;
+ UINT16 Reserved;
+ // EFI_ACPI_5_0_PMMT_MEMORY_CONTROLLER_MEMORY_AGGREGATOR_DEVICE_STRUCTURE MemoryController[];
+} EFI_ACPI_5_0_PMMT_SOCKET_MEMORY_AGGREGATOR_DEVICE_STRUCTURE;
+
+///
+/// MemoryController Memory Aggregator Device Structure.
+///
+typedef struct {
+ EFI_ACPI_5_0_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE Header;
+ UINT32 ReadLatency;
+ UINT32 WriteLatency;
+ UINT32 ReadBandwidth;
+ UINT32 WriteBandwidth;
+ UINT16 OptimalAccessUnit;
+ UINT16 OptimalAccessAlignment;
+ UINT16 Reserved;
+ UINT16 NumberOfProximityDomains;
+ // UINT32 ProximityDomain[NumberOfProximityDomains];
+ // EFI_ACPI_5_0_PMMT_DIMM_MEMORY_AGGREGATOR_DEVICE_STRUCTURE PhysicalComponent[];
+} EFI_ACPI_5_0_PMMT_MEMORY_CONTROLLER_MEMORY_AGGREGATOR_DEVICE_STRUCTURE;
+
+///
+/// DIMM Memory Aggregator Device Structure.
+///
+typedef struct {
+ EFI_ACPI_5_0_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE Header;
+ UINT16 PhysicalComponentIdentifier;
+ UINT16 Reserved;
+ UINT32 SizeOfDimm;
+ UINT32 SmbiosHandle;
+} EFI_ACPI_5_0_PMMT_DIMM_MEMORY_AGGREGATOR_DEVICE_STRUCTURE;
+
+///
+/// Boot Graphics Resource Table definition.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ ///
+ /// 2-bytes (16 bit) version ID. This value must be 1.
+ ///
+ UINT16 Version;
+ ///
+ /// 1-byte status field indicating current status about the table.
+ /// Bits[7:1] = Reserved (must be zero)
+ /// Bit [0] = Valid. A one indicates the boot image graphic is valid.
+ ///
+ UINT8 Status;
+ ///
+ /// 1-byte enumerated type field indicating format of the image.
+ /// 0 = Bitmap
+ /// 1 - 255 Reserved (for future use)
+ ///
+ UINT8 ImageType;
+ ///
+ /// 8-byte (64 bit) physical address pointing to the firmware's in-memory copy
+ /// of the image bitmap.
+ ///
+ UINT64 ImageAddress;
+ ///
+ /// A 4-byte (32-bit) unsigned long describing the display X-offset of the boot image.
+ /// (X, Y) display offset of the top left corner of the boot image.
+ /// The top left corner of the display is at offset (0, 0).
+ ///
+ UINT32 ImageOffsetX;
+ ///
+ /// A 4-byte (32-bit) unsigned long describing the display Y-offset of the boot image.
+ /// (X, Y) display offset of the top left corner of the boot image.
+ /// The top left corner of the display is at offset (0, 0).
+ ///
+ UINT32 ImageOffsetY;
+} EFI_ACPI_5_0_BOOT_GRAPHICS_RESOURCE_TABLE;
+
+///
+/// BGRT Revision
+///
+
+
+///
+/// BGRT Version
+///
+
+
+///
+/// BGRT Status
+///
+
+
+
+
+
+///
+/// BGRT Image Type
+///
+
+
+///
+/// FPDT Version (as defined in ACPI 5.0 spec.)
+///
+
+
+///
+/// FPDT Performance Record Types
+///
+
+
+
+///
+/// FPDT Performance Record Revision
+///
+
+
+
+///
+/// FPDT Runtime Performance Record Types
+///
+
+
+
+
+///
+/// FPDT Runtime Performance Record Revision
+///
+
+
+
+
+///
+/// FPDT Performance Record header
+///
+typedef struct {
+ UINT16 Type;
+ UINT8 Length;
+ UINT8 Revision;
+} EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER;
+
+///
+/// FPDT Performance Table header
+///
+typedef struct {
+ UINT32 Signature;
+ UINT32 Length;
+} EFI_ACPI_5_0_FPDT_PERFORMANCE_TABLE_HEADER;
+
+///
+/// FPDT Firmware Basic Boot Performance Pointer Record Structure
+///
+typedef struct {
+ EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header;
+ UINT32 Reserved;
+ ///
+ /// 64-bit processor-relative physical address of the Basic Boot Performance Table.
+ ///
+ UINT64 BootPerformanceTablePointer;
+} EFI_ACPI_5_0_FPDT_BOOT_PERFORMANCE_TABLE_POINTER_RECORD;
+
+///
+/// FPDT S3 Performance Table Pointer Record Structure
+///
+typedef struct {
+ EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header;
+ UINT32 Reserved;
+ ///
+ /// 64-bit processor-relative physical address of the S3 Performance Table.
+ ///
+ UINT64 S3PerformanceTablePointer;
+} EFI_ACPI_5_0_FPDT_S3_PERFORMANCE_TABLE_POINTER_RECORD;
+
+///
+/// FPDT Firmware Basic Boot Performance Record Structure
+///
+typedef struct {
+ EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header;
+ UINT32 Reserved;
+ ///
+ /// Timer value logged at the beginning of firmware image execution.
+ /// This may not always be zero or near zero.
+ ///
+ UINT64 ResetEnd;
+ ///
+ /// Timer value logged just prior to loading the OS boot loader into memory.
+ /// For non-UEFI compatible boots, this field must be zero.
+ ///
+ UINT64 OsLoaderLoadImageStart;
+ ///
+ /// Timer value logged just prior to launching the previously loaded OS boot loader image.
+ /// For non-UEFI compatible boots, the timer value logged will be just prior
+ /// to the INT 19h handler invocation.
+ ///
+ UINT64 OsLoaderStartImageStart;
+ ///
+ /// Timer value logged at the point when the OS loader calls the
+ /// ExitBootServices function for UEFI compatible firmware.
+ /// For non-UEFI compatible boots, this field must be zero.
+ ///
+ UINT64 ExitBootServicesEntry;
+ ///
+ /// Timer value logged at the point just prior to when the OS loader gaining
+ /// control back from calls the ExitBootServices function for UEFI compatible firmware.
+ /// For non-UEFI compatible boots, this field must be zero.
+ ///
+ UINT64 ExitBootServicesExit;
+} EFI_ACPI_5_0_FPDT_FIRMWARE_BASIC_BOOT_RECORD;
+
+///
+/// FPDT Firmware Basic Boot Performance Table signature
+///
+
+
+//
+// FPDT Firmware Basic Boot Performance Table
+//
+typedef struct {
+ EFI_ACPI_5_0_FPDT_PERFORMANCE_TABLE_HEADER Header;
+ //
+ // one or more Performance Records.
+ //
+} EFI_ACPI_5_0_FPDT_FIRMWARE_BASIC_BOOT_TABLE;
+
+///
+/// FPDT "S3PT" S3 Performance Table
+///
+
+
+//
+// FPDT Firmware S3 Boot Performance Table
+//
+typedef struct {
+ EFI_ACPI_5_0_FPDT_PERFORMANCE_TABLE_HEADER Header;
+ //
+ // one or more Performance Records.
+ //
+} EFI_ACPI_5_0_FPDT_FIRMWARE_S3_BOOT_TABLE;
+
+///
+/// FPDT Basic S3 Resume Performance Record
+///
+typedef struct {
+ EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header;
+ ///
+ /// A count of the number of S3 resume cycles since the last full boot sequence.
+ ///
+ UINT32 ResumeCount;
+ ///
+ /// Timer recorded at the end of BIOS S3 resume, just prior to handoff to the
+ /// OS waking vector. Only the most recent resume cycle's time is retained.
+ ///
+ UINT64 FullResume;
+ ///
+ /// Average timer value of all resume cycles logged since the last full boot
+ /// sequence, including the most recent resume. Note that the entire log of
+ /// timer values does not need to be retained in order to calculate this average.
+ ///
+ UINT64 AverageResume;
+} EFI_ACPI_5_0_FPDT_S3_RESUME_RECORD;
+
+///
+/// FPDT Basic S3 Suspend Performance Record
+///
+typedef struct {
+ EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header;
+ ///
+ /// Timer value recorded at the OS write to SLP_TYP upon entry to S3.
+ /// Only the most recent suspend cycle's timer value is retained.
+ ///
+ UINT64 SuspendStart;
+ ///
+ /// Timer value recorded at the final firmware write to SLP_TYP (or other
+ /// mechanism) used to trigger hardware entry to S3.
+ /// Only the most recent suspend cycle's timer value is retained.
+ ///
+ UINT64 SuspendEnd;
+} EFI_ACPI_5_0_FPDT_S3_SUSPEND_RECORD;
+
+///
+/// Firmware Performance Record Table definition.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+} EFI_ACPI_5_0_FIRMWARE_PERFORMANCE_RECORD_TABLE;
+
+///
+/// Generic Timer Description Table definition.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT64 PhysicalAddress;
+ UINT32 GlobalFlags;
+ UINT32 SecurePL1TimerGSIV;
+ UINT32 SecurePL1TimerFlags;
+ UINT32 NonSecurePL1TimerGSIV;
+ UINT32 NonSecurePL1TimerFlags;
+ UINT32 VirtualTimerGSIV;
+ UINT32 VirtualTimerFlags;
+ UINT32 NonSecurePL2TimerGSIV;
+ UINT32 NonSecurePL2TimerFlags;
+} EFI_ACPI_5_0_GENERIC_TIMER_DESCRIPTION_TABLE;
+
+///
+/// GTDT Version (as defined in ACPI 5.0 spec.)
+///
+
+
+///
+/// Global Flags. All other bits are reserved and must be 0.
+///
+
+
+
+///
+/// Timer Flags. All other bits are reserved and must be 0.
+///
+
+
+
+///
+/// Boot Error Record Table (BERT)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 BootErrorRegionLength;
+ UINT64 BootErrorRegion;
+} EFI_ACPI_5_0_BOOT_ERROR_RECORD_TABLE_HEADER;
+
+///
+/// BERT Version (as defined in ACPI 5.0 spec.)
+///
+
+
+///
+/// Boot Error Region Block Status Definition
+///
+typedef struct {
+ UINT32 UncorrectableErrorValid : 1;
+ UINT32 CorrectableErrorValid : 1;
+ UINT32 MultipleUncorrectableErrors : 1;
+ UINT32 MultipleCorrectableErrors : 1;
+ UINT32 ErrorDataEntryCount : 10;
+ UINT32 Reserved : 18;
+} EFI_ACPI_5_0_ERROR_BLOCK_STATUS;
+
+///
+/// Boot Error Region Definition
+///
+typedef struct {
+ EFI_ACPI_5_0_ERROR_BLOCK_STATUS BlockStatus;
+ UINT32 RawDataOffset;
+ UINT32 RawDataLength;
+ UINT32 DataLength;
+ UINT32 ErrorSeverity;
+} EFI_ACPI_5_0_BOOT_ERROR_REGION_STRUCTURE;
+
+//
+// Boot Error Severity types
+//
+
+
+
+
+
+
+///
+/// Generic Error Data Entry Definition
+///
+typedef struct {
+ UINT8 SectionType[16];
+ UINT32 ErrorSeverity;
+ UINT16 Revision;
+ UINT8 ValidationBits;
+ UINT8 Flags;
+ UINT32 ErrorDataLength;
+ UINT8 FruId[16];
+ UINT8 FruText[20];
+} EFI_ACPI_5_0_GENERIC_ERROR_DATA_ENTRY_STRUCTURE;
+
+///
+/// Generic Error Data Entry Version (as defined in ACPI 5.0 spec.)
+///
+
+
+///
+/// HEST - Hardware Error Source Table
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 ErrorSourceCount;
+} EFI_ACPI_5_0_HARDWARE_ERROR_SOURCE_TABLE_HEADER;
+
+///
+/// HEST Version (as defined in ACPI 5.0 spec.)
+///
+
+
+//
+// Error Source structure types.
+//
+
+
+
+
+
+
+
+
+//
+// Error Source structure flags.
+//
+
+
+
+///
+/// IA-32 Architecture Machine Check Exception Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT64 GlobalCapabilityInitData;
+ UINT64 GlobalControlInitData;
+ UINT8 NumberOfHardwareBanks;
+ UINT8 Reserved1[7];
+} EFI_ACPI_5_0_IA32_ARCHITECTURE_MACHINE_CHECK_EXCEPTION_STRUCTURE;
+
+///
+/// IA-32 Architecture Machine Check Bank Structure Definition
+///
+typedef struct {
+ UINT8 BankNumber;
+ UINT8 ClearStatusOnInitialization;
+ UINT8 StatusDataFormat;
+ UINT8 Reserved0;
+ UINT32 ControlRegisterMsrAddress;
+ UINT64 ControlInitData;
+ UINT32 StatusRegisterMsrAddress;
+ UINT32 AddressRegisterMsrAddress;
+ UINT32 MiscRegisterMsrAddress;
+} EFI_ACPI_5_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_BANK_STRUCTURE;
+
+///
+/// IA-32 Architecture Machine Check Bank Structure MCA data format
+///
+
+
+
+
+//
+// Hardware Error Notification types. All other values are reserved
+//
+
+
+
+
+
+
+///
+/// Hardware Error Notification Configuration Write Enable Structure Definition
+///
+typedef struct {
+ UINT16 Type : 1;
+ UINT16 PollInterval : 1;
+ UINT16 SwitchToPollingThresholdValue : 1;
+ UINT16 SwitchToPollingThresholdWindow : 1;
+ UINT16 ErrorThresholdValue : 1;
+ UINT16 ErrorThresholdWindow : 1;
+ UINT16 Reserved : 10;
+} EFI_ACPI_5_0_HARDWARE_ERROR_NOTIFICATION_CONFIGURATION_WRITE_ENABLE_STRUCTURE;
+
+///
+/// Hardware Error Notification Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ EFI_ACPI_5_0_HARDWARE_ERROR_NOTIFICATION_CONFIGURATION_WRITE_ENABLE_STRUCTURE ConfigurationWriteEnable;
+ UINT32 PollInterval;
+ UINT32 Vector;
+ UINT32 SwitchToPollingThresholdValue;
+ UINT32 SwitchToPollingThresholdWindow;
+ UINT32 ErrorThresholdValue;
+ UINT32 ErrorThresholdWindow;
+} EFI_ACPI_5_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE;
+
+///
+/// IA-32 Architecture Corrected Machine Check Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ EFI_ACPI_5_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE NotificationStructure;
+ UINT8 NumberOfHardwareBanks;
+ UINT8 Reserved1[3];
+} EFI_ACPI_5_0_IA32_ARCHITECTURE_CORRECTED_MACHINE_CHECK_STRUCTURE;
+
+///
+/// IA-32 Architecture NMI Error Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT32 MaxRawDataLength;
+} EFI_ACPI_5_0_IA32_ARCHITECTURE_NMI_ERROR_STRUCTURE;
+
+///
+/// PCI Express Root Port AER Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT32 Bus;
+ UINT16 Device;
+ UINT16 Function;
+ UINT16 DeviceControl;
+ UINT8 Reserved1[2];
+ UINT32 UncorrectableErrorMask;
+ UINT32 UncorrectableErrorSeverity;
+ UINT32 CorrectableErrorMask;
+ UINT32 AdvancedErrorCapabilitiesAndControl;
+ UINT32 RootErrorCommand;
+} EFI_ACPI_5_0_PCI_EXPRESS_ROOT_PORT_AER_STRUCTURE;
+
+///
+/// PCI Express Device AER Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT32 Bus;
+ UINT16 Device;
+ UINT16 Function;
+ UINT16 DeviceControl;
+ UINT8 Reserved1[2];
+ UINT32 UncorrectableErrorMask;
+ UINT32 UncorrectableErrorSeverity;
+ UINT32 CorrectableErrorMask;
+ UINT32 AdvancedErrorCapabilitiesAndControl;
+} EFI_ACPI_5_0_PCI_EXPRESS_DEVICE_AER_STRUCTURE;
+
+///
+/// PCI Express Bridge AER Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT32 Bus;
+ UINT16 Device;
+ UINT16 Function;
+ UINT16 DeviceControl;
+ UINT8 Reserved1[2];
+ UINT32 UncorrectableErrorMask;
+ UINT32 UncorrectableErrorSeverity;
+ UINT32 CorrectableErrorMask;
+ UINT32 AdvancedErrorCapabilitiesAndControl;
+ UINT32 SecondaryUncorrectableErrorMask;
+ UINT32 SecondaryUncorrectableErrorSeverity;
+ UINT32 SecondaryAdvancedErrorCapabilitiesAndControl;
+} EFI_ACPI_5_0_PCI_EXPRESS_BRIDGE_AER_STRUCTURE;
+
+///
+/// Generic Hardware Error Source Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT16 RelatedSourceId;
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT32 MaxRawDataLength;
+ EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE ErrorStatusAddress;
+ EFI_ACPI_5_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE NotificationStructure;
+ UINT32 ErrorStatusBlockLength;
+} EFI_ACPI_5_0_GENERIC_HARDWARE_ERROR_SOURCE_STRUCTURE;
+
+///
+/// Generic Error Status Definition
+///
+typedef struct {
+ EFI_ACPI_5_0_ERROR_BLOCK_STATUS BlockStatus;
+ UINT32 RawDataOffset;
+ UINT32 RawDataLength;
+ UINT32 DataLength;
+ UINT32 ErrorSeverity;
+} EFI_ACPI_5_0_GENERIC_ERROR_STATUS_STRUCTURE;
+
+///
+/// ERST - Error Record Serialization Table
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 SerializationHeaderSize;
+ UINT8 Reserved0[4];
+ UINT32 InstructionEntryCount;
+} EFI_ACPI_5_0_ERROR_RECORD_SERIALIZATION_TABLE_HEADER;
+
+///
+/// ERST Version (as defined in ACPI 5.0 spec.)
+///
+
+
+///
+/// ERST Serialization Actions
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// ERST Action Command Status
+///
+
+
+
+
+
+
+
+///
+/// ERST Serialization Instructions
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// ERST Instruction Flags
+///
+
+
+///
+/// ERST Serialization Instruction Entry
+///
+typedef struct {
+ UINT8 SerializationAction;
+ UINT8 Instruction;
+ UINT8 Flags;
+ UINT8 Reserved0;
+ EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE RegisterRegion;
+ UINT64 Value;
+ UINT64 Mask;
+} EFI_ACPI_5_0_ERST_SERIALIZATION_INSTRUCTION_ENTRY;
+
+///
+/// EINJ - Error Injection Table
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 InjectionHeaderSize;
+ UINT8 InjectionFlags;
+ UINT8 Reserved0[3];
+ UINT32 InjectionEntryCount;
+} EFI_ACPI_5_0_ERROR_INJECTION_TABLE_HEADER;
+
+///
+/// EINJ Version (as defined in ACPI 5.0 spec.)
+///
+
+
+///
+/// EINJ Error Injection Actions
+///
+
+
+
+
+
+
+
+
+
+
+///
+/// EINJ Action Command Status
+///
+
+
+
+
+///
+/// EINJ Error Type Definition
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// EINJ Injection Instructions
+///
+
+
+
+
+
+
+///
+/// EINJ Instruction Flags
+///
+
+
+///
+/// EINJ Injection Instruction Entry
+///
+typedef struct {
+ UINT8 InjectionAction;
+ UINT8 Instruction;
+ UINT8 Flags;
+ UINT8 Reserved0;
+ EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE RegisterRegion;
+ UINT64 Value;
+ UINT64 Mask;
+} EFI_ACPI_5_0_EINJ_INJECTION_INSTRUCTION_ENTRY;
+
+///
+/// EINJ Trigger Action Table
+///
+typedef struct {
+ UINT32 HeaderSize;
+ UINT32 Revision;
+ UINT32 TableSize;
+ UINT32 EntryCount;
+} EFI_ACPI_5_0_EINJ_TRIGGER_ACTION_TABLE;
+
+///
+/// Platform Communications Channel Table (PCCT)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 Flags;
+ UINT64 Reserved;
+} EFI_ACPI_5_0_PLATFORM_COMMUNICATION_CHANNEL_TABLE_HEADER;
+
+///
+/// PCCT Version (as defined in ACPI 5.0 spec.)
+///
+
+
+///
+/// PCCT Global Flags
+///
+
+
+//
+// PCCT Subspace type
+//
+
+
+///
+/// PCC Subspace Structure Header
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+} EFI_ACPI_5_0_PCCT_SUBSPACE_HEADER;
+
+///
+/// Generic Communications Subspace Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 Reserved[6];
+ UINT64 BaseAddress;
+ UINT64 AddressLength;
+ EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE DoorbellRegister;
+ UINT64 DoorbellPreserve;
+ UINT64 DoorbellWrite;
+ UINT32 NominalLatency;
+ UINT32 MaximumPeriodicAccessRate;
+ UINT16 MinimumRequestTurnaroundTime;
+} EFI_ACPI_5_0_PCCT_SUBSPACE_GENERIC;
+
+///
+/// Generic Communications Channel Shared Memory Region
+///
+
+typedef struct {
+ UINT8 Command;
+ UINT8 Reserved : 7;
+ UINT8 GenerateSci : 1;
+} EFI_ACPI_5_0_PCCT_GENERIC_SHARED_MEMORY_REGION_COMMAND;
+
+typedef struct {
+ UINT8 CommandComplete : 1;
+ UINT8 SciDoorbell : 1;
+ UINT8 Error : 1;
+ UINT8 PlatformNotification : 1;
+ UINT8 Reserved : 4;
+ UINT8 Reserved1;
+} EFI_ACPI_5_0_PCCT_GENERIC_SHARED_MEMORY_REGION_STATUS;
+
+typedef struct {
+ UINT32 Signature;
+ EFI_ACPI_5_0_PCCT_GENERIC_SHARED_MEMORY_REGION_COMMAND Command;
+ EFI_ACPI_5_0_PCCT_GENERIC_SHARED_MEMORY_REGION_STATUS Status;
+} EFI_ACPI_5_0_PCCT_GENERIC_SHARED_MEMORY_REGION_HEADER;
+
+//
+// Known table signatures
+//
+
+///
+/// "RSD PTR " Root System Description Pointer
+///
+
+
+///
+/// "APIC" Multiple APIC Description Table
+///
+
+
+///
+/// "BERT" Boot Error Record Table
+///
+
+
+///
+/// "BGRT" Boot Graphics Resource Table
+///
+
+
+///
+/// "CPEP" Corrected Platform Error Polling Table
+///
+
+
+///
+/// "DSDT" Differentiated System Description Table
+///
+
+
+///
+/// "ECDT" Embedded Controller Boot Resources Table
+///
+
+
+///
+/// "EINJ" Error Injection Table
+///
+
+
+///
+/// "ERST" Error Record Serialization Table
+///
+
+
+///
+/// "FACP" Fixed ACPI Description Table
+///
+
+
+///
+/// "FACS" Firmware ACPI Control Structure
+///
+
+
+///
+/// "FPDT" Firmware Performance Data Table
+///
+
+
+///
+/// "GTDT" Generic Timer Description Table
+///
+
+
+///
+/// "HEST" Hardware Error Source Table
+///
+
+
+///
+/// "MPST" Memory Power State Table
+///
+
+
+///
+/// "MSCT" Maximum System Characteristics Table
+///
+
+
+///
+/// "PMTT" Platform Memory Topology Table
+///
+
+
+///
+/// "PSDT" Persistent System Description Table
+///
+
+
+///
+/// "RASF" ACPI RAS Feature Table
+///
+
+
+///
+/// "RSDT" Root System Description Table
+///
+
+
+///
+/// "SBST" Smart Battery Specification Table
+///
+
+
+///
+/// "SLIT" System Locality Information Table
+///
+
+
+///
+/// "SRAT" System Resource Affinity Table
+///
+
+
+///
+/// "SSDT" Secondary System Description Table
+///
+
+
+///
+/// "XSDT" Extended System Description Table
+///
+
+
+///
+/// "BOOT" MS Simple Boot Spec
+///
+
+
+///
+/// "CSRT" MS Core System Resource Table
+///
+
+
+///
+/// "DBG2" MS Debug Port 2 Spec
+///
+
+
+///
+/// "DBGP" MS Debug Port Spec
+///
+
+
+///
+/// "DMAR" DMA Remapping Table
+///
+
+
+///
+/// "DRTM" Dynamic Root of Trust for Measurement Table
+///
+
+
+///
+/// "ETDT" Event Timer Description Table
+///
+
+
+///
+/// "HPET" IA-PC High Precision Event Timer Table
+///
+
+
+///
+/// "iBFT" iSCSI Boot Firmware Table
+///
+
+
+///
+/// "IVRS" I/O Virtualization Reporting Structure
+///
+
+
+///
+/// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table
+///
+
+
+///
+/// "MCHI" Management Controller Host Interface Table
+///
+
+
+///
+/// "MSDM" MS Data Management Table
+///
+
+
+///
+/// "PCCT" Platform Communications Channel Table
+///
+
+
+///
+/// "SLIC" MS Software Licensing Table Specification
+///
+
+
+///
+/// "SPCR" Serial Port Console Redirection Table
+///
+
+
+///
+/// "SPMI" Server Platform Management Interface Table
+///
+
+
+///
+/// "TCPA" Trusted Computing Platform Alliance Capabilities Table
+///
+
+
+///
+/// "TPM2" Trusted Computing Platform 1 Table
+///
+
+
+///
+/// "UEFI" UEFI ACPI Data Table
+///
+
+
+///
+/// "WAET" Windows ACPI Emulated Devices Table
+///
+
+
+
+///
+/// "WDAT" Watchdog Action Table
+///
+
+
+///
+/// "WDRT" Watchdog Resource Table
+///
+
+
+///
+/// "WPBT" MS Platform Binary Table
+///
+
+
+#pragma pack()
+
+#line 2121 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/Acpi50.h"
+
+#line 15 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/Acpi51.h"
+
+//
+// Ensure proper structure formats
+//
+#pragma pack(1)
+
+///
+/// ACPI 5.1 Generic Address Space definition
+///
+typedef struct {
+ UINT8 AddressSpaceId;
+ UINT8 RegisterBitWidth;
+ UINT8 RegisterBitOffset;
+ UINT8 AccessSize;
+ UINT64 Address;
+} EFI_ACPI_5_1_GENERIC_ADDRESS_STRUCTURE;
+
+//
+// Generic Address Space Address IDs
+//
+
+
+
+
+
+
+
+
+//
+// Generic Address Space Access Sizes
+//
+
+
+
+
+
+
+//
+// ACPI 5.1 table structures
+//
+
+///
+/// Root System Description Pointer Structure
+///
+typedef struct {
+ UINT64 Signature;
+ UINT8 Checksum;
+ UINT8 OemId[6];
+ UINT8 Revision;
+ UINT32 RsdtAddress;
+ UINT32 Length;
+ UINT64 XsdtAddress;
+ UINT8 ExtendedChecksum;
+ UINT8 Reserved[3];
+} EFI_ACPI_5_1_ROOT_SYSTEM_DESCRIPTION_POINTER;
+
+///
+/// RSD_PTR Revision (as defined in ACPI 5.1 spec.)
+///
+
+
+///
+/// Common table header, this prefaces all ACPI tables, including FACS, but
+/// excluding the RSD PTR structure
+///
+typedef struct {
+ UINT32 Signature;
+ UINT32 Length;
+} EFI_ACPI_5_1_COMMON_HEADER;
+
+//
+// Root System Description Table
+// No definition needed as it is a common description table header, the same with
+// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers.
+//
+
+///
+/// RSDT Revision (as defined in ACPI 5.1 spec.)
+///
+
+
+//
+// Extended System Description Table
+// No definition needed as it is a common description table header, the same with
+// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers.
+//
+
+///
+/// XSDT Revision (as defined in ACPI 5.1 spec.)
+///
+
+
+///
+/// Fixed ACPI Description Table Structure (FADT)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 FirmwareCtrl;
+ UINT32 Dsdt;
+ UINT8 Reserved0;
+ UINT8 PreferredPmProfile;
+ UINT16 SciInt;
+ UINT32 SmiCmd;
+ UINT8 AcpiEnable;
+ UINT8 AcpiDisable;
+ UINT8 S4BiosReq;
+ UINT8 PstateCnt;
+ UINT32 Pm1aEvtBlk;
+ UINT32 Pm1bEvtBlk;
+ UINT32 Pm1aCntBlk;
+ UINT32 Pm1bCntBlk;
+ UINT32 Pm2CntBlk;
+ UINT32 PmTmrBlk;
+ UINT32 Gpe0Blk;
+ UINT32 Gpe1Blk;
+ UINT8 Pm1EvtLen;
+ UINT8 Pm1CntLen;
+ UINT8 Pm2CntLen;
+ UINT8 PmTmrLen;
+ UINT8 Gpe0BlkLen;
+ UINT8 Gpe1BlkLen;
+ UINT8 Gpe1Base;
+ UINT8 CstCnt;
+ UINT16 PLvl2Lat;
+ UINT16 PLvl3Lat;
+ UINT16 FlushSize;
+ UINT16 FlushStride;
+ UINT8 DutyOffset;
+ UINT8 DutyWidth;
+ UINT8 DayAlrm;
+ UINT8 MonAlrm;
+ UINT8 Century;
+ UINT16 IaPcBootArch;
+ UINT8 Reserved1;
+ UINT32 Flags;
+ EFI_ACPI_5_1_GENERIC_ADDRESS_STRUCTURE ResetReg;
+ UINT8 ResetValue;
+ UINT16 ArmBootArch;
+ UINT8 MinorVersion;
+ UINT64 XFirmwareCtrl;
+ UINT64 XDsdt;
+ EFI_ACPI_5_1_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk;
+ EFI_ACPI_5_1_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk;
+ EFI_ACPI_5_1_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk;
+ EFI_ACPI_5_1_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk;
+ EFI_ACPI_5_1_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk;
+ EFI_ACPI_5_1_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk;
+ EFI_ACPI_5_1_GENERIC_ADDRESS_STRUCTURE XGpe0Blk;
+ EFI_ACPI_5_1_GENERIC_ADDRESS_STRUCTURE XGpe1Blk;
+ EFI_ACPI_5_1_GENERIC_ADDRESS_STRUCTURE SleepControlReg;
+ EFI_ACPI_5_1_GENERIC_ADDRESS_STRUCTURE SleepStatusReg;
+} EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE;
+
+///
+/// FADT Version (as defined in ACPI 5.1 spec.)
+///
+
+
+
+//
+// Fixed ACPI Description Table Preferred Power Management Profile
+//
+
+
+
+
+
+
+
+
+
+
+//
+// Fixed ACPI Description Table Boot Architecture Flags
+// All other bits are reserved and must be set to 0.
+//
+
+
+
+
+
+
+
+//
+// Fixed ACPI Description Table Arm Boot Architecture Flags
+// All other bits are reserved and must be set to 0.
+//
+
+
+
+//
+// Fixed ACPI Description Table Fixed Feature Flags
+// All other bits are reserved and must be set to 0.
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// Firmware ACPI Control Structure
+///
+typedef struct {
+ UINT32 Signature;
+ UINT32 Length;
+ UINT32 HardwareSignature;
+ UINT32 FirmwareWakingVector;
+ UINT32 GlobalLock;
+ UINT32 Flags;
+ UINT64 XFirmwareWakingVector;
+ UINT8 Version;
+ UINT8 Reserved0[3];
+ UINT32 OspmFlags;
+ UINT8 Reserved1[24];
+} EFI_ACPI_5_1_FIRMWARE_ACPI_CONTROL_STRUCTURE;
+
+///
+/// FACS Version (as defined in ACPI 5.1 spec.)
+///
+
+
+///
+/// Firmware Control Structure Feature Flags
+/// All other bits are reserved and must be set to 0.
+///
+
+
+
+///
+/// OSPM Enabled Firmware Control Structure Flags
+/// All other bits are reserved and must be set to 0.
+///
+
+
+//
+// Differentiated System Description Table,
+// Secondary System Description Table
+// and Persistent System Description Table,
+// no definition needed as they are common description table header, the same with
+// EFI_ACPI_DESCRIPTION_HEADER, followed by a definition block.
+//
+
+
+
+///
+/// Multiple APIC Description Table header definition. The rest of the table
+/// must be defined in a platform specific manner.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 LocalApicAddress;
+ UINT32 Flags;
+} EFI_ACPI_5_1_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;
+
+///
+/// MADT Revision (as defined in ACPI 5.1 spec.)
+///
+
+
+///
+/// Multiple APIC Flags
+/// All other bits are reserved and must be set to 0.
+///
+
+
+//
+// Multiple APIC Description Table APIC structure types
+// All other values between 0x0D and 0x7F are reserved and
+// will be ignored by OSPM. 0x80 ~ 0xFF are reserved for OEM.
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+//
+// APIC Structure Definitions
+//
+
+///
+/// Processor Local APIC Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 AcpiProcessorId;
+ UINT8 ApicId;
+ UINT32 Flags;
+} EFI_ACPI_5_1_PROCESSOR_LOCAL_APIC_STRUCTURE;
+
+///
+/// Local APIC Flags. All other bits are reserved and must be 0.
+///
+
+
+///
+/// IO APIC Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 IoApicId;
+ UINT8 Reserved;
+ UINT32 IoApicAddress;
+ UINT32 GlobalSystemInterruptBase;
+} EFI_ACPI_5_1_IO_APIC_STRUCTURE;
+
+///
+/// Interrupt Source Override Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 Bus;
+ UINT8 Source;
+ UINT32 GlobalSystemInterrupt;
+ UINT16 Flags;
+} EFI_ACPI_5_1_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE;
+
+///
+/// Platform Interrupt Sources Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Flags;
+ UINT8 InterruptType;
+ UINT8 ProcessorId;
+ UINT8 ProcessorEid;
+ UINT8 IoSapicVector;
+ UINT32 GlobalSystemInterrupt;
+ UINT32 PlatformInterruptSourceFlags;
+ UINT8 CpeiProcessorOverride;
+ UINT8 Reserved[31];
+} EFI_ACPI_5_1_PLATFORM_INTERRUPT_APIC_STRUCTURE;
+
+//
+// MPS INTI flags.
+// All other bits are reserved and must be set to 0.
+//
+
+
+
+///
+/// Non-Maskable Interrupt Source Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Flags;
+ UINT32 GlobalSystemInterrupt;
+} EFI_ACPI_5_1_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE;
+
+///
+/// Local APIC NMI Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 AcpiProcessorId;
+ UINT16 Flags;
+ UINT8 LocalApicLint;
+} EFI_ACPI_5_1_LOCAL_APIC_NMI_STRUCTURE;
+
+///
+/// Local APIC Address Override Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Reserved;
+ UINT64 LocalApicAddress;
+} EFI_ACPI_5_1_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE;
+
+///
+/// IO SAPIC Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 IoApicId;
+ UINT8 Reserved;
+ UINT32 GlobalSystemInterruptBase;
+ UINT64 IoSapicAddress;
+} EFI_ACPI_5_1_IO_SAPIC_STRUCTURE;
+
+///
+/// Local SAPIC Structure
+/// This struct followed by a null-terminated ASCII string - ACPI Processor UID String
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 AcpiProcessorId;
+ UINT8 LocalSapicId;
+ UINT8 LocalSapicEid;
+ UINT8 Reserved[3];
+ UINT32 Flags;
+ UINT32 ACPIProcessorUIDValue;
+} EFI_ACPI_5_1_PROCESSOR_LOCAL_SAPIC_STRUCTURE;
+
+///
+/// Platform Interrupt Sources Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Flags;
+ UINT8 InterruptType;
+ UINT8 ProcessorId;
+ UINT8 ProcessorEid;
+ UINT8 IoSapicVector;
+ UINT32 GlobalSystemInterrupt;
+ UINT32 PlatformInterruptSourceFlags;
+} EFI_ACPI_5_1_PLATFORM_INTERRUPT_SOURCES_STRUCTURE;
+
+///
+/// Platform Interrupt Source Flags.
+/// All other bits are reserved and must be set to 0.
+///
+
+
+///
+/// Processor Local x2APIC Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 Reserved[2];
+ UINT32 X2ApicId;
+ UINT32 Flags;
+ UINT32 AcpiProcessorUid;
+} EFI_ACPI_5_1_PROCESSOR_LOCAL_X2APIC_STRUCTURE;
+
+///
+/// Local x2APIC NMI Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Flags;
+ UINT32 AcpiProcessorUid;
+ UINT8 LocalX2ApicLint;
+ UINT8 Reserved[3];
+} EFI_ACPI_5_1_LOCAL_X2APIC_NMI_STRUCTURE;
+
+///
+/// GIC Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Reserved;
+ UINT32 CPUInterfaceNumber;
+ UINT32 AcpiProcessorUid;
+ UINT32 Flags;
+ UINT32 ParkingProtocolVersion;
+ UINT32 PerformanceInterruptGsiv;
+ UINT64 ParkedAddress;
+ UINT64 PhysicalBaseAddress;
+ UINT64 GICV;
+ UINT64 GICH;
+ UINT32 VGICMaintenanceInterrupt;
+ UINT64 GICRBaseAddress;
+ UINT64 MPIDR;
+} EFI_ACPI_5_1_GIC_STRUCTURE;
+
+///
+/// GIC Flags. All other bits are reserved and must be 0.
+///
+
+
+
+
+///
+/// GIC Distributor Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Reserved1;
+ UINT32 GicId;
+ UINT64 PhysicalBaseAddress;
+ UINT32 SystemVectorBase;
+ UINT8 GicVersion;
+ UINT8 Reserved2[3];
+} EFI_ACPI_5_1_GIC_DISTRIBUTOR_STRUCTURE;
+
+///
+/// GIC Version
+///
+
+
+
+
+
+///
+/// GIC MSI Frame Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Reserved1;
+ UINT32 GicMsiFrameId;
+ UINT64 PhysicalBaseAddress;
+ UINT32 Flags;
+ UINT16 SPICount;
+ UINT16 SPIBase;
+} EFI_ACPI_5_1_GIC_MSI_FRAME_STRUCTURE;
+
+///
+/// GIC MSI Frame Flags. All other bits are reserved and must be 0.
+///
+
+
+///
+/// GICR Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Reserved;
+ UINT64 DiscoveryRangeBaseAddress;
+ UINT32 DiscoveryRangeLength;
+} EFI_ACPI_5_1_GICR_STRUCTURE;
+
+///
+/// Smart Battery Description Table (SBST)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 WarningEnergyLevel;
+ UINT32 LowEnergyLevel;
+ UINT32 CriticalEnergyLevel;
+} EFI_ACPI_5_1_SMART_BATTERY_DESCRIPTION_TABLE;
+
+///
+/// SBST Version (as defined in ACPI 5.1 spec.)
+///
+
+
+///
+/// Embedded Controller Boot Resources Table (ECDT)
+/// The table is followed by a null terminated ASCII string that contains
+/// a fully qualified reference to the name space object.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ EFI_ACPI_5_1_GENERIC_ADDRESS_STRUCTURE EcControl;
+ EFI_ACPI_5_1_GENERIC_ADDRESS_STRUCTURE EcData;
+ UINT32 Uid;
+ UINT8 GpeBit;
+} EFI_ACPI_5_1_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE;
+
+///
+/// ECDT Version (as defined in ACPI 5.1 spec.)
+///
+
+
+///
+/// System Resource Affinity Table (SRAT). The rest of the table
+/// must be defined in a platform specific manner.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 Reserved1; ///< Must be set to 1
+ UINT64 Reserved2;
+} EFI_ACPI_5_1_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER;
+
+///
+/// SRAT Version (as defined in ACPI 5.1 spec.)
+///
+
+
+//
+// SRAT structure types.
+// All other values between 0x04 an 0xFF are reserved and
+// will be ignored by OSPM.
+//
+
+
+
+
+
+///
+/// Processor Local APIC/SAPIC Affinity Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 ProximityDomain7To0;
+ UINT8 ApicId;
+ UINT32 Flags;
+ UINT8 LocalSapicEid;
+ UINT8 ProximityDomain31To8[3];
+ UINT32 ClockDomain;
+} EFI_ACPI_5_1_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY_STRUCTURE;
+
+///
+/// Local APIC/SAPIC Flags. All other bits are reserved and must be 0.
+///
+
+
+///
+/// Memory Affinity Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT32 ProximityDomain;
+ UINT16 Reserved1;
+ UINT32 AddressBaseLow;
+ UINT32 AddressBaseHigh;
+ UINT32 LengthLow;
+ UINT32 LengthHigh;
+ UINT32 Reserved2;
+ UINT32 Flags;
+ UINT64 Reserved3;
+} EFI_ACPI_5_1_MEMORY_AFFINITY_STRUCTURE;
+
+//
+// Memory Flags. All other bits are reserved and must be 0.
+//
+
+
+
+
+///
+/// Processor Local x2APIC Affinity Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 Reserved1[2];
+ UINT32 ProximityDomain;
+ UINT32 X2ApicId;
+ UINT32 Flags;
+ UINT32 ClockDomain;
+ UINT8 Reserved2[4];
+} EFI_ACPI_5_1_PROCESSOR_LOCAL_X2APIC_AFFINITY_STRUCTURE;
+
+///
+/// GICC Affinity Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT32 ProximityDomain;
+ UINT32 AcpiProcessorUid;
+ UINT32 Flags;
+ UINT32 ClockDomain;
+} EFI_ACPI_5_1_GICC_AFFINITY_STRUCTURE;
+
+///
+/// GICC Flags. All other bits are reserved and must be 0.
+///
+
+
+///
+/// System Locality Distance Information Table (SLIT).
+/// The rest of the table is a matrix.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT64 NumberOfSystemLocalities;
+} EFI_ACPI_5_1_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_HEADER;
+
+///
+/// SLIT Version (as defined in ACPI 5.1 spec.)
+///
+
+
+///
+/// Corrected Platform Error Polling Table (CPEP)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT8 Reserved[8];
+} EFI_ACPI_5_1_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_HEADER;
+
+///
+/// CPEP Version (as defined in ACPI 5.1 spec.)
+///
+
+
+//
+// CPEP processor structure types.
+//
+
+
+///
+/// Corrected Platform Error Polling Processor Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 ProcessorId;
+ UINT8 ProcessorEid;
+ UINT32 PollingInterval;
+} EFI_ACPI_5_1_CPEP_PROCESSOR_APIC_SAPIC_STRUCTURE;
+
+///
+/// Maximum System Characteristics Table (MSCT)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 OffsetProxDomInfo;
+ UINT32 MaximumNumberOfProximityDomains;
+ UINT32 MaximumNumberOfClockDomains;
+ UINT64 MaximumPhysicalAddress;
+} EFI_ACPI_5_1_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_HEADER;
+
+///
+/// MSCT Version (as defined in ACPI 5.1 spec.)
+///
+
+
+///
+/// Maximum Proximity Domain Information Structure Definition
+///
+typedef struct {
+ UINT8 Revision;
+ UINT8 Length;
+ UINT32 ProximityDomainRangeLow;
+ UINT32 ProximityDomainRangeHigh;
+ UINT32 MaximumProcessorCapacity;
+ UINT64 MaximumMemoryCapacity;
+} EFI_ACPI_5_1_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE;
+
+///
+/// ACPI RAS Feature Table definition.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT8 PlatformCommunicationChannelIdentifier[12];
+} EFI_ACPI_5_1_RAS_FEATURE_TABLE;
+
+///
+/// RASF Version (as defined in ACPI 5.1 spec.)
+///
+
+
+///
+/// ACPI RASF Platform Communication Channel Shared Memory Region definition.
+///
+typedef struct {
+ UINT32 Signature;
+ UINT16 Command;
+ UINT16 Status;
+ UINT16 Version;
+ UINT8 RASCapabilities[16];
+ UINT8 SetRASCapabilities[16];
+ UINT16 NumberOfRASFParameterBlocks;
+ UINT32 SetRASCapabilitiesStatus;
+} EFI_ACPI_5_1_RASF_PLATFORM_COMMUNICATION_CHANNEL_SHARED_MEMORY_REGION;
+
+///
+/// ACPI RASF PCC command code
+///
+
+
+///
+/// ACPI RASF Platform RAS Capabilities
+///
+
+
+
+///
+/// ACPI RASF Parameter Block structure for PATROL_SCRUB
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 Version;
+ UINT16 Length;
+ UINT16 PatrolScrubCommand;
+ UINT64 RequestedAddressRange[2];
+ UINT64 ActualAddressRange[2];
+ UINT16 Flags;
+ UINT8 RequestedSpeed;
+} EFI_ACPI_5_1_RASF_PATROL_SCRUB_PLATFORM_BLOCK_STRUCTURE;
+
+///
+/// ACPI RASF Patrol Scrub command
+///
+
+
+
+
+///
+/// Memory Power State Table definition.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT8 PlatformCommunicationChannelIdentifier;
+ UINT8 Reserved[3];
+ // Memory Power Node Structure
+ // Memory Power State Characteristics
+} EFI_ACPI_5_1_MEMORY_POWER_STATUS_TABLE;
+
+///
+/// MPST Version (as defined in ACPI 5.1 spec.)
+///
+
+
+///
+/// MPST Platform Communication Channel Shared Memory Region definition.
+///
+typedef struct {
+ UINT32 Signature;
+ UINT16 Command;
+ UINT16 Status;
+ UINT32 MemoryPowerCommandRegister;
+ UINT32 MemoryPowerStatusRegister;
+ UINT32 PowerStateId;
+ UINT32 MemoryPowerNodeId;
+ UINT64 MemoryEnergyConsumed;
+ UINT64 ExpectedAveragePowerComsuned;
+} EFI_ACPI_5_1_MPST_PLATFORM_COMMUNICATION_CHANNEL_SHARED_MEMORY_REGION;
+
+///
+/// ACPI MPST PCC command code
+///
+
+
+///
+/// ACPI MPST Memory Power command
+///
+
+
+
+
+
+///
+/// MPST Memory Power Node Table
+///
+typedef struct {
+ UINT8 PowerStateValue;
+ UINT8 PowerStateInformationIndex;
+} EFI_ACPI_5_1_MPST_MEMORY_POWER_STATE;
+
+typedef struct {
+ UINT8 Flag;
+ UINT8 Reserved;
+ UINT16 MemoryPowerNodeId;
+ UINT32 Length;
+ UINT64 AddressBase;
+ UINT64 AddressLength;
+ UINT32 NumberOfPowerStates;
+ UINT32 NumberOfPhysicalComponents;
+ // EFI_ACPI_5_1_MPST_MEMORY_POWER_STATE MemoryPowerState[NumberOfPowerStates];
+ // UINT16 PhysicalComponentIdentifier[NumberOfPhysicalComponents];
+} EFI_ACPI_5_1_MPST_MEMORY_POWER_STRUCTURE;
+
+
+
+
+
+typedef struct {
+ UINT16 MemoryPowerNodeCount;
+ UINT8 Reserved[2];
+} EFI_ACPI_5_1_MPST_MEMORY_POWER_NODE_TABLE;
+
+///
+/// MPST Memory Power State Characteristics Table
+///
+typedef struct {
+ UINT8 PowerStateStructureID;
+ UINT8 Flag;
+ UINT16 Reserved;
+ UINT32 AveragePowerConsumedInMPS0;
+ UINT32 RelativePowerSavingToMPS0;
+ UINT64 ExitLatencyToMPS0;
+} EFI_ACPI_5_1_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE;
+
+
+
+
+
+typedef struct {
+ UINT16 MemoryPowerStateCharacteristicsCount;
+ UINT8 Reserved[2];
+} EFI_ACPI_5_1_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_TABLE;
+
+///
+/// Memory Topology Table definition.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 Reserved;
+} EFI_ACPI_5_1_MEMORY_TOPOLOGY_TABLE;
+
+///
+/// PMTT Version (as defined in ACPI 5.1 spec.)
+///
+
+
+///
+/// Common Memory Aggregator Device Structure.
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Reserved;
+ UINT16 Length;
+ UINT16 Flags;
+ UINT16 Reserved1;
+} EFI_ACPI_5_1_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE;
+
+///
+/// Memory Aggregator Device Type
+///
+
+
+
+
+///
+/// Socket Memory Aggregator Device Structure.
+///
+typedef struct {
+ EFI_ACPI_5_1_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE Header;
+ UINT16 SocketIdentifier;
+ UINT16 Reserved;
+ // EFI_ACPI_5_1_PMMT_MEMORY_CONTROLLER_MEMORY_AGGREGATOR_DEVICE_STRUCTURE MemoryController[];
+} EFI_ACPI_5_1_PMMT_SOCKET_MEMORY_AGGREGATOR_DEVICE_STRUCTURE;
+
+///
+/// MemoryController Memory Aggregator Device Structure.
+///
+typedef struct {
+ EFI_ACPI_5_1_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE Header;
+ UINT32 ReadLatency;
+ UINT32 WriteLatency;
+ UINT32 ReadBandwidth;
+ UINT32 WriteBandwidth;
+ UINT16 OptimalAccessUnit;
+ UINT16 OptimalAccessAlignment;
+ UINT16 Reserved;
+ UINT16 NumberOfProximityDomains;
+ // UINT32 ProximityDomain[NumberOfProximityDomains];
+ // EFI_ACPI_5_1_PMMT_DIMM_MEMORY_AGGREGATOR_DEVICE_STRUCTURE PhysicalComponent[];
+} EFI_ACPI_5_1_PMMT_MEMORY_CONTROLLER_MEMORY_AGGREGATOR_DEVICE_STRUCTURE;
+
+///
+/// DIMM Memory Aggregator Device Structure.
+///
+typedef struct {
+ EFI_ACPI_5_1_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE Header;
+ UINT16 PhysicalComponentIdentifier;
+ UINT16 Reserved;
+ UINT32 SizeOfDimm;
+ UINT32 SmbiosHandle;
+} EFI_ACPI_5_1_PMMT_DIMM_MEMORY_AGGREGATOR_DEVICE_STRUCTURE;
+
+///
+/// Boot Graphics Resource Table definition.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ ///
+ /// 2-bytes (16 bit) version ID. This value must be 1.
+ ///
+ UINT16 Version;
+ ///
+ /// 1-byte status field indicating current status about the table.
+ /// Bits[7:1] = Reserved (must be zero)
+ /// Bit [0] = Valid. A one indicates the boot image graphic is valid.
+ ///
+ UINT8 Status;
+ ///
+ /// 1-byte enumerated type field indicating format of the image.
+ /// 0 = Bitmap
+ /// 1 - 255 Reserved (for future use)
+ ///
+ UINT8 ImageType;
+ ///
+ /// 8-byte (64 bit) physical address pointing to the firmware's in-memory copy
+ /// of the image bitmap.
+ ///
+ UINT64 ImageAddress;
+ ///
+ /// A 4-byte (32-bit) unsigned long describing the display X-offset of the boot image.
+ /// (X, Y) display offset of the top left corner of the boot image.
+ /// The top left corner of the display is at offset (0, 0).
+ ///
+ UINT32 ImageOffsetX;
+ ///
+ /// A 4-byte (32-bit) unsigned long describing the display Y-offset of the boot image.
+ /// (X, Y) display offset of the top left corner of the boot image.
+ /// The top left corner of the display is at offset (0, 0).
+ ///
+ UINT32 ImageOffsetY;
+} EFI_ACPI_5_1_BOOT_GRAPHICS_RESOURCE_TABLE;
+
+///
+/// BGRT Revision
+///
+
+
+///
+/// BGRT Version
+///
+
+
+///
+/// BGRT Status
+///
+
+
+
+///
+/// BGRT Image Type
+///
+
+
+///
+/// FPDT Version (as defined in ACPI 5.1 spec.)
+///
+
+
+///
+/// FPDT Performance Record Types
+///
+
+
+
+///
+/// FPDT Performance Record Revision
+///
+
+
+
+///
+/// FPDT Runtime Performance Record Types
+///
+
+
+
+
+///
+/// FPDT Runtime Performance Record Revision
+///
+
+
+
+
+///
+/// FPDT Performance Record header
+///
+typedef struct {
+ UINT16 Type;
+ UINT8 Length;
+ UINT8 Revision;
+} EFI_ACPI_5_1_FPDT_PERFORMANCE_RECORD_HEADER;
+
+///
+/// FPDT Performance Table header
+///
+typedef struct {
+ UINT32 Signature;
+ UINT32 Length;
+} EFI_ACPI_5_1_FPDT_PERFORMANCE_TABLE_HEADER;
+
+///
+/// FPDT Firmware Basic Boot Performance Pointer Record Structure
+///
+typedef struct {
+ EFI_ACPI_5_1_FPDT_PERFORMANCE_RECORD_HEADER Header;
+ UINT32 Reserved;
+ ///
+ /// 64-bit processor-relative physical address of the Basic Boot Performance Table.
+ ///
+ UINT64 BootPerformanceTablePointer;
+} EFI_ACPI_5_1_FPDT_BOOT_PERFORMANCE_TABLE_POINTER_RECORD;
+
+///
+/// FPDT S3 Performance Table Pointer Record Structure
+///
+typedef struct {
+ EFI_ACPI_5_1_FPDT_PERFORMANCE_RECORD_HEADER Header;
+ UINT32 Reserved;
+ ///
+ /// 64-bit processor-relative physical address of the S3 Performance Table.
+ ///
+ UINT64 S3PerformanceTablePointer;
+} EFI_ACPI_5_1_FPDT_S3_PERFORMANCE_TABLE_POINTER_RECORD;
+
+///
+/// FPDT Firmware Basic Boot Performance Record Structure
+///
+typedef struct {
+ EFI_ACPI_5_1_FPDT_PERFORMANCE_RECORD_HEADER Header;
+ UINT32 Reserved;
+ ///
+ /// Timer value logged at the beginning of firmware image execution.
+ /// This may not always be zero or near zero.
+ ///
+ UINT64 ResetEnd;
+ ///
+ /// Timer value logged just prior to loading the OS boot loader into memory.
+ /// For non-UEFI compatible boots, this field must be zero.
+ ///
+ UINT64 OsLoaderLoadImageStart;
+ ///
+ /// Timer value logged just prior to launching the previously loaded OS boot loader image.
+ /// For non-UEFI compatible boots, the timer value logged will be just prior
+ /// to the INT 19h handler invocation.
+ ///
+ UINT64 OsLoaderStartImageStart;
+ ///
+ /// Timer value logged at the point when the OS loader calls the
+ /// ExitBootServices function for UEFI compatible firmware.
+ /// For non-UEFI compatible boots, this field must be zero.
+ ///
+ UINT64 ExitBootServicesEntry;
+ ///
+ /// Timer value logged at the point just prior to when the OS loader gaining
+ /// control back from calls the ExitBootServices function for UEFI compatible firmware.
+ /// For non-UEFI compatible boots, this field must be zero.
+ ///
+ UINT64 ExitBootServicesExit;
+} EFI_ACPI_5_1_FPDT_FIRMWARE_BASIC_BOOT_RECORD;
+
+///
+/// FPDT Firmware Basic Boot Performance Table signature
+///
+
+
+//
+// FPDT Firmware Basic Boot Performance Table
+//
+typedef struct {
+ EFI_ACPI_5_1_FPDT_PERFORMANCE_TABLE_HEADER Header;
+ //
+ // one or more Performance Records.
+ //
+} EFI_ACPI_5_1_FPDT_FIRMWARE_BASIC_BOOT_TABLE;
+
+///
+/// FPDT "S3PT" S3 Performance Table
+///
+
+
+//
+// FPDT Firmware S3 Boot Performance Table
+//
+typedef struct {
+ EFI_ACPI_5_1_FPDT_PERFORMANCE_TABLE_HEADER Header;
+ //
+ // one or more Performance Records.
+ //
+} EFI_ACPI_5_1_FPDT_FIRMWARE_S3_BOOT_TABLE;
+
+///
+/// FPDT Basic S3 Resume Performance Record
+///
+typedef struct {
+ EFI_ACPI_5_1_FPDT_PERFORMANCE_RECORD_HEADER Header;
+ ///
+ /// A count of the number of S3 resume cycles since the last full boot sequence.
+ ///
+ UINT32 ResumeCount;
+ ///
+ /// Timer recorded at the end of BIOS S3 resume, just prior to handoff to the
+ /// OS waking vector. Only the most recent resume cycle's time is retained.
+ ///
+ UINT64 FullResume;
+ ///
+ /// Average timer value of all resume cycles logged since the last full boot
+ /// sequence, including the most recent resume. Note that the entire log of
+ /// timer values does not need to be retained in order to calculate this average.
+ ///
+ UINT64 AverageResume;
+} EFI_ACPI_5_1_FPDT_S3_RESUME_RECORD;
+
+///
+/// FPDT Basic S3 Suspend Performance Record
+///
+typedef struct {
+ EFI_ACPI_5_1_FPDT_PERFORMANCE_RECORD_HEADER Header;
+ ///
+ /// Timer value recorded at the OS write to SLP_TYP upon entry to S3.
+ /// Only the most recent suspend cycle's timer value is retained.
+ ///
+ UINT64 SuspendStart;
+ ///
+ /// Timer value recorded at the final firmware write to SLP_TYP (or other
+ /// mechanism) used to trigger hardware entry to S3.
+ /// Only the most recent suspend cycle's timer value is retained.
+ ///
+ UINT64 SuspendEnd;
+} EFI_ACPI_5_1_FPDT_S3_SUSPEND_RECORD;
+
+///
+/// Firmware Performance Record Table definition.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+} EFI_ACPI_5_1_FIRMWARE_PERFORMANCE_RECORD_TABLE;
+
+///
+/// Generic Timer Description Table definition.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT64 CntControlBasePhysicalAddress;
+ UINT32 Reserved;
+ UINT32 SecurePL1TimerGSIV;
+ UINT32 SecurePL1TimerFlags;
+ UINT32 NonSecurePL1TimerGSIV;
+ UINT32 NonSecurePL1TimerFlags;
+ UINT32 VirtualTimerGSIV;
+ UINT32 VirtualTimerFlags;
+ UINT32 NonSecurePL2TimerGSIV;
+ UINT32 NonSecurePL2TimerFlags;
+ UINT64 CntReadBasePhysicalAddress;
+ UINT32 PlatformTimerCount;
+ UINT32 PlatformTimerOffset;
+} EFI_ACPI_5_1_GENERIC_TIMER_DESCRIPTION_TABLE;
+
+///
+/// GTDT Version (as defined in ACPI 5.1 spec.)
+///
+
+
+///
+/// Timer Flags. All other bits are reserved and must be 0.
+///
+
+
+
+
+///
+/// Platform Timer Type
+///
+
+
+
+///
+/// GT Block Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT16 Length;
+ UINT8 Reserved;
+ UINT64 CntCtlBase;
+ UINT32 GTBlockTimerCount;
+ UINT32 GTBlockTimerOffset;
+} EFI_ACPI_5_1_GTDT_GT_BLOCK_STRUCTURE;
+
+///
+/// GT Block Timer Structure
+///
+typedef struct {
+ UINT8 GTFrameNumber;
+ UINT8 Reserved[3];
+ UINT64 CntBaseX;
+ UINT64 CntEL0BaseX;
+ UINT32 GTxPhysicalTimerGSIV;
+ UINT32 GTxPhysicalTimerFlags;
+ UINT32 GTxVirtualTimerGSIV;
+ UINT32 GTxVirtualTimerFlags;
+ UINT32 GTxCommonFlags;
+} EFI_ACPI_5_1_GTDT_GT_BLOCK_TIMER_STRUCTURE;
+
+///
+/// GT Block Physical Timers and Virtual Timers Flags. All other bits are reserved and must be 0.
+///
+
+
+
+///
+/// Common Flags Flags. All other bits are reserved and must be 0.
+///
+
+
+
+///
+/// SBSA Generic Watchdog Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT16 Length;
+ UINT8 Reserved;
+ UINT64 RefreshFramePhysicalAddress;
+ UINT64 WatchdogControlFramePhysicalAddress;
+ UINT32 WatchdogTimerGSIV;
+ UINT32 WatchdogTimerFlags;
+} EFI_ACPI_5_1_GTDT_SBSA_GENERIC_WATCHDOG_STRUCTURE;
+
+///
+/// SBSA Generic Watchdog Timer Flags. All other bits are reserved and must be 0.
+///
+
+
+
+
+///
+/// Boot Error Record Table (BERT)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 BootErrorRegionLength;
+ UINT64 BootErrorRegion;
+} EFI_ACPI_5_1_BOOT_ERROR_RECORD_TABLE_HEADER;
+
+///
+/// BERT Version (as defined in ACPI 5.1 spec.)
+///
+
+
+///
+/// Boot Error Region Block Status Definition
+///
+typedef struct {
+ UINT32 UncorrectableErrorValid : 1;
+ UINT32 CorrectableErrorValid : 1;
+ UINT32 MultipleUncorrectableErrors : 1;
+ UINT32 MultipleCorrectableErrors : 1;
+ UINT32 ErrorDataEntryCount : 10;
+ UINT32 Reserved : 18;
+} EFI_ACPI_5_1_ERROR_BLOCK_STATUS;
+
+///
+/// Boot Error Region Definition
+///
+typedef struct {
+ EFI_ACPI_5_1_ERROR_BLOCK_STATUS BlockStatus;
+ UINT32 RawDataOffset;
+ UINT32 RawDataLength;
+ UINT32 DataLength;
+ UINT32 ErrorSeverity;
+} EFI_ACPI_5_1_BOOT_ERROR_REGION_STRUCTURE;
+
+//
+// Boot Error Severity types
+//
+
+
+
+
+//
+// The term 'Correctable' is no longer being used as an error severity of the
+// reported error since ACPI Specification Version 5.1 Errata B.
+// The below macro is considered as deprecated and should no longer be used.
+//
+
+
+///
+/// Generic Error Data Entry Definition
+///
+typedef struct {
+ UINT8 SectionType[16];
+ UINT32 ErrorSeverity;
+ UINT16 Revision;
+ UINT8 ValidationBits;
+ UINT8 Flags;
+ UINT32 ErrorDataLength;
+ UINT8 FruId[16];
+ UINT8 FruText[20];
+} EFI_ACPI_5_1_GENERIC_ERROR_DATA_ENTRY_STRUCTURE;
+
+///
+/// Generic Error Data Entry Version (as defined in ACPI 5.1 spec.)
+///
+
+
+///
+/// HEST - Hardware Error Source Table
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 ErrorSourceCount;
+} EFI_ACPI_5_1_HARDWARE_ERROR_SOURCE_TABLE_HEADER;
+
+///
+/// HEST Version (as defined in ACPI 5.1 spec.)
+///
+
+
+//
+// Error Source structure types.
+//
+
+
+
+
+
+
+
+
+//
+// Error Source structure flags.
+//
+
+
+
+///
+/// IA-32 Architecture Machine Check Exception Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT64 GlobalCapabilityInitData;
+ UINT64 GlobalControlInitData;
+ UINT8 NumberOfHardwareBanks;
+ UINT8 Reserved1[7];
+} EFI_ACPI_5_1_IA32_ARCHITECTURE_MACHINE_CHECK_EXCEPTION_STRUCTURE;
+
+///
+/// IA-32 Architecture Machine Check Bank Structure Definition
+///
+typedef struct {
+ UINT8 BankNumber;
+ UINT8 ClearStatusOnInitialization;
+ UINT8 StatusDataFormat;
+ UINT8 Reserved0;
+ UINT32 ControlRegisterMsrAddress;
+ UINT64 ControlInitData;
+ UINT32 StatusRegisterMsrAddress;
+ UINT32 AddressRegisterMsrAddress;
+ UINT32 MiscRegisterMsrAddress;
+} EFI_ACPI_5_1_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_BANK_STRUCTURE;
+
+///
+/// IA-32 Architecture Machine Check Bank Structure MCA data format
+///
+
+
+
+
+//
+// Hardware Error Notification types. All other values are reserved
+//
+
+
+
+
+
+
+///
+/// Hardware Error Notification Configuration Write Enable Structure Definition
+///
+typedef struct {
+ UINT16 Type : 1;
+ UINT16 PollInterval : 1;
+ UINT16 SwitchToPollingThresholdValue : 1;
+ UINT16 SwitchToPollingThresholdWindow : 1;
+ UINT16 ErrorThresholdValue : 1;
+ UINT16 ErrorThresholdWindow : 1;
+ UINT16 Reserved : 10;
+} EFI_ACPI_5_1_HARDWARE_ERROR_NOTIFICATION_CONFIGURATION_WRITE_ENABLE_STRUCTURE;
+
+///
+/// Hardware Error Notification Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ EFI_ACPI_5_1_HARDWARE_ERROR_NOTIFICATION_CONFIGURATION_WRITE_ENABLE_STRUCTURE ConfigurationWriteEnable;
+ UINT32 PollInterval;
+ UINT32 Vector;
+ UINT32 SwitchToPollingThresholdValue;
+ UINT32 SwitchToPollingThresholdWindow;
+ UINT32 ErrorThresholdValue;
+ UINT32 ErrorThresholdWindow;
+} EFI_ACPI_5_1_HARDWARE_ERROR_NOTIFICATION_STRUCTURE;
+
+///
+/// IA-32 Architecture Corrected Machine Check Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ EFI_ACPI_5_1_HARDWARE_ERROR_NOTIFICATION_STRUCTURE NotificationStructure;
+ UINT8 NumberOfHardwareBanks;
+ UINT8 Reserved1[3];
+} EFI_ACPI_5_1_IA32_ARCHITECTURE_CORRECTED_MACHINE_CHECK_STRUCTURE;
+
+///
+/// IA-32 Architecture NMI Error Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT32 MaxRawDataLength;
+} EFI_ACPI_5_1_IA32_ARCHITECTURE_NMI_ERROR_STRUCTURE;
+
+///
+/// PCI Express Root Port AER Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT32 Bus;
+ UINT16 Device;
+ UINT16 Function;
+ UINT16 DeviceControl;
+ UINT8 Reserved1[2];
+ UINT32 UncorrectableErrorMask;
+ UINT32 UncorrectableErrorSeverity;
+ UINT32 CorrectableErrorMask;
+ UINT32 AdvancedErrorCapabilitiesAndControl;
+ UINT32 RootErrorCommand;
+} EFI_ACPI_5_1_PCI_EXPRESS_ROOT_PORT_AER_STRUCTURE;
+
+///
+/// PCI Express Device AER Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT32 Bus;
+ UINT16 Device;
+ UINT16 Function;
+ UINT16 DeviceControl;
+ UINT8 Reserved1[2];
+ UINT32 UncorrectableErrorMask;
+ UINT32 UncorrectableErrorSeverity;
+ UINT32 CorrectableErrorMask;
+ UINT32 AdvancedErrorCapabilitiesAndControl;
+} EFI_ACPI_5_1_PCI_EXPRESS_DEVICE_AER_STRUCTURE;
+
+///
+/// PCI Express Bridge AER Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT32 Bus;
+ UINT16 Device;
+ UINT16 Function;
+ UINT16 DeviceControl;
+ UINT8 Reserved1[2];
+ UINT32 UncorrectableErrorMask;
+ UINT32 UncorrectableErrorSeverity;
+ UINT32 CorrectableErrorMask;
+ UINT32 AdvancedErrorCapabilitiesAndControl;
+ UINT32 SecondaryUncorrectableErrorMask;
+ UINT32 SecondaryUncorrectableErrorSeverity;
+ UINT32 SecondaryAdvancedErrorCapabilitiesAndControl;
+} EFI_ACPI_5_1_PCI_EXPRESS_BRIDGE_AER_STRUCTURE;
+
+///
+/// Generic Hardware Error Source Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT16 RelatedSourceId;
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT32 MaxRawDataLength;
+ EFI_ACPI_5_1_GENERIC_ADDRESS_STRUCTURE ErrorStatusAddress;
+ EFI_ACPI_5_1_HARDWARE_ERROR_NOTIFICATION_STRUCTURE NotificationStructure;
+ UINT32 ErrorStatusBlockLength;
+} EFI_ACPI_5_1_GENERIC_HARDWARE_ERROR_SOURCE_STRUCTURE;
+
+///
+/// Generic Error Status Definition
+///
+typedef struct {
+ EFI_ACPI_5_1_ERROR_BLOCK_STATUS BlockStatus;
+ UINT32 RawDataOffset;
+ UINT32 RawDataLength;
+ UINT32 DataLength;
+ UINT32 ErrorSeverity;
+} EFI_ACPI_5_1_GENERIC_ERROR_STATUS_STRUCTURE;
+
+///
+/// ERST - Error Record Serialization Table
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 SerializationHeaderSize;
+ UINT8 Reserved0[4];
+ UINT32 InstructionEntryCount;
+} EFI_ACPI_5_1_ERROR_RECORD_SERIALIZATION_TABLE_HEADER;
+
+///
+/// ERST Version (as defined in ACPI 5.1 spec.)
+///
+
+
+///
+/// ERST Serialization Actions
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// ERST Action Command Status
+///
+
+
+
+
+
+
+
+///
+/// ERST Serialization Instructions
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// ERST Instruction Flags
+///
+
+
+///
+/// ERST Serialization Instruction Entry
+///
+typedef struct {
+ UINT8 SerializationAction;
+ UINT8 Instruction;
+ UINT8 Flags;
+ UINT8 Reserved0;
+ EFI_ACPI_5_1_GENERIC_ADDRESS_STRUCTURE RegisterRegion;
+ UINT64 Value;
+ UINT64 Mask;
+} EFI_ACPI_5_1_ERST_SERIALIZATION_INSTRUCTION_ENTRY;
+
+///
+/// EINJ - Error Injection Table
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 InjectionHeaderSize;
+ UINT8 InjectionFlags;
+ UINT8 Reserved0[3];
+ UINT32 InjectionEntryCount;
+} EFI_ACPI_5_1_ERROR_INJECTION_TABLE_HEADER;
+
+///
+/// EINJ Version (as defined in ACPI 5.1 spec.)
+///
+
+
+///
+/// EINJ Error Injection Actions
+///
+
+
+
+
+
+
+
+
+
+
+///
+/// EINJ Action Command Status
+///
+
+
+
+
+///
+/// EINJ Error Type Definition
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// EINJ Injection Instructions
+///
+
+
+
+
+
+
+///
+/// EINJ Instruction Flags
+///
+
+
+///
+/// EINJ Injection Instruction Entry
+///
+typedef struct {
+ UINT8 InjectionAction;
+ UINT8 Instruction;
+ UINT8 Flags;
+ UINT8 Reserved0;
+ EFI_ACPI_5_1_GENERIC_ADDRESS_STRUCTURE RegisterRegion;
+ UINT64 Value;
+ UINT64 Mask;
+} EFI_ACPI_5_1_EINJ_INJECTION_INSTRUCTION_ENTRY;
+
+///
+/// EINJ Trigger Action Table
+///
+typedef struct {
+ UINT32 HeaderSize;
+ UINT32 Revision;
+ UINT32 TableSize;
+ UINT32 EntryCount;
+} EFI_ACPI_5_1_EINJ_TRIGGER_ACTION_TABLE;
+
+///
+/// Platform Communications Channel Table (PCCT)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 Flags;
+ UINT64 Reserved;
+} EFI_ACPI_5_1_PLATFORM_COMMUNICATION_CHANNEL_TABLE_HEADER;
+
+///
+/// PCCT Version (as defined in ACPI 5.1 spec.)
+///
+
+
+///
+/// PCCT Global Flags
+///
+
+
+//
+// PCCT Subspace type
+//
+
+
+///
+/// PCC Subspace Structure Header
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+} EFI_ACPI_5_1_PCCT_SUBSPACE_HEADER;
+
+///
+/// Generic Communications Subspace Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 Reserved[6];
+ UINT64 BaseAddress;
+ UINT64 AddressLength;
+ EFI_ACPI_5_1_GENERIC_ADDRESS_STRUCTURE DoorbellRegister;
+ UINT64 DoorbellPreserve;
+ UINT64 DoorbellWrite;
+ UINT32 NominalLatency;
+ UINT32 MaximumPeriodicAccessRate;
+ UINT16 MinimumRequestTurnaroundTime;
+} EFI_ACPI_5_1_PCCT_SUBSPACE_GENERIC;
+
+///
+/// Generic Communications Channel Shared Memory Region
+///
+
+typedef struct {
+ UINT8 Command;
+ UINT8 Reserved : 7;
+ UINT8 GenerateSci : 1;
+} EFI_ACPI_5_1_PCCT_GENERIC_SHARED_MEMORY_REGION_COMMAND;
+
+typedef struct {
+ UINT8 CommandComplete : 1;
+ UINT8 SciDoorbell : 1;
+ UINT8 Error : 1;
+ UINT8 PlatformNotification : 1;
+ UINT8 Reserved : 4;
+ UINT8 Reserved1;
+} EFI_ACPI_5_1_PCCT_GENERIC_SHARED_MEMORY_REGION_STATUS;
+
+typedef struct {
+ UINT32 Signature;
+ EFI_ACPI_5_1_PCCT_GENERIC_SHARED_MEMORY_REGION_COMMAND Command;
+ EFI_ACPI_5_1_PCCT_GENERIC_SHARED_MEMORY_REGION_STATUS Status;
+} EFI_ACPI_5_1_PCCT_GENERIC_SHARED_MEMORY_REGION_HEADER;
+
+//
+// Known table signatures
+//
+
+///
+/// "RSD PTR " Root System Description Pointer
+///
+
+
+///
+/// "APIC" Multiple APIC Description Table
+///
+
+
+///
+/// "BERT" Boot Error Record Table
+///
+
+
+///
+/// "BGRT" Boot Graphics Resource Table
+///
+
+
+///
+/// "CPEP" Corrected Platform Error Polling Table
+///
+
+
+///
+/// "DSDT" Differentiated System Description Table
+///
+
+
+///
+/// "ECDT" Embedded Controller Boot Resources Table
+///
+
+
+///
+/// "EINJ" Error Injection Table
+///
+
+
+///
+/// "ERST" Error Record Serialization Table
+///
+
+
+///
+/// "FACP" Fixed ACPI Description Table
+///
+
+
+///
+/// "FACS" Firmware ACPI Control Structure
+///
+
+
+///
+/// "FPDT" Firmware Performance Data Table
+///
+
+
+///
+/// "GTDT" Generic Timer Description Table
+///
+
+
+///
+/// "HEST" Hardware Error Source Table
+///
+
+
+///
+/// "MPST" Memory Power State Table
+///
+
+
+///
+/// "MSCT" Maximum System Characteristics Table
+///
+
+
+///
+/// "PMTT" Platform Memory Topology Table
+///
+
+
+///
+/// "PSDT" Persistent System Description Table
+///
+
+
+///
+/// "RASF" ACPI RAS Feature Table
+///
+
+
+///
+/// "RSDT" Root System Description Table
+///
+
+
+///
+/// "SBST" Smart Battery Specification Table
+///
+
+
+///
+/// "SLIT" System Locality Information Table
+///
+
+
+///
+/// "SRAT" System Resource Affinity Table
+///
+
+
+///
+/// "SSDT" Secondary System Description Table
+///
+
+
+///
+/// "XSDT" Extended System Description Table
+///
+
+
+///
+/// "BOOT" MS Simple Boot Spec
+///
+
+
+///
+/// "CSRT" MS Core System Resource Table
+///
+
+
+///
+/// "DBG2" MS Debug Port 2 Spec
+///
+
+
+///
+/// "DBGP" MS Debug Port Spec
+///
+
+
+///
+/// "DMAR" DMA Remapping Table
+///
+
+
+///
+/// "DRTM" Dynamic Root of Trust for Measurement Table
+///
+
+
+///
+/// "ETDT" Event Timer Description Table
+///
+
+
+///
+/// "HPET" IA-PC High Precision Event Timer Table
+///
+
+
+///
+/// "iBFT" iSCSI Boot Firmware Table
+///
+
+
+///
+/// "IVRS" I/O Virtualization Reporting Structure
+///
+
+
+///
+/// "LPIT" Low Power Idle Table
+///
+
+
+///
+/// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table
+///
+
+
+///
+/// "MCHI" Management Controller Host Interface Table
+///
+
+
+///
+/// "MSDM" MS Data Management Table
+///
+
+
+///
+/// "PCCT" Platform Communications Channel Table
+///
+
+
+///
+/// "SLIC" MS Software Licensing Table Specification
+///
+
+
+///
+/// "SPCR" Serial Port Console Redirection Table
+///
+
+
+///
+/// "SPMI" Server Platform Management Interface Table
+///
+
+
+///
+/// "TCPA" Trusted Computing Platform Alliance Capabilities Table
+///
+
+
+///
+/// "TPM2" Trusted Computing Platform 1 Table
+///
+
+
+///
+/// "UEFI" UEFI ACPI Data Table
+///
+
+
+///
+/// "WAET" Windows ACPI Emulated Devices Table
+///
+
+
+///
+/// "WDAT" Watchdog Action Table
+///
+
+
+///
+/// "WDRT" Watchdog Resource Table
+///
+
+
+///
+/// "WPBT" MS Platform Binary Table
+///
+
+
+#pragma pack()
+
+#line 2146 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/Acpi51.h"
+
+#line 14 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/Acpi60.h"
+
+//
+// Ensure proper structure formats
+//
+#pragma pack(1)
+
+///
+/// ACPI 6.0 Generic Address Space definition
+///
+typedef struct {
+ UINT8 AddressSpaceId;
+ UINT8 RegisterBitWidth;
+ UINT8 RegisterBitOffset;
+ UINT8 AccessSize;
+ UINT64 Address;
+} EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE;
+
+//
+// Generic Address Space Address IDs
+//
+
+
+
+
+
+
+
+
+//
+// Generic Address Space Access Sizes
+//
+
+
+
+
+
+
+//
+// ACPI 6.0 table structures
+//
+
+///
+/// Root System Description Pointer Structure
+///
+typedef struct {
+ UINT64 Signature;
+ UINT8 Checksum;
+ UINT8 OemId[6];
+ UINT8 Revision;
+ UINT32 RsdtAddress;
+ UINT32 Length;
+ UINT64 XsdtAddress;
+ UINT8 ExtendedChecksum;
+ UINT8 Reserved[3];
+} EFI_ACPI_6_0_ROOT_SYSTEM_DESCRIPTION_POINTER;
+
+///
+/// RSD_PTR Revision (as defined in ACPI 6.0 spec.)
+///
+
+
+///
+/// Common table header, this prefaces all ACPI tables, including FACS, but
+/// excluding the RSD PTR structure
+///
+typedef struct {
+ UINT32 Signature;
+ UINT32 Length;
+} EFI_ACPI_6_0_COMMON_HEADER;
+
+//
+// Root System Description Table
+// No definition needed as it is a common description table header, the same with
+// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers.
+//
+
+///
+/// RSDT Revision (as defined in ACPI 6.0 spec.)
+///
+
+
+//
+// Extended System Description Table
+// No definition needed as it is a common description table header, the same with
+// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers.
+//
+
+///
+/// XSDT Revision (as defined in ACPI 6.0 spec.)
+///
+
+
+///
+/// Fixed ACPI Description Table Structure (FADT)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 FirmwareCtrl;
+ UINT32 Dsdt;
+ UINT8 Reserved0;
+ UINT8 PreferredPmProfile;
+ UINT16 SciInt;
+ UINT32 SmiCmd;
+ UINT8 AcpiEnable;
+ UINT8 AcpiDisable;
+ UINT8 S4BiosReq;
+ UINT8 PstateCnt;
+ UINT32 Pm1aEvtBlk;
+ UINT32 Pm1bEvtBlk;
+ UINT32 Pm1aCntBlk;
+ UINT32 Pm1bCntBlk;
+ UINT32 Pm2CntBlk;
+ UINT32 PmTmrBlk;
+ UINT32 Gpe0Blk;
+ UINT32 Gpe1Blk;
+ UINT8 Pm1EvtLen;
+ UINT8 Pm1CntLen;
+ UINT8 Pm2CntLen;
+ UINT8 PmTmrLen;
+ UINT8 Gpe0BlkLen;
+ UINT8 Gpe1BlkLen;
+ UINT8 Gpe1Base;
+ UINT8 CstCnt;
+ UINT16 PLvl2Lat;
+ UINT16 PLvl3Lat;
+ UINT16 FlushSize;
+ UINT16 FlushStride;
+ UINT8 DutyOffset;
+ UINT8 DutyWidth;
+ UINT8 DayAlrm;
+ UINT8 MonAlrm;
+ UINT8 Century;
+ UINT16 IaPcBootArch;
+ UINT8 Reserved1;
+ UINT32 Flags;
+ EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE ResetReg;
+ UINT8 ResetValue;
+ UINT16 ArmBootArch;
+ UINT8 MinorVersion;
+ UINT64 XFirmwareCtrl;
+ UINT64 XDsdt;
+ EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk;
+ EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk;
+ EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk;
+ EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk;
+ EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk;
+ EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk;
+ EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk;
+ EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk;
+ EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE SleepControlReg;
+ EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE SleepStatusReg;
+ UINT64 HypervisorVendorIdentity;
+} EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE;
+
+///
+/// FADT Version (as defined in ACPI 6.0 spec.)
+///
+
+
+
+//
+// Fixed ACPI Description Table Preferred Power Management Profile
+//
+
+
+
+
+
+
+
+
+
+
+//
+// Fixed ACPI Description Table Boot Architecture Flags
+// All other bits are reserved and must be set to 0.
+//
+
+
+
+
+
+
+
+//
+// Fixed ACPI Description Table Arm Boot Architecture Flags
+// All other bits are reserved and must be set to 0.
+//
+
+
+
+//
+// Fixed ACPI Description Table Fixed Feature Flags
+// All other bits are reserved and must be set to 0.
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// Firmware ACPI Control Structure
+///
+typedef struct {
+ UINT32 Signature;
+ UINT32 Length;
+ UINT32 HardwareSignature;
+ UINT32 FirmwareWakingVector;
+ UINT32 GlobalLock;
+ UINT32 Flags;
+ UINT64 XFirmwareWakingVector;
+ UINT8 Version;
+ UINT8 Reserved0[3];
+ UINT32 OspmFlags;
+ UINT8 Reserved1[24];
+} EFI_ACPI_6_0_FIRMWARE_ACPI_CONTROL_STRUCTURE;
+
+///
+/// FACS Version (as defined in ACPI 6.0 spec.)
+///
+
+
+///
+/// Firmware Control Structure Feature Flags
+/// All other bits are reserved and must be set to 0.
+///
+
+
+
+///
+/// OSPM Enabled Firmware Control Structure Flags
+/// All other bits are reserved and must be set to 0.
+///
+
+
+//
+// Differentiated System Description Table,
+// Secondary System Description Table
+// and Persistent System Description Table,
+// no definition needed as they are common description table header, the same with
+// EFI_ACPI_DESCRIPTION_HEADER, followed by a definition block.
+//
+
+
+
+///
+/// Multiple APIC Description Table header definition. The rest of the table
+/// must be defined in a platform specific manner.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 LocalApicAddress;
+ UINT32 Flags;
+} EFI_ACPI_6_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;
+
+///
+/// MADT Revision (as defined in ACPI 6.0 Errata A spec.)
+///
+
+
+///
+/// Multiple APIC Flags
+/// All other bits are reserved and must be set to 0.
+///
+
+
+//
+// Multiple APIC Description Table APIC structure types
+// All other values between 0x0D and 0x7F are reserved and
+// will be ignored by OSPM. 0x80 ~ 0xFF are reserved for OEM.
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+//
+// APIC Structure Definitions
+//
+
+///
+/// Processor Local APIC Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 AcpiProcessorUid;
+ UINT8 ApicId;
+ UINT32 Flags;
+} EFI_ACPI_6_0_PROCESSOR_LOCAL_APIC_STRUCTURE;
+
+///
+/// Local APIC Flags. All other bits are reserved and must be 0.
+///
+
+
+///
+/// IO APIC Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 IoApicId;
+ UINT8 Reserved;
+ UINT32 IoApicAddress;
+ UINT32 GlobalSystemInterruptBase;
+} EFI_ACPI_6_0_IO_APIC_STRUCTURE;
+
+///
+/// Interrupt Source Override Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 Bus;
+ UINT8 Source;
+ UINT32 GlobalSystemInterrupt;
+ UINT16 Flags;
+} EFI_ACPI_6_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE;
+
+///
+/// Platform Interrupt Sources Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Flags;
+ UINT8 InterruptType;
+ UINT8 ProcessorId;
+ UINT8 ProcessorEid;
+ UINT8 IoSapicVector;
+ UINT32 GlobalSystemInterrupt;
+ UINT32 PlatformInterruptSourceFlags;
+ UINT8 CpeiProcessorOverride;
+ UINT8 Reserved[31];
+} EFI_ACPI_6_0_PLATFORM_INTERRUPT_APIC_STRUCTURE;
+
+//
+// MPS INTI flags.
+// All other bits are reserved and must be set to 0.
+//
+
+
+
+///
+/// Non-Maskable Interrupt Source Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Flags;
+ UINT32 GlobalSystemInterrupt;
+} EFI_ACPI_6_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE;
+
+///
+/// Local APIC NMI Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 AcpiProcessorUid;
+ UINT16 Flags;
+ UINT8 LocalApicLint;
+} EFI_ACPI_6_0_LOCAL_APIC_NMI_STRUCTURE;
+
+///
+/// Local APIC Address Override Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Reserved;
+ UINT64 LocalApicAddress;
+} EFI_ACPI_6_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE;
+
+///
+/// IO SAPIC Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 IoApicId;
+ UINT8 Reserved;
+ UINT32 GlobalSystemInterruptBase;
+ UINT64 IoSapicAddress;
+} EFI_ACPI_6_0_IO_SAPIC_STRUCTURE;
+
+///
+/// Local SAPIC Structure
+/// This struct followed by a null-terminated ASCII string - ACPI Processor UID String
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 AcpiProcessorId;
+ UINT8 LocalSapicId;
+ UINT8 LocalSapicEid;
+ UINT8 Reserved[3];
+ UINT32 Flags;
+ UINT32 ACPIProcessorUIDValue;
+} EFI_ACPI_6_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE;
+
+///
+/// Platform Interrupt Sources Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Flags;
+ UINT8 InterruptType;
+ UINT8 ProcessorId;
+ UINT8 ProcessorEid;
+ UINT8 IoSapicVector;
+ UINT32 GlobalSystemInterrupt;
+ UINT32 PlatformInterruptSourceFlags;
+} EFI_ACPI_6_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE;
+
+///
+/// Platform Interrupt Source Flags.
+/// All other bits are reserved and must be set to 0.
+///
+
+
+///
+/// Processor Local x2APIC Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 Reserved[2];
+ UINT32 X2ApicId;
+ UINT32 Flags;
+ UINT32 AcpiProcessorUid;
+} EFI_ACPI_6_0_PROCESSOR_LOCAL_X2APIC_STRUCTURE;
+
+///
+/// Local x2APIC NMI Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Flags;
+ UINT32 AcpiProcessorUid;
+ UINT8 LocalX2ApicLint;
+ UINT8 Reserved[3];
+} EFI_ACPI_6_0_LOCAL_X2APIC_NMI_STRUCTURE;
+
+///
+/// GIC Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Reserved;
+ UINT32 CPUInterfaceNumber;
+ UINT32 AcpiProcessorUid;
+ UINT32 Flags;
+ UINT32 ParkingProtocolVersion;
+ UINT32 PerformanceInterruptGsiv;
+ UINT64 ParkedAddress;
+ UINT64 PhysicalBaseAddress;
+ UINT64 GICV;
+ UINT64 GICH;
+ UINT32 VGICMaintenanceInterrupt;
+ UINT64 GICRBaseAddress;
+ UINT64 MPIDR;
+ UINT8 ProcessorPowerEfficiencyClass;
+ UINT8 Reserved2[3];
+} EFI_ACPI_6_0_GIC_STRUCTURE;
+
+///
+/// GIC Flags. All other bits are reserved and must be 0.
+///
+
+
+
+
+///
+/// GIC Distributor Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Reserved1;
+ UINT32 GicId;
+ UINT64 PhysicalBaseAddress;
+ UINT32 SystemVectorBase;
+ UINT8 GicVersion;
+ UINT8 Reserved2[3];
+} EFI_ACPI_6_0_GIC_DISTRIBUTOR_STRUCTURE;
+
+///
+/// GIC Version
+///
+
+
+
+
+
+///
+/// GIC MSI Frame Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Reserved1;
+ UINT32 GicMsiFrameId;
+ UINT64 PhysicalBaseAddress;
+ UINT32 Flags;
+ UINT16 SPICount;
+ UINT16 SPIBase;
+} EFI_ACPI_6_0_GIC_MSI_FRAME_STRUCTURE;
+
+///
+/// GIC MSI Frame Flags. All other bits are reserved and must be 0.
+///
+
+
+///
+/// GICR Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Reserved;
+ UINT64 DiscoveryRangeBaseAddress;
+ UINT32 DiscoveryRangeLength;
+} EFI_ACPI_6_0_GICR_STRUCTURE;
+
+///
+/// GIC Interrupt Translation Service Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT16 Reserved;
+ UINT32 GicItsId;
+ UINT64 PhysicalBaseAddress;
+ UINT32 Reserved2;
+} EFI_ACPI_6_0_GIC_ITS_STRUCTURE;
+
+///
+/// Smart Battery Description Table (SBST)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 WarningEnergyLevel;
+ UINT32 LowEnergyLevel;
+ UINT32 CriticalEnergyLevel;
+} EFI_ACPI_6_0_SMART_BATTERY_DESCRIPTION_TABLE;
+
+///
+/// SBST Version (as defined in ACPI 6.0 spec.)
+///
+
+
+///
+/// Embedded Controller Boot Resources Table (ECDT)
+/// The table is followed by a null terminated ASCII string that contains
+/// a fully qualified reference to the name space object.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE EcControl;
+ EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE EcData;
+ UINT32 Uid;
+ UINT8 GpeBit;
+} EFI_ACPI_6_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE;
+
+///
+/// ECDT Version (as defined in ACPI 6.0 spec.)
+///
+
+
+///
+/// System Resource Affinity Table (SRAT). The rest of the table
+/// must be defined in a platform specific manner.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 Reserved1; ///< Must be set to 1
+ UINT64 Reserved2;
+} EFI_ACPI_6_0_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER;
+
+///
+/// SRAT Version (as defined in ACPI 6.0 spec.)
+///
+
+
+//
+// SRAT structure types.
+// All other values between 0x04 an 0xFF are reserved and
+// will be ignored by OSPM.
+//
+
+
+
+
+
+///
+/// Processor Local APIC/SAPIC Affinity Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 ProximityDomain7To0;
+ UINT8 ApicId;
+ UINT32 Flags;
+ UINT8 LocalSapicEid;
+ UINT8 ProximityDomain31To8[3];
+ UINT32 ClockDomain;
+} EFI_ACPI_6_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY_STRUCTURE;
+
+///
+/// Local APIC/SAPIC Flags. All other bits are reserved and must be 0.
+///
+
+
+///
+/// Memory Affinity Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT32 ProximityDomain;
+ UINT16 Reserved1;
+ UINT32 AddressBaseLow;
+ UINT32 AddressBaseHigh;
+ UINT32 LengthLow;
+ UINT32 LengthHigh;
+ UINT32 Reserved2;
+ UINT32 Flags;
+ UINT64 Reserved3;
+} EFI_ACPI_6_0_MEMORY_AFFINITY_STRUCTURE;
+
+//
+// Memory Flags. All other bits are reserved and must be 0.
+//
+
+
+
+
+///
+/// Processor Local x2APIC Affinity Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 Reserved1[2];
+ UINT32 ProximityDomain;
+ UINT32 X2ApicId;
+ UINT32 Flags;
+ UINT32 ClockDomain;
+ UINT8 Reserved2[4];
+} EFI_ACPI_6_0_PROCESSOR_LOCAL_X2APIC_AFFINITY_STRUCTURE;
+
+///
+/// GICC Affinity Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT32 ProximityDomain;
+ UINT32 AcpiProcessorUid;
+ UINT32 Flags;
+ UINT32 ClockDomain;
+} EFI_ACPI_6_0_GICC_AFFINITY_STRUCTURE;
+
+///
+/// GICC Flags. All other bits are reserved and must be 0.
+///
+
+
+///
+/// System Locality Distance Information Table (SLIT).
+/// The rest of the table is a matrix.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT64 NumberOfSystemLocalities;
+} EFI_ACPI_6_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_HEADER;
+
+///
+/// SLIT Version (as defined in ACPI 6.0 spec.)
+///
+
+
+///
+/// Corrected Platform Error Polling Table (CPEP)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT8 Reserved[8];
+} EFI_ACPI_6_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_HEADER;
+
+///
+/// CPEP Version (as defined in ACPI 6.0 spec.)
+///
+
+
+//
+// CPEP processor structure types.
+//
+
+
+///
+/// Corrected Platform Error Polling Processor Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 ProcessorId;
+ UINT8 ProcessorEid;
+ UINT32 PollingInterval;
+} EFI_ACPI_6_0_CPEP_PROCESSOR_APIC_SAPIC_STRUCTURE;
+
+///
+/// Maximum System Characteristics Table (MSCT)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 OffsetProxDomInfo;
+ UINT32 MaximumNumberOfProximityDomains;
+ UINT32 MaximumNumberOfClockDomains;
+ UINT64 MaximumPhysicalAddress;
+} EFI_ACPI_6_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_HEADER;
+
+///
+/// MSCT Version (as defined in ACPI 6.0 spec.)
+///
+
+
+///
+/// Maximum Proximity Domain Information Structure Definition
+///
+typedef struct {
+ UINT8 Revision;
+ UINT8 Length;
+ UINT32 ProximityDomainRangeLow;
+ UINT32 ProximityDomainRangeHigh;
+ UINT32 MaximumProcessorCapacity;
+ UINT64 MaximumMemoryCapacity;
+} EFI_ACPI_6_0_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE;
+
+///
+/// ACPI RAS Feature Table definition.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT8 PlatformCommunicationChannelIdentifier[12];
+} EFI_ACPI_6_0_RAS_FEATURE_TABLE;
+
+///
+/// RASF Version (as defined in ACPI 6.0 spec.)
+///
+
+
+///
+/// ACPI RASF Platform Communication Channel Shared Memory Region definition.
+///
+typedef struct {
+ UINT32 Signature;
+ UINT16 Command;
+ UINT16 Status;
+ UINT16 Version;
+ UINT8 RASCapabilities[16];
+ UINT8 SetRASCapabilities[16];
+ UINT16 NumberOfRASFParameterBlocks;
+ UINT32 SetRASCapabilitiesStatus;
+} EFI_ACPI_6_0_RASF_PLATFORM_COMMUNICATION_CHANNEL_SHARED_MEMORY_REGION;
+
+///
+/// ACPI RASF PCC command code
+///
+
+
+///
+/// ACPI RASF Platform RAS Capabilities
+///
+
+
+
+///
+/// ACPI RASF Parameter Block structure for PATROL_SCRUB
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 Version;
+ UINT16 Length;
+ UINT16 PatrolScrubCommand;
+ UINT64 RequestedAddressRange[2];
+ UINT64 ActualAddressRange[2];
+ UINT16 Flags;
+ UINT8 RequestedSpeed;
+} EFI_ACPI_6_0_RASF_PATROL_SCRUB_PLATFORM_BLOCK_STRUCTURE;
+
+///
+/// ACPI RASF Patrol Scrub command
+///
+
+
+
+
+///
+/// Memory Power State Table definition.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT8 PlatformCommunicationChannelIdentifier;
+ UINT8 Reserved[3];
+ // Memory Power Node Structure
+ // Memory Power State Characteristics
+} EFI_ACPI_6_0_MEMORY_POWER_STATUS_TABLE;
+
+///
+/// MPST Version (as defined in ACPI 6.0 spec.)
+///
+
+
+///
+/// MPST Platform Communication Channel Shared Memory Region definition.
+///
+typedef struct {
+ UINT32 Signature;
+ UINT16 Command;
+ UINT16 Status;
+ UINT32 MemoryPowerCommandRegister;
+ UINT32 MemoryPowerStatusRegister;
+ UINT32 PowerStateId;
+ UINT32 MemoryPowerNodeId;
+ UINT64 MemoryEnergyConsumed;
+ UINT64 ExpectedAveragePowerComsuned;
+} EFI_ACPI_6_0_MPST_PLATFORM_COMMUNICATION_CHANNEL_SHARED_MEMORY_REGION;
+
+///
+/// ACPI MPST PCC command code
+///
+
+
+///
+/// ACPI MPST Memory Power command
+///
+
+
+
+
+
+///
+/// MPST Memory Power Node Table
+///
+typedef struct {
+ UINT8 PowerStateValue;
+ UINT8 PowerStateInformationIndex;
+} EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE;
+
+typedef struct {
+ UINT8 Flag;
+ UINT8 Reserved;
+ UINT16 MemoryPowerNodeId;
+ UINT32 Length;
+ UINT64 AddressBase;
+ UINT64 AddressLength;
+ UINT32 NumberOfPowerStates;
+ UINT32 NumberOfPhysicalComponents;
+ // EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE MemoryPowerState[NumberOfPowerStates];
+ // UINT16 PhysicalComponentIdentifier[NumberOfPhysicalComponents];
+} EFI_ACPI_6_0_MPST_MEMORY_POWER_STRUCTURE;
+
+
+
+
+
+typedef struct {
+ UINT16 MemoryPowerNodeCount;
+ UINT8 Reserved[2];
+} EFI_ACPI_6_0_MPST_MEMORY_POWER_NODE_TABLE;
+
+///
+/// MPST Memory Power State Characteristics Table
+///
+typedef struct {
+ UINT8 PowerStateStructureID;
+ UINT8 Flag;
+ UINT16 Reserved;
+ UINT32 AveragePowerConsumedInMPS0;
+ UINT32 RelativePowerSavingToMPS0;
+ UINT64 ExitLatencyToMPS0;
+} EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE;
+
+
+
+
+
+typedef struct {
+ UINT16 MemoryPowerStateCharacteristicsCount;
+ UINT8 Reserved[2];
+} EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_TABLE;
+
+///
+/// Memory Topology Table definition.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 Reserved;
+} EFI_ACPI_6_0_MEMORY_TOPOLOGY_TABLE;
+
+///
+/// PMTT Version (as defined in ACPI 6.0 spec.)
+///
+
+
+///
+/// Common Memory Aggregator Device Structure.
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Reserved;
+ UINT16 Length;
+ UINT16 Flags;
+ UINT16 Reserved1;
+} EFI_ACPI_6_0_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE;
+
+///
+/// Memory Aggregator Device Type
+///
+
+
+
+
+///
+/// Socket Memory Aggregator Device Structure.
+///
+typedef struct {
+ EFI_ACPI_6_0_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE Header;
+ UINT16 SocketIdentifier;
+ UINT16 Reserved;
+ // EFI_ACPI_6_0_PMMT_MEMORY_CONTROLLER_MEMORY_AGGREGATOR_DEVICE_STRUCTURE MemoryController[];
+} EFI_ACPI_6_0_PMMT_SOCKET_MEMORY_AGGREGATOR_DEVICE_STRUCTURE;
+
+///
+/// MemoryController Memory Aggregator Device Structure.
+///
+typedef struct {
+ EFI_ACPI_6_0_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE Header;
+ UINT32 ReadLatency;
+ UINT32 WriteLatency;
+ UINT32 ReadBandwidth;
+ UINT32 WriteBandwidth;
+ UINT16 OptimalAccessUnit;
+ UINT16 OptimalAccessAlignment;
+ UINT16 Reserved;
+ UINT16 NumberOfProximityDomains;
+ // UINT32 ProximityDomain[NumberOfProximityDomains];
+ // EFI_ACPI_6_0_PMMT_DIMM_MEMORY_AGGREGATOR_DEVICE_STRUCTURE PhysicalComponent[];
+} EFI_ACPI_6_0_PMMT_MEMORY_CONTROLLER_MEMORY_AGGREGATOR_DEVICE_STRUCTURE;
+
+///
+/// DIMM Memory Aggregator Device Structure.
+///
+typedef struct {
+ EFI_ACPI_6_0_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE Header;
+ UINT16 PhysicalComponentIdentifier;
+ UINT16 Reserved;
+ UINT32 SizeOfDimm;
+ UINT32 SmbiosHandle;
+} EFI_ACPI_6_0_PMMT_DIMM_MEMORY_AGGREGATOR_DEVICE_STRUCTURE;
+
+///
+/// Boot Graphics Resource Table definition.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ ///
+ /// 2-bytes (16 bit) version ID. This value must be 1.
+ ///
+ UINT16 Version;
+ ///
+ /// 1-byte status field indicating current status about the table.
+ /// Bits[7:1] = Reserved (must be zero)
+ /// Bit [0] = Valid. A one indicates the boot image graphic is valid.
+ ///
+ UINT8 Status;
+ ///
+ /// 1-byte enumerated type field indicating format of the image.
+ /// 0 = Bitmap
+ /// 1 - 255 Reserved (for future use)
+ ///
+ UINT8 ImageType;
+ ///
+ /// 8-byte (64 bit) physical address pointing to the firmware's in-memory copy
+ /// of the image bitmap.
+ ///
+ UINT64 ImageAddress;
+ ///
+ /// A 4-byte (32-bit) unsigned long describing the display X-offset of the boot image.
+ /// (X, Y) display offset of the top left corner of the boot image.
+ /// The top left corner of the display is at offset (0, 0).
+ ///
+ UINT32 ImageOffsetX;
+ ///
+ /// A 4-byte (32-bit) unsigned long describing the display Y-offset of the boot image.
+ /// (X, Y) display offset of the top left corner of the boot image.
+ /// The top left corner of the display is at offset (0, 0).
+ ///
+ UINT32 ImageOffsetY;
+} EFI_ACPI_6_0_BOOT_GRAPHICS_RESOURCE_TABLE;
+
+///
+/// BGRT Revision
+///
+
+
+///
+/// BGRT Version
+///
+
+
+///
+/// BGRT Status
+///
+
+
+
+///
+/// BGRT Image Type
+///
+
+
+///
+/// FPDT Version (as defined in ACPI 6.0 spec.)
+///
+
+
+///
+/// FPDT Performance Record Types
+///
+
+
+
+///
+/// FPDT Performance Record Revision
+///
+
+
+
+///
+/// FPDT Runtime Performance Record Types
+///
+
+
+
+
+///
+/// FPDT Runtime Performance Record Revision
+///
+
+
+
+
+///
+/// FPDT Performance Record header
+///
+typedef struct {
+ UINT16 Type;
+ UINT8 Length;
+ UINT8 Revision;
+} EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER;
+
+///
+/// FPDT Performance Table header
+///
+typedef struct {
+ UINT32 Signature;
+ UINT32 Length;
+} EFI_ACPI_6_0_FPDT_PERFORMANCE_TABLE_HEADER;
+
+///
+/// FPDT Firmware Basic Boot Performance Pointer Record Structure
+///
+typedef struct {
+ EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header;
+ UINT32 Reserved;
+ ///
+ /// 64-bit processor-relative physical address of the Basic Boot Performance Table.
+ ///
+ UINT64 BootPerformanceTablePointer;
+} EFI_ACPI_6_0_FPDT_BOOT_PERFORMANCE_TABLE_POINTER_RECORD;
+
+///
+/// FPDT S3 Performance Table Pointer Record Structure
+///
+typedef struct {
+ EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header;
+ UINT32 Reserved;
+ ///
+ /// 64-bit processor-relative physical address of the S3 Performance Table.
+ ///
+ UINT64 S3PerformanceTablePointer;
+} EFI_ACPI_6_0_FPDT_S3_PERFORMANCE_TABLE_POINTER_RECORD;
+
+///
+/// FPDT Firmware Basic Boot Performance Record Structure
+///
+typedef struct {
+ EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header;
+ UINT32 Reserved;
+ ///
+ /// Timer value logged at the beginning of firmware image execution.
+ /// This may not always be zero or near zero.
+ ///
+ UINT64 ResetEnd;
+ ///
+ /// Timer value logged just prior to loading the OS boot loader into memory.
+ /// For non-UEFI compatible boots, this field must be zero.
+ ///
+ UINT64 OsLoaderLoadImageStart;
+ ///
+ /// Timer value logged just prior to launching the previously loaded OS boot loader image.
+ /// For non-UEFI compatible boots, the timer value logged will be just prior
+ /// to the INT 19h handler invocation.
+ ///
+ UINT64 OsLoaderStartImageStart;
+ ///
+ /// Timer value logged at the point when the OS loader calls the
+ /// ExitBootServices function for UEFI compatible firmware.
+ /// For non-UEFI compatible boots, this field must be zero.
+ ///
+ UINT64 ExitBootServicesEntry;
+ ///
+ /// Timer value logged at the point just prior to when the OS loader gaining
+ /// control back from calls the ExitBootServices function for UEFI compatible firmware.
+ /// For non-UEFI compatible boots, this field must be zero.
+ ///
+ UINT64 ExitBootServicesExit;
+} EFI_ACPI_6_0_FPDT_FIRMWARE_BASIC_BOOT_RECORD;
+
+///
+/// FPDT Firmware Basic Boot Performance Table signature
+///
+
+
+//
+// FPDT Firmware Basic Boot Performance Table
+//
+typedef struct {
+ EFI_ACPI_6_0_FPDT_PERFORMANCE_TABLE_HEADER Header;
+ //
+ // one or more Performance Records.
+ //
+} EFI_ACPI_6_0_FPDT_FIRMWARE_BASIC_BOOT_TABLE;
+
+///
+/// FPDT "S3PT" S3 Performance Table
+///
+
+
+//
+// FPDT Firmware S3 Boot Performance Table
+//
+typedef struct {
+ EFI_ACPI_6_0_FPDT_PERFORMANCE_TABLE_HEADER Header;
+ //
+ // one or more Performance Records.
+ //
+} EFI_ACPI_6_0_FPDT_FIRMWARE_S3_BOOT_TABLE;
+
+///
+/// FPDT Basic S3 Resume Performance Record
+///
+typedef struct {
+ EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header;
+ ///
+ /// A count of the number of S3 resume cycles since the last full boot sequence.
+ ///
+ UINT32 ResumeCount;
+ ///
+ /// Timer recorded at the end of BIOS S3 resume, just prior to handoff to the
+ /// OS waking vector. Only the most recent resume cycle's time is retained.
+ ///
+ UINT64 FullResume;
+ ///
+ /// Average timer value of all resume cycles logged since the last full boot
+ /// sequence, including the most recent resume. Note that the entire log of
+ /// timer values does not need to be retained in order to calculate this average.
+ ///
+ UINT64 AverageResume;
+} EFI_ACPI_6_0_FPDT_S3_RESUME_RECORD;
+
+///
+/// FPDT Basic S3 Suspend Performance Record
+///
+typedef struct {
+ EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header;
+ ///
+ /// Timer value recorded at the OS write to SLP_TYP upon entry to S3.
+ /// Only the most recent suspend cycle's timer value is retained.
+ ///
+ UINT64 SuspendStart;
+ ///
+ /// Timer value recorded at the final firmware write to SLP_TYP (or other
+ /// mechanism) used to trigger hardware entry to S3.
+ /// Only the most recent suspend cycle's timer value is retained.
+ ///
+ UINT64 SuspendEnd;
+} EFI_ACPI_6_0_FPDT_S3_SUSPEND_RECORD;
+
+///
+/// Firmware Performance Record Table definition.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+} EFI_ACPI_6_0_FIRMWARE_PERFORMANCE_RECORD_TABLE;
+
+///
+/// Generic Timer Description Table definition.
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT64 CntControlBasePhysicalAddress;
+ UINT32 Reserved;
+ UINT32 SecurePL1TimerGSIV;
+ UINT32 SecurePL1TimerFlags;
+ UINT32 NonSecurePL1TimerGSIV;
+ UINT32 NonSecurePL1TimerFlags;
+ UINT32 VirtualTimerGSIV;
+ UINT32 VirtualTimerFlags;
+ UINT32 NonSecurePL2TimerGSIV;
+ UINT32 NonSecurePL2TimerFlags;
+ UINT64 CntReadBasePhysicalAddress;
+ UINT32 PlatformTimerCount;
+ UINT32 PlatformTimerOffset;
+} EFI_ACPI_6_0_GENERIC_TIMER_DESCRIPTION_TABLE;
+
+///
+/// GTDT Version (as defined in ACPI 6.0 spec.)
+///
+
+
+///
+/// Timer Flags. All other bits are reserved and must be 0.
+///
+
+
+
+
+///
+/// Platform Timer Type
+///
+
+
+
+///
+/// GT Block Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT16 Length;
+ UINT8 Reserved;
+ UINT64 CntCtlBase;
+ UINT32 GTBlockTimerCount;
+ UINT32 GTBlockTimerOffset;
+} EFI_ACPI_6_0_GTDT_GT_BLOCK_STRUCTURE;
+
+///
+/// GT Block Timer Structure
+///
+typedef struct {
+ UINT8 GTFrameNumber;
+ UINT8 Reserved[3];
+ UINT64 CntBaseX;
+ UINT64 CntEL0BaseX;
+ UINT32 GTxPhysicalTimerGSIV;
+ UINT32 GTxPhysicalTimerFlags;
+ UINT32 GTxVirtualTimerGSIV;
+ UINT32 GTxVirtualTimerFlags;
+ UINT32 GTxCommonFlags;
+} EFI_ACPI_6_0_GTDT_GT_BLOCK_TIMER_STRUCTURE;
+
+///
+/// GT Block Physical Timers and Virtual Timers Flags. All other bits are reserved and must be 0.
+///
+
+
+
+///
+/// Common Flags Flags. All other bits are reserved and must be 0.
+///
+
+
+
+///
+/// SBSA Generic Watchdog Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT16 Length;
+ UINT8 Reserved;
+ UINT64 RefreshFramePhysicalAddress;
+ UINT64 WatchdogControlFramePhysicalAddress;
+ UINT32 WatchdogTimerGSIV;
+ UINT32 WatchdogTimerFlags;
+} EFI_ACPI_6_0_GTDT_SBSA_GENERIC_WATCHDOG_STRUCTURE;
+
+///
+/// SBSA Generic Watchdog Timer Flags. All other bits are reserved and must be 0.
+///
+
+
+
+
+//
+// NVDIMM Firmware Interface Table definition.
+//
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 Reserved;
+} EFI_ACPI_6_0_NVDIMM_FIRMWARE_INTERFACE_TABLE;
+
+//
+// NFIT Version (as defined in ACPI 6.0 spec.)
+//
+
+
+//
+// Definition for NFIT Table Structure Types
+//
+
+
+
+
+
+
+
+
+//
+// Definition for NFIT Structure Header
+//
+typedef struct {
+ UINT16 Type;
+ UINT16 Length;
+} EFI_ACPI_6_0_NFIT_STRUCTURE_HEADER;
+
+//
+// Definition for System Physical Address Range Structure
+//
+
+
+
+
+
+
+
+
+
+
+typedef struct {
+ UINT16 Type;
+ UINT16 Length;
+ UINT16 SPARangeStructureIndex;
+ UINT16 Flags;
+ UINT32 Reserved_8;
+ UINT32 ProximityDomain;
+ GUID AddressRangeTypeGUID;
+ UINT64 SystemPhysicalAddressRangeBase;
+ UINT64 SystemPhysicalAddressRangeLength;
+ UINT64 AddressRangeMemoryMappingAttribute;
+} EFI_ACPI_6_0_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE;
+
+//
+// Definition for Memory Device to System Physical Address Range Mapping Structure
+//
+typedef struct {
+ UINT32 DIMMNumber : 4;
+ UINT32 MemoryChannelNumber : 4;
+ UINT32 MemoryControllerID : 4;
+ UINT32 SocketID : 4;
+ UINT32 NodeControllerID : 12;
+ UINT32 Reserved_28 : 4;
+} EFI_ACPI_6_0_NFIT_DEVICE_HANDLE;
+
+
+
+
+
+
+
+typedef struct {
+ UINT16 Type;
+ UINT16 Length;
+ EFI_ACPI_6_0_NFIT_DEVICE_HANDLE NFITDeviceHandle;
+ UINT16 MemoryDevicePhysicalID;
+ UINT16 MemoryDeviceRegionID;
+ UINT16 SPARangeStructureIndex;
+ UINT16 NVDIMMControlRegionStructureIndex;
+ UINT64 MemoryDeviceRegionSize;
+ UINT64 RegionOffset;
+ UINT64 MemoryDevicePhysicalAddressRegionBase;
+ UINT16 InterleaveStructureIndex;
+ UINT16 InterleaveWays;
+ UINT16 MemoryDeviceStateFlags;
+ UINT16 Reserved_46;
+} EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_TO_SYSTEM_ADDRESS_RANGE_MAP_STRUCTURE;
+
+//
+// Definition for Interleave Structure
+//
+typedef struct {
+ UINT16 Type;
+ UINT16 Length;
+ UINT16 InterleaveStructureIndex;
+ UINT16 Reserved_6;
+ UINT32 NumberOfLines;
+ UINT32 LineSize;
+ // UINT32 LineOffset[NumberOfLines];
+} EFI_ACPI_6_0_NFIT_INTERLEAVE_STRUCTURE;
+
+//
+// Definition for SMBIOS Management Information Structure
+//
+typedef struct {
+ UINT16 Type;
+ UINT16 Length;
+ UINT32 Reserved_4;
+ // UINT8 Data[];
+} EFI_ACPI_6_0_NFIT_SMBIOS_MANAGEMENT_INFORMATION_STRUCTURE;
+
+//
+// Definition for NVDIMM Control Region Structure
+//
+
+typedef struct {
+ UINT16 Type;
+ UINT16 Length;
+ UINT16 NVDIMMControlRegionStructureIndex;
+ UINT16 VendorID;
+ UINT16 DeviceID;
+ UINT16 RevisionID;
+ UINT16 SubsystemVendorID;
+ UINT16 SubsystemDeviceID;
+ UINT16 SubsystemRevisionID;
+ UINT8 Reserved_18[6];
+ UINT32 SerialNumber;
+ UINT16 RegionFormatInterfaceCode;
+ UINT16 NumberOfBlockControlWindows;
+ UINT64 SizeOfBlockControlWindow;
+ UINT64 CommandRegisterOffsetInBlockControlWindow;
+ UINT64 SizeOfCommandRegisterInBlockControlWindows;
+ UINT64 StatusRegisterOffsetInBlockControlWindow;
+ UINT64 SizeOfStatusRegisterInBlockControlWindows;
+ UINT16 NVDIMMControlRegionFlag;
+ UINT8 Reserved_74[6];
+} EFI_ACPI_6_0_NFIT_NVDIMM_CONTROL_REGION_STRUCTURE;
+
+//
+// Definition for NVDIMM Block Data Window Region Structure
+//
+typedef struct {
+ UINT16 Type;
+ UINT16 Length;
+ UINT16 NVDIMMControlRegionStructureIndex;
+ UINT16 NumberOfBlockDataWindows;
+ UINT64 BlockDataWindowStartOffset;
+ UINT64 SizeOfBlockDataWindow;
+ UINT64 BlockAccessibleMemoryCapacity;
+ UINT64 BeginningAddressOfFirstBlockInBlockAccessibleMemory;
+} EFI_ACPI_6_0_NFIT_NVDIMM_BLOCK_DATA_WINDOW_REGION_STRUCTURE;
+
+//
+// Definition for Flush Hint Address Structure
+//
+typedef struct {
+ UINT16 Type;
+ UINT16 Length;
+ EFI_ACPI_6_0_NFIT_DEVICE_HANDLE NFITDeviceHandle;
+ UINT16 NumberOfFlushHintAddresses;
+ UINT8 Reserved_10[6];
+ // UINT64 FlushHintAddress[NumberOfFlushHintAddresses];
+} EFI_ACPI_6_0_NFIT_FLUSH_HINT_ADDRESS_STRUCTURE;
+
+///
+/// Boot Error Record Table (BERT)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 BootErrorRegionLength;
+ UINT64 BootErrorRegion;
+} EFI_ACPI_6_0_BOOT_ERROR_RECORD_TABLE_HEADER;
+
+///
+/// BERT Version (as defined in ACPI 6.0 spec.)
+///
+
+
+///
+/// Boot Error Region Block Status Definition
+///
+typedef struct {
+ UINT32 UncorrectableErrorValid : 1;
+ UINT32 CorrectableErrorValid : 1;
+ UINT32 MultipleUncorrectableErrors : 1;
+ UINT32 MultipleCorrectableErrors : 1;
+ UINT32 ErrorDataEntryCount : 10;
+ UINT32 Reserved : 18;
+} EFI_ACPI_6_0_ERROR_BLOCK_STATUS;
+
+///
+/// Boot Error Region Definition
+///
+typedef struct {
+ EFI_ACPI_6_0_ERROR_BLOCK_STATUS BlockStatus;
+ UINT32 RawDataOffset;
+ UINT32 RawDataLength;
+ UINT32 DataLength;
+ UINT32 ErrorSeverity;
+} EFI_ACPI_6_0_BOOT_ERROR_REGION_STRUCTURE;
+
+//
+// Boot Error Severity types
+//
+
+
+
+
+//
+// The term 'Correctable' is no longer being used as an error severity of the
+// reported error since ACPI Specification Version 5.1 Errata B.
+// The below macro is considered as deprecated and should no longer be used.
+//
+
+
+///
+/// Generic Error Data Entry Definition
+///
+typedef struct {
+ UINT8 SectionType[16];
+ UINT32 ErrorSeverity;
+ UINT16 Revision;
+ UINT8 ValidationBits;
+ UINT8 Flags;
+ UINT32 ErrorDataLength;
+ UINT8 FruId[16];
+ UINT8 FruText[20];
+} EFI_ACPI_6_0_GENERIC_ERROR_DATA_ENTRY_STRUCTURE;
+
+///
+/// Generic Error Data Entry Version (as defined in ACPI 6.0 spec.)
+///
+
+
+///
+/// HEST - Hardware Error Source Table
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 ErrorSourceCount;
+} EFI_ACPI_6_0_HARDWARE_ERROR_SOURCE_TABLE_HEADER;
+
+///
+/// HEST Version (as defined in ACPI 6.0 spec.)
+///
+
+
+//
+// Error Source structure types.
+//
+
+
+
+
+
+
+
+
+//
+// Error Source structure flags.
+//
+
+
+
+///
+/// IA-32 Architecture Machine Check Exception Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT64 GlobalCapabilityInitData;
+ UINT64 GlobalControlInitData;
+ UINT8 NumberOfHardwareBanks;
+ UINT8 Reserved1[7];
+} EFI_ACPI_6_0_IA32_ARCHITECTURE_MACHINE_CHECK_EXCEPTION_STRUCTURE;
+
+///
+/// IA-32 Architecture Machine Check Bank Structure Definition
+///
+typedef struct {
+ UINT8 BankNumber;
+ UINT8 ClearStatusOnInitialization;
+ UINT8 StatusDataFormat;
+ UINT8 Reserved0;
+ UINT32 ControlRegisterMsrAddress;
+ UINT64 ControlInitData;
+ UINT32 StatusRegisterMsrAddress;
+ UINT32 AddressRegisterMsrAddress;
+ UINT32 MiscRegisterMsrAddress;
+} EFI_ACPI_6_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_BANK_STRUCTURE;
+
+///
+/// IA-32 Architecture Machine Check Bank Structure MCA data format
+///
+
+
+
+
+//
+// Hardware Error Notification types. All other values are reserved
+//
+
+
+
+
+
+
+
+
+
+///
+/// Hardware Error Notification Configuration Write Enable Structure Definition
+///
+typedef struct {
+ UINT16 Type : 1;
+ UINT16 PollInterval : 1;
+ UINT16 SwitchToPollingThresholdValue : 1;
+ UINT16 SwitchToPollingThresholdWindow : 1;
+ UINT16 ErrorThresholdValue : 1;
+ UINT16 ErrorThresholdWindow : 1;
+ UINT16 Reserved : 10;
+} EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_CONFIGURATION_WRITE_ENABLE_STRUCTURE;
+
+///
+/// Hardware Error Notification Structure Definition
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_CONFIGURATION_WRITE_ENABLE_STRUCTURE ConfigurationWriteEnable;
+ UINT32 PollInterval;
+ UINT32 Vector;
+ UINT32 SwitchToPollingThresholdValue;
+ UINT32 SwitchToPollingThresholdWindow;
+ UINT32 ErrorThresholdValue;
+ UINT32 ErrorThresholdWindow;
+} EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE;
+
+///
+/// IA-32 Architecture Corrected Machine Check Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE NotificationStructure;
+ UINT8 NumberOfHardwareBanks;
+ UINT8 Reserved1[3];
+} EFI_ACPI_6_0_IA32_ARCHITECTURE_CORRECTED_MACHINE_CHECK_STRUCTURE;
+
+///
+/// IA-32 Architecture NMI Error Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT32 MaxRawDataLength;
+} EFI_ACPI_6_0_IA32_ARCHITECTURE_NMI_ERROR_STRUCTURE;
+
+///
+/// PCI Express Root Port AER Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT32 Bus;
+ UINT16 Device;
+ UINT16 Function;
+ UINT16 DeviceControl;
+ UINT8 Reserved1[2];
+ UINT32 UncorrectableErrorMask;
+ UINT32 UncorrectableErrorSeverity;
+ UINT32 CorrectableErrorMask;
+ UINT32 AdvancedErrorCapabilitiesAndControl;
+ UINT32 RootErrorCommand;
+} EFI_ACPI_6_0_PCI_EXPRESS_ROOT_PORT_AER_STRUCTURE;
+
+///
+/// PCI Express Device AER Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT32 Bus;
+ UINT16 Device;
+ UINT16 Function;
+ UINT16 DeviceControl;
+ UINT8 Reserved1[2];
+ UINT32 UncorrectableErrorMask;
+ UINT32 UncorrectableErrorSeverity;
+ UINT32 CorrectableErrorMask;
+ UINT32 AdvancedErrorCapabilitiesAndControl;
+} EFI_ACPI_6_0_PCI_EXPRESS_DEVICE_AER_STRUCTURE;
+
+///
+/// PCI Express Bridge AER Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT8 Reserved0[2];
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT32 Bus;
+ UINT16 Device;
+ UINT16 Function;
+ UINT16 DeviceControl;
+ UINT8 Reserved1[2];
+ UINT32 UncorrectableErrorMask;
+ UINT32 UncorrectableErrorSeverity;
+ UINT32 CorrectableErrorMask;
+ UINT32 AdvancedErrorCapabilitiesAndControl;
+ UINT32 SecondaryUncorrectableErrorMask;
+ UINT32 SecondaryUncorrectableErrorSeverity;
+ UINT32 SecondaryAdvancedErrorCapabilitiesAndControl;
+} EFI_ACPI_6_0_PCI_EXPRESS_BRIDGE_AER_STRUCTURE;
+
+///
+/// Generic Hardware Error Source Structure Definition
+///
+typedef struct {
+ UINT16 Type;
+ UINT16 SourceId;
+ UINT16 RelatedSourceId;
+ UINT8 Flags;
+ UINT8 Enabled;
+ UINT32 NumberOfRecordsToPreAllocate;
+ UINT32 MaxSectionsPerRecord;
+ UINT32 MaxRawDataLength;
+ EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE ErrorStatusAddress;
+ EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE NotificationStructure;
+ UINT32 ErrorStatusBlockLength;
+} EFI_ACPI_6_0_GENERIC_HARDWARE_ERROR_SOURCE_STRUCTURE;
+
+///
+/// Generic Error Status Definition
+///
+typedef struct {
+ EFI_ACPI_6_0_ERROR_BLOCK_STATUS BlockStatus;
+ UINT32 RawDataOffset;
+ UINT32 RawDataLength;
+ UINT32 DataLength;
+ UINT32 ErrorSeverity;
+} EFI_ACPI_6_0_GENERIC_ERROR_STATUS_STRUCTURE;
+
+///
+/// ERST - Error Record Serialization Table
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 SerializationHeaderSize;
+ UINT8 Reserved0[4];
+ UINT32 InstructionEntryCount;
+} EFI_ACPI_6_0_ERROR_RECORD_SERIALIZATION_TABLE_HEADER;
+
+///
+/// ERST Version (as defined in ACPI 6.0 spec.)
+///
+
+
+///
+/// ERST Serialization Actions
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// ERST Action Command Status
+///
+
+
+
+
+
+
+
+///
+/// ERST Serialization Instructions
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// ERST Instruction Flags
+///
+
+
+///
+/// ERST Serialization Instruction Entry
+///
+typedef struct {
+ UINT8 SerializationAction;
+ UINT8 Instruction;
+ UINT8 Flags;
+ UINT8 Reserved0;
+ EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE RegisterRegion;
+ UINT64 Value;
+ UINT64 Mask;
+} EFI_ACPI_6_0_ERST_SERIALIZATION_INSTRUCTION_ENTRY;
+
+///
+/// EINJ - Error Injection Table
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 InjectionHeaderSize;
+ UINT8 InjectionFlags;
+ UINT8 Reserved0[3];
+ UINT32 InjectionEntryCount;
+} EFI_ACPI_6_0_ERROR_INJECTION_TABLE_HEADER;
+
+///
+/// EINJ Version (as defined in ACPI 6.0 spec.)
+///
+
+
+///
+/// EINJ Error Injection Actions
+///
+
+
+
+
+
+
+
+
+
+
+///
+/// EINJ Action Command Status
+///
+
+
+
+
+///
+/// EINJ Error Type Definition
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// EINJ Injection Instructions
+///
+
+
+
+
+
+
+///
+/// EINJ Instruction Flags
+///
+
+
+///
+/// EINJ Injection Instruction Entry
+///
+typedef struct {
+ UINT8 InjectionAction;
+ UINT8 Instruction;
+ UINT8 Flags;
+ UINT8 Reserved0;
+ EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE RegisterRegion;
+ UINT64 Value;
+ UINT64 Mask;
+} EFI_ACPI_6_0_EINJ_INJECTION_INSTRUCTION_ENTRY;
+
+///
+/// EINJ Trigger Action Table
+///
+typedef struct {
+ UINT32 HeaderSize;
+ UINT32 Revision;
+ UINT32 TableSize;
+ UINT32 EntryCount;
+} EFI_ACPI_6_0_EINJ_TRIGGER_ACTION_TABLE;
+
+///
+/// Platform Communications Channel Table (PCCT)
+///
+typedef struct {
+ EFI_ACPI_DESCRIPTION_HEADER Header;
+ UINT32 Flags;
+ UINT64 Reserved;
+} EFI_ACPI_6_0_PLATFORM_COMMUNICATION_CHANNEL_TABLE_HEADER;
+
+///
+/// PCCT Version (as defined in ACPI 6.0 spec.)
+///
+
+
+///
+/// PCCT Global Flags
+///
+
+
+//
+// PCCT Subspace type
+//
+
+
+
+
+///
+/// PCC Subspace Structure Header
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+} EFI_ACPI_6_0_PCCT_SUBSPACE_HEADER;
+
+///
+/// Generic Communications Subspace Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT8 Reserved[6];
+ UINT64 BaseAddress;
+ UINT64 AddressLength;
+ EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE DoorbellRegister;
+ UINT64 DoorbellPreserve;
+ UINT64 DoorbellWrite;
+ UINT32 NominalLatency;
+ UINT32 MaximumPeriodicAccessRate;
+ UINT16 MinimumRequestTurnaroundTime;
+} EFI_ACPI_6_0_PCCT_SUBSPACE_GENERIC;
+
+///
+/// Generic Communications Channel Shared Memory Region
+///
+
+typedef struct {
+ UINT8 Command;
+ UINT8 Reserved : 7;
+ UINT8 GenerateSci : 1;
+} EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_COMMAND;
+
+typedef struct {
+ UINT8 CommandComplete : 1;
+ UINT8 SciDoorbell : 1;
+ UINT8 Error : 1;
+ UINT8 PlatformNotification : 1;
+ UINT8 Reserved : 4;
+ UINT8 Reserved1;
+} EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_STATUS;
+
+typedef struct {
+ UINT32 Signature;
+ EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_COMMAND Command;
+ EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_STATUS Status;
+} EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_HEADER;
+
+
+
+
+///
+/// Type 1 HW-Reduced Communications Subspace Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT32 DoorbellInterrupt;
+ UINT8 DoorbellInterruptFlags;
+ UINT8 Reserved;
+ UINT64 BaseAddress;
+ UINT64 AddressLength;
+ EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE DoorbellRegister;
+ UINT64 DoorbellPreserve;
+ UINT64 DoorbellWrite;
+ UINT32 NominalLatency;
+ UINT32 MaximumPeriodicAccessRate;
+ UINT16 MinimumRequestTurnaroundTime;
+} EFI_ACPI_6_0_PCCT_SUBSPACE_1_HW_REDUCED_COMMUNICATIONS;
+
+///
+/// Type 2 HW-Reduced Communications Subspace Structure
+///
+typedef struct {
+ UINT8 Type;
+ UINT8 Length;
+ UINT32 DoorbellInterrupt;
+ UINT8 DoorbellInterruptFlags;
+ UINT8 Reserved;
+ UINT64 BaseAddress;
+ UINT64 AddressLength;
+ EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE DoorbellRegister;
+ UINT64 DoorbellPreserve;
+ UINT64 DoorbellWrite;
+ UINT32 NominalLatency;
+ UINT32 MaximumPeriodicAccessRate;
+ UINT16 MinimumRequestTurnaroundTime;
+ EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE DoorbellAckRegister;
+ UINT64 DoorbellAckPreserve;
+ UINT64 DoorbellAckWrite;
+} EFI_ACPI_6_0_PCCT_SUBSPACE_2_HW_REDUCED_COMMUNICATIONS;
+
+//
+// Known table signatures
+//
+
+///
+/// "RSD PTR " Root System Description Pointer
+///
+
+
+///
+/// "APIC" Multiple APIC Description Table
+///
+
+
+///
+/// "BERT" Boot Error Record Table
+///
+
+
+///
+/// "BGRT" Boot Graphics Resource Table
+///
+
+
+///
+/// "CPEP" Corrected Platform Error Polling Table
+///
+
+
+///
+/// "DSDT" Differentiated System Description Table
+///
+
+
+///
+/// "ECDT" Embedded Controller Boot Resources Table
+///
+
+
+///
+/// "EINJ" Error Injection Table
+///
+
+
+///
+/// "ERST" Error Record Serialization Table
+///
+
+
+///
+/// "FACP" Fixed ACPI Description Table
+///
+
+
+///
+/// "FACS" Firmware ACPI Control Structure
+///
+
+
+///
+/// "FPDT" Firmware Performance Data Table
+///
+
+
+///
+/// "GTDT" Generic Timer Description Table
+///
+
+
+///
+/// "HEST" Hardware Error Source Table
+///
+
+
+///
+/// "MPST" Memory Power State Table
+///
+
+
+///
+/// "MSCT" Maximum System Characteristics Table
+///
+
+
+///
+/// "NFIT" NVDIMM Firmware Interface Table
+///
+
+
+///
+/// "PMTT" Platform Memory Topology Table
+///
+
+
+///
+/// "PSDT" Persistent System Description Table
+///
+
+
+///
+/// "RASF" ACPI RAS Feature Table
+///
+
+
+///
+/// "RSDT" Root System Description Table
+///
+
+
+///
+/// "SBST" Smart Battery Specification Table
+///
+
+
+///
+/// "SLIT" System Locality Information Table
+///
+
+
+///
+/// "SRAT" System Resource Affinity Table
+///
+
+
+///
+/// "SSDT" Secondary System Description Table
+///
+
+
+///
+/// "XSDT" Extended System Description Table
+///
+
+
+///
+/// "BOOT" MS Simple Boot Spec
+///
+
+
+///
+/// "CSRT" MS Core System Resource Table
+///
+
+
+///
+/// "DBG2" MS Debug Port 2 Spec
+///
+
+
+///
+/// "DBGP" MS Debug Port Spec
+///
+
+
+///
+/// "DMAR" DMA Remapping Table
+///
+
+
+///
+/// "DRTM" Dynamic Root of Trust for Measurement Table
+///
+
+
+///
+/// "ETDT" Event Timer Description Table
+///
+
+
+///
+/// "HPET" IA-PC High Precision Event Timer Table
+///
+
+
+///
+/// "iBFT" iSCSI Boot Firmware Table
+///
+
+
+///
+/// "IORT" I/O Remapping Table
+///
+
+
+///
+/// "IVRS" I/O Virtualization Reporting Structure
+///
+
+
+///
+/// "LPIT" Low Power Idle Table
+///
+
+
+///
+/// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table
+///
+
+
+///
+/// "MCHI" Management Controller Host Interface Table
+///
+
+
+///
+/// "MSDM" MS Data Management Table
+///
+
+
+///
+/// "PCCT" Platform Communications Channel Table
+///
+
+
+///
+/// "SLIC" MS Software Licensing Table Specification
+///
+
+
+///
+/// "SPCR" Serial Port Console Redirection Table
+///
+
+
+///
+/// "SPMI" Server Platform Management Interface Table
+///
+
+
+///
+/// "STAO" _STA Override Table
+///
+
+
+///
+/// "TCPA" Trusted Computing Platform Alliance Capabilities Table
+///
+
+
+///
+/// "TPM2" Trusted Computing Platform 1 Table
+///
+
+
+///
+/// "UEFI" UEFI ACPI Data Table
+///
+
+
+///
+/// "WAET" Windows ACPI Emulated Devices Table
+///
+
+
+///
+/// "WDAT" Watchdog Action Table
+///
+
+
+///
+/// "WDRT" Watchdog Resource Table
+///
+
+
+///
+/// "WPBT" MS Platform Binary Table
+///
+
+
+///
+/// "XENV" Xen Project Table
+///
+
+
+#pragma pack()
+
+#line 2399 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/Acpi60.h"
+
+#line 19 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Protocol/DevicePath.h"
+
+///
+/// Device Path protocol.
+///
+
+
+
+
+
+///
+/// Device Path guid definition for backward-compatible with EFI1.1.
+///
+
+
+#pragma pack(1)
+
+/**
+ This protocol can be used on any device handle to obtain generic path/location
+ information concerning the physical device or logical device. If the handle does
+ not logically map to a physical device, the handle may not necessarily support
+ the device path protocol. The device path describes the location of the device
+ the handle is for. The size of the Device Path can be determined from the structures
+ that make up the Device Path.
+**/
+typedef struct {
+ UINT8 Type; ///< 0x01 Hardware Device Path.
+ ///< 0x02 ACPI Device Path.
+ ///< 0x03 Messaging Device Path.
+ ///< 0x04 Media Device Path.
+ ///< 0x05 BIOS Boot Specification Device Path.
+ ///< 0x7F End of Hardware Device Path.
+
+ UINT8 SubType; ///< Varies by Type
+ ///< 0xFF End Entire Device Path, or
+ ///< 0x01 End This Instance of a Device Path and start a new
+ ///< Device Path.
+
+ UINT8 Length[2]; ///< Specific Device Path data. Type and Sub-Type define
+ ///< type of data. Size of data is included in Length.
+} EFI_DEVICE_PATH_PROTOCOL;
+
+///
+/// Device Path protocol definition for backward-compatible with EFI1.1.
+///
+typedef EFI_DEVICE_PATH_PROTOCOL EFI_DEVICE_PATH;
+
+///
+/// Hardware Device Paths.
+///
+
+
+///
+/// PCI Device Path SubType.
+///
+
+
+///
+/// PCI Device Path.
+///
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// PCI Function Number.
+ ///
+ UINT8 Function;
+ ///
+ /// PCI Device Number.
+ ///
+ UINT8 Device;
+} PCI_DEVICE_PATH;
+
+///
+/// PCCARD Device Path SubType.
+///
+
+
+///
+/// PCCARD Device Path.
+///
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Function Number (0 = First Function).
+ ///
+ UINT8 FunctionNumber;
+} PCCARD_DEVICE_PATH;
+
+///
+/// Memory Mapped Device Path SubType.
+///
+
+
+///
+/// Memory Mapped Device Path.
+///
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// EFI_MEMORY_TYPE
+ ///
+ UINT32 MemoryType;
+ ///
+ /// Starting Memory Address.
+ ///
+ EFI_PHYSICAL_ADDRESS StartingAddress;
+ ///
+ /// Ending Memory Address.
+ ///
+ EFI_PHYSICAL_ADDRESS EndingAddress;
+} MEMMAP_DEVICE_PATH;
+
+///
+/// Hardware Vendor Device Path SubType.
+///
+
+
+///
+/// The Vendor Device Path allows the creation of vendor-defined Device Paths. A vendor must
+/// allocate a Vendor GUID for a Device Path. The Vendor GUID can then be used to define the
+/// contents on the n bytes that follow in the Vendor Device Path node.
+///
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Vendor-assigned GUID that defines the data that follows.
+ ///
+ EFI_GUID Guid;
+ ///
+ /// Vendor-defined variable size data.
+ ///
+} VENDOR_DEVICE_PATH;
+
+///
+/// Controller Device Path SubType.
+///
+
+
+///
+/// Controller Device Path.
+///
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Controller number.
+ ///
+ UINT32 ControllerNumber;
+} CONTROLLER_DEVICE_PATH;
+
+///
+/// BMC Device Path SubType.
+///
+
+
+///
+/// BMC Device Path.
+///
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Interface Type.
+ ///
+ UINT8 InterfaceType;
+ ///
+ /// Base Address.
+ ///
+ UINT8 BaseAddress[8];
+} BMC_DEVICE_PATH;
+
+///
+/// ACPI Device Paths.
+///
+
+
+///
+/// ACPI Device Path SubType.
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Device's PnP hardware ID stored in a numeric 32-bit
+ /// compressed EISA-type ID. This value must match the
+ /// corresponding _HID in the ACPI name space.
+ ///
+ UINT32 HID;
+ ///
+ /// Unique ID that is required by ACPI if two devices have the
+ /// same _HID. This value must also match the corresponding
+ /// _UID/_HID pair in the ACPI name space. Only the 32-bit
+ /// numeric value type of _UID is supported. Thus, strings must
+ /// not be used for the _UID in the ACPI name space.
+ ///
+ UINT32 UID;
+} ACPI_HID_DEVICE_PATH;
+
+///
+/// Expanded ACPI Device Path SubType.
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Device's PnP hardware ID stored in a numeric 32-bit
+ /// compressed EISA-type ID. This value must match the
+ /// corresponding _HID in the ACPI name space.
+ ///
+ UINT32 HID;
+ ///
+ /// Unique ID that is required by ACPI if two devices have the
+ /// same _HID. This value must also match the corresponding
+ /// _UID/_HID pair in the ACPI name space.
+ ///
+ UINT32 UID;
+ ///
+ /// Device's compatible PnP hardware ID stored in a numeric
+ /// 32-bit compressed EISA-type ID. This value must match at
+ /// least one of the compatible device IDs returned by the
+ /// corresponding _CID in the ACPI name space.
+ ///
+ UINT32 CID;
+ ///
+ /// Optional variable length _HIDSTR.
+ /// Optional variable length _UIDSTR.
+ /// Optional variable length _CIDSTR.
+ ///
+} ACPI_EXTENDED_HID_DEVICE_PATH;
+
+//
+// EISA ID Macro
+// EISA ID Definition 32-bits
+// bits[15:0] - three character compressed ASCII EISA ID.
+// bits[31:16] - binary number
+// Compressed ASCII is 5 bits per character 0b00001 = 'A' 0b11010 = 'Z'
+//
+
+
+
+
+
+
+
+
+///
+/// ACPI _ADR Device Path SubType.
+///
+
+
+///
+/// The _ADR device path is used to contain video output device attributes to support the Graphics
+/// Output Protocol. The device path can contain multiple _ADR entries if multiple video output
+/// devices are displaying the same output.
+///
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// _ADR value. For video output devices the value of this
+ /// field comes from Table B-2 of the ACPI 3.0 specification. At
+ /// least one _ADR value is required.
+ ///
+ UINT32 ADR;
+ //
+ // This device path may optionally contain more than one _ADR entry.
+ //
+} ACPI_ADR_DEVICE_PATH;
+
+///
+/// ACPI NVDIMM Device Path SubType.
+///
+
+///
+///
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// NFIT Device Handle, the _ADR of the NVDIMM device.
+ /// The value of this field comes from Section 9.20.3 of the ACPI 6.2A specification.
+ ///
+ UINT32 NFITDeviceHandle;
+} ACPI_NVDIMM_DEVICE_PATH;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// Messaging Device Paths.
+/// This Device Path is used to describe the connection of devices outside the resource domain of the
+/// system. This Device Path can describe physical messaging information like SCSI ID, or abstract
+/// information like networking protocol IP addresses.
+///
+
+
+///
+/// ATAPI Device Path SubType
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Set to zero for primary, or one for secondary.
+ ///
+ UINT8 PrimarySecondary;
+ ///
+ /// Set to zero for master, or one for slave mode.
+ ///
+ UINT8 SlaveMaster;
+ ///
+ /// Logical Unit Number.
+ ///
+ UINT16 Lun;
+} ATAPI_DEVICE_PATH;
+
+///
+/// SCSI Device Path SubType.
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Target ID on the SCSI bus (PUN).
+ ///
+ UINT16 Pun;
+ ///
+ /// Logical Unit Number (LUN).
+ ///
+ UINT16 Lun;
+} SCSI_DEVICE_PATH;
+
+///
+/// Fibre Channel SubType.
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Reserved for the future.
+ ///
+ UINT32 Reserved;
+ ///
+ /// Fibre Channel World Wide Number.
+ ///
+ UINT64 WWN;
+ ///
+ /// Fibre Channel Logical Unit Number.
+ ///
+ UINT64 Lun;
+} FIBRECHANNEL_DEVICE_PATH;
+
+///
+/// Fibre Channel Ex SubType.
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Reserved for the future.
+ ///
+ UINT32 Reserved;
+ ///
+ /// 8 byte array containing Fibre Channel End Device Port Name.
+ ///
+ UINT8 WWN[8];
+ ///
+ /// 8 byte array containing Fibre Channel Logical Unit Number.
+ ///
+ UINT8 Lun[8];
+} FIBRECHANNELEX_DEVICE_PATH;
+
+///
+/// 1394 Device Path SubType
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Reserved for the future.
+ ///
+ UINT32 Reserved;
+ ///
+ /// 1394 Global Unique ID (GUID).
+ ///
+ UINT64 Guid;
+} F1394_DEVICE_PATH;
+
+///
+/// USB Device Path SubType.
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// USB Parent Port Number.
+ ///
+ UINT8 ParentPortNumber;
+ ///
+ /// USB Interface Number.
+ ///
+ UINT8 InterfaceNumber;
+} USB_DEVICE_PATH;
+
+///
+/// USB Class Device Path SubType.
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Vendor ID assigned by USB-IF. A value of 0xFFFF will
+ /// match any Vendor ID.
+ ///
+ UINT16 VendorId;
+ ///
+ /// Product ID assigned by USB-IF. A value of 0xFFFF will
+ /// match any Product ID.
+ ///
+ UINT16 ProductId;
+ ///
+ /// The class code assigned by the USB-IF. A value of 0xFF
+ /// will match any class code.
+ ///
+ UINT8 DeviceClass;
+ ///
+ /// The subclass code assigned by the USB-IF. A value of
+ /// 0xFF will match any subclass code.
+ ///
+ UINT8 DeviceSubClass;
+ ///
+ /// The protocol code assigned by the USB-IF. A value of
+ /// 0xFF will match any protocol code.
+ ///
+ UINT8 DeviceProtocol;
+} USB_CLASS_DEVICE_PATH;
+
+///
+/// USB WWID Device Path SubType.
+///
+
+
+///
+/// This device path describes a USB device using its serial number.
+///
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// USB interface number.
+ ///
+ UINT16 InterfaceNumber;
+ ///
+ /// USB vendor id of the device.
+ ///
+ UINT16 VendorId;
+ ///
+ /// USB product id of the device.
+ ///
+ UINT16 ProductId;
+ ///
+ /// Last 64-or-fewer UTF-16 characters of the USB
+ /// serial number. The length of the string is
+ /// determined by the Length field less the offset of the
+ /// Serial Number field (10)
+ ///
+ /// CHAR16 SerialNumber[...];
+} USB_WWID_DEVICE_PATH;
+
+///
+/// Device Logical Unit SubType.
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Logical Unit Number for the interface.
+ ///
+ UINT8 Lun;
+} DEVICE_LOGICAL_UNIT_DEVICE_PATH;
+
+///
+/// SATA Device Path SubType.
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// The HBA port number that facilitates the connection to the
+ /// device or a port multiplier. The value 0xFFFF is reserved.
+ ///
+ UINT16 HBAPortNumber;
+ ///
+ /// The Port multiplier port number that facilitates the connection
+ /// to the device. Must be set to 0xFFFF if the device is directly
+ /// connected to the HBA.
+ ///
+ UINT16 PortMultiplierPortNumber;
+ ///
+ /// Logical Unit Number.
+ ///
+ UINT16 Lun;
+} SATA_DEVICE_PATH;
+
+///
+/// Flag for if the device is directly connected to the HBA.
+///
+
+
+///
+/// I2O Device Path SubType.
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Target ID (TID) for a device.
+ ///
+ UINT32 Tid;
+} I2O_DEVICE_PATH;
+
+///
+/// MAC Address Device Path SubType.
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// The MAC address for a network interface padded with 0s.
+ ///
+ EFI_MAC_ADDRESS MacAddress;
+ ///
+ /// Network interface type(i.e. 802.3, FDDI).
+ ///
+ UINT8 IfType;
+} MAC_ADDR_DEVICE_PATH;
+
+///
+/// IPv4 Device Path SubType
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// The local IPv4 address.
+ ///
+ EFI_IPv4_ADDRESS LocalIpAddress;
+ ///
+ /// The remote IPv4 address.
+ ///
+ EFI_IPv4_ADDRESS RemoteIpAddress;
+ ///
+ /// The local port number.
+ ///
+ UINT16 LocalPort;
+ ///
+ /// The remote port number.
+ ///
+ UINT16 RemotePort;
+ ///
+ /// The network protocol(i.e. UDP, TCP).
+ ///
+ UINT16 Protocol;
+ ///
+ /// 0x00 - The Source IP Address was assigned though DHCP.
+ /// 0x01 - The Source IP Address is statically bound.
+ ///
+ BOOLEAN StaticIpAddress;
+ ///
+ /// The gateway IP address
+ ///
+ EFI_IPv4_ADDRESS GatewayIpAddress;
+ ///
+ /// The subnet mask
+ ///
+ EFI_IPv4_ADDRESS SubnetMask;
+} IPv4_DEVICE_PATH;
+
+///
+/// IPv6 Device Path SubType.
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// The local IPv6 address.
+ ///
+ EFI_IPv6_ADDRESS LocalIpAddress;
+ ///
+ /// The remote IPv6 address.
+ ///
+ EFI_IPv6_ADDRESS RemoteIpAddress;
+ ///
+ /// The local port number.
+ ///
+ UINT16 LocalPort;
+ ///
+ /// The remote port number.
+ ///
+ UINT16 RemotePort;
+ ///
+ /// The network protocol(i.e. UDP, TCP).
+ ///
+ UINT16 Protocol;
+ ///
+ /// 0x00 - The Local IP Address was manually configured.
+ /// 0x01 - The Local IP Address is assigned through IPv6
+ /// stateless auto-configuration.
+ /// 0x02 - The Local IP Address is assigned through IPv6
+ /// stateful configuration.
+ ///
+ UINT8 IpAddressOrigin;
+ ///
+ /// The prefix length
+ ///
+ UINT8 PrefixLength;
+ ///
+ /// The gateway IP address
+ ///
+ EFI_IPv6_ADDRESS GatewayIpAddress;
+} IPv6_DEVICE_PATH;
+
+///
+/// InfiniBand Device Path SubType.
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Flags to help identify/manage InfiniBand device path elements:
+ /// Bit 0 - IOC/Service (0b = IOC, 1b = Service).
+ /// Bit 1 - Extend Boot Environment.
+ /// Bit 2 - Console Protocol.
+ /// Bit 3 - Storage Protocol.
+ /// Bit 4 - Network Protocol.
+ /// All other bits are reserved.
+ ///
+ UINT32 ResourceFlags;
+ ///
+ /// 128-bit Global Identifier for remote fabric port.
+ ///
+ UINT8 PortGid[16];
+ ///
+ /// 64-bit unique identifier to remote IOC or server process.
+ /// Interpretation of field specified by Resource Flags (bit 0).
+ ///
+ UINT64 ServiceId;
+ ///
+ /// 64-bit persistent ID of remote IOC port.
+ ///
+ UINT64 TargetPortId;
+ ///
+ /// 64-bit persistent ID of remote device.
+ ///
+ UINT64 DeviceId;
+} INFINIBAND_DEVICE_PATH;
+
+
+
+
+
+
+
+///
+/// UART Device Path SubType.
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Reserved.
+ ///
+ UINT32 Reserved;
+ ///
+ /// The baud rate setting for the UART style device. A value of 0
+ /// means that the device's default baud rate will be used.
+ ///
+ UINT64 BaudRate;
+ ///
+ /// The number of data bits for the UART style device. A value
+ /// of 0 means that the device's default number of data bits will be used.
+ ///
+ UINT8 DataBits;
+ ///
+ /// The parity setting for the UART style device.
+ /// Parity 0x00 - Default Parity.
+ /// Parity 0x01 - No Parity.
+ /// Parity 0x02 - Even Parity.
+ /// Parity 0x03 - Odd Parity.
+ /// Parity 0x04 - Mark Parity.
+ /// Parity 0x05 - Space Parity.
+ ///
+ UINT8 Parity;
+ ///
+ /// The number of stop bits for the UART style device.
+ /// Stop Bits 0x00 - Default Stop Bits.
+ /// Stop Bits 0x01 - 1 Stop Bit.
+ /// Stop Bits 0x02 - 1.5 Stop Bits.
+ /// Stop Bits 0x03 - 2 Stop Bits.
+ ///
+ UINT8 StopBits;
+} UART_DEVICE_PATH;
+
+///
+/// NVDIMM Namespace Device Path SubType.
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Namespace unique label identifier UUID.
+ ///
+ EFI_GUID Uuid;
+} NVDIMM_NAMESPACE_DEVICE_PATH;
+
+//
+// Use VENDOR_DEVICE_PATH struct
+//
+
+typedef VENDOR_DEVICE_PATH VENDOR_DEFINED_DEVICE_PATH;
+
+
+
+
+
+
+///
+/// A new device path node is defined to declare flow control characteristics.
+/// UART Flow Control Messaging Device Path
+///
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// DEVICE_PATH_MESSAGING_UART_FLOW_CONTROL GUID.
+ ///
+ EFI_GUID Guid;
+ ///
+ /// Bitmap of supported flow control types.
+ /// Bit 0 set indicates hardware flow control.
+ /// Bit 1 set indicates Xon/Xoff flow control.
+ /// All other bits are reserved and are clear.
+ ///
+ UINT32 FlowControlMap;
+} UART_FLOW_CONTROL_DEVICE_PATH;
+
+
+
+
+
+///
+/// Serial Attached SCSI (SAS) Device Path.
+///
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// DEVICE_PATH_MESSAGING_SAS GUID.
+ ///
+ EFI_GUID Guid;
+ ///
+ /// Reserved for future use.
+ ///
+ UINT32 Reserved;
+ ///
+ /// SAS Address for Serial Attached SCSI Target.
+ ///
+ UINT64 SasAddress;
+ ///
+ /// SAS Logical Unit Number.
+ ///
+ UINT64 Lun;
+ ///
+ /// More Information about the device and its interconnect.
+ ///
+ UINT16 DeviceTopology;
+ ///
+ /// Relative Target Port (RTP).
+ ///
+ UINT16 RelativeTargetPort;
+} SAS_DEVICE_PATH;
+
+///
+/// Serial Attached SCSI (SAS) Ex Device Path SubType
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// 8-byte array of the SAS Address for Serial Attached SCSI Target Port.
+ ///
+ UINT8 SasAddress[8];
+ ///
+ /// 8-byte array of the SAS Logical Unit Number.
+ ///
+ UINT8 Lun[8];
+ ///
+ /// More Information about the device and its interconnect.
+ ///
+ UINT16 DeviceTopology;
+ ///
+ /// Relative Target Port (RTP).
+ ///
+ UINT16 RelativeTargetPort;
+} SASEX_DEVICE_PATH;
+
+///
+/// NvmExpress Namespace Device Path SubType.
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ UINT32 NamespaceId;
+ UINT64 NamespaceUuid;
+} NVME_NAMESPACE_DEVICE_PATH;
+
+///
+/// DNS Device Path SubType
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Indicates the DNS server address is IPv4 or IPv6 address.
+ ///
+ UINT8 IsIPv6;
+ ///
+ /// Instance of the DNS server address.
+ ///
+ EFI_IP_ADDRESS DnsServerIp[];
+} DNS_DEVICE_PATH;
+
+///
+/// Uniform Resource Identifiers (URI) Device Path SubType
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Instance of the URI pursuant to RFC 3986.
+ ///
+ CHAR8 Uri[];
+} URI_DEVICE_PATH;
+
+///
+/// Universal Flash Storage (UFS) Device Path SubType.
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Target ID on the UFS bus (PUN).
+ ///
+ UINT8 Pun;
+ ///
+ /// Logical Unit Number (LUN).
+ ///
+ UINT8 Lun;
+} UFS_DEVICE_PATH;
+
+///
+/// SD (Secure Digital) Device Path SubType.
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ UINT8 SlotNumber;
+} SD_DEVICE_PATH;
+
+///
+/// EMMC (Embedded MMC) Device Path SubType.
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ UINT8 SlotNumber;
+} EMMC_DEVICE_PATH;
+
+///
+/// iSCSI Device Path SubType
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Network Protocol (0 = TCP, 1+ = reserved).
+ ///
+ UINT16 NetworkProtocol;
+ ///
+ /// iSCSI Login Options.
+ ///
+ UINT16 LoginOption;
+ ///
+ /// iSCSI Logical Unit Number.
+ ///
+ UINT64 Lun;
+ ///
+ /// iSCSI Target Portal group tag the initiator intends
+ /// to establish a session with.
+ ///
+ UINT16 TargetPortalGroupTag;
+ ///
+ /// iSCSI NodeTarget Name. The length of the name
+ /// is determined by subtracting the offset of this field from Length.
+ ///
+ /// CHAR8 iSCSI Target Name.
+} ISCSI_DEVICE_PATH;
+
+
+
+
+
+
+
+
+
+
+///
+/// VLAN Device Path SubType.
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// VLAN identifier (0-4094).
+ ///
+ UINT16 VlanId;
+} VLAN_DEVICE_PATH;
+
+///
+/// Bluetooth Device Path SubType.
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// 48bit Bluetooth device address.
+ ///
+ BLUETOOTH_ADDRESS BD_ADDR;
+} BLUETOOTH_DEVICE_PATH;
+
+///
+/// Wi-Fi Device Path SubType.
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Service set identifier. A 32-byte octets string.
+ ///
+ UINT8 SSId[32];
+} WIFI_DEVICE_PATH;
+
+///
+/// Bluetooth LE Device Path SubType.
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ BLUETOOTH_LE_ADDRESS Address;
+} BLUETOOTH_LE_DEVICE_PATH;
+
+//
+// Media Device Path
+//
+
+
+///
+/// Hard Drive Media Device Path SubType.
+///
+
+
+///
+/// The Hard Drive Media Device Path is used to represent a partition on a hard drive.
+///
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Describes the entry in a partition table, starting with entry 1.
+ /// Partition number zero represents the entire device. Valid
+ /// partition numbers for a MBR partition are [1, 4]. Valid
+ /// partition numbers for a GPT partition are [1, NumberOfPartitionEntries].
+ ///
+ UINT32 PartitionNumber;
+ ///
+ /// Starting LBA of the partition on the hard drive.
+ ///
+ UINT64 PartitionStart;
+ ///
+ /// Size of the partition in units of Logical Blocks.
+ ///
+ UINT64 PartitionSize;
+ ///
+ /// Signature unique to this partition:
+ /// If SignatureType is 0, this field has to be initialized with 16 zeros.
+ /// If SignatureType is 1, the MBR signature is stored in the first 4 bytes of this field.
+ /// The other 12 bytes are initialized with zeros.
+ /// If SignatureType is 2, this field contains a 16 byte signature.
+ ///
+ UINT8 Signature[16];
+ ///
+ /// Partition Format: (Unused values reserved).
+ /// 0x01 - PC-AT compatible legacy MBR.
+ /// 0x02 - GUID Partition Table.
+ ///
+ UINT8 MBRType;
+ ///
+ /// Type of Disk Signature: (Unused values reserved).
+ /// 0x00 - No Disk Signature.
+ /// 0x01 - 32-bit signature from address 0x1b8 of the type 0x01 MBR.
+ /// 0x02 - GUID signature.
+ ///
+ UINT8 SignatureType;
+} HARDDRIVE_DEVICE_PATH;
+
+
+
+
+
+
+
+
+///
+/// CD-ROM Media Device Path SubType.
+///
+
+
+///
+/// The CD-ROM Media Device Path is used to define a system partition that exists on a CD-ROM.
+///
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Boot Entry number from the Boot Catalog. The Initial/Default entry is defined as zero.
+ ///
+ UINT32 BootEntry;
+ ///
+ /// Starting RBA of the partition on the medium. CD-ROMs use Relative logical Block Addressing.
+ ///
+ UINT64 PartitionStart;
+ ///
+ /// Size of the partition in units of Blocks, also called Sectors.
+ ///
+ UINT64 PartitionSize;
+} CDROM_DEVICE_PATH;
+
+//
+// Use VENDOR_DEVICE_PATH struct
+//
+
+
+///
+/// File Path Media Device Path SubType
+///
+
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// A NULL-terminated Path string including directory and file names.
+ ///
+ CHAR16 PathName[1];
+} FILEPATH_DEVICE_PATH;
+
+
+
+///
+/// Media Protocol Device Path SubType.
+///
+
+
+///
+/// The Media Protocol Device Path is used to denote the protocol that is being
+/// used in a device path at the location of the path specified.
+/// Many protocols are inherent to the style of device path.
+///
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// The ID of the protocol.
+ ///
+ EFI_GUID Protocol;
+} MEDIA_PROTOCOL_DEVICE_PATH;
+
+///
+/// PIWG Firmware File SubType.
+///
+
+
+///
+/// This device path is used by systems implementing the UEFI PI Specification 1.0 to describe a firmware file.
+///
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Firmware file name
+ ///
+ EFI_GUID FvFileName;
+} MEDIA_FW_VOL_FILEPATH_DEVICE_PATH;
+
+///
+/// PIWG Firmware Volume Device Path SubType.
+///
+
+
+///
+/// This device path is used by systems implementing the UEFI PI Specification 1.0 to describe a firmware volume.
+///
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Firmware volume name.
+ ///
+ EFI_GUID FvName;
+} MEDIA_FW_VOL_DEVICE_PATH;
+
+///
+/// Media relative offset range device path.
+///
+
+
+///
+/// Used to describe the offset range of media relative.
+///
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ UINT32 Reserved;
+ UINT64 StartingOffset;
+ UINT64 EndingOffset;
+} MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH;
+
+///
+/// This GUID defines a RAM Disk supporting a raw disk format in volatile memory.
+///
+
+
+extern EFI_GUID gEfiVirtualDiskGuid;
+
+///
+/// This GUID defines a RAM Disk supporting an ISO image in volatile memory.
+///
+
+
+extern EFI_GUID gEfiVirtualCdGuid;
+
+///
+/// This GUID defines a RAM Disk supporting a raw disk format in persistent memory.
+///
+
+
+extern EFI_GUID gEfiPersistentVirtualDiskGuid;
+
+///
+/// This GUID defines a RAM Disk supporting an ISO image in persistent memory.
+///
+
+
+extern EFI_GUID gEfiPersistentVirtualCdGuid;
+
+///
+/// Media ram disk device path.
+///
+
+
+///
+/// Used to describe the ram disk device path.
+///
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Starting Memory Address.
+ ///
+ UINT32 StartingAddr[2];
+ ///
+ /// Ending Memory Address.
+ ///
+ UINT32 EndingAddr[2];
+ ///
+ /// GUID that defines the type of the RAM Disk.
+ ///
+ EFI_GUID TypeGuid;
+ ///
+ /// RAM Diskinstance number, if supported. The default value is zero.
+ ///
+ UINT16 Instance;
+} MEDIA_RAM_DISK_DEVICE_PATH;
+
+///
+/// BIOS Boot Specification Device Path.
+///
+
+
+///
+/// BIOS Boot Specification Device Path SubType.
+///
+
+
+///
+/// This Device Path is used to describe the booting of non-EFI-aware operating systems.
+///
+typedef struct {
+ EFI_DEVICE_PATH_PROTOCOL Header;
+ ///
+ /// Device Type as defined by the BIOS Boot Specification.
+ ///
+ UINT16 DeviceType;
+ ///
+ /// Status Flags as defined by the BIOS Boot Specification.
+ ///
+ UINT16 StatusFlag;
+ ///
+ /// Null-terminated ASCII string that describes the boot device to a user.
+ ///
+ CHAR8 String[1];
+} BBS_BBS_DEVICE_PATH;
+
+//
+// DeviceType definitions - from BBS specification
+//
+
+
+
+
+
+
+
+
+
+///
+/// Union of all possible Device Paths and pointers to Device Paths.
+///
+typedef union {
+ EFI_DEVICE_PATH_PROTOCOL DevPath;
+ PCI_DEVICE_PATH Pci;
+ PCCARD_DEVICE_PATH PcCard;
+ MEMMAP_DEVICE_PATH MemMap;
+ VENDOR_DEVICE_PATH Vendor;
+
+ CONTROLLER_DEVICE_PATH Controller;
+ BMC_DEVICE_PATH Bmc;
+ ACPI_HID_DEVICE_PATH Acpi;
+ ACPI_EXTENDED_HID_DEVICE_PATH ExtendedAcpi;
+ ACPI_ADR_DEVICE_PATH AcpiAdr;
+
+ ATAPI_DEVICE_PATH Atapi;
+ SCSI_DEVICE_PATH Scsi;
+ ISCSI_DEVICE_PATH Iscsi;
+ FIBRECHANNEL_DEVICE_PATH FibreChannel;
+ FIBRECHANNELEX_DEVICE_PATH FibreChannelEx;
+
+ F1394_DEVICE_PATH F1394;
+ USB_DEVICE_PATH Usb;
+ SATA_DEVICE_PATH Sata;
+ USB_CLASS_DEVICE_PATH UsbClass;
+ USB_WWID_DEVICE_PATH UsbWwid;
+ DEVICE_LOGICAL_UNIT_DEVICE_PATH LogicUnit;
+ I2O_DEVICE_PATH I2O;
+ MAC_ADDR_DEVICE_PATH MacAddr;
+ IPv4_DEVICE_PATH Ipv4;
+ IPv6_DEVICE_PATH Ipv6;
+ VLAN_DEVICE_PATH Vlan;
+ INFINIBAND_DEVICE_PATH InfiniBand;
+ UART_DEVICE_PATH Uart;
+ UART_FLOW_CONTROL_DEVICE_PATH UartFlowControl;
+ SAS_DEVICE_PATH Sas;
+ SASEX_DEVICE_PATH SasEx;
+ NVME_NAMESPACE_DEVICE_PATH NvmeNamespace;
+ DNS_DEVICE_PATH Dns;
+ URI_DEVICE_PATH Uri;
+ BLUETOOTH_DEVICE_PATH Bluetooth;
+ WIFI_DEVICE_PATH WiFi;
+ UFS_DEVICE_PATH Ufs;
+ SD_DEVICE_PATH Sd;
+ EMMC_DEVICE_PATH Emmc;
+ HARDDRIVE_DEVICE_PATH HardDrive;
+ CDROM_DEVICE_PATH CD;
+
+ FILEPATH_DEVICE_PATH FilePath;
+ MEDIA_PROTOCOL_DEVICE_PATH MediaProtocol;
+
+ MEDIA_FW_VOL_DEVICE_PATH FirmwareVolume;
+ MEDIA_FW_VOL_FILEPATH_DEVICE_PATH FirmwareFile;
+ MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH Offset;
+ MEDIA_RAM_DISK_DEVICE_PATH RamDisk;
+ BBS_BBS_DEVICE_PATH Bbs;
+} EFI_DEV_PATH;
+
+typedef union {
+ EFI_DEVICE_PATH_PROTOCOL *DevPath;
+ PCI_DEVICE_PATH *Pci;
+ PCCARD_DEVICE_PATH *PcCard;
+ MEMMAP_DEVICE_PATH *MemMap;
+ VENDOR_DEVICE_PATH *Vendor;
+
+ CONTROLLER_DEVICE_PATH *Controller;
+ BMC_DEVICE_PATH *Bmc;
+ ACPI_HID_DEVICE_PATH *Acpi;
+ ACPI_EXTENDED_HID_DEVICE_PATH *ExtendedAcpi;
+ ACPI_ADR_DEVICE_PATH *AcpiAdr;
+
+ ATAPI_DEVICE_PATH *Atapi;
+ SCSI_DEVICE_PATH *Scsi;
+ ISCSI_DEVICE_PATH *Iscsi;
+ FIBRECHANNEL_DEVICE_PATH *FibreChannel;
+ FIBRECHANNELEX_DEVICE_PATH *FibreChannelEx;
+
+ F1394_DEVICE_PATH *F1394;
+ USB_DEVICE_PATH *Usb;
+ SATA_DEVICE_PATH *Sata;
+ USB_CLASS_DEVICE_PATH *UsbClass;
+ USB_WWID_DEVICE_PATH *UsbWwid;
+ DEVICE_LOGICAL_UNIT_DEVICE_PATH *LogicUnit;
+ I2O_DEVICE_PATH *I2O;
+ MAC_ADDR_DEVICE_PATH *MacAddr;
+ IPv4_DEVICE_PATH *Ipv4;
+ IPv6_DEVICE_PATH *Ipv6;
+ VLAN_DEVICE_PATH *Vlan;
+ INFINIBAND_DEVICE_PATH *InfiniBand;
+ UART_DEVICE_PATH *Uart;
+ UART_FLOW_CONTROL_DEVICE_PATH *UartFlowControl;
+ SAS_DEVICE_PATH *Sas;
+ SASEX_DEVICE_PATH *SasEx;
+ NVME_NAMESPACE_DEVICE_PATH *NvmeNamespace;
+ DNS_DEVICE_PATH *Dns;
+ URI_DEVICE_PATH *Uri;
+ BLUETOOTH_DEVICE_PATH *Bluetooth;
+ WIFI_DEVICE_PATH *WiFi;
+ UFS_DEVICE_PATH *Ufs;
+ SD_DEVICE_PATH *Sd;
+ EMMC_DEVICE_PATH *Emmc;
+ HARDDRIVE_DEVICE_PATH *HardDrive;
+ CDROM_DEVICE_PATH *CD;
+
+ FILEPATH_DEVICE_PATH *FilePath;
+ MEDIA_PROTOCOL_DEVICE_PATH *MediaProtocol;
+
+ MEDIA_FW_VOL_DEVICE_PATH *FirmwareVolume;
+ MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *FirmwareFile;
+ MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH *Offset;
+ MEDIA_RAM_DISK_DEVICE_PATH *RamDisk;
+ BBS_BBS_DEVICE_PATH *Bbs;
+ UINT8 *Raw;
+} EFI_DEV_PATH_PTR;
+
+#pragma pack()
+
+
+
+
+
+extern EFI_GUID gEfiDevicePathProtocolGuid;
+
+#line 1376 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Protocol/DevicePath.h"
+
+#line 21 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiSpec.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Protocol/SimpleTextIn.h"
+/** @file
+ Simple Text Input protocol from the UEFI 2.0 specification.
+
+ Abstraction of a very simple input device like a keyboard or serial
+ terminal.
+
+ Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+
+
+
+
+
+
+
+
+typedef struct _EFI_SIMPLE_TEXT_INPUT_PROTOCOL EFI_SIMPLE_TEXT_INPUT_PROTOCOL;
+
+///
+/// Protocol GUID name defined in EFI1.1.
+///
+
+
+///
+/// Protocol name in EFI1.1 for backward-compatible.
+///
+typedef struct _EFI_SIMPLE_TEXT_INPUT_PROTOCOL SIMPLE_INPUT_INTERFACE;
+
+///
+/// The keystroke information for the key that was pressed.
+///
+typedef struct {
+ UINT16 ScanCode;
+ CHAR16 UnicodeChar;
+} EFI_INPUT_KEY;
+
+//
+// Required unicode control chars
+//
+
+
+
+
+
+//
+// EFI Scan codes
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/**
+ Reset the input device and optionally run diagnostics
+
+ @param This Protocol instance pointer.
+ @param ExtendedVerification Driver may perform diagnostics on reset.
+
+ @retval EFI_SUCCESS The device was reset.
+ @retval EFI_DEVICE_ERROR The device is not functioning properly and could not be reset.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_INPUT_RESET)(
+ EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,
+ BOOLEAN ExtendedVerification
+ );
+
+/**
+ Reads the next keystroke from the input device. The WaitForKey Event can
+ be used to test for existence of a keystroke via WaitForEvent () call.
+
+ @param This Protocol instance pointer.
+ @param Key A pointer to a buffer that is filled in with the keystroke
+ information for the key that was pressed.
+
+ @retval EFI_SUCCESS The keystroke information was returned.
+ @retval EFI_NOT_READY There was no keystroke data available.
+ @retval EFI_DEVICE_ERROR The keystroke information was not returned due to
+ hardware errors.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_INPUT_READ_KEY)(
+ EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,
+ EFI_INPUT_KEY *Key
+ );
+
+///
+/// The EFI_SIMPLE_TEXT_INPUT_PROTOCOL is used on the ConsoleIn device.
+/// It is the minimum required protocol for ConsoleIn.
+///
+struct _EFI_SIMPLE_TEXT_INPUT_PROTOCOL {
+ EFI_INPUT_RESET Reset;
+ EFI_INPUT_READ_KEY ReadKeyStroke;
+ ///
+ /// Event to use with WaitForEvent() to wait for a key to be available
+ ///
+ EFI_EVENT WaitForKey;
+};
+
+extern EFI_GUID gEfiSimpleTextInProtocolGuid;
+
+#line 128 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Protocol/SimpleTextIn.h"
+#line 22 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiSpec.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Protocol/SimpleTextInEx.h"
+/** @file
+ Simple Text Input Ex protocol from the UEFI 2.0 specification.
+
+ This protocol defines an extension to the EFI_SIMPLE_TEXT_INPUT_PROTOCOL
+ which exposes much more state and modifier information from the input device,
+ also allows one to register a notification for a particular keystroke.
+
+ Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+
+
+
+
+
+
+
+
+typedef struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL;
+
+/**
+ The Reset() function resets the input device hardware. As part
+ of initialization process, the firmware/device will make a quick
+ but reasonable attempt to verify that the device is functioning.
+ If the ExtendedVerification flag is TRUE the firmware may take
+ an extended amount of time to verify the device is operating on
+ reset. Otherwise the reset operation is to occur as quickly as
+ possible. The hardware verification process is not defined by
+ this specification and is left up to the platform firmware or
+ driver to implement.
+
+ @param This A pointer to the EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL instance.
+
+ @param ExtendedVerification Indicates that the driver may
+ perform a more exhaustive
+ verification operation of the
+ device during reset.
+
+
+ @retval EFI_SUCCESS The device was reset.
+
+ @retval EFI_DEVICE_ERROR The device is not functioning
+ correctly and could not be reset.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_INPUT_RESET_EX)(
+ EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
+ BOOLEAN ExtendedVerification
+ );
+
+///
+/// EFI_KEY_TOGGLE_STATE. The toggle states are defined.
+/// They are: EFI_TOGGLE_STATE_VALID, EFI_SCROLL_LOCK_ACTIVE
+/// EFI_NUM_LOCK_ACTIVE, EFI_CAPS_LOCK_ACTIVE
+///
+typedef UINT8 EFI_KEY_TOGGLE_STATE;
+
+typedef struct _EFI_KEY_STATE {
+ ///
+ /// Reflects the currently pressed shift
+ /// modifiers for the input device. The
+ /// returned value is valid only if the high
+ /// order bit has been set.
+ ///
+ UINT32 KeyShiftState;
+ ///
+ /// Reflects the current internal state of
+ /// various toggled attributes. The returned
+ /// value is valid only if the high order
+ /// bit has been set.
+ ///
+ EFI_KEY_TOGGLE_STATE KeyToggleState;
+} EFI_KEY_STATE;
+
+typedef struct {
+ ///
+ /// The EFI scan code and Unicode value returned from the input device.
+ ///
+ EFI_INPUT_KEY Key;
+ ///
+ /// The current state of various toggled attributes as well as input modifier values.
+ ///
+ EFI_KEY_STATE KeyState;
+} EFI_KEY_DATA;
+
+//
+// Any Shift or Toggle State that is valid should have
+// high order bit set.
+//
+// Shift state
+//
+
+
+
+
+
+
+
+
+
+
+
+
+//
+// Toggle state
+//
+
+
+
+
+
+
+//
+// EFI Scan codes
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/**
+ The function reads the next keystroke from the input device. If
+ there is no pending keystroke the function returns
+ EFI_NOT_READY. If there is a pending keystroke, then
+ KeyData.Key.ScanCode is the EFI scan code defined in Error!
+ Reference source not found. The KeyData.Key.UnicodeChar is the
+ actual printable character or is zero if the key does not
+ represent a printable character (control key, function key,
+ etc.). The KeyData.KeyState is shift state for the character
+ reflected in KeyData.Key.UnicodeChar or KeyData.Key.ScanCode .
+ When interpreting the data from this function, it should be
+ noted that if a class of printable characters that are
+ normally adjusted by shift modifiers (e.g. Shift Key + "f"
+ key) would be presented solely as a KeyData.Key.UnicodeChar
+ without the associated shift state. So in the previous example
+ of a Shift Key + "f" key being pressed, the only pertinent
+ data returned would be KeyData.Key.UnicodeChar with the value
+ of "F". This of course would not typically be the case for
+ non-printable characters such as the pressing of the Right
+ Shift Key + F10 key since the corresponding returned data
+ would be reflected both in the KeyData.KeyState.KeyShiftState
+ and KeyData.Key.ScanCode values. UEFI drivers which implement
+ the EFI_SIMPLE_TEXT_INPUT_EX protocol are required to return
+ KeyData.Key and KeyData.KeyState values. These drivers must
+ always return the most current state of
+ KeyData.KeyState.KeyShiftState and
+ KeyData.KeyState.KeyToggleState. It should also be noted that
+ certain input devices may not be able to produce shift or toggle
+ state information, and in those cases the high order bit in the
+ respective Toggle and Shift state fields should not be active.
+
+
+ @param This A pointer to the EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL instance.
+
+ @param KeyData A pointer to a buffer that is filled in with
+ the keystroke state data for the key that was
+ pressed.
+
+
+ @retval EFI_SUCCESS The keystroke information was returned.
+ @retval EFI_NOT_READY There was no keystroke data available.
+ @retval EFI_DEVICE_ERROR The keystroke information was not returned due to
+ hardware errors.
+
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_INPUT_READ_KEY_EX)(
+ EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
+ EFI_KEY_DATA *KeyData
+ );
+
+/**
+ The SetState() function allows the input device hardware to
+ have state settings adjusted.
+
+ @param This A pointer to the EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL instance.
+
+ @param KeyToggleState Pointer to the EFI_KEY_TOGGLE_STATE to
+ set the state for the input device.
+
+
+ @retval EFI_SUCCESS The device state was set appropriately.
+
+ @retval EFI_DEVICE_ERROR The device is not functioning
+ correctly and could not have the
+ setting adjusted.
+
+ @retval EFI_UNSUPPORTED The device does not support the
+ ability to have its state set.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_SET_STATE)(
+ EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
+ EFI_KEY_TOGGLE_STATE *KeyToggleState
+ );
+
+///
+/// The function will be called when the key sequence is typed specified by KeyData.
+///
+typedef
+EFI_STATUS
+(__cdecl *EFI_KEY_NOTIFY_FUNCTION)(
+ EFI_KEY_DATA *KeyData
+ );
+
+/**
+ The RegisterKeystrokeNotify() function registers a function
+ which will be called when a specified keystroke will occur.
+
+ @param This A pointer to the EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL instance.
+
+ @param KeyData A pointer to a buffer that is filled in with
+ the keystroke information for the key that was
+ pressed. If KeyData.Key, KeyData.KeyState.KeyToggleState
+ and KeyData.KeyState.KeyShiftState are 0, then any incomplete
+ keystroke will trigger a notification of the KeyNotificationFunction.
+
+ @param KeyNotificationFunction Points to the function to be called when the key sequence
+ is typed specified by KeyData. This notification function
+ should be called at <=TPL_CALLBACK.
+
+
+ @param NotifyHandle Points to the unique handle assigned to
+ the registered notification.
+
+ @retval EFI_SUCCESS Key notify was registered successfully.
+
+ @retval EFI_OUT_OF_RESOURCES Unable to allocate necessary
+ data structures.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_REGISTER_KEYSTROKE_NOTIFY)(
+ EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
+ EFI_KEY_DATA *KeyData,
+ EFI_KEY_NOTIFY_FUNCTION KeyNotificationFunction,
+ void **NotifyHandle
+ );
+
+/**
+ The UnregisterKeystrokeNotify() function removes the
+ notification which was previously registered.
+
+ @param This A pointer to the EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL instance.
+
+ @param NotificationHandle The handle of the notification
+ function being unregistered.
+
+ @retval EFI_SUCCESS Key notify was unregistered successfully.
+
+ @retval EFI_INVALID_PARAMETER The NotificationHandle is
+ invalid.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_UNREGISTER_KEYSTROKE_NOTIFY)(
+ EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
+ void *NotificationHandle
+ );
+
+///
+/// The EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL is used on the ConsoleIn
+/// device. It is an extension to the Simple Text Input protocol
+/// which allows a variety of extended shift state information to be
+/// returned.
+///
+struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL {
+ EFI_INPUT_RESET_EX Reset;
+ EFI_INPUT_READ_KEY_EX ReadKeyStrokeEx;
+ ///
+ /// Event to use with WaitForEvent() to wait for a key to be available.
+ ///
+ EFI_EVENT WaitForKeyEx;
+ EFI_SET_STATE SetState;
+ EFI_REGISTER_KEYSTROKE_NOTIFY RegisterKeyNotify;
+ EFI_UNREGISTER_KEYSTROKE_NOTIFY UnregisterKeyNotify;
+};
+
+extern EFI_GUID gEfiSimpleTextInputExProtocolGuid;
+
+#line 313 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Protocol/SimpleTextInEx.h"
+#line 23 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiSpec.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Protocol/SimpleTextOut.h"
+/** @file
+ Simple Text Out protocol from the UEFI 2.0 specification.
+
+ Abstraction of a very simple text based output device like VGA text mode or
+ a serial terminal. The Simple Text Out protocol instance can represent
+ a single hardware device or a virtual device that is an aggregation
+ of multiple physical devices.
+
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+
+
+
+
+
+
+
+
+///
+/// Protocol GUID defined in EFI1.1.
+///
+
+
+typedef struct _EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL;
+
+///
+/// Backward-compatible with EFI1.1.
+///
+typedef EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL SIMPLE_TEXT_OUTPUT_INTERFACE;
+
+//
+// Defines for required EFI Unicode Box Draw characters
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+//
+// EFI Required Block Elements Code Chart
+//
+
+
+
+//
+// EFI Required Geometric Shapes Code Chart
+//
+
+
+
+
+
+//
+// EFI Required Arrow shapes
+//
+
+
+
+
+
+//
+// EFI Console Colours
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+//
+// Macro to accept color values in their raw form to create
+// a value that represents both a foreground and background
+// color in a single byte.
+// For Foreground, and EFI_* value is valid from EFI_BLACK(0x00) to
+// EFI_WHITE (0x0F).
+// For Background, only EFI_BLACK, EFI_BLUE, EFI_GREEN, EFI_CYAN,
+// EFI_RED, EFI_MAGENTA, EFI_BROWN, and EFI_LIGHTGRAY are acceptable
+//
+// Do not use EFI_BACKGROUND_xxx values with this macro.
+//
+
+
+
+
+
+
+
+
+
+
+
+//
+// We currently define attributes from 0 - 7F for color manipulations
+// To internally handle the local display characteristics for a particular character,
+// Bit 7 signifies the local glyph representation for a character. If turned on, glyphs will be
+// pulled from the wide glyph database and will display locally as a wide character (16 X 19 versus 8 X 19)
+// If bit 7 is off, the narrow glyph database will be used. This does NOT affect information that is sent to
+// non-local displays, such as serial or LAN consoles.
+//
+
+
+/**
+ Reset the text output device hardware and optionally run diagnostics
+
+ @param This The protocol instance pointer.
+ @param ExtendedVerification Driver may perform more exhaustive verification
+ operation of the device during reset.
+
+ @retval EFI_SUCCESS The text output device was reset.
+ @retval EFI_DEVICE_ERROR The text output device is not functioning correctly and
+ could not be reset.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_TEXT_RESET)(
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ BOOLEAN ExtendedVerification
+ );
+
+/**
+ Write a string to the output device.
+
+ @param This The protocol instance pointer.
+ @param String The NULL-terminated string to be displayed on the output
+ device(s). All output devices must also support the Unicode
+ drawing character codes defined in this file.
+
+ @retval EFI_SUCCESS The string was output to the device.
+ @retval EFI_DEVICE_ERROR The device reported an error while attempting to output
+ the text.
+ @retval EFI_UNSUPPORTED The output device's mode is not currently in a
+ defined text mode.
+ @retval EFI_WARN_UNKNOWN_GLYPH This warning code indicates that some of the
+ characters in the string could not be
+ rendered and were skipped.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_TEXT_STRING)(
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ CHAR16 *String
+ );
+
+/**
+ Verifies that all characters in a string can be output to the
+ target device.
+
+ @param This The protocol instance pointer.
+ @param String The NULL-terminated string to be examined for the output
+ device(s).
+
+ @retval EFI_SUCCESS The device(s) are capable of rendering the output string.
+ @retval EFI_UNSUPPORTED Some of the characters in the string cannot be
+ rendered by one or more of the output devices mapped
+ by the EFI handle.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_TEXT_TEST_STRING)(
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ CHAR16 *String
+ );
+
+/**
+ Returns information for an available text mode that the output device(s)
+ supports.
+
+ @param This The protocol instance pointer.
+ @param ModeNumber The mode number to return information on.
+ @param Columns Returns the geometry of the text output device for the
+ requested ModeNumber.
+ @param Rows Returns the geometry of the text output device for the
+ requested ModeNumber.
+
+ @retval EFI_SUCCESS The requested mode information was returned.
+ @retval EFI_DEVICE_ERROR The device had an error and could not complete the request.
+ @retval EFI_UNSUPPORTED The mode number was not valid.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_TEXT_QUERY_MODE)(
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ UINTN ModeNumber,
+ UINTN *Columns,
+ UINTN *Rows
+ );
+
+/**
+ Sets the output device(s) to a specified mode.
+
+ @param This The protocol instance pointer.
+ @param ModeNumber The mode number to set.
+
+ @retval EFI_SUCCESS The requested text mode was set.
+ @retval EFI_DEVICE_ERROR The device had an error and could not complete the request.
+ @retval EFI_UNSUPPORTED The mode number was not valid.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_TEXT_SET_MODE)(
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ UINTN ModeNumber
+ );
+
+/**
+ Sets the background and foreground colors for the OutputString () and
+ ClearScreen () functions.
+
+ @param This The protocol instance pointer.
+ @param Attribute The attribute to set. Bits 0..3 are the foreground color, and
+ bits 4..6 are the background color. All other bits are undefined
+ and must be zero. The valid Attributes are defined in this file.
+
+ @retval EFI_SUCCESS The attribute was set.
+ @retval EFI_DEVICE_ERROR The device had an error and could not complete the request.
+ @retval EFI_UNSUPPORTED The attribute requested is not defined.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_TEXT_SET_ATTRIBUTE)(
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ UINTN Attribute
+ );
+
+/**
+ Clears the output device(s) display to the currently selected background
+ color.
+
+ @param This The protocol instance pointer.
+
+ @retval EFI_SUCCESS The operation completed successfully.
+ @retval EFI_DEVICE_ERROR The device had an error and could not complete the request.
+ @retval EFI_UNSUPPORTED The output device is not in a valid text mode.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_TEXT_CLEAR_SCREEN)(
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This
+ );
+
+/**
+ Sets the current coordinates of the cursor position
+
+ @param This The protocol instance pointer.
+ @param Column The position to set the cursor to. Must be greater than or
+ equal to zero and less than the number of columns and rows
+ by QueryMode ().
+ @param Row The position to set the cursor to. Must be greater than or
+ equal to zero and less than the number of columns and rows
+ by QueryMode ().
+
+ @retval EFI_SUCCESS The operation completed successfully.
+ @retval EFI_DEVICE_ERROR The device had an error and could not complete the request.
+ @retval EFI_UNSUPPORTED The output device is not in a valid text mode, or the
+ cursor position is invalid for the current mode.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_TEXT_SET_CURSOR_POSITION)(
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ UINTN Column,
+ UINTN Row
+ );
+
+/**
+ Makes the cursor visible or invisible
+
+ @param This The protocol instance pointer.
+ @param Visible If TRUE, the cursor is set to be visible. If FALSE, the cursor is
+ set to be invisible.
+
+ @retval EFI_SUCCESS The operation completed successfully.
+ @retval EFI_DEVICE_ERROR The device had an error and could not complete the
+ request, or the device does not support changing
+ the cursor mode.
+ @retval EFI_UNSUPPORTED The output device is not in a valid text mode.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_TEXT_ENABLE_CURSOR)(
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ BOOLEAN Visible
+ );
+
+/**
+ @par Data Structure Description:
+ Mode Structure pointed to by Simple Text Out protocol.
+**/
+typedef struct {
+ ///
+ /// The number of modes supported by QueryMode () and SetMode ().
+ ///
+ INT32 MaxMode;
+
+ //
+ // current settings
+ //
+
+ ///
+ /// The text mode of the output device(s).
+ ///
+ INT32 Mode;
+ ///
+ /// The current character output attribute.
+ ///
+ INT32 Attribute;
+ ///
+ /// The cursor's column.
+ ///
+ INT32 CursorColumn;
+ ///
+ /// The cursor's row.
+ ///
+ INT32 CursorRow;
+ ///
+ /// The cursor is currently visible or not.
+ ///
+ BOOLEAN CursorVisible;
+} EFI_SIMPLE_TEXT_OUTPUT_MODE;
+
+///
+/// The SIMPLE_TEXT_OUTPUT protocol is used to control text-based output devices.
+/// It is the minimum required protocol for any handle supplied as the ConsoleOut
+/// or StandardError device. In addition, the minimum supported text mode of such
+/// devices is at least 80 x 25 characters.
+///
+struct _EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL {
+ EFI_TEXT_RESET Reset;
+
+ EFI_TEXT_STRING OutputString;
+ EFI_TEXT_TEST_STRING TestString;
+
+ EFI_TEXT_QUERY_MODE QueryMode;
+ EFI_TEXT_SET_MODE SetMode;
+ EFI_TEXT_SET_ATTRIBUTE SetAttribute;
+
+ EFI_TEXT_CLEAR_SCREEN ClearScreen;
+ EFI_TEXT_SET_CURSOR_POSITION SetCursorPosition;
+ EFI_TEXT_ENABLE_CURSOR EnableCursor;
+
+ ///
+ /// Pointer to SIMPLE_TEXT_OUTPUT_MODE data.
+ ///
+ EFI_SIMPLE_TEXT_OUTPUT_MODE *Mode;
+};
+
+extern EFI_GUID gEfiSimpleTextOutProtocolGuid;
+
+#line 410 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Protocol/SimpleTextOut.h"
+#line 24 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiSpec.h"
+
+///
+/// Enumeration of EFI memory allocation types.
+///
+typedef enum {
+ ///
+ /// Allocate any available range of pages that satisfies the request.
+ ///
+ AllocateAnyPages,
+ ///
+ /// Allocate any available range of pages whose uppermost address is less than
+ /// or equal to a specified maximum address.
+ ///
+ AllocateMaxAddress,
+ ///
+ /// Allocate pages at a specified address.
+ ///
+ AllocateAddress,
+ ///
+ /// Maximum enumeration value that may be used for bounds checking.
+ ///
+ MaxAllocateType
+} EFI_ALLOCATE_TYPE;
+
+//
+// Bit definitions for EFI_TIME.Daylight
+//
+
+
+
+///
+/// Value definition for EFI_TIME.TimeZone.
+///
+
+
+//
+// Memory cacheability attributes
+//
+
+
+
+
+
+//
+// Physical memory protection attributes
+//
+// Note: UEFI spec 2.5 and following: use EFI_MEMORY_RO as write-protected physical memory
+// protection attribute. Also, EFI_MEMORY_WP means cacheability attribute.
+//
+
+
+
+
+//
+// Physical memory persistence attribute.
+// The memory region supports byte-addressable non-volatility.
+//
+
+//
+// The memory region provides higher reliability relative to other memory in the system.
+// If all memory has the same reliability, then this bit is not used.
+//
+
+
+//
+// Note: UEFI spec 2.8 and following:
+//
+// Specific-purpose memory (SPM). The memory is earmarked for
+// specific purposes such as for specific device drivers or applications.
+// The SPM attribute serves as a hint to the OS to avoid allocating this
+// memory for core OS data or code that can not be relocated.
+//
+
+//
+// If this flag is set, the memory region is capable of being
+// protected with the CPU's memory cryptographic
+// capabilities. If this flag is clear, the memory region is not
+// capable of being protected with the CPU's memory
+// cryptographic capabilities or the CPU does not support CPU
+// memory cryptographic capabilities.
+//
+
+
+//
+// Runtime memory attribute
+//
+
+
+//
+// Attributes bitmasks, grouped by type
+//
+
+
+
+
+///
+/// Memory descriptor version number.
+///
+
+
+///
+/// Definition of an EFI memory descriptor.
+///
+typedef struct {
+ ///
+ /// Type of the memory region.
+ /// Type EFI_MEMORY_TYPE is defined in the
+ /// AllocatePages() function description.
+ ///
+ UINT32 Type;
+ ///
+ /// Physical address of the first byte in the memory region. PhysicalStart must be
+ /// aligned on a 4 KiB boundary, and must not be above 0xfffffffffffff000. Type
+ /// EFI_PHYSICAL_ADDRESS is defined in the AllocatePages() function description
+ ///
+ EFI_PHYSICAL_ADDRESS PhysicalStart;
+ ///
+ /// Virtual address of the first byte in the memory region.
+ /// VirtualStart must be aligned on a 4 KiB boundary,
+ /// and must not be above 0xfffffffffffff000.
+ ///
+ EFI_VIRTUAL_ADDRESS VirtualStart;
+ ///
+ /// NumberOfPagesNumber of 4 KiB pages in the memory region.
+ /// NumberOfPages must not be 0, and must not be any value
+ /// that would represent a memory page with a start address,
+ /// either physical or virtual, above 0xfffffffffffff000.
+ ///
+ UINT64 NumberOfPages;
+ ///
+ /// Attributes of the memory region that describe the bit mask of capabilities
+ /// for that memory region, and not necessarily the current settings for that
+ /// memory region.
+ ///
+ UINT64 Attribute;
+} EFI_MEMORY_DESCRIPTOR;
+
+/**
+ Allocates memory pages from the system.
+
+ @param[in] Type The type of allocation to perform.
+ @param[in] MemoryType The type of memory to allocate.
+ MemoryType values in the range 0x70000000..0x7FFFFFFF
+ are reserved for OEM use. MemoryType values in the range
+ 0x80000000..0xFFFFFFFF are reserved for use by UEFI OS loaders
+ that are provided by operating system vendors.
+ @param[in] Pages The number of contiguous 4 KB pages to allocate.
+ @param[in, out] Memory The pointer to a physical address. On input, the way in which the address is
+ used depends on the value of Type.
+
+ @retval EFI_SUCCESS The requested pages were allocated.
+ @retval EFI_INVALID_PARAMETER 1) Type is not AllocateAnyPages or
+ AllocateMaxAddress or AllocateAddress.
+ 2) MemoryType is in the range
+ EfiMaxMemoryType..0x6FFFFFFF.
+ 3) Memory is NULL.
+ 4) MemoryType is EfiPersistentMemory.
+ @retval EFI_OUT_OF_RESOURCES The pages could not be allocated.
+ @retval EFI_NOT_FOUND The requested pages could not be found.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_ALLOCATE_PAGES)(
+ EFI_ALLOCATE_TYPE Type,
+ EFI_MEMORY_TYPE MemoryType,
+ UINTN Pages,
+ EFI_PHYSICAL_ADDRESS *Memory
+ );
+
+/**
+ Frees memory pages.
+
+ @param[in] Memory The base physical address of the pages to be freed.
+ @param[in] Pages The number of contiguous 4 KB pages to free.
+
+ @retval EFI_SUCCESS The requested pages were freed.
+ @retval EFI_INVALID_PARAMETER Memory is not a page-aligned address or Pages is invalid.
+ @retval EFI_NOT_FOUND The requested memory pages were not allocated with
+ AllocatePages().
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_FREE_PAGES)(
+ EFI_PHYSICAL_ADDRESS Memory,
+ UINTN Pages
+ );
+
+/**
+ Returns the current memory map.
+
+ @param[in, out] MemoryMapSize A pointer to the size, in bytes, of the MemoryMap buffer.
+ On input, this is the size of the buffer allocated by the caller.
+ On output, it is the size of the buffer returned by the firmware if
+ the buffer was large enough, or the size of the buffer needed to contain
+ the map if the buffer was too small.
+ @param[out] MemoryMap A pointer to the buffer in which firmware places the current memory
+ map.
+ @param[out] MapKey A pointer to the location in which firmware returns the key for the
+ current memory map.
+ @param[out] DescriptorSize A pointer to the location in which firmware returns the size, in bytes, of
+ an individual EFI_MEMORY_DESCRIPTOR.
+ @param[out] DescriptorVersion A pointer to the location in which firmware returns the version number
+ associated with the EFI_MEMORY_DESCRIPTOR.
+
+ @retval EFI_SUCCESS The memory map was returned in the MemoryMap buffer.
+ @retval EFI_BUFFER_TOO_SMALL The MemoryMap buffer was too small. The current buffer size
+ needed to hold the memory map is returned in MemoryMapSize.
+ @retval EFI_INVALID_PARAMETER 1) MemoryMapSize is NULL.
+ 2) The MemoryMap buffer is not too small and MemoryMap is
+ NULL.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_GET_MEMORY_MAP)(
+ UINTN *MemoryMapSize,
+ EFI_MEMORY_DESCRIPTOR *MemoryMap,
+ UINTN *MapKey,
+ UINTN *DescriptorSize,
+ UINT32 *DescriptorVersion
+ );
+
+/**
+ Allocates pool memory.
+
+ @param[in] PoolType The type of pool to allocate.
+ MemoryType values in the range 0x70000000..0x7FFFFFFF
+ are reserved for OEM use. MemoryType values in the range
+ 0x80000000..0xFFFFFFFF are reserved for use by UEFI OS loaders
+ that are provided by operating system vendors.
+ @param[in] Size The number of bytes to allocate from the pool.
+ @param[out] Buffer A pointer to a pointer to the allocated buffer if the call succeeds;
+ undefined otherwise.
+
+ @retval EFI_SUCCESS The requested number of bytes was allocated.
+ @retval EFI_OUT_OF_RESOURCES The pool requested could not be allocated.
+ @retval EFI_INVALID_PARAMETER Buffer is NULL.
+ PoolType is in the range EfiMaxMemoryType..0x6FFFFFFF.
+ PoolType is EfiPersistentMemory.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_ALLOCATE_POOL)(
+ EFI_MEMORY_TYPE PoolType,
+ UINTN Size,
+ void **Buffer
+ );
+
+/**
+ Returns pool memory to the system.
+
+ @param[in] Buffer The pointer to the buffer to free.
+
+ @retval EFI_SUCCESS The memory was returned to the system.
+ @retval EFI_INVALID_PARAMETER Buffer was invalid.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_FREE_POOL)(
+ void *Buffer
+ );
+
+/**
+ Changes the runtime addressing mode of EFI firmware from physical to virtual.
+
+ @param[in] MemoryMapSize The size in bytes of VirtualMap.
+ @param[in] DescriptorSize The size in bytes of an entry in the VirtualMap.
+ @param[in] DescriptorVersion The version of the structure entries in VirtualMap.
+ @param[in] VirtualMap An array of memory descriptors which contain new virtual
+ address mapping information for all runtime ranges.
+
+ @retval EFI_SUCCESS The virtual address map has been applied.
+ @retval EFI_UNSUPPORTED EFI firmware is not at runtime, or the EFI firmware is already in
+ virtual address mapped mode.
+ @retval EFI_INVALID_PARAMETER DescriptorSize or DescriptorVersion is invalid.
+ @retval EFI_NO_MAPPING A virtual address was not supplied for a range in the memory
+ map that requires a mapping.
+ @retval EFI_NOT_FOUND A virtual address was supplied for an address that is not found
+ in the memory map.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_SET_VIRTUAL_ADDRESS_MAP)(
+ UINTN MemoryMapSize,
+ UINTN DescriptorSize,
+ UINT32 DescriptorVersion,
+ EFI_MEMORY_DESCRIPTOR *VirtualMap
+ );
+
+/**
+ Connects one or more drivers to a controller.
+
+ @param[in] ControllerHandle The handle of the controller to which driver(s) are to be connected.
+ @param[in] DriverImageHandle A pointer to an ordered list handles that support the
+ EFI_DRIVER_BINDING_PROTOCOL.
+ @param[in] RemainingDevicePath A pointer to the device path that specifies a child of the
+ controller specified by ControllerHandle.
+ @param[in] Recursive If TRUE, then ConnectController() is called recursively
+ until the entire tree of controllers below the controller specified
+ by ControllerHandle have been created. If FALSE, then
+ the tree of controllers is only expanded one level.
+
+ @retval EFI_SUCCESS 1) One or more drivers were connected to ControllerHandle.
+ 2) No drivers were connected to ControllerHandle, but
+ RemainingDevicePath is not NULL, and it is an End Device
+ Path Node.
+ @retval EFI_INVALID_PARAMETER ControllerHandle is NULL.
+ @retval EFI_NOT_FOUND 1) There are no EFI_DRIVER_BINDING_PROTOCOL instances
+ present in the system.
+ 2) No drivers were connected to ControllerHandle.
+ @retval EFI_SECURITY_VIOLATION
+ The user has no permission to start UEFI device drivers on the device path
+ associated with the ControllerHandle or specified by the RemainingDevicePath.
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_CONNECT_CONTROLLER)(
+ EFI_HANDLE ControllerHandle,
+ EFI_HANDLE *DriverImageHandle ,
+ EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath ,
+ BOOLEAN Recursive
+ );
+
+/**
+ Disconnects one or more drivers from a controller.
+
+ @param[in] ControllerHandle The handle of the controller from which driver(s) are to be disconnected.
+ @param[in] DriverImageHandle The driver to disconnect from ControllerHandle.
+ If DriverImageHandle is NULL, then all the drivers currently managing
+ ControllerHandle are disconnected from ControllerHandle.
+ @param[in] ChildHandle The handle of the child to destroy.
+ If ChildHandle is NULL, then all the children of ControllerHandle are
+ destroyed before the drivers are disconnected from ControllerHandle.
+
+ @retval EFI_SUCCESS 1) One or more drivers were disconnected from the controller.
+ 2) On entry, no drivers are managing ControllerHandle.
+ 3) DriverImageHandle is not NULL, and on entry
+ DriverImageHandle is not managing ControllerHandle.
+ @retval EFI_INVALID_PARAMETER 1) ControllerHandle is NULL.
+ 2) DriverImageHandle is not NULL, and it is not a valid EFI_HANDLE.
+ 3) ChildHandle is not NULL, and it is not a valid EFI_HANDLE.
+ 4) DriverImageHandle does not support the EFI_DRIVER_BINDING_PROTOCOL.
+ @retval EFI_OUT_OF_RESOURCES There are not enough resources available to disconnect any drivers from
+ ControllerHandle.
+ @retval EFI_DEVICE_ERROR The controller could not be disconnected because of a device error.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_DISCONNECT_CONTROLLER)(
+ EFI_HANDLE ControllerHandle,
+ EFI_HANDLE DriverImageHandle ,
+ EFI_HANDLE ChildHandle
+ );
+
+//
+// ConvertPointer DebugDisposition type.
+//
+
+
+/**
+ Determines the new virtual address that is to be used on subsequent memory accesses.
+
+ @param[in] DebugDisposition Supplies type information for the pointer being converted.
+ @param[in, out] Address A pointer to a pointer that is to be fixed to be the value needed
+ for the new virtual address mappings being applied.
+
+ @retval EFI_SUCCESS The pointer pointed to by Address was modified.
+ @retval EFI_INVALID_PARAMETER 1) Address is NULL.
+ 2) *Address is NULL and DebugDisposition does
+ not have the EFI_OPTIONAL_PTR bit set.
+ @retval EFI_NOT_FOUND The pointer pointed to by Address was not found to be part
+ of the current memory map. This is normally fatal.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_CONVERT_POINTER)(
+ UINTN DebugDisposition,
+ void **Address
+ );
+
+//
+// These types can be ORed together as needed - for example,
+// EVT_TIMER might be Ored with EVT_NOTIFY_WAIT or
+// EVT_NOTIFY_SIGNAL.
+//
+
+
+
+
+
+
+
+
+//
+// The event's NotifyContext pointer points to a runtime memory
+// address.
+// The event is deprecated in UEFI2.0 and later specifications.
+//
+
+
+/**
+ Invoke a notification event
+
+ @param[in] Event Event whose notification function is being invoked.
+ @param[in] Context The pointer to the notification function's context,
+ which is implementation-dependent.
+
+**/
+typedef
+void
+(__cdecl *EFI_EVENT_NOTIFY)(
+ EFI_EVENT Event,
+ void *Context
+ );
+
+/**
+ Creates an event.
+
+ @param[in] Type The type of event to create and its mode and attributes.
+ @param[in] NotifyTpl The task priority level of event notifications, if needed.
+ @param[in] NotifyFunction The pointer to the event's notification function, if any.
+ @param[in] NotifyContext The pointer to the notification function's context; corresponds to parameter
+ Context in the notification function.
+ @param[out] Event The pointer to the newly created event if the call succeeds; undefined
+ otherwise.
+
+ @retval EFI_SUCCESS The event structure was created.
+ @retval EFI_INVALID_PARAMETER One or more parameters are invalid.
+ @retval EFI_OUT_OF_RESOURCES The event could not be allocated.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_CREATE_EVENT)(
+ UINT32 Type,
+ EFI_TPL NotifyTpl,
+ EFI_EVENT_NOTIFY NotifyFunction,
+ void *NotifyContext,
+ EFI_EVENT *Event
+ );
+
+/**
+ Creates an event in a group.
+
+ @param[in] Type The type of event to create and its mode and attributes.
+ @param[in] NotifyTpl The task priority level of event notifications,if needed.
+ @param[in] NotifyFunction The pointer to the event's notification function, if any.
+ @param[in] NotifyContext The pointer to the notification function's context; corresponds to parameter
+ Context in the notification function.
+ @param[in] EventGroup The pointer to the unique identifier of the group to which this event belongs.
+ If this is NULL, then the function behaves as if the parameters were passed
+ to CreateEvent.
+ @param[out] Event The pointer to the newly created event if the call succeeds; undefined
+ otherwise.
+
+ @retval EFI_SUCCESS The event structure was created.
+ @retval EFI_INVALID_PARAMETER One or more parameters are invalid.
+ @retval EFI_OUT_OF_RESOURCES The event could not be allocated.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_CREATE_EVENT_EX)(
+ UINT32 Type,
+ EFI_TPL NotifyTpl,
+ EFI_EVENT_NOTIFY NotifyFunction ,
+ const void *NotifyContext ,
+ const EFI_GUID *EventGroup ,
+ EFI_EVENT *Event
+ );
+
+///
+/// Timer delay types
+///
+typedef enum {
+ ///
+ /// An event's timer settings is to be cancelled and not trigger time is to be set/
+ ///
+ TimerCancel,
+ ///
+ /// An event is to be signaled periodically at a specified interval from the current time.
+ ///
+ TimerPeriodic,
+ ///
+ /// An event is to be signaled once at a specified interval from the current time.
+ ///
+ TimerRelative
+} EFI_TIMER_DELAY;
+
+/**
+ Sets the type of timer and the trigger time for a timer event.
+
+ @param[in] Event The timer event that is to be signaled at the specified time.
+ @param[in] Type The type of time that is specified in TriggerTime.
+ @param[in] TriggerTime The number of 100ns units until the timer expires.
+ A TriggerTime of 0 is legal.
+ If Type is TimerRelative and TriggerTime is 0, then the timer
+ event will be signaled on the next timer tick.
+ If Type is TimerPeriodic and TriggerTime is 0, then the timer
+ event will be signaled on every timer tick.
+
+ @retval EFI_SUCCESS The event has been set to be signaled at the requested time.
+ @retval EFI_INVALID_PARAMETER Event or Type is not valid.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_SET_TIMER)(
+ EFI_EVENT Event,
+ EFI_TIMER_DELAY Type,
+ UINT64 TriggerTime
+ );
+
+/**
+ Signals an event.
+
+ @param[in] Event The event to signal.
+
+ @retval EFI_SUCCESS The event has been signaled.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_SIGNAL_EVENT)(
+ EFI_EVENT Event
+ );
+
+/**
+ Stops execution until an event is signaled.
+
+ @param[in] NumberOfEvents The number of events in the Event array.
+ @param[in] Event An array of EFI_EVENT.
+ @param[out] Index The pointer to the index of the event which satisfied the wait condition.
+
+ @retval EFI_SUCCESS The event indicated by Index was signaled.
+ @retval EFI_INVALID_PARAMETER 1) NumberOfEvents is 0.
+ 2) The event indicated by Index is of type
+ EVT_NOTIFY_SIGNAL.
+ @retval EFI_UNSUPPORTED The current TPL is not TPL_APPLICATION.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_WAIT_FOR_EVENT)(
+ UINTN NumberOfEvents,
+ EFI_EVENT *Event,
+ UINTN *Index
+ );
+
+/**
+ Closes an event.
+
+ @param[in] Event The event to close.
+
+ @retval EFI_SUCCESS The event has been closed.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_CLOSE_EVENT)(
+ EFI_EVENT Event
+ );
+
+/**
+ Checks whether an event is in the signaled state.
+
+ @param[in] Event The event to check.
+
+ @retval EFI_SUCCESS The event is in the signaled state.
+ @retval EFI_NOT_READY The event is not in the signaled state.
+ @retval EFI_INVALID_PARAMETER Event is of type EVT_NOTIFY_SIGNAL.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_CHECK_EVENT)(
+ EFI_EVENT Event
+ );
+
+//
+// Task priority level
+//
+
+
+
+
+
+/**
+ Raises a task's priority level and returns its previous level.
+
+ @param[in] NewTpl The new task priority level.
+
+ @return Previous task priority level
+
+**/
+typedef
+EFI_TPL
+(__cdecl *EFI_RAISE_TPL)(
+ EFI_TPL NewTpl
+ );
+
+/**
+ Restores a task's priority level to its previous value.
+
+ @param[in] OldTpl The previous task priority level to restore.
+
+**/
+typedef
+void
+(__cdecl *EFI_RESTORE_TPL)(
+ EFI_TPL OldTpl
+ );
+
+/**
+ Returns the value of a variable.
+
+ @param[in] VariableName A Null-terminated string that is the name of the vendor's
+ variable.
+ @param[in] VendorGuid A unique identifier for the vendor.
+ @param[out] Attributes If not NULL, a pointer to the memory location to return the
+ attributes bitmask for the variable.
+ @param[in, out] DataSize On input, the size in bytes of the return Data buffer.
+ On output the size of data returned in Data.
+ @param[out] Data The buffer to return the contents of the variable. May be NULL
+ with a zero DataSize in order to determine the size buffer needed.
+
+ @retval EFI_SUCCESS The function completed successfully.
+ @retval EFI_NOT_FOUND The variable was not found.
+ @retval EFI_BUFFER_TOO_SMALL The DataSize is too small for the result.
+ @retval EFI_INVALID_PARAMETER VariableName is NULL.
+ @retval EFI_INVALID_PARAMETER VendorGuid is NULL.
+ @retval EFI_INVALID_PARAMETER DataSize is NULL.
+ @retval EFI_INVALID_PARAMETER The DataSize is not too small and Data is NULL.
+ @retval EFI_DEVICE_ERROR The variable could not be retrieved due to a hardware error.
+ @retval EFI_SECURITY_VIOLATION The variable could not be retrieved due to an authentication failure.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_GET_VARIABLE)(
+ CHAR16 *VariableName,
+ EFI_GUID *VendorGuid,
+ UINT32 *Attributes ,
+ UINTN *DataSize,
+ void *Data
+ );
+
+/**
+ Enumerates the current variable names.
+
+ @param[in, out] VariableNameSize The size of the VariableName buffer. The size must be large
+ enough to fit input string supplied in VariableName buffer.
+ @param[in, out] VariableName On input, supplies the last VariableName that was returned
+ by GetNextVariableName(). On output, returns the Nullterminated
+ string of the current variable.
+ @param[in, out] VendorGuid On input, supplies the last VendorGuid that was returned by
+ GetNextVariableName(). On output, returns the
+ VendorGuid of the current variable.
+
+ @retval EFI_SUCCESS The function completed successfully.
+ @retval EFI_NOT_FOUND The next variable was not found.
+ @retval EFI_BUFFER_TOO_SMALL The VariableNameSize is too small for the result.
+ VariableNameSize has been updated with the size needed to complete the request.
+ @retval EFI_INVALID_PARAMETER VariableNameSize is NULL.
+ @retval EFI_INVALID_PARAMETER VariableName is NULL.
+ @retval EFI_INVALID_PARAMETER VendorGuid is NULL.
+ @retval EFI_INVALID_PARAMETER The input values of VariableName and VendorGuid are not a name and
+ GUID of an existing variable.
+ @retval EFI_INVALID_PARAMETER Null-terminator is not found in the first VariableNameSize bytes of
+ the input VariableName buffer.
+ @retval EFI_DEVICE_ERROR The variable could not be retrieved due to a hardware error.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_GET_NEXT_VARIABLE_NAME)(
+ UINTN *VariableNameSize,
+ CHAR16 *VariableName,
+ EFI_GUID *VendorGuid
+ );
+
+/**
+ Sets the value of a variable.
+
+ @param[in] VariableName A Null-terminated string that is the name of the vendor's variable.
+ Each VariableName is unique for each VendorGuid. VariableName must
+ contain 1 or more characters. If VariableName is an empty string,
+ then EFI_INVALID_PARAMETER is returned.
+ @param[in] VendorGuid A unique identifier for the vendor.
+ @param[in] Attributes Attributes bitmask to set for the variable.
+ @param[in] DataSize The size in bytes of the Data buffer. Unless the EFI_VARIABLE_APPEND_WRITE or
+ EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS attribute is set, a size of zero
+ causes the variable to be deleted. When the EFI_VARIABLE_APPEND_WRITE attribute is
+ set, then a SetVariable() call with a DataSize of zero will not cause any change to
+ the variable value (the timestamp associated with the variable may be updated however
+ even if no new data value is provided,see the description of the
+ EFI_VARIABLE_AUTHENTICATION_2 descriptor below. In this case the DataSize will not
+ be zero since the EFI_VARIABLE_AUTHENTICATION_2 descriptor will be populated).
+ @param[in] Data The contents for the variable.
+
+ @retval EFI_SUCCESS The firmware has successfully stored the variable and its data as
+ defined by the Attributes.
+ @retval EFI_INVALID_PARAMETER An invalid combination of attribute bits, name, and GUID was supplied, or the
+ DataSize exceeds the maximum allowed.
+ @retval EFI_INVALID_PARAMETER VariableName is an empty string.
+ @retval EFI_OUT_OF_RESOURCES Not enough storage is available to hold the variable and its data.
+ @retval EFI_DEVICE_ERROR The variable could not be retrieved due to a hardware error.
+ @retval EFI_WRITE_PROTECTED The variable in question is read-only.
+ @retval EFI_WRITE_PROTECTED The variable in question cannot be deleted.
+ @retval EFI_SECURITY_VIOLATION The variable could not be written due to EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACESS being set,
+ but the AuthInfo does NOT pass the validation check carried out by the firmware.
+
+ @retval EFI_NOT_FOUND The variable trying to be updated or deleted was not found.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_SET_VARIABLE)(
+ CHAR16 *VariableName,
+ EFI_GUID *VendorGuid,
+ UINT32 Attributes,
+ UINTN DataSize,
+ void *Data
+ );
+
+///
+/// This provides the capabilities of the
+/// real time clock device as exposed through the EFI interfaces.
+///
+typedef struct {
+ ///
+ /// Provides the reporting resolution of the real-time clock device in
+ /// counts per second. For a normal PC-AT CMOS RTC device, this
+ /// value would be 1 Hz, or 1, to indicate that the device only reports
+ /// the time to the resolution of 1 second.
+ ///
+ UINT32 Resolution;
+ ///
+ /// Provides the timekeeping accuracy of the real-time clock in an
+ /// error rate of 1E-6 parts per million. For a clock with an accuracy
+ /// of 50 parts per million, the value in this field would be
+ /// 50,000,000.
+ ///
+ UINT32 Accuracy;
+ ///
+ /// A TRUE indicates that a time set operation clears the device's
+ /// time below the Resolution reporting level. A FALSE
+ /// indicates that the state below the Resolution level of the
+ /// device is not cleared when the time is set. Normal PC-AT CMOS
+ /// RTC devices set this value to FALSE.
+ ///
+ BOOLEAN SetsToZero;
+} EFI_TIME_CAPABILITIES;
+
+/**
+ Returns the current time and date information, and the time-keeping capabilities
+ of the hardware platform.
+
+ @param[out] Time A pointer to storage to receive a snapshot of the current time.
+ @param[out] Capabilities An optional pointer to a buffer to receive the real time clock
+ device's capabilities.
+
+ @retval EFI_SUCCESS The operation completed successfully.
+ @retval EFI_INVALID_PARAMETER Time is NULL.
+ @retval EFI_DEVICE_ERROR The time could not be retrieved due to hardware error.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_GET_TIME)(
+ EFI_TIME *Time,
+ EFI_TIME_CAPABILITIES *Capabilities
+ );
+
+/**
+ Sets the current local time and date information.
+
+ @param[in] Time A pointer to the current time.
+
+ @retval EFI_SUCCESS The operation completed successfully.
+ @retval EFI_INVALID_PARAMETER A time field is out of range.
+ @retval EFI_DEVICE_ERROR The time could not be set due due to hardware error.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_SET_TIME)(
+ EFI_TIME *Time
+ );
+
+/**
+ Returns the current wakeup alarm clock setting.
+
+ @param[out] Enabled Indicates if the alarm is currently enabled or disabled.
+ @param[out] Pending Indicates if the alarm signal is pending and requires acknowledgement.
+ @param[out] Time The current alarm setting.
+
+ @retval EFI_SUCCESS The alarm settings were returned.
+ @retval EFI_INVALID_PARAMETER Enabled is NULL.
+ @retval EFI_INVALID_PARAMETER Pending is NULL.
+ @retval EFI_INVALID_PARAMETER Time is NULL.
+ @retval EFI_DEVICE_ERROR The wakeup time could not be retrieved due to a hardware error.
+ @retval EFI_UNSUPPORTED A wakeup timer is not supported on this platform.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_GET_WAKEUP_TIME)(
+ BOOLEAN *Enabled,
+ BOOLEAN *Pending,
+ EFI_TIME *Time
+ );
+
+/**
+ Sets the system wakeup alarm clock time.
+
+ @param[in] Enable Enable or disable the wakeup alarm.
+ @param[in] Time If Enable is TRUE, the time to set the wakeup alarm for.
+ If Enable is FALSE, then this parameter is optional, and may be NULL.
+
+ @retval EFI_SUCCESS If Enable is TRUE, then the wakeup alarm was enabled. If
+ Enable is FALSE, then the wakeup alarm was disabled.
+ @retval EFI_INVALID_PARAMETER A time field is out of range.
+ @retval EFI_DEVICE_ERROR The wakeup time could not be set due to a hardware error.
+ @retval EFI_UNSUPPORTED A wakeup timer is not supported on this platform.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_SET_WAKEUP_TIME)(
+ BOOLEAN Enable,
+ EFI_TIME *Time
+ );
+
+/**
+ Loads an EFI image into memory.
+
+ @param[in] BootPolicy If TRUE, indicates that the request originates from the boot
+ manager, and that the boot manager is attempting to load
+ FilePath as a boot selection. Ignored if SourceBuffer is
+ not NULL.
+ @param[in] ParentImageHandle The caller's image handle.
+ @param[in] DevicePath The DeviceHandle specific file path from which the image is
+ loaded.
+ @param[in] SourceBuffer If not NULL, a pointer to the memory location containing a copy
+ of the image to be loaded.
+ @param[in] SourceSize The size in bytes of SourceBuffer. Ignored if SourceBuffer is NULL.
+ @param[out] ImageHandle The pointer to the returned image handle that is created when the
+ image is successfully loaded.
+
+ @retval EFI_SUCCESS Image was loaded into memory correctly.
+ @retval EFI_NOT_FOUND Both SourceBuffer and DevicePath are NULL.
+ @retval EFI_INVALID_PARAMETER One or more parametes are invalid.
+ @retval EFI_UNSUPPORTED The image type is not supported.
+ @retval EFI_OUT_OF_RESOURCES Image was not loaded due to insufficient resources.
+ @retval EFI_LOAD_ERROR Image was not loaded because the image format was corrupt or not
+ understood.
+ @retval EFI_DEVICE_ERROR Image was not loaded because the device returned a read error.
+ @retval EFI_ACCESS_DENIED Image was not loaded because the platform policy prohibits the
+ image from being loaded. NULL is returned in *ImageHandle.
+ @retval EFI_SECURITY_VIOLATION Image was loaded and an ImageHandle was created with a
+ valid EFI_LOADED_IMAGE_PROTOCOL. However, the current
+ platform policy specifies that the image should not be started.
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_IMAGE_LOAD)(
+ BOOLEAN BootPolicy,
+ EFI_HANDLE ParentImageHandle,
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath,
+ void *SourceBuffer ,
+ UINTN SourceSize,
+ EFI_HANDLE *ImageHandle
+ );
+
+/**
+ Transfers control to a loaded image's entry point.
+
+ @param[in] ImageHandle Handle of image to be started.
+ @param[out] ExitDataSize The pointer to the size, in bytes, of ExitData.
+ @param[out] ExitData The pointer to a pointer to a data buffer that includes a Null-terminated
+ string, optionally followed by additional binary data.
+
+ @retval EFI_INVALID_PARAMETER ImageHandle is either an invalid image handle or the image
+ has already been initialized with StartImage.
+ @retval EFI_SECURITY_VIOLATION The current platform policy specifies that the image should not be started.
+ @return Exit code from image
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_IMAGE_START)(
+ EFI_HANDLE ImageHandle,
+ UINTN *ExitDataSize,
+ CHAR16 **ExitData
+ );
+
+/**
+ Terminates a loaded EFI image and returns control to boot services.
+
+ @param[in] ImageHandle Handle that identifies the image. This parameter is passed to the
+ image on entry.
+ @param[in] ExitStatus The image's exit code.
+ @param[in] ExitDataSize The size, in bytes, of ExitData. Ignored if ExitStatus is EFI_SUCCESS.
+ @param[in] ExitData The pointer to a data buffer that includes a Null-terminated string,
+ optionally followed by additional binary data. The string is a
+ description that the caller may use to further indicate the reason
+ for the image's exit. ExitData is only valid if ExitStatus
+ is something other than EFI_SUCCESS. The ExitData buffer
+ must be allocated by calling AllocatePool().
+
+ @retval EFI_SUCCESS The image specified by ImageHandle was unloaded.
+ @retval EFI_INVALID_PARAMETER The image specified by ImageHandle has been loaded and
+ started with LoadImage() and StartImage(), but the
+ image is not the currently executing image.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_EXIT)(
+ EFI_HANDLE ImageHandle,
+ EFI_STATUS ExitStatus,
+ UINTN ExitDataSize,
+ CHAR16 *ExitData
+ );
+
+/**
+ Unloads an image.
+
+ @param[in] ImageHandle Handle that identifies the image to be unloaded.
+
+ @retval EFI_SUCCESS The image has been unloaded.
+ @retval EFI_INVALID_PARAMETER ImageHandle is not a valid image handle.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_IMAGE_UNLOAD)(
+ EFI_HANDLE ImageHandle
+ );
+
+/**
+ Terminates all boot services.
+
+ @param[in] ImageHandle Handle that identifies the exiting image.
+ @param[in] MapKey Key to the latest memory map.
+
+ @retval EFI_SUCCESS Boot services have been terminated.
+ @retval EFI_INVALID_PARAMETER MapKey is incorrect.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_EXIT_BOOT_SERVICES)(
+ EFI_HANDLE ImageHandle,
+ UINTN MapKey
+ );
+
+/**
+ Induces a fine-grained stall.
+
+ @param[in] Microseconds The number of microseconds to stall execution.
+
+ @retval EFI_SUCCESS Execution was stalled at least the requested number of
+ Microseconds.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_STALL)(
+ UINTN Microseconds
+ );
+
+/**
+ Sets the system's watchdog timer.
+
+ @param[in] Timeout The number of seconds to set the watchdog timer to.
+ @param[in] WatchdogCode The numeric code to log on a watchdog timer timeout event.
+ @param[in] DataSize The size, in bytes, of WatchdogData.
+ @param[in] WatchdogData A data buffer that includes a Null-terminated string, optionally
+ followed by additional binary data.
+
+ @retval EFI_SUCCESS The timeout has been set.
+ @retval EFI_INVALID_PARAMETER The supplied WatchdogCode is invalid.
+ @retval EFI_UNSUPPORTED The system does not have a watchdog timer.
+ @retval EFI_DEVICE_ERROR The watchdog timer could not be programmed due to a hardware
+ error.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_SET_WATCHDOG_TIMER)(
+ UINTN Timeout,
+ UINT64 WatchdogCode,
+ UINTN DataSize,
+ CHAR16 *WatchdogData
+ );
+
+/**
+ Resets the entire platform.
+
+ @param[in] ResetType The type of reset to perform.
+ @param[in] ResetStatus The status code for the reset.
+ @param[in] DataSize The size, in bytes, of ResetData.
+ @param[in] ResetData For a ResetType of EfiResetCold, EfiResetWarm, or
+ EfiResetShutdown the data buffer starts with a Null-terminated
+ string, optionally followed by additional binary data.
+ The string is a description that the caller may use to further
+ indicate the reason for the system reset.
+ For a ResetType of EfiResetPlatformSpecific the data buffer
+ also starts with a Null-terminated string that is followed
+ by an EFI_GUID that describes the specific type of reset to perform.
+**/
+typedef
+void
+(__cdecl *EFI_RESET_SYSTEM)(
+ EFI_RESET_TYPE ResetType,
+ EFI_STATUS ResetStatus,
+ UINTN DataSize,
+ void *ResetData
+ );
+
+/**
+ Returns a monotonically increasing count for the platform.
+
+ @param[out] Count The pointer to returned value.
+
+ @retval EFI_SUCCESS The next monotonic count was returned.
+ @retval EFI_INVALID_PARAMETER Count is NULL.
+ @retval EFI_DEVICE_ERROR The device is not functioning properly.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_GET_NEXT_MONOTONIC_COUNT)(
+ UINT64 *Count
+ );
+
+/**
+ Returns the next high 32 bits of the platform's monotonic counter.
+
+ @param[out] HighCount The pointer to returned value.
+
+ @retval EFI_SUCCESS The next high monotonic count was returned.
+ @retval EFI_INVALID_PARAMETER HighCount is NULL.
+ @retval EFI_DEVICE_ERROR The device is not functioning properly.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_GET_NEXT_HIGH_MONO_COUNT)(
+ UINT32 *HighCount
+ );
+
+/**
+ Computes and returns a 32-bit CRC for a data buffer.
+
+ @param[in] Data A pointer to the buffer on which the 32-bit CRC is to be computed.
+ @param[in] DataSize The number of bytes in the buffer Data.
+ @param[out] Crc32 The 32-bit CRC that was computed for the data buffer specified by Data
+ and DataSize.
+
+ @retval EFI_SUCCESS The 32-bit CRC was computed for the data buffer and returned in
+ Crc32.
+ @retval EFI_INVALID_PARAMETER Data is NULL.
+ @retval EFI_INVALID_PARAMETER Crc32 is NULL.
+ @retval EFI_INVALID_PARAMETER DataSize is 0.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_CALCULATE_CRC32)(
+ void *Data,
+ UINTN DataSize,
+ UINT32 *Crc32
+ );
+
+/**
+ Copies the contents of one buffer to another buffer.
+
+ @param[in] Destination The pointer to the destination buffer of the memory copy.
+ @param[in] Source The pointer to the source buffer of the memory copy.
+ @param[in] Length Number of bytes to copy from Source to Destination.
+
+**/
+typedef
+void
+(__cdecl *EFI_COPY_MEM)(
+ void *Destination,
+ void *Source,
+ UINTN Length
+ );
+
+/**
+ The SetMem() function fills a buffer with a specified value.
+
+ @param[in] Buffer The pointer to the buffer to fill.
+ @param[in] Size Number of bytes in Buffer to fill.
+ @param[in] Value Value to fill Buffer with.
+
+**/
+typedef
+void
+(__cdecl *EFI_SET_MEM)(
+ void *Buffer,
+ UINTN Size,
+ UINT8 Value
+ );
+
+///
+/// Enumeration of EFI Interface Types
+///
+typedef enum {
+ ///
+ /// Indicates that the supplied protocol interface is supplied in native form.
+ ///
+ EFI_NATIVE_INTERFACE
+} EFI_INTERFACE_TYPE;
+
+/**
+ Installs a protocol interface on a device handle. If the handle does not exist, it is created and added
+ to the list of handles in the system. InstallMultipleProtocolInterfaces() performs
+ more error checking than InstallProtocolInterface(), so it is recommended that
+ InstallMultipleProtocolInterfaces() be used in place of
+ InstallProtocolInterface()
+
+ @param[in, out] Handle A pointer to the EFI_HANDLE on which the interface is to be installed.
+ @param[in] Protocol The numeric ID of the protocol interface.
+ @param[in] InterfaceType Indicates whether Interface is supplied in native form.
+ @param[in] Interface A pointer to the protocol interface.
+
+ @retval EFI_SUCCESS The protocol interface was installed.
+ @retval EFI_OUT_OF_RESOURCES Space for a new handle could not be allocated.
+ @retval EFI_INVALID_PARAMETER Handle is NULL.
+ @retval EFI_INVALID_PARAMETER Protocol is NULL.
+ @retval EFI_INVALID_PARAMETER InterfaceType is not EFI_NATIVE_INTERFACE.
+ @retval EFI_INVALID_PARAMETER Protocol is already installed on the handle specified by Handle.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_INSTALL_PROTOCOL_INTERFACE)(
+ EFI_HANDLE *Handle,
+ EFI_GUID *Protocol,
+ EFI_INTERFACE_TYPE InterfaceType,
+ void *Interface
+ );
+
+/**
+ Installs one or more protocol interfaces into the boot services environment.
+
+ @param[in, out] Handle The pointer to a handle to install the new protocol interfaces on,
+ or a pointer to NULL if a new handle is to be allocated.
+ @param ... A variable argument list containing pairs of protocol GUIDs and protocol
+ interfaces.
+
+ @retval EFI_SUCCESS All the protocol interface was installed.
+ @retval EFI_OUT_OF_RESOURCES There was not enough memory in pool to install all the protocols.
+ @retval EFI_ALREADY_STARTED A Device Path Protocol instance was passed in that is already present in
+ the handle database.
+ @retval EFI_INVALID_PARAMETER Handle is NULL.
+ @retval EFI_INVALID_PARAMETER Protocol is already installed on the handle specified by Handle.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES)(
+ EFI_HANDLE *Handle,
+ ...
+ );
+
+/**
+ Reinstalls a protocol interface on a device handle.
+
+ @param[in] Handle Handle on which the interface is to be reinstalled.
+ @param[in] Protocol The numeric ID of the interface.
+ @param[in] OldInterface A pointer to the old interface. NULL can be used if a structure is not
+ associated with Protocol.
+ @param[in] NewInterface A pointer to the new interface.
+
+ @retval EFI_SUCCESS The protocol interface was reinstalled.
+ @retval EFI_NOT_FOUND The OldInterface on the handle was not found.
+ @retval EFI_ACCESS_DENIED The protocol interface could not be reinstalled,
+ because OldInterface is still being used by a
+ driver that will not release it.
+ @retval EFI_INVALID_PARAMETER Handle is NULL.
+ @retval EFI_INVALID_PARAMETER Protocol is NULL.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_REINSTALL_PROTOCOL_INTERFACE)(
+ EFI_HANDLE Handle,
+ EFI_GUID *Protocol,
+ void *OldInterface,
+ void *NewInterface
+ );
+
+/**
+ Removes a protocol interface from a device handle. It is recommended that
+ UninstallMultipleProtocolInterfaces() be used in place of
+ UninstallProtocolInterface().
+
+ @param[in] Handle The handle on which the interface was installed.
+ @param[in] Protocol The numeric ID of the interface.
+ @param[in] Interface A pointer to the interface.
+
+ @retval EFI_SUCCESS The interface was removed.
+ @retval EFI_NOT_FOUND The interface was not found.
+ @retval EFI_ACCESS_DENIED The interface was not removed because the interface
+ is still being used by a driver.
+ @retval EFI_INVALID_PARAMETER Handle is NULL.
+ @retval EFI_INVALID_PARAMETER Protocol is NULL.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_UNINSTALL_PROTOCOL_INTERFACE)(
+ EFI_HANDLE Handle,
+ EFI_GUID *Protocol,
+ void *Interface
+ );
+
+/**
+ Removes one or more protocol interfaces into the boot services environment.
+
+ @param[in] Handle The handle to remove the protocol interfaces from.
+ @param ... A variable argument list containing pairs of protocol GUIDs and
+ protocol interfaces.
+
+ @retval EFI_SUCCESS All the protocol interfaces were removed.
+ @retval EFI_INVALID_PARAMETER One of the protocol interfaces was not previously installed on Handle.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES)(
+ EFI_HANDLE Handle,
+ ...
+ );
+
+/**
+ Queries a handle to determine if it supports a specified protocol.
+
+ @param[in] Handle The handle being queried.
+ @param[in] Protocol The published unique identifier of the protocol.
+ @param[out] Interface Supplies the address where a pointer to the corresponding Protocol
+ Interface is returned.
+
+ @retval EFI_SUCCESS The interface information for the specified protocol was returned.
+ @retval EFI_UNSUPPORTED The device does not support the specified protocol.
+ @retval EFI_INVALID_PARAMETER Handle is NULL.
+ @retval EFI_INVALID_PARAMETER Protocol is NULL.
+ @retval EFI_INVALID_PARAMETER Interface is NULL.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_HANDLE_PROTOCOL)(
+ EFI_HANDLE Handle,
+ EFI_GUID *Protocol,
+ void **Interface
+ );
+
+
+
+
+
+
+
+
+/**
+ Queries a handle to determine if it supports a specified protocol. If the protocol is supported by the
+ handle, it opens the protocol on behalf of the calling agent.
+
+ @param[in] Handle The handle for the protocol interface that is being opened.
+ @param[in] Protocol The published unique identifier of the protocol.
+ @param[out] Interface Supplies the address where a pointer to the corresponding Protocol
+ Interface is returned.
+ @param[in] AgentHandle The handle of the agent that is opening the protocol interface
+ specified by Protocol and Interface.
+ @param[in] ControllerHandle If the agent that is opening a protocol is a driver that follows the
+ UEFI Driver Model, then this parameter is the controller handle
+ that requires the protocol interface. If the agent does not follow
+ the UEFI Driver Model, then this parameter is optional and may
+ be NULL.
+ @param[in] Attributes The open mode of the protocol interface specified by Handle
+ and Protocol.
+
+ @retval EFI_SUCCESS An item was added to the open list for the protocol interface, and the
+ protocol interface was returned in Interface.
+ @retval EFI_UNSUPPORTED Handle does not support Protocol.
+ @retval EFI_INVALID_PARAMETER One or more parameters are invalid.
+ @retval EFI_ACCESS_DENIED Required attributes can't be supported in current environment.
+ @retval EFI_ALREADY_STARTED Item on the open list already has requierd attributes whose agent
+ handle is the same as AgentHandle.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_OPEN_PROTOCOL)(
+ EFI_HANDLE Handle,
+ EFI_GUID *Protocol,
+ void **Interface ,
+ EFI_HANDLE AgentHandle,
+ EFI_HANDLE ControllerHandle,
+ UINT32 Attributes
+ );
+
+/**
+ Closes a protocol on a handle that was opened using OpenProtocol().
+
+ @param[in] Handle The handle for the protocol interface that was previously opened
+ with OpenProtocol(), and is now being closed.
+ @param[in] Protocol The published unique identifier of the protocol.
+ @param[in] AgentHandle The handle of the agent that is closing the protocol interface.
+ @param[in] ControllerHandle If the agent that opened a protocol is a driver that follows the
+ UEFI Driver Model, then this parameter is the controller handle
+ that required the protocol interface.
+
+ @retval EFI_SUCCESS The protocol instance was closed.
+ @retval EFI_INVALID_PARAMETER 1) Handle is NULL.
+ 2) AgentHandle is NULL.
+ 3) ControllerHandle is not NULL and ControllerHandle is not a valid EFI_HANDLE.
+ 4) Protocol is NULL.
+ @retval EFI_NOT_FOUND 1) Handle does not support the protocol specified by Protocol.
+ 2) The protocol interface specified by Handle and Protocol is not
+ currently open by AgentHandle and ControllerHandle.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_CLOSE_PROTOCOL)(
+ EFI_HANDLE Handle,
+ EFI_GUID *Protocol,
+ EFI_HANDLE AgentHandle,
+ EFI_HANDLE ControllerHandle
+ );
+
+///
+/// EFI Oprn Protocol Information Entry
+///
+typedef struct {
+ EFI_HANDLE AgentHandle;
+ EFI_HANDLE ControllerHandle;
+ UINT32 Attributes;
+ UINT32 OpenCount;
+} EFI_OPEN_PROTOCOL_INFORMATION_ENTRY;
+
+/**
+ Retrieves the list of agents that currently have a protocol interface opened.
+
+ @param[in] Handle The handle for the protocol interface that is being queried.
+ @param[in] Protocol The published unique identifier of the protocol.
+ @param[out] EntryBuffer A pointer to a buffer of open protocol information in the form of
+ EFI_OPEN_PROTOCOL_INFORMATION_ENTRY structures.
+ @param[out] EntryCount A pointer to the number of entries in EntryBuffer.
+
+ @retval EFI_SUCCESS The open protocol information was returned in EntryBuffer, and the
+ number of entries was returned EntryCount.
+ @retval EFI_OUT_OF_RESOURCES There are not enough resources available to allocate EntryBuffer.
+ @retval EFI_NOT_FOUND Handle does not support the protocol specified by Protocol.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_OPEN_PROTOCOL_INFORMATION)(
+ EFI_HANDLE Handle,
+ EFI_GUID *Protocol,
+ EFI_OPEN_PROTOCOL_INFORMATION_ENTRY **EntryBuffer,
+ UINTN *EntryCount
+ );
+
+/**
+ Retrieves the list of protocol interface GUIDs that are installed on a handle in a buffer allocated
+ from pool.
+
+ @param[in] Handle The handle from which to retrieve the list of protocol interface
+ GUIDs.
+ @param[out] ProtocolBuffer A pointer to the list of protocol interface GUID pointers that are
+ installed on Handle.
+ @param[out] ProtocolBufferCount A pointer to the number of GUID pointers present in
+ ProtocolBuffer.
+
+ @retval EFI_SUCCESS The list of protocol interface GUIDs installed on Handle was returned in
+ ProtocolBuffer. The number of protocol interface GUIDs was
+ returned in ProtocolBufferCount.
+ @retval EFI_OUT_OF_RESOURCES There is not enough pool memory to store the results.
+ @retval EFI_INVALID_PARAMETER Handle is NULL.
+ @retval EFI_INVALID_PARAMETER Handle is not a valid EFI_HANDLE.
+ @retval EFI_INVALID_PARAMETER ProtocolBuffer is NULL.
+ @retval EFI_INVALID_PARAMETER ProtocolBufferCount is NULL.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_PROTOCOLS_PER_HANDLE)(
+ EFI_HANDLE Handle,
+ EFI_GUID ***ProtocolBuffer,
+ UINTN *ProtocolBufferCount
+ );
+
+/**
+ Creates an event that is to be signaled whenever an interface is installed for a specified protocol.
+
+ @param[in] Protocol The numeric ID of the protocol for which the event is to be registered.
+ @param[in] Event Event that is to be signaled whenever a protocol interface is registered
+ for Protocol.
+ @param[out] Registration A pointer to a memory location to receive the registration value.
+
+ @retval EFI_SUCCESS The notification event has been registered.
+ @retval EFI_OUT_OF_RESOURCES Space for the notification event could not be allocated.
+ @retval EFI_INVALID_PARAMETER Protocol is NULL.
+ @retval EFI_INVALID_PARAMETER Event is NULL.
+ @retval EFI_INVALID_PARAMETER Registration is NULL.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_REGISTER_PROTOCOL_NOTIFY)(
+ EFI_GUID *Protocol,
+ EFI_EVENT Event,
+ void **Registration
+ );
+
+///
+/// Enumeration of EFI Locate Search Types
+///
+typedef enum {
+ ///
+ /// Retrieve all the handles in the handle database.
+ ///
+ AllHandles,
+ ///
+ /// Retrieve the next handle fron a RegisterProtocolNotify() event.
+ ///
+ ByRegisterNotify,
+ ///
+ /// Retrieve the set of handles from the handle database that support a
+ /// specified protocol.
+ ///
+ ByProtocol
+} EFI_LOCATE_SEARCH_TYPE;
+
+/**
+ Returns an array of handles that support a specified protocol.
+
+ @param[in] SearchType Specifies which handle(s) are to be returned.
+ @param[in] Protocol Specifies the protocol to search by.
+ @param[in] SearchKey Specifies the search key.
+ @param[in, out] BufferSize On input, the size in bytes of Buffer. On output, the size in bytes of
+ the array returned in Buffer (if the buffer was large enough) or the
+ size, in bytes, of the buffer needed to obtain the array (if the buffer was
+ not large enough).
+ @param[out] Buffer The buffer in which the array is returned.
+
+ @retval EFI_SUCCESS The array of handles was returned.
+ @retval EFI_NOT_FOUND No handles match the search.
+ @retval EFI_BUFFER_TOO_SMALL The BufferSize is too small for the result.
+ @retval EFI_INVALID_PARAMETER SearchType is not a member of EFI_LOCATE_SEARCH_TYPE.
+ @retval EFI_INVALID_PARAMETER SearchType is ByRegisterNotify and SearchKey is NULL.
+ @retval EFI_INVALID_PARAMETER SearchType is ByProtocol and Protocol is NULL.
+ @retval EFI_INVALID_PARAMETER One or more matches are found and BufferSize is NULL.
+ @retval EFI_INVALID_PARAMETER BufferSize is large enough for the result and Buffer is NULL.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_LOCATE_HANDLE)(
+ EFI_LOCATE_SEARCH_TYPE SearchType,
+ EFI_GUID *Protocol ,
+ void *SearchKey ,
+ UINTN *BufferSize,
+ EFI_HANDLE *Buffer
+ );
+
+/**
+ Locates the handle to a device on the device path that supports the specified protocol.
+
+ @param[in] Protocol Specifies the protocol to search for.
+ @param[in, out] DevicePath On input, a pointer to a pointer to the device path. On output, the device
+ path pointer is modified to point to the remaining part of the device
+ path.
+ @param[out] Device A pointer to the returned device handle.
+
+ @retval EFI_SUCCESS The resulting handle was returned.
+ @retval EFI_NOT_FOUND No handles match the search.
+ @retval EFI_INVALID_PARAMETER Protocol is NULL.
+ @retval EFI_INVALID_PARAMETER DevicePath is NULL.
+ @retval EFI_INVALID_PARAMETER A handle matched the search and Device is NULL.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_LOCATE_DEVICE_PATH)(
+ EFI_GUID *Protocol,
+ EFI_DEVICE_PATH_PROTOCOL **DevicePath,
+ EFI_HANDLE *Device
+ );
+
+/**
+ Adds, updates, or removes a configuration table entry from the EFI System Table.
+
+ @param[in] Guid A pointer to the GUID for the entry to add, update, or remove.
+ @param[in] Table A pointer to the configuration table for the entry to add, update, or
+ remove. May be NULL.
+
+ @retval EFI_SUCCESS The (Guid, Table) pair was added, updated, or removed.
+ @retval EFI_NOT_FOUND An attempt was made to delete a nonexistent entry.
+ @retval EFI_INVALID_PARAMETER Guid is NULL.
+ @retval EFI_OUT_OF_RESOURCES There is not enough memory available to complete the operation.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_INSTALL_CONFIGURATION_TABLE)(
+ EFI_GUID *Guid,
+ void *Table
+ );
+
+/**
+ Returns an array of handles that support the requested protocol in a buffer allocated from pool.
+
+ @param[in] SearchType Specifies which handle(s) are to be returned.
+ @param[in] Protocol Provides the protocol to search by.
+ This parameter is only valid for a SearchType of ByProtocol.
+ @param[in] SearchKey Supplies the search key depending on the SearchType.
+ @param[out] NoHandles The number of handles returned in Buffer.
+ @param[out] Buffer A pointer to the buffer to return the requested array of handles that
+ support Protocol.
+
+ @retval EFI_SUCCESS The array of handles was returned in Buffer, and the number of
+ handles in Buffer was returned in NoHandles.
+ @retval EFI_NOT_FOUND No handles match the search.
+ @retval EFI_OUT_OF_RESOURCES There is not enough pool memory to store the matching results.
+ @retval EFI_INVALID_PARAMETER NoHandles is NULL.
+ @retval EFI_INVALID_PARAMETER Buffer is NULL.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_LOCATE_HANDLE_BUFFER)(
+ EFI_LOCATE_SEARCH_TYPE SearchType,
+ EFI_GUID *Protocol ,
+ void *SearchKey ,
+ UINTN *NoHandles,
+ EFI_HANDLE **Buffer
+ );
+
+/**
+ Returns the first protocol instance that matches the given protocol.
+
+ @param[in] Protocol Provides the protocol to search for.
+ @param[in] Registration Optional registration key returned from
+ RegisterProtocolNotify().
+ @param[out] Interface On return, a pointer to the first interface that matches Protocol and
+ Registration.
+
+ @retval EFI_SUCCESS A protocol instance matching Protocol was found and returned in
+ Interface.
+ @retval EFI_NOT_FOUND No protocol instances were found that match Protocol and
+ Registration.
+ @retval EFI_INVALID_PARAMETER Interface is NULL.
+ Protocol is NULL.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_LOCATE_PROTOCOL)(
+ EFI_GUID *Protocol,
+ void *Registration ,
+ void **Interface
+ );
+
+///
+/// EFI Capsule Block Descriptor
+///
+typedef struct {
+ ///
+ /// Length in bytes of the data pointed to by DataBlock/ContinuationPointer.
+ ///
+ UINT64 Length;
+ union {
+ ///
+ /// Physical address of the data block. This member of the union is
+ /// used if Length is not equal to zero.
+ ///
+ EFI_PHYSICAL_ADDRESS DataBlock;
+ ///
+ /// Physical address of another block of
+ /// EFI_CAPSULE_BLOCK_DESCRIPTOR structures. This
+ /// member of the union is used if Length is equal to zero. If
+ /// ContinuationPointer is zero this entry represents the end of the list.
+ ///
+ EFI_PHYSICAL_ADDRESS ContinuationPointer;
+ } Union;
+} EFI_CAPSULE_BLOCK_DESCRIPTOR;
+
+///
+/// EFI Capsule Header.
+///
+typedef struct {
+ ///
+ /// A GUID that defines the contents of a capsule.
+ ///
+ EFI_GUID CapsuleGuid;
+ ///
+ /// The size of the capsule header. This may be larger than the size of
+ /// the EFI_CAPSULE_HEADER since CapsuleGuid may imply
+ /// extended header entries
+ ///
+ UINT32 HeaderSize;
+ ///
+ /// Bit-mapped list describing the capsule attributes. The Flag values
+ /// of 0x0000 - 0xFFFF are defined by CapsuleGuid. Flag values
+ /// of 0x10000 - 0xFFFFFFFF are defined by this specification
+ ///
+ UINT32 Flags;
+ ///
+ /// Size in bytes of the capsule.
+ ///
+ UINT32 CapsuleImageSize;
+} EFI_CAPSULE_HEADER;
+
+///
+/// The EFI System Table entry must point to an array of capsules
+/// that contain the same CapsuleGuid value. The array must be
+/// prefixed by a UINT32 that represents the size of the array of capsules.
+///
+typedef struct {
+ ///
+ /// the size of the array of capsules.
+ ///
+ UINT32 CapsuleArrayNumber;
+ ///
+ /// Point to an array of capsules that contain the same CapsuleGuid value.
+ ///
+ void *CapsulePtr[1];
+} EFI_CAPSULE_TABLE;
+
+
+
+
+
+/**
+ Passes capsules to the firmware with both virtual and physical mapping. Depending on the intended
+ consumption, the firmware may process the capsule immediately. If the payload should persist
+ across a system reset, the reset value returned from EFI_QueryCapsuleCapabilities must
+ be passed into ResetSystem() and will cause the capsule to be processed by the firmware as
+ part of the reset process.
+
+ @param[in] CapsuleHeaderArray Virtual pointer to an array of virtual pointers to the capsules
+ being passed into update capsule.
+ @param[in] CapsuleCount Number of pointers to EFI_CAPSULE_HEADER in
+ CaspuleHeaderArray.
+ @param[in] ScatterGatherList Physical pointer to a set of
+ EFI_CAPSULE_BLOCK_DESCRIPTOR that describes the
+ location in physical memory of a set of capsules.
+
+ @retval EFI_SUCCESS Valid capsule was passed. If
+ CAPSULE_FLAGS_PERSIT_ACROSS_RESET is not set, the
+ capsule has been successfully processed by the firmware.
+ @retval EFI_INVALID_PARAMETER CapsuleSize is NULL, or an incompatible set of flags were
+ set in the capsule header.
+ @retval EFI_INVALID_PARAMETER CapsuleCount is 0.
+ @retval EFI_DEVICE_ERROR The capsule update was started, but failed due to a device error.
+ @retval EFI_UNSUPPORTED The capsule type is not supported on this platform.
+ @retval EFI_OUT_OF_RESOURCES When ExitBootServices() has been previously called this error indicates the capsule
+ is compatible with this platform but is not capable of being submitted or processed
+ in runtime. The caller may resubmit the capsule prior to ExitBootServices().
+ @retval EFI_OUT_OF_RESOURCES When ExitBootServices() has not been previously called then this error indicates
+ the capsule is compatible with this platform but there are insufficient resources to process.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_UPDATE_CAPSULE)(
+ EFI_CAPSULE_HEADER **CapsuleHeaderArray,
+ UINTN CapsuleCount,
+ EFI_PHYSICAL_ADDRESS ScatterGatherList
+ );
+
+/**
+ Returns if the capsule can be supported via UpdateCapsule().
+
+ @param[in] CapsuleHeaderArray Virtual pointer to an array of virtual pointers to the capsules
+ being passed into update capsule.
+ @param[in] CapsuleCount Number of pointers to EFI_CAPSULE_HEADER in
+ CaspuleHeaderArray.
+ @param[out] MaxiumCapsuleSize On output the maximum size that UpdateCapsule() can
+ support as an argument to UpdateCapsule() via
+ CapsuleHeaderArray and ScatterGatherList.
+ @param[out] ResetType Returns the type of reset required for the capsule update.
+
+ @retval EFI_SUCCESS Valid answer returned.
+ @retval EFI_UNSUPPORTED The capsule type is not supported on this platform, and
+ MaximumCapsuleSize and ResetType are undefined.
+ @retval EFI_INVALID_PARAMETER MaximumCapsuleSize is NULL.
+ @retval EFI_OUT_OF_RESOURCES When ExitBootServices() has been previously called this error indicates the capsule
+ is compatible with this platform but is not capable of being submitted or processed
+ in runtime. The caller may resubmit the capsule prior to ExitBootServices().
+ @retval EFI_OUT_OF_RESOURCES When ExitBootServices() has not been previously called then this error indicates
+ the capsule is compatible with this platform but there are insufficient resources to process.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_QUERY_CAPSULE_CAPABILITIES)(
+ EFI_CAPSULE_HEADER **CapsuleHeaderArray,
+ UINTN CapsuleCount,
+ UINT64 *MaximumCapsuleSize,
+ EFI_RESET_TYPE *ResetType
+ );
+
+/**
+ Returns information about the EFI variables.
+
+ @param[in] Attributes Attributes bitmask to specify the type of variables on
+ which to return information.
+ @param[out] MaximumVariableStorageSize On output the maximum size of the storage space
+ available for the EFI variables associated with the
+ attributes specified.
+ @param[out] RemainingVariableStorageSize Returns the remaining size of the storage space
+ available for the EFI variables associated with the
+ attributes specified.
+ @param[out] MaximumVariableSize Returns the maximum size of the individual EFI
+ variables associated with the attributes specified.
+
+ @retval EFI_SUCCESS Valid answer returned.
+ @retval EFI_INVALID_PARAMETER An invalid combination of attribute bits was supplied
+ @retval EFI_UNSUPPORTED The attribute is not supported on this platform, and the
+ MaximumVariableStorageSize,
+ RemainingVariableStorageSize, MaximumVariableSize
+ are undefined.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_QUERY_VARIABLE_INFO)(
+ UINT32 Attributes,
+ UINT64 *MaximumVariableStorageSize,
+ UINT64 *RemainingVariableStorageSize,
+ UINT64 *MaximumVariableSize
+ );
+
+//
+// Firmware should stop at a firmware user interface on next boot
+//
+
+
+
+
+
+
+
+
+//
+// EFI Runtime Services Table
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// EFI Runtime Services Table.
+///
+typedef struct {
+ ///
+ /// The table header for the EFI Runtime Services Table.
+ ///
+ EFI_TABLE_HEADER Hdr;
+
+ //
+ // Time Services
+ //
+ EFI_GET_TIME GetTime;
+ EFI_SET_TIME SetTime;
+ EFI_GET_WAKEUP_TIME GetWakeupTime;
+ EFI_SET_WAKEUP_TIME SetWakeupTime;
+
+ //
+ // Virtual Memory Services
+ //
+ EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap;
+ EFI_CONVERT_POINTER ConvertPointer;
+
+ //
+ // Variable Services
+ //
+ EFI_GET_VARIABLE GetVariable;
+ EFI_GET_NEXT_VARIABLE_NAME GetNextVariableName;
+ EFI_SET_VARIABLE SetVariable;
+
+ //
+ // Miscellaneous Services
+ //
+ EFI_GET_NEXT_HIGH_MONO_COUNT GetNextHighMonotonicCount;
+ EFI_RESET_SYSTEM ResetSystem;
+
+ //
+ // UEFI 2.0 Capsule Services
+ //
+ EFI_UPDATE_CAPSULE UpdateCapsule;
+ EFI_QUERY_CAPSULE_CAPABILITIES QueryCapsuleCapabilities;
+
+ //
+ // Miscellaneous UEFI 2.0 Service
+ //
+ EFI_QUERY_VARIABLE_INFO QueryVariableInfo;
+} EFI_RUNTIME_SERVICES;
+
+
+
+
+///
+/// EFI Boot Services Table.
+///
+typedef struct {
+ ///
+ /// The table header for the EFI Boot Services Table.
+ ///
+ EFI_TABLE_HEADER Hdr;
+
+ //
+ // Task Priority Services
+ //
+ EFI_RAISE_TPL RaiseTPL;
+ EFI_RESTORE_TPL RestoreTPL;
+
+ //
+ // Memory Services
+ //
+ EFI_ALLOCATE_PAGES AllocatePages;
+ EFI_FREE_PAGES FreePages;
+ EFI_GET_MEMORY_MAP GetMemoryMap;
+ EFI_ALLOCATE_POOL AllocatePool;
+ EFI_FREE_POOL FreePool;
+
+ //
+ // Event & Timer Services
+ //
+ EFI_CREATE_EVENT CreateEvent;
+ EFI_SET_TIMER SetTimer;
+ EFI_WAIT_FOR_EVENT WaitForEvent;
+ EFI_SIGNAL_EVENT SignalEvent;
+ EFI_CLOSE_EVENT CloseEvent;
+ EFI_CHECK_EVENT CheckEvent;
+
+ //
+ // Protocol Handler Services
+ //
+ EFI_INSTALL_PROTOCOL_INTERFACE InstallProtocolInterface;
+ EFI_REINSTALL_PROTOCOL_INTERFACE ReinstallProtocolInterface;
+ EFI_UNINSTALL_PROTOCOL_INTERFACE UninstallProtocolInterface;
+ EFI_HANDLE_PROTOCOL HandleProtocol;
+ void *Reserved;
+ EFI_REGISTER_PROTOCOL_NOTIFY RegisterProtocolNotify;
+ EFI_LOCATE_HANDLE LocateHandle;
+ EFI_LOCATE_DEVICE_PATH LocateDevicePath;
+ EFI_INSTALL_CONFIGURATION_TABLE InstallConfigurationTable;
+
+ //
+ // Image Services
+ //
+ EFI_IMAGE_LOAD LoadImage;
+ EFI_IMAGE_START StartImage;
+ EFI_EXIT Exit;
+ EFI_IMAGE_UNLOAD UnloadImage;
+ EFI_EXIT_BOOT_SERVICES ExitBootServices;
+
+ //
+ // Miscellaneous Services
+ //
+ EFI_GET_NEXT_MONOTONIC_COUNT GetNextMonotonicCount;
+ EFI_STALL Stall;
+ EFI_SET_WATCHDOG_TIMER SetWatchdogTimer;
+
+ //
+ // DriverSupport Services
+ //
+ EFI_CONNECT_CONTROLLER ConnectController;
+ EFI_DISCONNECT_CONTROLLER DisconnectController;
+
+ //
+ // Open and Close Protocol Services
+ //
+ EFI_OPEN_PROTOCOL OpenProtocol;
+ EFI_CLOSE_PROTOCOL CloseProtocol;
+ EFI_OPEN_PROTOCOL_INFORMATION OpenProtocolInformation;
+
+ //
+ // Library Services
+ //
+ EFI_PROTOCOLS_PER_HANDLE ProtocolsPerHandle;
+ EFI_LOCATE_HANDLE_BUFFER LocateHandleBuffer;
+ EFI_LOCATE_PROTOCOL LocateProtocol;
+ EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES InstallMultipleProtocolInterfaces;
+ EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES UninstallMultipleProtocolInterfaces;
+
+ //
+ // 32-bit CRC Services
+ //
+ EFI_CALCULATE_CRC32 CalculateCrc32;
+
+ //
+ // Miscellaneous Services
+ //
+ EFI_COPY_MEM CopyMem;
+ EFI_SET_MEM SetMem;
+ EFI_CREATE_EVENT_EX CreateEventEx;
+} EFI_BOOT_SERVICES;
+
+///
+/// Contains a set of GUID/pointer pairs comprised of the ConfigurationTable field in the
+/// EFI System Table.
+///
+typedef struct {
+ ///
+ /// The 128-bit GUID value that uniquely identifies the system configuration table.
+ ///
+ EFI_GUID VendorGuid;
+ ///
+ /// A pointer to the table associated with VendorGuid.
+ ///
+ void *VendorTable;
+} EFI_CONFIGURATION_TABLE;
+
+///
+/// EFI System Table
+///
+typedef struct {
+ ///
+ /// The table header for the EFI System Table.
+ ///
+ EFI_TABLE_HEADER Hdr;
+ ///
+ /// A pointer to a null terminated string that identifies the vendor
+ /// that produces the system firmware for the platform.
+ ///
+ CHAR16 *FirmwareVendor;
+ ///
+ /// A firmware vendor specific value that identifies the revision
+ /// of the system firmware for the platform.
+ ///
+ UINT32 FirmwareRevision;
+ ///
+ /// The handle for the active console input device. This handle must support
+ /// EFI_SIMPLE_TEXT_INPUT_PROTOCOL and EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL.
+ ///
+ EFI_HANDLE ConsoleInHandle;
+ ///
+ /// A pointer to the EFI_SIMPLE_TEXT_INPUT_PROTOCOL interface that is
+ /// associated with ConsoleInHandle.
+ ///
+ EFI_SIMPLE_TEXT_INPUT_PROTOCOL *ConIn;
+ ///
+ /// The handle for the active console output device.
+ ///
+ EFI_HANDLE ConsoleOutHandle;
+ ///
+ /// A pointer to the EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL interface
+ /// that is associated with ConsoleOutHandle.
+ ///
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *ConOut;
+ ///
+ /// The handle for the active standard error console device.
+ /// This handle must support the EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.
+ ///
+ EFI_HANDLE StandardErrorHandle;
+ ///
+ /// A pointer to the EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL interface
+ /// that is associated with StandardErrorHandle.
+ ///
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *StdErr;
+ ///
+ /// A pointer to the EFI Runtime Services Table.
+ ///
+ EFI_RUNTIME_SERVICES *RuntimeServices;
+ ///
+ /// A pointer to the EFI Boot Services Table.
+ ///
+ EFI_BOOT_SERVICES *BootServices;
+ ///
+ /// The number of system configuration tables in the buffer ConfigurationTable.
+ ///
+ UINTN NumberOfTableEntries;
+ ///
+ /// A pointer to the system configuration tables.
+ /// The number of entries in the table is NumberOfTableEntries.
+ ///
+ EFI_CONFIGURATION_TABLE *ConfigurationTable;
+} EFI_SYSTEM_TABLE;
+
+/**
+ This is the declaration of an EFI image entry point. This entry point is
+ the same for UEFI Applications, UEFI OS Loaders, and UEFI Drivers including
+ both device drivers and bus drivers.
+
+ @param[in] ImageHandle The firmware allocated handle for the UEFI image.
+ @param[in] SystemTable A pointer to the EFI System Table.
+
+ @retval EFI_SUCCESS The operation completed successfully.
+ @retval Others An unexpected error occurred.
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_IMAGE_ENTRY_POINT)(
+ EFI_HANDLE ImageHandle,
+ EFI_SYSTEM_TABLE *SystemTable
+ );
+
+//
+// EFI Load Option. This data structure describes format of UEFI boot option variables.
+//
+// NOTE: EFI Load Option is a byte packed buffer of variable length fields.
+// The first two fields have fixed length. They are declared as members of the
+// EFI_LOAD_OPTION structure. All the other fields are variable length fields.
+// They are listed in the comment block below for reference purposes.
+//
+#pragma pack(1)
+typedef struct _EFI_LOAD_OPTION {
+ ///
+ /// The attributes for this load option entry. All unused bits must be zero
+ /// and are reserved by the UEFI specification for future growth.
+ ///
+ UINT32 Attributes;
+ ///
+ /// Length in bytes of the FilePathList. OptionalData starts at offset
+ /// sizeof(UINT32) + sizeof(UINT16) + StrSize(Description) + FilePathListLength
+ /// of the EFI_LOAD_OPTION descriptor.
+ ///
+ UINT16 FilePathListLength;
+ ///
+ /// The user readable description for the load option.
+ /// This field ends with a Null character.
+ ///
+ // CHAR16 Description[];
+ ///
+ /// A packed array of UEFI device paths. The first element of the array is a
+ /// device path that describes the device and location of the Image for this
+ /// load option. The FilePathList[0] is specific to the device type. Other
+ /// device paths may optionally exist in the FilePathList, but their usage is
+ /// OSV specific. Each element in the array is variable length, and ends at
+ /// the device path end structure. Because the size of Description is
+ /// arbitrary, this data structure is not guaranteed to be aligned on a
+ /// natural boundary. This data structure may have to be copied to an aligned
+ /// natural boundary before it is used.
+ ///
+ // EFI_DEVICE_PATH_PROTOCOL FilePathList[];
+ ///
+ /// The remaining bytes in the load option descriptor are a binary data buffer
+ /// that is passed to the loaded image. If the field is zero bytes long, a
+ /// NULL pointer is passed to the loaded image. The number of bytes in
+ /// OptionalData can be computed by subtracting the starting offset of
+ /// OptionalData from total size in bytes of the EFI_LOAD_OPTION.
+ ///
+ // UINT8 OptionalData[];
+} EFI_LOAD_OPTION;
+#pragma pack()
+
+//
+// EFI Load Options Attributes
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// EFI Boot Key Data
+///
+typedef union {
+ struct {
+ ///
+ /// Indicates the revision of the EFI_KEY_OPTION structure. This revision level should be 0.
+ ///
+ UINT32 Revision : 8;
+ ///
+ /// Either the left or right Shift keys must be pressed (1) or must not be pressed (0).
+ ///
+ UINT32 ShiftPressed : 1;
+ ///
+ /// Either the left or right Control keys must be pressed (1) or must not be pressed (0).
+ ///
+ UINT32 ControlPressed : 1;
+ ///
+ /// Either the left or right Alt keys must be pressed (1) or must not be pressed (0).
+ ///
+ UINT32 AltPressed : 1;
+ ///
+ /// Either the left or right Logo keys must be pressed (1) or must not be pressed (0).
+ ///
+ UINT32 LogoPressed : 1;
+ ///
+ /// The Menu key must be pressed (1) or must not be pressed (0).
+ ///
+ UINT32 MenuPressed : 1;
+ ///
+ /// The SysReq key must be pressed (1) or must not be pressed (0).
+ ///
+ UINT32 SysReqPressed : 1;
+ UINT32 Reserved : 16;
+ ///
+ /// Specifies the actual number of entries in EFI_KEY_OPTION.Keys, from 0-3. If
+ /// zero, then only the shift state is considered. If more than one, then the boot option will
+ /// only be launched if all of the specified keys are pressed with the same shift state.
+ ///
+ UINT32 InputKeyCount : 2;
+ } Options;
+ UINT32 PackedValue;
+} EFI_BOOT_KEY_DATA;
+
+///
+/// EFI Key Option.
+///
+#pragma pack(1)
+typedef struct {
+ ///
+ /// Specifies options about how the key will be processed.
+ ///
+ EFI_BOOT_KEY_DATA KeyData;
+ ///
+ /// The CRC-32 which should match the CRC-32 of the entire EFI_LOAD_OPTION to
+ /// which BootOption refers. If the CRC-32s do not match this value, then this key
+ /// option is ignored.
+ ///
+ UINT32 BootOptionCrc;
+ ///
+ /// The Boot#### option which will be invoked if this key is pressed and the boot option
+ /// is active (LOAD_OPTION_ACTIVE is set).
+ ///
+ UINT16 BootOption;
+ ///
+ /// The key codes to compare against those returned by the
+ /// EFI_SIMPLE_TEXT_INPUT and EFI_SIMPLE_TEXT_INPUT_EX protocols.
+ /// The number of key codes (0-3) is specified by the EFI_KEY_CODE_COUNT field in KeyOptions.
+ ///
+ // EFI_INPUT_KEY Keys[];
+} EFI_KEY_OPTION;
+#pragma pack()
+
+//
+// EFI File location to boot from on removable media devices
+//
+
+
+
+
+
+
+
+
+
+
+#line 2209 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiSpec.h"
+
+
+
+
+
+
+
+
+
+
+#line 2220 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiSpec.h"
+#line 2221 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiSpec.h"
+
+//
+// The directory within the active EFI System Partition defined for delivery of capsule to firmware
+//
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiPxe.h"
+/** @file
+ This header file contains all of the PXE type definitions,
+ structure prototypes, global variables and constants that
+ are needed for porting PXE to EFI.
+
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ 32/64-bit PXE specification:
+ alpha-4, 99-Dec-17.
+
+**/
+
+
+
+
+#pragma pack(1)
+
+
+
+
+
+
+
+///
+/// UNDI ROM ID and devive ID signature.
+///
+
+
+///
+/// BUS ROM ID signatures.
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef void PXE_VOID;
+typedef UINT8 PXE_UINT8;
+typedef UINT16 PXE_UINT16;
+typedef UINT32 PXE_UINT32;
+typedef UINTN PXE_UINTN;
+
+///
+/// Typedef unsigned long PXE_UINT64.
+///
+typedef UINT64 PXE_UINT64;
+
+typedef PXE_UINT8 PXE_BOOL;
+
+
+
+typedef PXE_UINT16 PXE_OPCODE;
+
+///
+/// Return UNDI operational state.
+///
+
+
+///
+/// Change UNDI operational state from Stopped to Started.
+///
+
+
+///
+/// Change UNDI operational state from Started to Stopped.
+///
+
+
+///
+/// Get UNDI initialization information.
+///
+
+
+///
+/// Get NIC configuration information.
+///
+
+
+///
+/// Changed UNDI operational state from Started to Initialized.
+///
+
+
+///
+/// Re-initialize the NIC H/W.
+///
+
+
+///
+/// Change the UNDI operational state from Initialized to Started.
+///
+
+
+///
+/// Read & change state of external interrupt enables.
+///
+
+
+///
+/// Read & change state of packet receive filters.
+///
+
+
+///
+/// Read & change station MAC address.
+///
+
+
+///
+/// Read traffic statistics.
+///
+
+
+///
+/// Convert multicast IP address to multicast MAC address.
+///
+
+
+///
+/// Read or change non-volatile storage on the NIC.
+///
+
+
+///
+/// Get & clear interrupt status.
+///
+
+
+///
+/// Fill media header in packet for transmit.
+///
+
+
+///
+/// Transmit packet(s).
+///
+
+
+///
+/// Receive packet.
+///
+
+
+///
+/// Last valid PXE UNDI OpCode number.
+///
+
+
+typedef PXE_UINT16 PXE_OPFLAGS;
+
+
+
+//
+// //////////////////////////////////////
+// UNDI Get State
+//
+// No OpFlags
+
+////////////////////////////////////////
+// UNDI Start
+//
+// No OpFlags
+
+////////////////////////////////////////
+// UNDI Stop
+//
+// No OpFlags
+
+////////////////////////////////////////
+// UNDI Get Init Info
+//
+// No Opflags
+
+////////////////////////////////////////
+// UNDI Get Config Info
+//
+// No Opflags
+
+///
+/// UNDI Initialize
+///
+
+
+
+
+///
+///
+/// UNDI Reset
+///
+
+
+
+///
+/// UNDI Shutdown.
+///
+/// No OpFlags.
+
+///
+/// UNDI Interrupt Enables.
+///
+///
+/// Select whether to enable or disable external interrupt signals.
+/// Setting both enable and disable will return PXE_STATCODE_INVALID_OPFLAGS.
+///
+
+
+
+
+
+///
+/// Enable receive interrupts. An external interrupt will be generated
+/// after a complete non-error packet has been received.
+///
+
+
+///
+/// Enable transmit interrupts. An external interrupt will be generated
+/// after a complete non-error packet has been transmitted.
+///
+
+
+///
+/// Enable command interrupts. An external interrupt will be generated
+/// when command execution stops.
+///
+
+
+///
+/// Generate software interrupt. Setting this bit generates an external
+/// interrupt, if it is supported by the hardware.
+///
+
+
+///
+/// UNDI Receive Filters.
+///
+///
+/// Select whether to enable or disable receive filters.
+/// Setting both enable and disable will return PXE_STATCODE_INVALID_OPCODE.
+///
+
+
+
+
+
+///
+/// To reset the contents of the multicast MAC address filter list,
+/// set this OpFlag:
+///
+
+
+///
+/// Enable unicast packet receiving. Packets sent to the current station
+/// MAC address will be received.
+///
+
+
+///
+/// Enable broadcast packet receiving. Packets sent to the broadcast
+/// MAC address will be received.
+///
+
+
+///
+/// Enable filtered multicast packet receiving. Packets sent to any
+/// of the multicast MAC addresses in the multicast MAC address filter
+/// list will be received. If the filter list is empty, no multicast
+///
+
+
+///
+/// Enable promiscuous packet receiving. All packets will be received.
+///
+
+
+///
+/// Enable promiscuous multicast packet receiving. All multicast
+/// packets will be received.
+///
+
+
+///
+/// UNDI Station Address.
+///
+
+
+
+
+///
+/// UNDI Statistics.
+///
+
+
+
+///
+/// UNDI MCast IP to MAC.
+///
+///
+/// Identify the type of IP address in the CPB.
+///
+
+
+
+
+///
+/// UNDI NvData.
+///
+///
+/// Select the type of non-volatile data operation.
+///
+
+
+
+
+///
+/// UNDI Get Status.
+///
+///
+/// Return current interrupt status. This will also clear any interrupts
+/// that are currently set. This can be used in a polling routine. The
+/// interrupt flags are still set and cleared even when the interrupts
+/// are disabled.
+///
+
+
+///
+/// Return list of transmitted buffers for recycling. Transmit buffers
+/// must not be changed or unallocated until they have recycled. After
+/// issuing a transmit command, wait for a transmit complete interrupt.
+/// When a transmit complete interrupt is received, read the transmitted
+/// buffers. Do not plan on getting one buffer per interrupt. Some
+/// NICs and UNDIs may transmit multiple buffers per interrupt.
+///
+
+
+///
+/// Return current media status.
+///
+
+
+///
+/// UNDI Fill Header.
+///
+
+
+
+
+///
+/// UNDI Transmit.
+///
+///
+/// S/W UNDI only. Return after the packet has been transmitted. A
+/// transmit complete interrupt will still be generated and the transmit
+/// buffer will have to be recycled.
+///
+
+
+
+
+
+
+
+
+///
+/// UNDI Receive.
+///
+/// No OpFlags.
+///
+
+///
+/// PXE STATFLAGS.
+///
+typedef PXE_UINT16 PXE_STATFLAGS;
+
+
+
+///
+/// Common StatFlags that can be returned by all commands.
+///
+///
+/// The COMMAND_COMPLETE and COMMAND_FAILED status flags must be
+/// implemented by all UNDIs. COMMAND_QUEUED is only needed by UNDIs
+/// that support command queuing.
+///
+
+
+
+
+
+///
+/// UNDI Get State.
+///
+
+
+
+
+
+///
+/// UNDI Start.
+///
+/// No additional StatFlags.
+///
+
+///
+/// UNDI Get Init Info.
+///
+
+
+
+
+
+
+
+
+///
+/// UNDI Initialize.
+///
+
+
+///
+/// UNDI Reset.
+///
+
+
+///
+/// UNDI Shutdown.
+///
+/// No additional StatFlags.
+
+///
+/// UNDI Interrupt Enables.
+///
+///
+/// If set, receive interrupts are enabled.
+///
+
+
+///
+/// If set, transmit interrupts are enabled.
+///
+
+
+///
+/// If set, command interrupts are enabled.
+///
+
+
+///
+/// UNDI Receive Filters.
+///
+
+///
+/// If set, unicast packets will be received.
+///
+
+
+///
+/// If set, broadcast packets will be received.
+///
+
+
+///
+/// If set, multicast packets that match up with the multicast address
+/// filter list will be received.
+///
+
+
+///
+/// If set, all packets will be received.
+///
+
+
+///
+/// If set, all multicast packets will be received.
+///
+
+
+///
+/// UNDI Station Address.
+///
+/// No additional StatFlags.
+///
+
+///
+/// UNDI Statistics.
+///
+/// No additional StatFlags.
+///
+
+///
+//// UNDI MCast IP to MAC.
+////
+//// No additional StatFlags.
+
+///
+/// UNDI NvData.
+///
+/// No additional StatFlags.
+///
+
+///
+/// UNDI Get Status.
+///
+
+///
+/// Use to determine if an interrupt has occurred.
+///
+
+
+
+///
+/// If set, at least one receive interrupt occurred.
+///
+
+
+///
+/// If set, at least one transmit interrupt occurred.
+///
+
+
+///
+/// If set, at least one command interrupt occurred.
+///
+
+
+///
+/// If set, at least one software interrupt occurred.
+///
+
+
+///
+/// This flag is set if the transmitted buffer queue is empty. This flag
+/// will be set if all transmitted buffer addresses get written into the DB.
+///
+
+
+///
+/// This flag is set if no transmitted buffer addresses were written
+/// into the DB. (This could be because DBsize was too small.)
+///
+
+
+///
+/// This flag is set if there is no media detected.
+///
+
+
+///
+/// UNDI Fill Header.
+///
+/// No additional StatFlags.
+///
+
+///
+/// UNDI Transmit.
+///
+/// No additional StatFlags.
+
+///
+/// UNDI Receive
+/// .
+
+///
+/// No additional StatFlags.
+///
+typedef PXE_UINT16 PXE_STATCODE;
+
+
+
+///
+/// Common StatCodes returned by all UNDI commands, UNDI protocol functions
+/// and BC protocol functions.
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef PXE_UINT16 PXE_IFNUM;
+
+///
+/// This interface number must be passed to the S/W UNDI Start command.
+///
+
+
+///
+/// This interface number is returned by the S/W UNDI Get State and
+/// Start commands if information in the CDB, CPB or DB is invalid.
+///
+
+
+typedef PXE_UINT16 PXE_CONTROL;
+
+///
+/// Setting this flag directs the UNDI to queue this command for later
+/// execution if the UNDI is busy and it supports command queuing.
+/// If queuing is not supported, a PXE_STATCODE_INVALID_CONTROL error
+/// is returned. If the queue is full, a PXE_STATCODE_CDB_QUEUE_FULL
+/// error is returned.
+///
+
+
+///
+/// These two bit values are used to determine if there are more UNDI
+/// CDB structures following this one. If the link bit is set, there
+/// must be a CDB structure following this one. Execution will start
+/// on the next CDB structure as soon as this one completes successfully.
+/// If an error is generated by this command, execution will stop.
+///
+
+
+
+typedef PXE_UINT8 PXE_FRAME_TYPE;
+
+
+
+
+
+
+
+
+
+
+typedef PXE_UINT32 PXE_IPV4;
+
+typedef PXE_UINT32 PXE_IPV6[4];
+
+
+typedef PXE_UINT8 PXE_MAC_ADDR[32];
+
+typedef PXE_UINT8 PXE_IFTYPE;
+typedef UINT16 PXE_MEDIA_PROTOCOL;
+
+///
+/// This information is from the ARP section of RFC 1700.
+///
+/// 1 Ethernet (10Mb) [JBP]
+/// 2 Experimental Ethernet (3Mb) [JBP]
+/// 3 Amateur Radio AX.25 [PXK]
+/// 4 Proteon ProNET Token Ring [JBP]
+/// 5 Chaos [GXP]
+/// 6 IEEE 802 Networks [JBP]
+/// 7 ARCNET [JBP]
+/// 8 Hyperchannel [JBP]
+/// 9 Lanstar [TU]
+/// 10 Autonet Short Address [MXB1]
+/// 11 LocalTalk [JKR1]
+/// 12 LocalNet (IBM* PCNet or SYTEK* LocalNET) [JXM]
+/// 13 Ultra link [RXD2]
+/// 14 SMDS [GXC1]
+/// 15 Frame Relay [AGM]
+/// 16 Asynchronous Transmission Mode (ATM) [JXB2]
+/// 17 HDLC [JBP]
+/// 18 Fibre Channel [Yakov Rekhter]
+/// 19 Asynchronous Transmission Mode (ATM) [Mark Laubach]
+/// 20 Serial Line [JBP]
+/// 21 Asynchronous Transmission Mode (ATM) [MXB1]
+///
+/// * Other names and brands may be claimed as the property of others.
+///
+
+
+
+
+typedef struct s_pxe_hw_undi {
+ PXE_UINT32 Signature; ///< PXE_ROMID_SIGNATURE.
+ PXE_UINT8 Len; ///< sizeof(PXE_HW_UNDI).
+ PXE_UINT8 Fudge; ///< makes 8-bit cksum equal zero.
+ PXE_UINT8 Rev; ///< PXE_ROMID_REV.
+ PXE_UINT8 IFcnt; ///< physical connector count lower byte.
+ PXE_UINT8 MajorVer; ///< PXE_ROMID_MAJORVER.
+ PXE_UINT8 MinorVer; ///< PXE_ROMID_MINORVER.
+ PXE_UINT8 IFcntExt; ///< physical connector count upper byte.
+ PXE_UINT8 reserved; ///< zero, not used.
+ PXE_UINT32 Implementation; ///< implementation flags.
+ ///< reserved ///< vendor use.
+ ///< UINT32 Status; ///< status port.
+ ///< UINT32 Command; ///< command port.
+ ///< UINT64 CDBaddr; ///< CDB address port.
+ ///<
+} PXE_HW_UNDI;
+
+///
+/// Status port bit definitions.
+///
+
+///
+/// UNDI operation state.
+///
+
+
+
+
+
+
+///
+/// If set, last command failed.
+///
+
+
+///
+/// If set, identifies enabled receive filters.
+///
+
+
+
+
+
+
+///
+/// If set, identifies enabled external interrupts.
+///
+
+
+
+
+
+///
+/// If set, identifies pending interrupts.
+///
+
+
+
+
+
+///
+/// Command port definitions.
+///
+
+///
+/// If set, CDB identified in CDBaddr port is given to UNDI.
+/// If not set, other bits in this word will be processed.
+///
+
+
+
+///
+/// Use these to enable/disable receive filters.
+///
+
+
+
+
+
+
+///
+/// Use these to enable/disable external interrupts.
+///
+
+
+
+
+
+///
+/// Use these to clear pending external interrupts.
+///
+
+
+
+
+
+typedef struct s_pxe_sw_undi {
+ PXE_UINT32 Signature; ///< PXE_ROMID_SIGNATURE.
+ PXE_UINT8 Len; ///< sizeof(PXE_SW_UNDI).
+ PXE_UINT8 Fudge; ///< makes 8-bit cksum zero.
+ PXE_UINT8 Rev; ///< PXE_ROMID_REV.
+ PXE_UINT8 IFcnt; ///< physical connector count lower byte.
+ PXE_UINT8 MajorVer; ///< PXE_ROMID_MAJORVER.
+ PXE_UINT8 MinorVer; ///< PXE_ROMID_MINORVER.
+ PXE_UINT8 IFcntExt; ///< physical connector count upper byte.
+ PXE_UINT8 reserved1; ///< zero, not used.
+ PXE_UINT32 Implementation; ///< Implementation flags.
+ PXE_UINT64 EntryPoint; ///< API entry point.
+ PXE_UINT8 reserved2[3]; ///< zero, not used.
+ PXE_UINT8 BusCnt; ///< number of bustypes supported.
+ PXE_UINT32 BusType[1]; ///< list of supported bustypes.
+} PXE_SW_UNDI;
+
+typedef union u_pxe_undi {
+ PXE_HW_UNDI hw;
+ PXE_SW_UNDI sw;
+} PXE_UNDI;
+
+///
+/// Signature of !PXE structure.
+///
+
+
+///
+/// !PXE structure format revision
+/// .
+
+
+///
+/// UNDI command interface revision. These are the values that get sent
+/// in option 94 (Client Network Interface Identifier) in the DHCP Discover
+/// and PXE Boot Server Request packets.
+///
+
+
+
+///
+/// Implementation flags.
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct s_pxe_cdb {
+ PXE_OPCODE OpCode;
+ PXE_OPFLAGS OpFlags;
+ PXE_UINT16 CPBsize;
+ PXE_UINT16 DBsize;
+ PXE_UINT64 CPBaddr;
+ PXE_UINT64 DBaddr;
+ PXE_STATCODE StatCode;
+ PXE_STATFLAGS StatFlags;
+ PXE_UINT16 IFnum;
+ PXE_CONTROL Control;
+} PXE_CDB;
+
+typedef union u_pxe_ip_addr {
+ PXE_IPV6 IPv6;
+ PXE_IPV4 IPv4;
+} PXE_IP_ADDR;
+
+typedef union pxe_device {
+ ///
+ /// PCI and PC Card NICs are both identified using bus, device
+ /// and function numbers. For PC Card, this may require PC
+ /// Card services to be loaded in the BIOS or preboot
+ /// environment.
+ ///
+ struct {
+ ///
+ /// See S/W UNDI ROMID structure definition for PCI and
+ /// PCC BusType definitions.
+ ///
+ PXE_UINT32 BusType;
+
+ ///
+ /// Bus, device & function numbers that locate this device.
+ ///
+ PXE_UINT16 Bus;
+ PXE_UINT8 Device;
+ PXE_UINT8 Function;
+ } PCI, PCC;
+} PXE_DEVICE;
+
+///
+/// cpb and db definitions
+///
+
+
+
+
+
+typedef struct s_pxe_cpb_start_30 {
+ ///
+ /// PXE_VOID Delay(UINTN microseconds);
+ ///
+ /// UNDI will never request a delay smaller than 10 microseconds
+ /// and will always request delays in increments of 10 microseconds.
+ /// The Delay() CallBack routine must delay between n and n + 10
+ /// microseconds before returning control to the UNDI.
+ ///
+ /// This field cannot be set to zero.
+ ///
+ UINT64 Delay;
+
+ ///
+ /// PXE_VOID Block(UINT32 enable);
+ ///
+ /// UNDI may need to block multi-threaded/multi-processor access to
+ /// critical code sections when programming or accessing the network
+ /// device. To this end, a blocking service is needed by the UNDI.
+ /// When UNDI needs a block, it will call Block() passing a non-zero
+ /// value. When UNDI no longer needs a block, it will call Block()
+ /// with a zero value. When called, if the Block() is already enabled,
+ /// do not return control to the UNDI until the previous Block() is
+ /// disabled.
+ ///
+ /// This field cannot be set to zero.
+ ///
+ UINT64 Block;
+
+ ///
+ /// PXE_VOID Virt2Phys(UINT64 virtual, UINT64 physical_ptr);
+ ///
+ /// UNDI will pass the virtual address of a buffer and the virtual
+ /// address of a 64-bit physical buffer. Convert the virtual address
+ /// to a physical address and write the result to the physical address
+ /// buffer. If virtual and physical addresses are the same, just
+ /// copy the virtual address to the physical address buffer.
+ ///
+ /// This field can be set to zero if virtual and physical addresses
+ /// are equal.
+ ///
+ UINT64 Virt2Phys;
+ ///
+ /// PXE_VOID Mem_IO(UINT8 read_write, UINT8 len, UINT64 port,
+ /// UINT64 buf_addr);
+ ///
+ /// UNDI will read or write the device io space using this call back
+ /// function. It passes the number of bytes as the len parameter and it
+ /// will be either 1,2,4 or 8.
+ ///
+ /// This field can not be set to zero.
+ ///
+ UINT64 Mem_IO;
+} PXE_CPB_START_30;
+
+typedef struct s_pxe_cpb_start_31 {
+ ///
+ /// PXE_VOID Delay(UINT64 UnqId, UINTN microseconds);
+ ///
+ /// UNDI will never request a delay smaller than 10 microseconds
+ /// and will always request delays in increments of 10 microseconds.
+ /// The Delay() CallBack routine must delay between n and n + 10
+ /// microseconds before returning control to the UNDI.
+ ///
+ /// This field cannot be set to zero.
+ ///
+ UINT64 Delay;
+
+ ///
+ /// PXE_VOID Block(UINT64 unq_id, UINT32 enable);
+ ///
+ /// UNDI may need to block multi-threaded/multi-processor access to
+ /// critical code sections when programming or accessing the network
+ /// device. To this end, a blocking service is needed by the UNDI.
+ /// When UNDI needs a block, it will call Block() passing a non-zero
+ /// value. When UNDI no longer needs a block, it will call Block()
+ /// with a zero value. When called, if the Block() is already enabled,
+ /// do not return control to the UNDI until the previous Block() is
+ /// disabled.
+ ///
+ /// This field cannot be set to zero.
+ ///
+ UINT64 Block;
+
+ ///
+ /// PXE_VOID Virt2Phys(UINT64 UnqId, UINT64 virtual, UINT64 physical_ptr);
+ ///
+ /// UNDI will pass the virtual address of a buffer and the virtual
+ /// address of a 64-bit physical buffer. Convert the virtual address
+ /// to a physical address and write the result to the physical address
+ /// buffer. If virtual and physical addresses are the same, just
+ /// copy the virtual address to the physical address buffer.
+ ///
+ /// This field can be set to zero if virtual and physical addresses
+ /// are equal.
+ ///
+ UINT64 Virt2Phys;
+ ///
+ /// PXE_VOID Mem_IO(UINT64 UnqId, UINT8 read_write, UINT8 len, UINT64 port,
+ /// UINT64 buf_addr);
+ ///
+ /// UNDI will read or write the device io space using this call back
+ /// function. It passes the number of bytes as the len parameter and it
+ /// will be either 1,2,4 or 8.
+ ///
+ /// This field can not be set to zero.
+ ///
+ UINT64 Mem_IO;
+ ///
+ /// PXE_VOID Map_Mem(UINT64 unq_id, UINT64 virtual_addr, UINT32 size,
+ /// UINT32 Direction, UINT64 mapped_addr);
+ ///
+ /// UNDI will pass the virtual address of a buffer, direction of the data
+ /// flow from/to the mapped buffer (the constants are defined below)
+ /// and a place holder (pointer) for the mapped address.
+ /// This call will Map the given address to a physical DMA address and write
+ /// the result to the mapped_addr pointer. If there is no need to
+ /// map the given address to a lower address (i.e. the given address is
+ /// associated with a physical address that is already compatible to be
+ /// used with the DMA, it converts the given virtual address to it's
+ /// physical address and write that in the mapped address pointer.
+ ///
+ /// This field can be set to zero if there is no mapping service available.
+ ///
+ UINT64 Map_Mem;
+
+ ///
+ /// PXE_VOID UnMap_Mem(UINT64 unq_id, UINT64 virtual_addr, UINT32 size,
+ /// UINT32 Direction, UINT64 mapped_addr);
+ ///
+ /// UNDI will pass the virtual and mapped addresses of a buffer.
+ /// This call will un map the given address.
+ ///
+ /// This field can be set to zero if there is no unmapping service available.
+ ///
+ UINT64 UnMap_Mem;
+
+ ///
+ /// PXE_VOID Sync_Mem(UINT64 unq_id, UINT64 virtual,
+ /// UINT32 size, UINT32 Direction, UINT64 mapped_addr);
+ ///
+ /// UNDI will pass the virtual and mapped addresses of a buffer.
+ /// This call will synchronize the contents of both the virtual and mapped.
+ /// buffers for the given Direction.
+ ///
+ /// This field can be set to zero if there is no service available.
+ ///
+ UINT64 Sync_Mem;
+
+ ///
+ /// protocol driver can provide anything for this Unique_ID, UNDI remembers
+ /// that as just a 64bit value associated to the interface specified by
+ /// the ifnum and gives it back as a parameter to all the call-back routines
+ /// when calling for that interface!
+ ///
+ UINT64 Unique_ID;
+} PXE_CPB_START_31;
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct s_pxe_db_get_init_info {
+ ///
+ /// Minimum length of locked memory buffer that must be given to
+ /// the Initialize command. Giving UNDI more memory will generally
+ /// give better performance.
+ ///
+ /// If MemoryRequired is zero, the UNDI does not need and will not
+ /// use system memory to receive and transmit packets.
+ ///
+ PXE_UINT32 MemoryRequired;
+
+ ///
+ /// Maximum frame data length for Tx/Rx excluding the media header.
+ ///
+ PXE_UINT32 FrameDataLen;
+
+ ///
+ /// Supported link speeds are in units of mega bits. Common ethernet
+ /// values are 10, 100 and 1000. Unused LinkSpeeds[] entries are zero
+ /// filled.
+ ///
+ PXE_UINT32 LinkSpeeds[4];
+
+ ///
+ /// Number of non-volatile storage items.
+ ///
+ PXE_UINT32 NvCount;
+
+ ///
+ /// Width of non-volatile storage item in bytes. 0, 1, 2 or 4
+ ///
+ PXE_UINT16 NvWidth;
+
+ ///
+ /// Media header length. This is the typical media header length for
+ /// this UNDI. This information is needed when allocating receive
+ /// and transmit buffers.
+ ///
+ PXE_UINT16 MediaHeaderLen;
+
+ ///
+ /// Number of bytes in the NIC hardware (MAC) address.
+ ///
+ PXE_UINT16 HWaddrLen;
+
+ ///
+ /// Maximum number of multicast MAC addresses in the multicast
+ /// MAC address filter list.
+ ///
+ PXE_UINT16 MCastFilterCnt;
+
+ ///
+ /// Default number and size of transmit and receive buffers that will
+ /// be allocated by the UNDI. If MemoryRequired is non-zero, this
+ /// allocation will come out of the memory buffer given to the Initialize
+ /// command. If MemoryRequired is zero, this allocation will come out of
+ /// memory on the NIC.
+ ///
+ PXE_UINT16 TxBufCnt;
+ PXE_UINT16 TxBufSize;
+ PXE_UINT16 RxBufCnt;
+ PXE_UINT16 RxBufSize;
+
+ ///
+ /// Hardware interface types defined in the Assigned Numbers RFC
+ /// and used in DHCP and ARP packets.
+ /// See the PXE_IFTYPE typedef and PXE_IFTYPE_xxx macros.
+ ///
+ PXE_UINT8 IFtype;
+
+ ///
+ /// Supported duplex. See PXE_DUPLEX_xxxxx #defines below.
+ ///
+ PXE_UINT8 SupportedDuplexModes;
+
+ ///
+ /// Supported loopback options. See PXE_LOOPBACK_xxxxx #defines below.
+ ///
+ PXE_UINT8 SupportedLoopBackModes;
+} PXE_DB_GET_INIT_INFO;
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct s_pxe_pci_config_info {
+ ///
+ /// This is the flag field for the PXE_DB_GET_CONFIG_INFO union.
+ /// For PCI bus devices, this field is set to PXE_BUSTYPE_PCI.
+ ///
+ UINT32 BusType;
+
+ ///
+ /// This identifies the PCI network device that this UNDI interface.
+ /// is bound to.
+ ///
+ UINT16 Bus;
+ UINT8 Device;
+ UINT8 Function;
+
+ ///
+ /// This is a copy of the PCI configuration space for this
+ /// network device.
+ ///
+ union {
+ UINT8 Byte[256];
+ UINT16 Word[128];
+ UINT32 Dword[64];
+ } Config;
+} PXE_PCI_CONFIG_INFO;
+
+typedef struct s_pxe_pcc_config_info {
+ ///
+ /// This is the flag field for the PXE_DB_GET_CONFIG_INFO union.
+ /// For PCC bus devices, this field is set to PXE_BUSTYPE_PCC.
+ ///
+ PXE_UINT32 BusType;
+
+ ///
+ /// This identifies the PCC network device that this UNDI interface
+ /// is bound to.
+ ///
+ PXE_UINT16 Bus;
+ PXE_UINT8 Device;
+ PXE_UINT8 Function;
+
+ ///
+ /// This is a copy of the PCC configuration space for this
+ /// network device.
+ ///
+ union {
+ PXE_UINT8 Byte[256];
+ PXE_UINT16 Word[128];
+ PXE_UINT32 Dword[64];
+ } Config;
+} PXE_PCC_CONFIG_INFO;
+
+typedef union u_pxe_db_get_config_info {
+ PXE_PCI_CONFIG_INFO pci;
+ PXE_PCC_CONFIG_INFO pcc;
+} PXE_DB_GET_CONFIG_INFO;
+
+typedef struct s_pxe_cpb_initialize {
+ ///
+ /// Address of first (lowest) byte of the memory buffer. This buffer must
+ /// be in contiguous physical memory and cannot be swapped out. The UNDI
+ /// will be using this for transmit and receive buffering.
+ ///
+ PXE_UINT64 MemoryAddr;
+
+ ///
+ /// MemoryLength must be greater than or equal to MemoryRequired
+ /// returned by the Get Init Info command.
+ ///
+ PXE_UINT32 MemoryLength;
+
+ ///
+ /// Desired link speed in Mbit/sec. Common ethernet values are 10, 100
+ /// and 1000. Setting a value of zero will auto-detect and/or use the
+ /// default link speed (operation depends on UNDI/NIC functionality).
+ ///
+ PXE_UINT32 LinkSpeed;
+
+ ///
+ /// Suggested number and size of receive and transmit buffers to
+ /// allocate. If MemoryAddr and MemoryLength are non-zero, this
+ /// allocation comes out of the supplied memory buffer. If MemoryAddr
+ /// and MemoryLength are zero, this allocation comes out of memory
+ /// on the NIC.
+ ///
+ /// If these fields are set to zero, the UNDI will allocate buffer
+ /// counts and sizes as it sees fit.
+ ///
+ PXE_UINT16 TxBufCnt;
+ PXE_UINT16 TxBufSize;
+ PXE_UINT16 RxBufCnt;
+ PXE_UINT16 RxBufSize;
+
+ ///
+ /// The following configuration parameters are optional and must be zero
+ /// to use the default values.
+ ///
+ PXE_UINT8 DuplexMode;
+
+ PXE_UINT8 LoopBackMode;
+} PXE_CPB_INITIALIZE;
+
+
+
+
+
+
+
+
+
+
+
+typedef struct s_pxe_db_initialize {
+ ///
+ /// Actual amount of memory used from the supplied memory buffer. This
+ /// may be less that the amount of memory suppllied and may be zero if
+ /// the UNDI and network device do not use external memory buffers.
+ ///
+ /// Memory used by the UNDI and network device is allocated from the
+ /// lowest memory buffer address.
+ ///
+ PXE_UINT32 MemoryUsed;
+
+ ///
+ /// Actual number and size of receive and transmit buffers that were
+ /// allocated.
+ ///
+ PXE_UINT16 TxBufCnt;
+ PXE_UINT16 TxBufSize;
+ PXE_UINT16 RxBufCnt;
+ PXE_UINT16 RxBufSize;
+} PXE_DB_INITIALIZE;
+
+typedef struct s_pxe_cpb_receive_filters {
+ ///
+ /// List of multicast MAC addresses. This list, if present, will
+ /// replace the existing multicast MAC address filter list.
+ ///
+ PXE_MAC_ADDR MCastList[8];
+} PXE_CPB_RECEIVE_FILTERS;
+
+typedef struct s_pxe_db_receive_filters {
+ ///
+ /// Filtered multicast MAC address list.
+ ///
+ PXE_MAC_ADDR MCastList[8];
+} PXE_DB_RECEIVE_FILTERS;
+
+typedef struct s_pxe_cpb_station_address {
+ ///
+ /// If supplied and supported, the current station MAC address
+ /// will be changed.
+ ///
+ PXE_MAC_ADDR StationAddr;
+} PXE_CPB_STATION_ADDRESS;
+
+typedef struct s_pxe_dpb_station_address {
+ ///
+ /// Current station MAC address.
+ ///
+ PXE_MAC_ADDR StationAddr;
+
+ ///
+ /// Station broadcast MAC address.
+ ///
+ PXE_MAC_ADDR BroadcastAddr;
+
+ ///
+ /// Permanent station MAC address.
+ ///
+ PXE_MAC_ADDR PermanentAddr;
+} PXE_DB_STATION_ADDRESS;
+
+typedef struct s_pxe_db_statistics {
+ ///
+ /// Bit field identifying what statistic data is collected by the
+ /// UNDI/NIC.
+ /// If bit 0x00 is set, Data[0x00] is collected.
+ /// If bit 0x01 is set, Data[0x01] is collected.
+ /// If bit 0x20 is set, Data[0x20] is collected.
+ /// If bit 0x21 is set, Data[0x21] is collected.
+ /// Etc.
+ ///
+ PXE_UINT64 Supported;
+
+ ///
+ /// Statistic data.
+ ///
+ PXE_UINT64 Data[64];
+} PXE_DB_STATISTICS;
+
+///
+/// Total number of frames received. Includes frames with errors and
+/// dropped frames.
+///
+
+
+///
+/// Number of valid frames received and copied into receive buffers.
+///
+
+
+///
+/// Number of frames below the minimum length for the media.
+/// This would be <64 for ethernet.
+///
+
+
+///
+/// Number of frames longer than the maxminum length for the
+/// media. This would be >1500 for ethernet.
+///
+
+
+///
+/// Valid frames that were dropped because receive buffers were full.
+///
+
+
+///
+/// Number of valid unicast frames received and not dropped.
+///
+
+
+///
+/// Number of valid broadcast frames received and not dropped.
+///
+
+
+///
+/// Number of valid mutlicast frames received and not dropped.
+///
+
+
+///
+/// Number of frames w/ CRC or alignment errors.
+///
+
+
+///
+/// Total number of bytes received. Includes frames with errors
+/// and dropped frames.
+///
+
+
+///
+/// Transmit statistics.
+///
+
+
+
+
+
+
+
+
+
+
+
+///
+/// Number of collisions detection on this subnet.
+///
+
+
+///
+/// Number of frames destined for unsupported protocol.
+///
+
+
+///
+/// Number of valid frames received that were duplicated.
+///
+
+
+///
+/// Number of encrypted frames received that failed to decrypt.
+///
+
+
+///
+/// Number of frames that failed to transmit after exceeding the retry limit.
+///
+
+
+///
+/// Number of frames transmitted successfully after more than one attempt.
+///
+
+
+typedef struct s_pxe_cpb_mcast_ip_to_mac {
+ ///
+ /// Multicast IP address to be converted to multicast MAC address.
+ ///
+ PXE_IP_ADDR IP;
+} PXE_CPB_MCAST_IP_TO_MAC;
+
+typedef struct s_pxe_db_mcast_ip_to_mac {
+ ///
+ /// Multicast MAC address.
+ ///
+ PXE_MAC_ADDR MAC;
+} PXE_DB_MCAST_IP_TO_MAC;
+
+typedef struct s_pxe_cpb_nvdata_sparse {
+ ///
+ /// NvData item list. Only items in this list will be updated.
+ ///
+ struct {
+ ///
+ /// Non-volatile storage address to be changed.
+ ///
+ PXE_UINT32 Addr;
+
+ ///
+ /// Data item to write into above storage address.
+ ///
+ union {
+ PXE_UINT8 Byte;
+ PXE_UINT16 Word;
+ PXE_UINT32 Dword;
+ } Data;
+ } Item[128];
+} PXE_CPB_NVDATA_SPARSE;
+
+///
+/// When using bulk update, the size of the CPB structure must be
+/// the same size as the non-volatile NIC storage.
+///
+typedef union u_pxe_cpb_nvdata_bulk {
+ ///
+ /// Array of byte-wide data items.
+ ///
+ PXE_UINT8 Byte[128 << 2];
+
+ ///
+ /// Array of word-wide data items.
+ ///
+ PXE_UINT16 Word[128 << 1];
+
+ ///
+ /// Array of dword-wide data items.
+ ///
+ PXE_UINT32 Dword[128];
+} PXE_CPB_NVDATA_BULK;
+
+typedef struct s_pxe_db_nvdata {
+ ///
+ /// Arrays of data items from non-volatile storage.
+ ///
+ union {
+ ///
+ /// Array of byte-wide data items.
+ ///
+ PXE_UINT8 Byte[128 << 2];
+
+ ///
+ /// Array of word-wide data items.
+ ///
+ PXE_UINT16 Word[128 << 1];
+
+ ///
+ /// Array of dword-wide data items.
+ ///
+ PXE_UINT32 Dword[128];
+ } Data;
+} PXE_DB_NVDATA;
+
+typedef struct s_pxe_db_get_status {
+ ///
+ /// Length of next receive frame (header + data). If this is zero,
+ /// there is no next receive frame available.
+ ///
+ PXE_UINT32 RxFrameLen;
+
+ ///
+ /// Reserved, set to zero.
+ ///
+ PXE_UINT32 reserved;
+
+ ///
+ /// Addresses of transmitted buffers that need to be recycled.
+ ///
+ PXE_UINT64 TxBuffer[32];
+} PXE_DB_GET_STATUS;
+
+typedef struct s_pxe_cpb_fill_header {
+ ///
+ /// Source and destination MAC addresses. These will be copied into
+ /// the media header without doing byte swapping.
+ ///
+ PXE_MAC_ADDR SrcAddr;
+ PXE_MAC_ADDR DestAddr;
+
+ ///
+ /// Address of first byte of media header. The first byte of packet data
+ /// follows the last byte of the media header.
+ ///
+ PXE_UINT64 MediaHeader;
+
+ ///
+ /// Length of packet data in bytes (not including the media header).
+ ///
+ PXE_UINT32 PacketLen;
+
+ ///
+ /// Protocol type. This will be copied into the media header without
+ /// doing byte swapping. Protocol type numbers can be obtained from
+ /// the Assigned Numbers RFC 1700.
+ ///
+ PXE_UINT16 Protocol;
+
+ ///
+ /// Length of the media header in bytes.
+ ///
+ PXE_UINT16 MediaHeaderLen;
+} PXE_CPB_FILL_HEADER;
+
+
+
+
+
+typedef struct s_pxe_cpb_fill_header_fragmented {
+ ///
+ /// Source and destination MAC addresses. These will be copied into
+ /// the media header without doing byte swapping.
+ ///
+ PXE_MAC_ADDR SrcAddr;
+ PXE_MAC_ADDR DestAddr;
+
+ ///
+ /// Length of packet data in bytes (not including the media header).
+ ///
+ PXE_UINT32 PacketLen;
+
+ ///
+ /// Protocol type. This will be copied into the media header without
+ /// doing byte swapping. Protocol type numbers can be obtained from
+ /// the Assigned Numbers RFC 1700.
+ ///
+ PXE_MEDIA_PROTOCOL Protocol;
+
+ ///
+ /// Length of the media header in bytes.
+ ///
+ PXE_UINT16 MediaHeaderLen;
+
+ ///
+ /// Number of packet fragment descriptors.
+ ///
+ PXE_UINT16 FragCnt;
+
+ ///
+ /// Reserved, must be set to zero.
+ ///
+ PXE_UINT16 reserved;
+
+ ///
+ /// Array of packet fragment descriptors. The first byte of the media
+ /// header is the first byte of the first fragment.
+ ///
+ struct {
+ ///
+ /// Address of this packet fragment.
+ ///
+ PXE_UINT64 FragAddr;
+
+ ///
+ /// Length of this packet fragment.
+ ///
+ PXE_UINT32 FragLen;
+
+ ///
+ /// Reserved, must be set to zero.
+ ///
+ PXE_UINT32 reserved;
+ } FragDesc[16];
+} PXE_CPB_FILL_HEADER_FRAGMENTED;
+
+typedef struct s_pxe_cpb_transmit {
+ ///
+ /// Address of first byte of frame buffer. This is also the first byte
+ /// of the media header.
+ ///
+ PXE_UINT64 FrameAddr;
+
+ ///
+ /// Length of the data portion of the frame buffer in bytes. Do not
+ /// include the length of the media header.
+ ///
+ PXE_UINT32 DataLen;
+
+ ///
+ /// Length of the media header in bytes.
+ ///
+ PXE_UINT16 MediaheaderLen;
+
+ ///
+ /// Reserved, must be zero.
+ ///
+ PXE_UINT16 reserved;
+} PXE_CPB_TRANSMIT;
+
+typedef struct s_pxe_cpb_transmit_fragments {
+ ///
+ /// Length of packet data in bytes (not including the media header).
+ ///
+ PXE_UINT32 FrameLen;
+
+ ///
+ /// Length of the media header in bytes.
+ ///
+ PXE_UINT16 MediaheaderLen;
+
+ ///
+ /// Number of packet fragment descriptors.
+ ///
+ PXE_UINT16 FragCnt;
+
+ ///
+ /// Array of frame fragment descriptors. The first byte of the first
+ /// fragment is also the first byte of the media header.
+ ///
+ struct {
+ ///
+ /// Address of this frame fragment.
+ ///
+ PXE_UINT64 FragAddr;
+
+ ///
+ /// Length of this frame fragment.
+ ///
+ PXE_UINT32 FragLen;
+
+ ///
+ /// Reserved, must be set to zero.
+ ///
+ PXE_UINT32 reserved;
+ } FragDesc[16];
+} PXE_CPB_TRANSMIT_FRAGMENTS;
+
+typedef struct s_pxe_cpb_receive {
+ ///
+ /// Address of first byte of receive buffer. This is also the first byte
+ /// of the frame header.
+ ///
+ PXE_UINT64 BufferAddr;
+
+ ///
+ /// Length of receive buffer. This must be large enough to hold the
+ /// received frame (media header + data). If the length of smaller than
+ /// the received frame, data will be lost.
+ ///
+ PXE_UINT32 BufferLen;
+
+ ///
+ /// Reserved, must be set to zero.
+ ///
+ PXE_UINT32 reserved;
+} PXE_CPB_RECEIVE;
+
+typedef struct s_pxe_db_receive {
+ ///
+ /// Source and destination MAC addresses from media header.
+ ///
+ PXE_MAC_ADDR SrcAddr;
+ PXE_MAC_ADDR DestAddr;
+
+ ///
+ /// Length of received frame. May be larger than receive buffer size.
+ /// The receive buffer will not be overwritten. This is how to tell
+ /// if data was lost because the receive buffer was too small.
+ ///
+ PXE_UINT32 FrameLen;
+
+ ///
+ /// Protocol type from media header.
+ ///
+ PXE_MEDIA_PROTOCOL Protocol;
+
+ ///
+ /// Length of media header in received frame.
+ ///
+ PXE_UINT16 MediaHeaderLen;
+
+ ///
+ /// Type of receive frame.
+ ///
+ PXE_FRAME_TYPE Type;
+
+ ///
+ /// Reserved, must be zero.
+ ///
+ PXE_UINT8 reserved[7];
+} PXE_DB_RECEIVE;
+
+#pragma pack()
+
+#line 1781 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiPxe.h"
+
+#line 2228 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiSpec.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiGpt.h"
+/** @file
+ EFI Guid Partition Table Format Definition.
+
+Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+
+
+
+///
+/// The primary GUID Partition Table Header must be
+/// located in LBA 1 (i.e., the second logical block).
+///
+
+///
+/// EFI Partition Table Signature: "EFI PART".
+///
+
+///
+/// Minimum bytes reserve for EFI entry array buffer.
+///
+
+
+#pragma pack(1)
+
+///
+/// GPT Partition Table Header.
+///
+typedef struct {
+ ///
+ /// The table header for the GPT partition Table.
+ /// This header contains EFI_PTAB_HEADER_ID.
+ ///
+ EFI_TABLE_HEADER Header;
+ ///
+ /// The LBA that contains this data structure.
+ ///
+ EFI_LBA MyLBA;
+ ///
+ /// LBA address of the alternate GUID Partition Table Header.
+ ///
+ EFI_LBA AlternateLBA;
+ ///
+ /// The first usable logical block that may be used
+ /// by a partition described by a GUID Partition Entry.
+ ///
+ EFI_LBA FirstUsableLBA;
+ ///
+ /// The last usable logical block that may be used
+ /// by a partition described by a GUID Partition Entry.
+ ///
+ EFI_LBA LastUsableLBA;
+ ///
+ /// GUID that can be used to uniquely identify the disk.
+ ///
+ EFI_GUID DiskGUID;
+ ///
+ /// The starting LBA of the GUID Partition Entry array.
+ ///
+ EFI_LBA PartitionEntryLBA;
+ ///
+ /// The number of Partition Entries in the GUID Partition Entry array.
+ ///
+ UINT32 NumberOfPartitionEntries;
+ ///
+ /// The size, in bytes, of each the GUID Partition
+ /// Entry structures in the GUID Partition Entry
+ /// array. This field shall be set to a value of 128 x 2^n where n is
+ /// an integer greater than or equal to zero (e.g., 128, 256, 512, etc.).
+ ///
+ UINT32 SizeOfPartitionEntry;
+ ///
+ /// The CRC32 of the GUID Partition Entry array.
+ /// Starts at PartitionEntryLBA and is
+ /// computed over a byte length of
+ /// NumberOfPartitionEntries * SizeOfPartitionEntry.
+ ///
+ UINT32 PartitionEntryArrayCRC32;
+} EFI_PARTITION_TABLE_HEADER;
+
+///
+/// GPT Partition Entry.
+///
+typedef struct {
+ ///
+ /// Unique ID that defines the purpose and type of this Partition. A value of
+ /// zero defines that this partition entry is not being used.
+ ///
+ EFI_GUID PartitionTypeGUID;
+ ///
+ /// GUID that is unique for every partition entry. Every partition ever
+ /// created will have a unique GUID.
+ /// This GUID must be assigned when the GUID Partition Entry is created.
+ ///
+ EFI_GUID UniquePartitionGUID;
+ ///
+ /// Starting LBA of the partition defined by this entry
+ ///
+ EFI_LBA StartingLBA;
+ ///
+ /// Ending LBA of the partition defined by this entry.
+ ///
+ EFI_LBA EndingLBA;
+ ///
+ /// Attribute bits, all bits reserved by UEFI
+ /// Bit 0: If this bit is set, the partition is required for the platform to function. The owner/creator of the
+ /// partition indicates that deletion or modification of the contents can result in loss of platform
+ /// features or failure for the platform to boot or operate. The system cannot function normally if
+ /// this partition is removed, and it should be considered part of the hardware of the system.
+ /// Actions such as running diagnostics, system recovery, or even OS install or boot, could
+ /// potentially stop working if this partition is removed. Unless OS software or firmware
+ /// recognizes this partition, it should never be removed or modified as the UEFI firmware or
+ /// platform hardware may become non-functional.
+ /// Bit 1: If this bit is set, then firmware must not produce an EFI_BLOCK_IO_PROTOCOL device for
+ /// this partition. By not producing an EFI_BLOCK_IO_PROTOCOL partition, file system
+ /// mappings will not be created for this partition in UEFI.
+ /// Bit 2: This bit is set aside to let systems with traditional PC-AT BIOS firmware implementations
+ /// inform certain limited, special-purpose software running on these systems that a GPT
+ /// partition may be bootable. The UEFI boot manager must ignore this bit when selecting
+ /// a UEFI-compliant application, e.g., an OS loader.
+ /// Bits 3-47: Undefined and must be zero. Reserved for expansion by future versions of the UEFI
+ /// specification.
+ /// Bits 48-63: Reserved for GUID specific use. The use of these bits will vary depending on the
+ /// PartitionTypeGUID. Only the owner of the PartitionTypeGUID is allowed
+ /// to modify these bits. They must be preserved if Bits 0-47 are modified..
+ ///
+ UINT64 Attributes;
+ ///
+ /// Null-terminated name of the partition.
+ ///
+ CHAR16 PartitionName[36];
+} EFI_PARTITION_ENTRY;
+
+#pragma pack()
+#line 138 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiGpt.h"
+#line 2229 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiSpec.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiInternalFormRepresentation.h"
+/** @file
+ This file defines the encoding for the VFR (Visual Form Representation) language.
+ IFR is primarily consumed by the EFI presentation engine, and produced by EFI
+ internal application and drivers as well as all add-in card option-ROM drivers
+
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ These definitions are from UEFI 2.1 and 2.2.
+
+**/
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Guid/HiiFormMapMethodGuid.h"
+/** @file
+ Guid used to identify HII FormMap configuration method.
+
+ Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ GUID defined in UEFI 2.2 spec.
+**/
+
+
+
+
+
+
+
+extern EFI_GUID gEfiHiiStandardFormGuid;
+
+#line 20 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Guid/HiiFormMapMethodGuid.h"
+#line 19 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiInternalFormRepresentation.h"
+
+///
+/// The following types are currently defined:
+///
+typedef void *EFI_HII_HANDLE;
+typedef CHAR16 *EFI_STRING;
+typedef UINT16 EFI_IMAGE_ID;
+typedef UINT16 EFI_QUESTION_ID;
+typedef UINT16 EFI_STRING_ID;
+typedef UINT16 EFI_FORM_ID;
+typedef UINT16 EFI_VARSTORE_ID;
+typedef UINT16 EFI_ANIMATION_ID;
+
+typedef UINT16 EFI_DEFAULT_ID;
+
+typedef UINT32 EFI_HII_FONT_STYLE;
+
+#pragma pack(1)
+
+//
+// Definitions for Package Lists and Package Headers
+// Section 27.3.1
+//
+
+///
+/// The header found at the start of each package list.
+///
+typedef struct {
+ EFI_GUID PackageListGuid;
+ UINT32 PackageLength;
+} EFI_HII_PACKAGE_LIST_HEADER;
+
+///
+/// The header found at the start of each package.
+///
+typedef struct {
+ UINT32 Length : 24;
+ UINT32 Type : 8;
+ // UINT8 Data[...];
+} EFI_HII_PACKAGE_HEADER;
+
+//
+// Value of HII package type
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+//
+// Definitions for Simplified Font Package
+//
+
+///
+/// Contents of EFI_NARROW_GLYPH.Attributes.
+///@{
+
+
+
+
+///@}
+
+///
+/// The EFI_NARROW_GLYPH has a preferred dimension (w x h) of 8 x 19 pixels.
+///
+typedef struct {
+ ///
+ /// The Unicode representation of the glyph. The term weight is the
+ /// technical term for a character code.
+ ///
+ CHAR16 UnicodeWeight;
+ ///
+ /// The data element containing the glyph definitions.
+ ///
+ UINT8 Attributes;
+ ///
+ /// The column major glyph representation of the character. Bits
+ /// with values of one indicate that the corresponding pixel is to be
+ /// on when normally displayed; those with zero are off.
+ ///
+ UINT8 GlyphCol1[19];
+} EFI_NARROW_GLYPH;
+
+///
+/// The EFI_WIDE_GLYPH has a preferred dimension (w x h) of 16 x 19 pixels, which is large enough
+/// to accommodate logographic characters.
+///
+typedef struct {
+ ///
+ /// The Unicode representation of the glyph. The term weight is the
+ /// technical term for a character code.
+ ///
+ CHAR16 UnicodeWeight;
+ ///
+ /// The data element containing the glyph definitions.
+ ///
+ UINT8 Attributes;
+ ///
+ /// The column major glyph representation of the character. Bits
+ /// with values of one indicate that the corresponding pixel is to be
+ /// on when normally displayed; those with zero are off.
+ ///
+ UINT8 GlyphCol1[19];
+ ///
+ /// The column major glyph representation of the character. Bits
+ /// with values of one indicate that the corresponding pixel is to be
+ /// on when normally displayed; those with zero are off.
+ ///
+ UINT8 GlyphCol2[19];
+ ///
+ /// Ensures that sizeof (EFI_WIDE_GLYPH) is twice the
+ /// sizeof (EFI_NARROW_GLYPH). The contents of Pad must
+ /// be zero.
+ ///
+ UINT8 Pad[3];
+} EFI_WIDE_GLYPH;
+
+///
+/// A simplified font package consists of a font header
+/// followed by a series of glyph structures.
+///
+typedef struct _EFI_HII_SIMPLE_FONT_PACKAGE_HDR {
+ EFI_HII_PACKAGE_HEADER Header;
+ UINT16 NumberOfNarrowGlyphs;
+ UINT16 NumberOfWideGlyphs;
+ // EFI_NARROW_GLYPH NarrowGlyphs[];
+ // EFI_WIDE_GLYPH WideGlyphs[];
+} EFI_HII_SIMPLE_FONT_PACKAGE_HDR;
+
+//
+// Definitions for Font Package
+// Section 27.3.3
+//
+
+//
+// Value for font style
+//
+
+
+
+
+
+
+
+
+
+typedef struct _EFI_HII_GLYPH_INFO {
+ UINT16 Width;
+ UINT16 Height;
+ INT16 OffsetX;
+ INT16 OffsetY;
+ INT16 AdvanceX;
+} EFI_HII_GLYPH_INFO;
+
+///
+/// The fixed header consists of a standard record header,
+/// then the character values in this section, the flags
+/// (including the encoding method) and the offsets of the glyph
+/// information, the glyph bitmaps and the character map.
+///
+typedef struct _EFI_HII_FONT_PACKAGE_HDR {
+ EFI_HII_PACKAGE_HEADER Header;
+ UINT32 HdrSize;
+ UINT32 GlyphBlockOffset;
+ EFI_HII_GLYPH_INFO Cell;
+ EFI_HII_FONT_STYLE FontStyle;
+ CHAR16 FontFamily[1];
+} EFI_HII_FONT_PACKAGE_HDR;
+
+//
+// Value of different glyph info block types
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _EFI_HII_GLYPH_BLOCK {
+ UINT8 BlockType;
+} EFI_HII_GLYPH_BLOCK;
+
+//
+// Definition of different glyph info block types
+//
+
+typedef struct _EFI_HII_GIBT_DEFAULTS_BLOCK {
+ EFI_HII_GLYPH_BLOCK Header;
+ EFI_HII_GLYPH_INFO Cell;
+} EFI_HII_GIBT_DEFAULTS_BLOCK;
+
+typedef struct _EFI_HII_GIBT_DUPLICATE_BLOCK {
+ EFI_HII_GLYPH_BLOCK Header;
+ CHAR16 CharValue;
+} EFI_HII_GIBT_DUPLICATE_BLOCK;
+
+typedef struct _EFI_GLYPH_GIBT_END_BLOCK {
+ EFI_HII_GLYPH_BLOCK Header;
+} EFI_GLYPH_GIBT_END_BLOCK;
+
+typedef struct _EFI_HII_GIBT_EXT1_BLOCK {
+ EFI_HII_GLYPH_BLOCK Header;
+ UINT8 BlockType2;
+ UINT8 Length;
+} EFI_HII_GIBT_EXT1_BLOCK;
+
+typedef struct _EFI_HII_GIBT_EXT2_BLOCK {
+ EFI_HII_GLYPH_BLOCK Header;
+ UINT8 BlockType2;
+ UINT16 Length;
+} EFI_HII_GIBT_EXT2_BLOCK;
+
+typedef struct _EFI_HII_GIBT_EXT4_BLOCK {
+ EFI_HII_GLYPH_BLOCK Header;
+ UINT8 BlockType2;
+ UINT32 Length;
+} EFI_HII_GIBT_EXT4_BLOCK;
+
+typedef struct _EFI_HII_GIBT_GLYPH_BLOCK {
+ EFI_HII_GLYPH_BLOCK Header;
+ EFI_HII_GLYPH_INFO Cell;
+ UINT8 BitmapData[1];
+} EFI_HII_GIBT_GLYPH_BLOCK;
+
+typedef struct _EFI_HII_GIBT_GLYPHS_BLOCK {
+ EFI_HII_GLYPH_BLOCK Header;
+ EFI_HII_GLYPH_INFO Cell;
+ UINT16 Count;
+ UINT8 BitmapData[1];
+} EFI_HII_GIBT_GLYPHS_BLOCK;
+
+typedef struct _EFI_HII_GIBT_GLYPH_DEFAULT_BLOCK {
+ EFI_HII_GLYPH_BLOCK Header;
+ UINT8 BitmapData[1];
+} EFI_HII_GIBT_GLYPH_DEFAULT_BLOCK;
+
+typedef struct _EFI_HII_GIBT_GLYPHS_DEFAULT_BLOCK {
+ EFI_HII_GLYPH_BLOCK Header;
+ UINT16 Count;
+ UINT8 BitmapData[1];
+} EFI_HII_GIBT_GLYPHS_DEFAULT_BLOCK;
+
+typedef struct _EFI_HII_GIBT_VARIABILITY_BLOCK {
+ EFI_HII_GLYPH_BLOCK Header;
+ EFI_HII_GLYPH_INFO Cell;
+ UINT8 GlyphPackInBits;
+ UINT8 BitmapData[1];
+} EFI_HII_GIBT_VARIABILITY_BLOCK;
+
+typedef struct _EFI_HII_GIBT_SKIP1_BLOCK {
+ EFI_HII_GLYPH_BLOCK Header;
+ UINT8 SkipCount;
+} EFI_HII_GIBT_SKIP1_BLOCK;
+
+typedef struct _EFI_HII_GIBT_SKIP2_BLOCK {
+ EFI_HII_GLYPH_BLOCK Header;
+ UINT16 SkipCount;
+} EFI_HII_GIBT_SKIP2_BLOCK;
+
+//
+// Definitions for Device Path Package
+// Section 27.3.4
+//
+
+///
+/// The device path package is used to carry a device path
+/// associated with the package list.
+///
+typedef struct _EFI_HII_DEVICE_PATH_PACKAGE_HDR {
+ EFI_HII_PACKAGE_HEADER Header;
+ // EFI_DEVICE_PATH_PROTOCOL DevicePath[];
+} EFI_HII_DEVICE_PATH_PACKAGE_HDR;
+
+//
+// Definitions for GUID Package
+// Section 27.3.5
+//
+
+///
+/// The GUID package is used to carry data where the format is defined by a GUID.
+///
+typedef struct _EFI_HII_GUID_PACKAGE_HDR {
+ EFI_HII_PACKAGE_HEADER Header;
+ EFI_GUID Guid;
+ // Data per GUID definition may follow
+} EFI_HII_GUID_PACKAGE_HDR;
+
+//
+// Definitions for String Package
+// Section 27.3.6
+//
+
+
+
+
+///
+/// The fixed header consists of a standard record header and then the string identifiers
+/// contained in this section and the offsets of the string and language information.
+///
+typedef struct _EFI_HII_STRING_PACKAGE_HDR {
+ EFI_HII_PACKAGE_HEADER Header;
+ UINT32 HdrSize;
+ UINT32 StringInfoOffset;
+ CHAR16 LanguageWindow[16];
+ EFI_STRING_ID LanguageName;
+ CHAR8 Language[1];
+} EFI_HII_STRING_PACKAGE_HDR;
+
+typedef struct {
+ UINT8 BlockType;
+} EFI_HII_STRING_BLOCK;
+
+//
+// Value of different string information block types
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+//
+// Definition of different string information block types
+//
+
+typedef struct _EFI_HII_SIBT_DUPLICATE_BLOCK {
+ EFI_HII_STRING_BLOCK Header;
+ EFI_STRING_ID StringId;
+} EFI_HII_SIBT_DUPLICATE_BLOCK;
+
+typedef struct _EFI_HII_SIBT_END_BLOCK {
+ EFI_HII_STRING_BLOCK Header;
+} EFI_HII_SIBT_END_BLOCK;
+
+typedef struct _EFI_HII_SIBT_EXT1_BLOCK {
+ EFI_HII_STRING_BLOCK Header;
+ UINT8 BlockType2;
+ UINT8 Length;
+} EFI_HII_SIBT_EXT1_BLOCK;
+
+typedef struct _EFI_HII_SIBT_EXT2_BLOCK {
+ EFI_HII_STRING_BLOCK Header;
+ UINT8 BlockType2;
+ UINT16 Length;
+} EFI_HII_SIBT_EXT2_BLOCK;
+
+typedef struct _EFI_HII_SIBT_EXT4_BLOCK {
+ EFI_HII_STRING_BLOCK Header;
+ UINT8 BlockType2;
+ UINT32 Length;
+} EFI_HII_SIBT_EXT4_BLOCK;
+
+typedef struct _EFI_HII_SIBT_FONT_BLOCK {
+ EFI_HII_SIBT_EXT2_BLOCK Header;
+ UINT8 FontId;
+ UINT16 FontSize;
+ EFI_HII_FONT_STYLE FontStyle;
+ CHAR16 FontName[1];
+} EFI_HII_SIBT_FONT_BLOCK;
+
+typedef struct _EFI_HII_SIBT_SKIP1_BLOCK {
+ EFI_HII_STRING_BLOCK Header;
+ UINT8 SkipCount;
+} EFI_HII_SIBT_SKIP1_BLOCK;
+
+typedef struct _EFI_HII_SIBT_SKIP2_BLOCK {
+ EFI_HII_STRING_BLOCK Header;
+ UINT16 SkipCount;
+} EFI_HII_SIBT_SKIP2_BLOCK;
+
+typedef struct _EFI_HII_SIBT_STRING_SCSU_BLOCK {
+ EFI_HII_STRING_BLOCK Header;
+ UINT8 StringText[1];
+} EFI_HII_SIBT_STRING_SCSU_BLOCK;
+
+typedef struct _EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK {
+ EFI_HII_STRING_BLOCK Header;
+ UINT8 FontIdentifier;
+ UINT8 StringText[1];
+} EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK;
+
+typedef struct _EFI_HII_SIBT_STRINGS_SCSU_BLOCK {
+ EFI_HII_STRING_BLOCK Header;
+ UINT16 StringCount;
+ UINT8 StringText[1];
+} EFI_HII_SIBT_STRINGS_SCSU_BLOCK;
+
+typedef struct _EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK {
+ EFI_HII_STRING_BLOCK Header;
+ UINT8 FontIdentifier;
+ UINT16 StringCount;
+ UINT8 StringText[1];
+} EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK;
+
+typedef struct _EFI_HII_SIBT_STRING_UCS2_BLOCK {
+ EFI_HII_STRING_BLOCK Header;
+ CHAR16 StringText[1];
+} EFI_HII_SIBT_STRING_UCS2_BLOCK;
+
+typedef struct _EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK {
+ EFI_HII_STRING_BLOCK Header;
+ UINT8 FontIdentifier;
+ CHAR16 StringText[1];
+} EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK;
+
+typedef struct _EFI_HII_SIBT_STRINGS_UCS2_BLOCK {
+ EFI_HII_STRING_BLOCK Header;
+ UINT16 StringCount;
+ CHAR16 StringText[1];
+} EFI_HII_SIBT_STRINGS_UCS2_BLOCK;
+
+typedef struct _EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK {
+ EFI_HII_STRING_BLOCK Header;
+ UINT8 FontIdentifier;
+ UINT16 StringCount;
+ CHAR16 StringText[1];
+} EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK;
+
+//
+// Definitions for Image Package
+// Section 27.3.7
+//
+
+typedef struct _EFI_HII_IMAGE_PACKAGE_HDR {
+ EFI_HII_PACKAGE_HEADER Header;
+ UINT32 ImageInfoOffset;
+ UINT32 PaletteInfoOffset;
+} EFI_HII_IMAGE_PACKAGE_HDR;
+
+typedef struct _EFI_HII_IMAGE_BLOCK {
+ UINT8 BlockType;
+} EFI_HII_IMAGE_BLOCK;
+
+//
+// Value of different image information block types
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+//
+// Definition of different image information block types
+//
+
+typedef struct _EFI_HII_IIBT_END_BLOCK {
+ EFI_HII_IMAGE_BLOCK Header;
+} EFI_HII_IIBT_END_BLOCK;
+
+typedef struct _EFI_HII_IIBT_EXT1_BLOCK {
+ EFI_HII_IMAGE_BLOCK Header;
+ UINT8 BlockType2;
+ UINT8 Length;
+} EFI_HII_IIBT_EXT1_BLOCK;
+
+typedef struct _EFI_HII_IIBT_EXT2_BLOCK {
+ EFI_HII_IMAGE_BLOCK Header;
+ UINT8 BlockType2;
+ UINT16 Length;
+} EFI_HII_IIBT_EXT2_BLOCK;
+
+typedef struct _EFI_HII_IIBT_EXT4_BLOCK {
+ EFI_HII_IMAGE_BLOCK Header;
+ UINT8 BlockType2;
+ UINT32 Length;
+} EFI_HII_IIBT_EXT4_BLOCK;
+
+typedef struct _EFI_HII_IIBT_IMAGE_1BIT_BASE {
+ UINT16 Width;
+ UINT16 Height;
+ UINT8 Data[1];
+} EFI_HII_IIBT_IMAGE_1BIT_BASE;
+
+typedef struct _EFI_HII_IIBT_IMAGE_1BIT_BLOCK {
+ EFI_HII_IMAGE_BLOCK Header;
+ UINT8 PaletteIndex;
+ EFI_HII_IIBT_IMAGE_1BIT_BASE Bitmap;
+} EFI_HII_IIBT_IMAGE_1BIT_BLOCK;
+
+typedef struct _EFI_HII_IIBT_IMAGE_1BIT_TRANS_BLOCK {
+ EFI_HII_IMAGE_BLOCK Header;
+ UINT8 PaletteIndex;
+ EFI_HII_IIBT_IMAGE_1BIT_BASE Bitmap;
+} EFI_HII_IIBT_IMAGE_1BIT_TRANS_BLOCK;
+
+typedef struct _EFI_HII_RGB_PIXEL {
+ UINT8 b;
+ UINT8 g;
+ UINT8 r;
+} EFI_HII_RGB_PIXEL;
+
+typedef struct _EFI_HII_IIBT_IMAGE_24BIT_BASE {
+ UINT16 Width;
+ UINT16 Height;
+ EFI_HII_RGB_PIXEL Bitmap[1];
+} EFI_HII_IIBT_IMAGE_24BIT_BASE;
+
+typedef struct _EFI_HII_IIBT_IMAGE_24BIT_BLOCK {
+ EFI_HII_IMAGE_BLOCK Header;
+ EFI_HII_IIBT_IMAGE_24BIT_BASE Bitmap;
+} EFI_HII_IIBT_IMAGE_24BIT_BLOCK;
+
+typedef struct _EFI_HII_IIBT_IMAGE_24BIT_TRANS_BLOCK {
+ EFI_HII_IMAGE_BLOCK Header;
+ EFI_HII_IIBT_IMAGE_24BIT_BASE Bitmap;
+} EFI_HII_IIBT_IMAGE_24BIT_TRANS_BLOCK;
+
+typedef struct _EFI_HII_IIBT_IMAGE_4BIT_BASE {
+ UINT16 Width;
+ UINT16 Height;
+ UINT8 Data[1];
+} EFI_HII_IIBT_IMAGE_4BIT_BASE;
+
+typedef struct _EFI_HII_IIBT_IMAGE_4BIT_BLOCK {
+ EFI_HII_IMAGE_BLOCK Header;
+ UINT8 PaletteIndex;
+ EFI_HII_IIBT_IMAGE_4BIT_BASE Bitmap;
+} EFI_HII_IIBT_IMAGE_4BIT_BLOCK;
+
+typedef struct _EFI_HII_IIBT_IMAGE_4BIT_TRANS_BLOCK {
+ EFI_HII_IMAGE_BLOCK Header;
+ UINT8 PaletteIndex;
+ EFI_HII_IIBT_IMAGE_4BIT_BASE Bitmap;
+} EFI_HII_IIBT_IMAGE_4BIT_TRANS_BLOCK;
+
+typedef struct _EFI_HII_IIBT_IMAGE_8BIT_BASE {
+ UINT16 Width;
+ UINT16 Height;
+ UINT8 Data[1];
+} EFI_HII_IIBT_IMAGE_8BIT_BASE;
+
+typedef struct _EFI_HII_IIBT_IMAGE_8BIT_PALETTE_BLOCK {
+ EFI_HII_IMAGE_BLOCK Header;
+ UINT8 PaletteIndex;
+ EFI_HII_IIBT_IMAGE_8BIT_BASE Bitmap;
+} EFI_HII_IIBT_IMAGE_8BIT_BLOCK;
+
+typedef struct _EFI_HII_IIBT_IMAGE_8BIT_TRANS_BLOCK {
+ EFI_HII_IMAGE_BLOCK Header;
+ UINT8 PaletteIndex;
+ EFI_HII_IIBT_IMAGE_8BIT_BASE Bitmap;
+} EFI_HII_IIBT_IMAGE_8BIT_TRAN_BLOCK;
+
+typedef struct _EFI_HII_IIBT_DUPLICATE_BLOCK {
+ EFI_HII_IMAGE_BLOCK Header;
+ EFI_IMAGE_ID ImageId;
+} EFI_HII_IIBT_DUPLICATE_BLOCK;
+
+typedef struct _EFI_HII_IIBT_JPEG_BLOCK {
+ EFI_HII_IMAGE_BLOCK Header;
+ UINT32 Size;
+ UINT8 Data[1];
+} EFI_HII_IIBT_JPEG_BLOCK;
+
+typedef struct _EFI_HII_IIBT_PNG_BLOCK {
+ EFI_HII_IMAGE_BLOCK Header;
+ UINT32 Size;
+ UINT8 Data[1];
+} EFI_HII_IIBT_PNG_BLOCK;
+
+typedef struct _EFI_HII_IIBT_SKIP1_BLOCK {
+ EFI_HII_IMAGE_BLOCK Header;
+ UINT8 SkipCount;
+} EFI_HII_IIBT_SKIP1_BLOCK;
+
+typedef struct _EFI_HII_IIBT_SKIP2_BLOCK {
+ EFI_HII_IMAGE_BLOCK Header;
+ UINT16 SkipCount;
+} EFI_HII_IIBT_SKIP2_BLOCK;
+
+//
+// Definitions for Palette Information
+//
+
+typedef struct _EFI_HII_IMAGE_PALETTE_INFO_HEADER {
+ UINT16 PaletteCount;
+} EFI_HII_IMAGE_PALETTE_INFO_HEADER;
+
+typedef struct _EFI_HII_IMAGE_PALETTE_INFO {
+ UINT16 PaletteSize;
+ EFI_HII_RGB_PIXEL PaletteValue[1];
+} EFI_HII_IMAGE_PALETTE_INFO;
+
+//
+// Definitions for Forms Package
+// Section 27.3.8
+//
+
+///
+/// The Form package is used to carry form-based encoding data.
+///
+typedef struct _EFI_HII_FORM_PACKAGE_HDR {
+ EFI_HII_PACKAGE_HEADER Header;
+ // EFI_IFR_OP_HEADER OpCodeHeader;
+ // More op-codes follow
+} EFI_HII_FORM_PACKAGE_HDR;
+
+typedef struct {
+ UINT8 Hour;
+ UINT8 Minute;
+ UINT8 Second;
+} EFI_HII_TIME;
+
+typedef struct {
+ UINT16 Year;
+ UINT8 Month;
+ UINT8 Day;
+} EFI_HII_DATE;
+
+typedef struct {
+ EFI_QUESTION_ID QuestionId;
+ EFI_FORM_ID FormId;
+ EFI_GUID FormSetGuid;
+ EFI_STRING_ID DevicePath;
+} EFI_HII_REF;
+
+typedef union {
+ UINT8 u8;
+ UINT16 u16;
+ UINT32 u32;
+ UINT64 u64;
+ BOOLEAN b;
+ EFI_HII_TIME time;
+ EFI_HII_DATE date;
+ EFI_STRING_ID string; ///< EFI_IFR_TYPE_STRING, EFI_IFR_TYPE_ACTION
+ EFI_HII_REF ref; ///< EFI_IFR_TYPE_REF
+ // UINT8 buffer[]; ///< EFI_IFR_TYPE_BUFFER
+} EFI_IFR_TYPE_VALUE;
+
+//
+// IFR Opcodes
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+//
+// Definitions of IFR Standard Headers
+// Section 27.3.8.2
+//
+
+typedef struct _EFI_IFR_OP_HEADER {
+ UINT8 OpCode;
+ UINT8 Length : 7;
+ UINT8 Scope : 1;
+} EFI_IFR_OP_HEADER;
+
+typedef struct _EFI_IFR_STATEMENT_HEADER {
+ EFI_STRING_ID Prompt;
+ EFI_STRING_ID Help;
+} EFI_IFR_STATEMENT_HEADER;
+
+typedef struct _EFI_IFR_QUESTION_HEADER {
+ EFI_IFR_STATEMENT_HEADER Header;
+ EFI_QUESTION_ID QuestionId;
+ EFI_VARSTORE_ID VarStoreId;
+ union {
+ EFI_STRING_ID VarName;
+ UINT16 VarOffset;
+ } VarStoreInfo;
+ UINT8 Flags;
+} EFI_IFR_QUESTION_HEADER;
+
+//
+// Flag values of EFI_IFR_QUESTION_HEADER
+//
+
+
+
+
+
+
+
+//
+// Definition for Opcode Reference
+// Section 27.3.8.3
+//
+typedef struct _EFI_IFR_DEFAULTSTORE {
+ EFI_IFR_OP_HEADER Header;
+ EFI_STRING_ID DefaultName;
+ UINT16 DefaultId;
+} EFI_IFR_DEFAULTSTORE;
+
+//
+// Default Identifier of default store
+//
+
+
+
+
+
+
+
+
+
+
+typedef struct _EFI_IFR_VARSTORE {
+ EFI_IFR_OP_HEADER Header;
+ EFI_GUID Guid;
+ EFI_VARSTORE_ID VarStoreId;
+ UINT16 Size;
+ UINT8 Name[1];
+} EFI_IFR_VARSTORE;
+
+typedef struct _EFI_IFR_VARSTORE_EFI {
+ EFI_IFR_OP_HEADER Header;
+ EFI_VARSTORE_ID VarStoreId;
+ EFI_GUID Guid;
+ UINT32 Attributes;
+ UINT16 Size;
+ UINT8 Name[1];
+} EFI_IFR_VARSTORE_EFI;
+
+typedef struct _EFI_IFR_VARSTORE_NAME_VALUE {
+ EFI_IFR_OP_HEADER Header;
+ EFI_VARSTORE_ID VarStoreId;
+ EFI_GUID Guid;
+} EFI_IFR_VARSTORE_NAME_VALUE;
+
+typedef struct _EFI_IFR_FORM_SET {
+ EFI_IFR_OP_HEADER Header;
+ EFI_GUID Guid;
+ EFI_STRING_ID FormSetTitle;
+ EFI_STRING_ID Help;
+ UINT8 Flags;
+ // EFI_GUID ClassGuid[];
+} EFI_IFR_FORM_SET;
+
+typedef struct _EFI_IFR_END {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_END;
+
+typedef struct _EFI_IFR_FORM {
+ EFI_IFR_OP_HEADER Header;
+ UINT16 FormId;
+ EFI_STRING_ID FormTitle;
+} EFI_IFR_FORM;
+
+typedef struct _EFI_IFR_IMAGE {
+ EFI_IFR_OP_HEADER Header;
+ EFI_IMAGE_ID Id;
+} EFI_IFR_IMAGE;
+
+typedef struct _EFI_IFR_MODAL_TAG {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_MODAL_TAG;
+
+typedef struct _EFI_IFR_LOCKED {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_LOCKED;
+
+typedef struct _EFI_IFR_RULE {
+ EFI_IFR_OP_HEADER Header;
+ UINT8 RuleId;
+} EFI_IFR_RULE;
+
+typedef struct _EFI_IFR_DEFAULT {
+ EFI_IFR_OP_HEADER Header;
+ UINT16 DefaultId;
+ UINT8 Type;
+ EFI_IFR_TYPE_VALUE Value;
+} EFI_IFR_DEFAULT;
+
+typedef struct _EFI_IFR_DEFAULT_2 {
+ EFI_IFR_OP_HEADER Header;
+ UINT16 DefaultId;
+ UINT8 Type;
+} EFI_IFR_DEFAULT_2;
+
+typedef struct _EFI_IFR_VALUE {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_VALUE;
+
+typedef struct _EFI_IFR_SUBTITLE {
+ EFI_IFR_OP_HEADER Header;
+ EFI_IFR_STATEMENT_HEADER Statement;
+ UINT8 Flags;
+} EFI_IFR_SUBTITLE;
+
+
+
+typedef struct _EFI_IFR_CHECKBOX {
+ EFI_IFR_OP_HEADER Header;
+ EFI_IFR_QUESTION_HEADER Question;
+ UINT8 Flags;
+} EFI_IFR_CHECKBOX;
+
+
+
+
+typedef struct _EFI_IFR_TEXT {
+ EFI_IFR_OP_HEADER Header;
+ EFI_IFR_STATEMENT_HEADER Statement;
+ EFI_STRING_ID TextTwo;
+} EFI_IFR_TEXT;
+
+typedef struct _EFI_IFR_REF {
+ EFI_IFR_OP_HEADER Header;
+ EFI_IFR_QUESTION_HEADER Question;
+ EFI_FORM_ID FormId;
+} EFI_IFR_REF;
+
+typedef struct _EFI_IFR_REF2 {
+ EFI_IFR_OP_HEADER Header;
+ EFI_IFR_QUESTION_HEADER Question;
+ EFI_FORM_ID FormId;
+ EFI_QUESTION_ID QuestionId;
+} EFI_IFR_REF2;
+
+typedef struct _EFI_IFR_REF3 {
+ EFI_IFR_OP_HEADER Header;
+ EFI_IFR_QUESTION_HEADER Question;
+ EFI_FORM_ID FormId;
+ EFI_QUESTION_ID QuestionId;
+ EFI_GUID FormSetId;
+} EFI_IFR_REF3;
+
+typedef struct _EFI_IFR_REF4 {
+ EFI_IFR_OP_HEADER Header;
+ EFI_IFR_QUESTION_HEADER Question;
+ EFI_FORM_ID FormId;
+ EFI_QUESTION_ID QuestionId;
+ EFI_GUID FormSetId;
+ EFI_STRING_ID DevicePath;
+} EFI_IFR_REF4;
+
+typedef struct _EFI_IFR_REF5 {
+ EFI_IFR_OP_HEADER Header;
+ EFI_IFR_QUESTION_HEADER Question;
+} EFI_IFR_REF5;
+
+typedef struct _EFI_IFR_RESET_BUTTON {
+ EFI_IFR_OP_HEADER Header;
+ EFI_IFR_STATEMENT_HEADER Statement;
+ EFI_DEFAULT_ID DefaultId;
+} EFI_IFR_RESET_BUTTON;
+
+typedef struct _EFI_IFR_ACTION {
+ EFI_IFR_OP_HEADER Header;
+ EFI_IFR_QUESTION_HEADER Question;
+ EFI_STRING_ID QuestionConfig;
+} EFI_IFR_ACTION;
+
+typedef struct _EFI_IFR_ACTION_1 {
+ EFI_IFR_OP_HEADER Header;
+ EFI_IFR_QUESTION_HEADER Question;
+} EFI_IFR_ACTION_1;
+
+typedef struct _EFI_IFR_DATE {
+ EFI_IFR_OP_HEADER Header;
+ EFI_IFR_QUESTION_HEADER Question;
+ UINT8 Flags;
+} EFI_IFR_DATE;
+
+//
+// Flags that describe the behavior of the question.
+//
+
+
+
+
+
+
+
+
+
+typedef union {
+ struct {
+ UINT8 MinValue;
+ UINT8 MaxValue;
+ UINT8 Step;
+ } u8;
+ struct {
+ UINT16 MinValue;
+ UINT16 MaxValue;
+ UINT16 Step;
+ } u16;
+ struct {
+ UINT32 MinValue;
+ UINT32 MaxValue;
+ UINT32 Step;
+ } u32;
+ struct {
+ UINT64 MinValue;
+ UINT64 MaxValue;
+ UINT64 Step;
+ } u64;
+} MINMAXSTEP_DATA;
+
+typedef struct _EFI_IFR_NUMERIC {
+ EFI_IFR_OP_HEADER Header;
+ EFI_IFR_QUESTION_HEADER Question;
+ UINT8 Flags;
+ MINMAXSTEP_DATA data;
+} EFI_IFR_NUMERIC;
+
+//
+// Flags related to the numeric question
+//
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _EFI_IFR_ONE_OF {
+ EFI_IFR_OP_HEADER Header;
+ EFI_IFR_QUESTION_HEADER Question;
+ UINT8 Flags;
+ MINMAXSTEP_DATA data;
+} EFI_IFR_ONE_OF;
+
+typedef struct _EFI_IFR_STRING {
+ EFI_IFR_OP_HEADER Header;
+ EFI_IFR_QUESTION_HEADER Question;
+ UINT8 MinSize;
+ UINT8 MaxSize;
+ UINT8 Flags;
+} EFI_IFR_STRING;
+
+
+
+typedef struct _EFI_IFR_PASSWORD {
+ EFI_IFR_OP_HEADER Header;
+ EFI_IFR_QUESTION_HEADER Question;
+ UINT16 MinSize;
+ UINT16 MaxSize;
+} EFI_IFR_PASSWORD;
+
+typedef struct _EFI_IFR_ORDERED_LIST {
+ EFI_IFR_OP_HEADER Header;
+ EFI_IFR_QUESTION_HEADER Question;
+ UINT8 MaxContainers;
+ UINT8 Flags;
+} EFI_IFR_ORDERED_LIST;
+
+
+
+
+typedef struct _EFI_IFR_TIME {
+ EFI_IFR_OP_HEADER Header;
+ EFI_IFR_QUESTION_HEADER Question;
+ UINT8 Flags;
+} EFI_IFR_TIME;
+
+//
+// A bit-mask that determines which unique settings are active for this opcode.
+//
+
+
+
+
+
+
+
+
+
+typedef struct _EFI_IFR_DISABLE_IF {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_DISABLE_IF;
+
+typedef struct _EFI_IFR_SUPPRESS_IF {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_SUPPRESS_IF;
+
+typedef struct _EFI_IFR_GRAY_OUT_IF {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_GRAY_OUT_IF;
+
+typedef struct _EFI_IFR_INCONSISTENT_IF {
+ EFI_IFR_OP_HEADER Header;
+ EFI_STRING_ID Error;
+} EFI_IFR_INCONSISTENT_IF;
+
+typedef struct _EFI_IFR_NO_SUBMIT_IF {
+ EFI_IFR_OP_HEADER Header;
+ EFI_STRING_ID Error;
+} EFI_IFR_NO_SUBMIT_IF;
+
+typedef struct _EFI_IFR_WARNING_IF {
+ EFI_IFR_OP_HEADER Header;
+ EFI_STRING_ID Warning;
+ UINT8 TimeOut;
+} EFI_IFR_WARNING_IF;
+
+typedef struct _EFI_IFR_REFRESH {
+ EFI_IFR_OP_HEADER Header;
+ UINT8 RefreshInterval;
+} EFI_IFR_REFRESH;
+
+typedef struct _EFI_IFR_VARSTORE_DEVICE {
+ EFI_IFR_OP_HEADER Header;
+ EFI_STRING_ID DevicePath;
+} EFI_IFR_VARSTORE_DEVICE;
+
+typedef struct _EFI_IFR_ONE_OF_OPTION {
+ EFI_IFR_OP_HEADER Header;
+ EFI_STRING_ID Option;
+ UINT8 Flags;
+ UINT8 Type;
+ EFI_IFR_TYPE_VALUE Value;
+} EFI_IFR_ONE_OF_OPTION;
+
+//
+// Types of the option's value.
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _EFI_IFR_GUID {
+ EFI_IFR_OP_HEADER Header;
+ EFI_GUID Guid;
+ // Optional Data Follows
+} EFI_IFR_GUID;
+
+typedef struct _EFI_IFR_REFRESH_ID {
+ EFI_IFR_OP_HEADER Header;
+ EFI_GUID RefreshEventGroupId;
+} EFI_IFR_REFRESH_ID;
+
+typedef struct _EFI_IFR_DUP {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_DUP;
+
+typedef struct _EFI_IFR_EQ_ID_ID {
+ EFI_IFR_OP_HEADER Header;
+ EFI_QUESTION_ID QuestionId1;
+ EFI_QUESTION_ID QuestionId2;
+} EFI_IFR_EQ_ID_ID;
+
+typedef struct _EFI_IFR_EQ_ID_VAL {
+ EFI_IFR_OP_HEADER Header;
+ EFI_QUESTION_ID QuestionId;
+ UINT16 Value;
+} EFI_IFR_EQ_ID_VAL;
+
+typedef struct _EFI_IFR_EQ_ID_VAL_LIST {
+ EFI_IFR_OP_HEADER Header;
+ EFI_QUESTION_ID QuestionId;
+ UINT16 ListLength;
+ UINT16 ValueList[1];
+} EFI_IFR_EQ_ID_VAL_LIST;
+
+typedef struct _EFI_IFR_UINT8 {
+ EFI_IFR_OP_HEADER Header;
+ UINT8 Value;
+} EFI_IFR_UINT8;
+
+typedef struct _EFI_IFR_UINT16 {
+ EFI_IFR_OP_HEADER Header;
+ UINT16 Value;
+} EFI_IFR_UINT16;
+
+typedef struct _EFI_IFR_UINT32 {
+ EFI_IFR_OP_HEADER Header;
+ UINT32 Value;
+} EFI_IFR_UINT32;
+
+typedef struct _EFI_IFR_UINT64 {
+ EFI_IFR_OP_HEADER Header;
+ UINT64 Value;
+} EFI_IFR_UINT64;
+
+typedef struct _EFI_IFR_QUESTION_REF1 {
+ EFI_IFR_OP_HEADER Header;
+ EFI_QUESTION_ID QuestionId;
+} EFI_IFR_QUESTION_REF1;
+
+typedef struct _EFI_IFR_QUESTION_REF2 {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_QUESTION_REF2;
+
+typedef struct _EFI_IFR_QUESTION_REF3 {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_QUESTION_REF3;
+
+typedef struct _EFI_IFR_QUESTION_REF3_2 {
+ EFI_IFR_OP_HEADER Header;
+ EFI_STRING_ID DevicePath;
+} EFI_IFR_QUESTION_REF3_2;
+
+typedef struct _EFI_IFR_QUESTION_REF3_3 {
+ EFI_IFR_OP_HEADER Header;
+ EFI_STRING_ID DevicePath;
+ EFI_GUID Guid;
+} EFI_IFR_QUESTION_REF3_3;
+
+typedef struct _EFI_IFR_RULE_REF {
+ EFI_IFR_OP_HEADER Header;
+ UINT8 RuleId;
+} EFI_IFR_RULE_REF;
+
+typedef struct _EFI_IFR_STRING_REF1 {
+ EFI_IFR_OP_HEADER Header;
+ EFI_STRING_ID StringId;
+} EFI_IFR_STRING_REF1;
+
+typedef struct _EFI_IFR_STRING_REF2 {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_STRING_REF2;
+
+typedef struct _EFI_IFR_THIS {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_THIS;
+
+typedef struct _EFI_IFR_TRUE {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_TRUE;
+
+typedef struct _EFI_IFR_FALSE {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_FALSE;
+
+typedef struct _EFI_IFR_ONE {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_ONE;
+
+typedef struct _EFI_IFR_ONES {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_ONES;
+
+typedef struct _EFI_IFR_ZERO {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_ZERO;
+
+typedef struct _EFI_IFR_UNDEFINED {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_UNDEFINED;
+
+typedef struct _EFI_IFR_VERSION {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_VERSION;
+
+typedef struct _EFI_IFR_LENGTH {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_LENGTH;
+
+typedef struct _EFI_IFR_NOT {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_NOT;
+
+typedef struct _EFI_IFR_BITWISE_NOT {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_BITWISE_NOT;
+
+typedef struct _EFI_IFR_TO_BOOLEAN {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_TO_BOOLEAN;
+
+///
+/// For EFI_IFR_TO_STRING, when converting from
+/// unsigned integers, these flags control the format:
+/// 0 = unsigned decimal.
+/// 1 = signed decimal.
+/// 2 = hexadecimal (lower-case alpha).
+/// 3 = hexadecimal (upper-case alpha).
+///@{
+
+
+
+
+///@}
+
+///
+/// When converting from a buffer, these flags control the format:
+/// 0 = ASCII.
+/// 8 = Unicode.
+///@{
+
+
+///@}
+
+typedef struct _EFI_IFR_TO_STRING {
+ EFI_IFR_OP_HEADER Header;
+ UINT8 Format;
+} EFI_IFR_TO_STRING;
+
+typedef struct _EFI_IFR_TO_UINT {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_TO_UINT;
+
+typedef struct _EFI_IFR_TO_UPPER {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_TO_UPPER;
+
+typedef struct _EFI_IFR_TO_LOWER {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_TO_LOWER;
+
+typedef struct _EFI_IFR_ADD {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_ADD;
+
+typedef struct _EFI_IFR_AND {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_AND;
+
+typedef struct _EFI_IFR_BITWISE_AND {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_BITWISE_AND;
+
+typedef struct _EFI_IFR_BITWISE_OR {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_BITWISE_OR;
+
+typedef struct _EFI_IFR_CATENATE {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_CATENATE;
+
+typedef struct _EFI_IFR_DIVIDE {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_DIVIDE;
+
+typedef struct _EFI_IFR_EQUAL {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_EQUAL;
+
+typedef struct _EFI_IFR_GREATER_EQUAL {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_GREATER_EQUAL;
+
+typedef struct _EFI_IFR_GREATER_THAN {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_GREATER_THAN;
+
+typedef struct _EFI_IFR_LESS_EQUAL {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_LESS_EQUAL;
+
+typedef struct _EFI_IFR_LESS_THAN {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_LESS_THAN;
+
+typedef struct _EFI_IFR_MATCH {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_MATCH;
+
+typedef struct _EFI_IFR_MATCH2 {
+ EFI_IFR_OP_HEADER Header;
+ EFI_GUID SyntaxType;
+} EFI_IFR_MATCH2;
+
+typedef struct _EFI_IFR_MULTIPLY {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_MULTIPLY;
+
+typedef struct _EFI_IFR_MODULO {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_MODULO;
+
+typedef struct _EFI_IFR_NOT_EQUAL {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_NOT_EQUAL;
+
+typedef struct _EFI_IFR_OR {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_OR;
+
+typedef struct _EFI_IFR_SHIFT_LEFT {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_SHIFT_LEFT;
+
+typedef struct _EFI_IFR_SHIFT_RIGHT {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_SHIFT_RIGHT;
+
+typedef struct _EFI_IFR_SUBTRACT {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_SUBTRACT;
+
+typedef struct _EFI_IFR_CONDITIONAL {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_CONDITIONAL;
+
+//
+// Flags governing the matching criteria of EFI_IFR_FIND
+//
+
+
+
+typedef struct _EFI_IFR_FIND {
+ EFI_IFR_OP_HEADER Header;
+ UINT8 Format;
+} EFI_IFR_FIND;
+
+typedef struct _EFI_IFR_MID {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_MID;
+
+typedef struct _EFI_IFR_TOKEN {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_TOKEN;
+
+//
+// Flags specifying whether to find the first matching string
+// or the first non-matching string.
+//
+
+
+
+typedef struct _EFI_IFR_SPAN {
+ EFI_IFR_OP_HEADER Header;
+ UINT8 Flags;
+} EFI_IFR_SPAN;
+
+typedef struct _EFI_IFR_SECURITY {
+ ///
+ /// Standard opcode header, where Header.Op = EFI_IFR_SECURITY_OP.
+ ///
+ EFI_IFR_OP_HEADER Header;
+ ///
+ /// Security permission level.
+ ///
+ EFI_GUID Permissions;
+} EFI_IFR_SECURITY;
+
+typedef struct _EFI_IFR_FORM_MAP_METHOD {
+ ///
+ /// The string identifier which provides the human-readable name of
+ /// the configuration method for this standards map form.
+ ///
+ EFI_STRING_ID MethodTitle;
+ ///
+ /// Identifier which uniquely specifies the configuration methods
+ /// associated with this standards map form.
+ ///
+ EFI_GUID MethodIdentifier;
+} EFI_IFR_FORM_MAP_METHOD;
+
+typedef struct _EFI_IFR_FORM_MAP {
+ ///
+ /// The sequence that defines the type of opcode as well as the length
+ /// of the opcode being defined. Header.OpCode = EFI_IFR_FORM_MAP_OP.
+ ///
+ EFI_IFR_OP_HEADER Header;
+ ///
+ /// The unique identifier for this particular form.
+ ///
+ EFI_FORM_ID FormId;
+ ///
+ /// One or more configuration method's name and unique identifier.
+ ///
+ // EFI_IFR_FORM_MAP_METHOD Methods[];
+} EFI_IFR_FORM_MAP;
+
+typedef struct _EFI_IFR_SET {
+ ///
+ /// The sequence that defines the type of opcode as well as the length
+ /// of the opcode being defined. Header.OpCode = EFI_IFR_SET_OP.
+ ///
+ EFI_IFR_OP_HEADER Header;
+ ///
+ /// Specifies the identifier of a previously declared variable store to
+ /// use when storing the question's value.
+ ///
+ EFI_VARSTORE_ID VarStoreId;
+ union {
+ ///
+ /// A 16-bit Buffer Storage offset.
+ ///
+ EFI_STRING_ID VarName;
+ ///
+ /// A Name Value or EFI Variable name (VarName).
+ ///
+ UINT16 VarOffset;
+ } VarStoreInfo;
+ ///
+ /// Specifies the type used for storage.
+ ///
+ UINT8 VarStoreType;
+} EFI_IFR_SET;
+
+typedef struct _EFI_IFR_GET {
+ ///
+ /// The sequence that defines the type of opcode as well as the length
+ /// of the opcode being defined. Header.OpCode = EFI_IFR_GET_OP.
+ ///
+ EFI_IFR_OP_HEADER Header;
+ ///
+ /// Specifies the identifier of a previously declared variable store to
+ /// use when retrieving the value.
+ ///
+ EFI_VARSTORE_ID VarStoreId;
+ union {
+ ///
+ /// A 16-bit Buffer Storage offset.
+ ///
+ EFI_STRING_ID VarName;
+ ///
+ /// A Name Value or EFI Variable name (VarName).
+ ///
+ UINT16 VarOffset;
+ } VarStoreInfo;
+ ///
+ /// Specifies the type used for storage.
+ ///
+ UINT8 VarStoreType;
+} EFI_IFR_GET;
+
+typedef struct _EFI_IFR_READ {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_READ;
+
+typedef struct _EFI_IFR_WRITE {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_WRITE;
+
+typedef struct _EFI_IFR_MAP {
+ EFI_IFR_OP_HEADER Header;
+} EFI_IFR_MAP;
+//
+// Definitions for Keyboard Package
+// Releated definitions are in Section of EFI_HII_DATABASE_PROTOCOL
+//
+
+///
+/// Each enumeration values maps a physical key on a keyboard.
+///
+typedef enum {
+ EfiKeyLCtrl,
+ EfiKeyA0,
+ EfiKeyLAlt,
+ EfiKeySpaceBar,
+ EfiKeyA2,
+ EfiKeyA3,
+ EfiKeyA4,
+ EfiKeyRCtrl,
+ EfiKeyLeftArrow,
+ EfiKeyDownArrow,
+ EfiKeyRightArrow,
+ EfiKeyZero,
+ EfiKeyPeriod,
+ EfiKeyEnter,
+ EfiKeyLShift,
+ EfiKeyB0,
+ EfiKeyB1,
+ EfiKeyB2,
+ EfiKeyB3,
+ EfiKeyB4,
+ EfiKeyB5,
+ EfiKeyB6,
+ EfiKeyB7,
+ EfiKeyB8,
+ EfiKeyB9,
+ EfiKeyB10,
+ EfiKeyRShift,
+ EfiKeyUpArrow,
+ EfiKeyOne,
+ EfiKeyTwo,
+ EfiKeyThree,
+ EfiKeyCapsLock,
+ EfiKeyC1,
+ EfiKeyC2,
+ EfiKeyC3,
+ EfiKeyC4,
+ EfiKeyC5,
+ EfiKeyC6,
+ EfiKeyC7,
+ EfiKeyC8,
+ EfiKeyC9,
+ EfiKeyC10,
+ EfiKeyC11,
+ EfiKeyC12,
+ EfiKeyFour,
+ EfiKeyFive,
+ EfiKeySix,
+ EfiKeyPlus,
+ EfiKeyTab,
+ EfiKeyD1,
+ EfiKeyD2,
+ EfiKeyD3,
+ EfiKeyD4,
+ EfiKeyD5,
+ EfiKeyD6,
+ EfiKeyD7,
+ EfiKeyD8,
+ EfiKeyD9,
+ EfiKeyD10,
+ EfiKeyD11,
+ EfiKeyD12,
+ EfiKeyD13,
+ EfiKeyDel,
+ EfiKeyEnd,
+ EfiKeyPgDn,
+ EfiKeySeven,
+ EfiKeyEight,
+ EfiKeyNine,
+ EfiKeyE0,
+ EfiKeyE1,
+ EfiKeyE2,
+ EfiKeyE3,
+ EfiKeyE4,
+ EfiKeyE5,
+ EfiKeyE6,
+ EfiKeyE7,
+ EfiKeyE8,
+ EfiKeyE9,
+ EfiKeyE10,
+ EfiKeyE11,
+ EfiKeyE12,
+ EfiKeyBackSpace,
+ EfiKeyIns,
+ EfiKeyHome,
+ EfiKeyPgUp,
+ EfiKeyNLck,
+ EfiKeySlash,
+ EfiKeyAsterisk,
+ EfiKeyMinus,
+ EfiKeyEsc,
+ EfiKeyF1,
+ EfiKeyF2,
+ EfiKeyF3,
+ EfiKeyF4,
+ EfiKeyF5,
+ EfiKeyF6,
+ EfiKeyF7,
+ EfiKeyF8,
+ EfiKeyF9,
+ EfiKeyF10,
+ EfiKeyF11,
+ EfiKeyF12,
+ EfiKeyPrint,
+ EfiKeySLck,
+ EfiKeyPause
+} EFI_KEY;
+
+typedef struct {
+ ///
+ /// Used to describe a physical key on a keyboard.
+ ///
+ EFI_KEY Key;
+ ///
+ /// Unicode character code for the Key.
+ ///
+ CHAR16 Unicode;
+ ///
+ /// Unicode character code for the key with the shift key being held down.
+ ///
+ CHAR16 ShiftedUnicode;
+ ///
+ /// Unicode character code for the key with the Alt-GR being held down.
+ ///
+ CHAR16 AltGrUnicode;
+ ///
+ /// Unicode character code for the key with the Alt-GR and shift keys being held down.
+ ///
+ CHAR16 ShiftedAltGrUnicode;
+ ///
+ /// Modifier keys are defined to allow for special functionality that is not necessarily
+ /// accomplished by a printable character. Many of these modifier keys are flags to toggle
+ /// certain state bits on and off inside of a keyboard driver.
+ ///
+ UINT16 Modifier;
+ UINT16 AffectedAttribute;
+} EFI_KEY_DESCRIPTOR;
+
+///
+/// A key which is affected by all the standard shift modifiers.
+/// Most keys would be expected to have this bit active.
+///
+
+
+///
+/// This key is affected by the caps lock so that if a keyboard driver
+/// would need to disambiguate between a key which had a "1" defined
+/// versus an "a" character. Having this bit turned on would tell
+/// the keyboard driver to use the appropriate shifted state or not.
+///
+
+
+///
+/// Similar to the case of CAPS lock, if this bit is active, the key
+/// is affected by the num lock being turned on.
+///
+
+
+typedef struct {
+ UINT16 LayoutLength;
+ EFI_GUID Guid;
+ UINT32 LayoutDescriptorStringOffset;
+ UINT8 DescriptorCount;
+ // EFI_KEY_DESCRIPTOR Descriptors[];
+} EFI_HII_KEYBOARD_LAYOUT;
+
+typedef struct {
+ EFI_HII_PACKAGE_HEADER Header;
+ UINT16 LayoutCount;
+ // EFI_HII_KEYBOARD_LAYOUT Layout[];
+} EFI_HII_KEYBOARD_PACKAGE_HDR;
+
+//
+// Modifier values
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+//
+// Keys that have multiple control functions based on modifier
+// settings are handled in the keyboard driver implementation.
+// For instance, PRINT_KEY might have a modifier held down and
+// is still a nonprinting character, but might have an alternate
+// control function like SYSREQUEST
+//
+
+
+
+
+
+
+
+
+
+
+///
+/// Animation IFR opcode
+///
+typedef struct _EFI_IFR_ANIMATION {
+ ///
+ /// Standard opcode header, where Header.OpCode is
+ /// EFI_IFR_ANIMATION_OP.
+ ///
+ EFI_IFR_OP_HEADER Header;
+ ///
+ /// Animation identifier in the HII database.
+ ///
+ EFI_ANIMATION_ID Id;
+} EFI_IFR_ANIMATION;
+
+///
+/// HII animation package header.
+///
+typedef struct _EFI_HII_ANIMATION_PACKAGE_HDR {
+ ///
+ /// Standard package header, where Header.Type = EFI_HII_PACKAGE_ANIMATIONS.
+ ///
+ EFI_HII_PACKAGE_HEADER Header;
+ ///
+ /// Offset, relative to this header, of the animation information. If
+ /// this is zero, then there are no animation sequences in the package.
+ ///
+ UINT32 AnimationInfoOffset;
+} EFI_HII_ANIMATION_PACKAGE_HDR;
+
+///
+/// Animation information is encoded as a series of blocks,
+/// with each block prefixed by a single byte header EFI_HII_ANIMATION_BLOCK.
+///
+typedef struct _EFI_HII_ANIMATION_BLOCK {
+ UINT8 BlockType;
+ // UINT8 BlockBody[];
+} EFI_HII_ANIMATION_BLOCK;
+
+///
+/// Animation block types.
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// Extended block headers used for variable sized animation records
+/// which need an explicit length.
+///
+
+typedef struct _EFI_HII_AIBT_EXT1_BLOCK {
+ ///
+ /// Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT1.
+ ///
+ EFI_HII_ANIMATION_BLOCK Header;
+ ///
+ /// The block type.
+ ///
+ UINT8 BlockType2;
+ ///
+ /// Size of the animation block, in bytes, including the animation block header.
+ ///
+ UINT8 Length;
+} EFI_HII_AIBT_EXT1_BLOCK;
+
+typedef struct _EFI_HII_AIBT_EXT2_BLOCK {
+ ///
+ /// Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT2.
+ ///
+ EFI_HII_ANIMATION_BLOCK Header;
+ ///
+ /// The block type
+ ///
+ UINT8 BlockType2;
+ ///
+ /// Size of the animation block, in bytes, including the animation block header.
+ ///
+ UINT16 Length;
+} EFI_HII_AIBT_EXT2_BLOCK;
+
+typedef struct _EFI_HII_AIBT_EXT4_BLOCK {
+ ///
+ /// Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT4.
+ ///
+ EFI_HII_ANIMATION_BLOCK Header;
+ ///
+ /// The block type
+ ///
+ UINT8 BlockType2;
+ ///
+ /// Size of the animation block, in bytes, including the animation block header.
+ ///
+ UINT32 Length;
+} EFI_HII_AIBT_EXT4_BLOCK;
+
+typedef struct _EFI_HII_ANIMATION_CELL {
+ ///
+ /// The X offset from the upper left hand corner of the logical
+ /// window to position the indexed image.
+ ///
+ UINT16 OffsetX;
+ ///
+ /// The Y offset from the upper left hand corner of the logical
+ /// window to position the indexed image.
+ ///
+ UINT16 OffsetY;
+ ///
+ /// The image to display at the specified offset from the upper left
+ /// hand corner of the logical window.
+ ///
+ EFI_IMAGE_ID ImageId;
+ ///
+ /// The number of milliseconds to delay after displaying the indexed
+ /// image and before continuing on to the next linked image. If value
+ /// is zero, no delay.
+ ///
+ UINT16 Delay;
+} EFI_HII_ANIMATION_CELL;
+
+///
+/// An animation block to describe an animation sequence that does not cycle, and
+/// where one image is simply displayed over the previous image.
+///
+typedef struct _EFI_HII_AIBT_OVERLAY_IMAGES_BLOCK {
+ ///
+ /// This is image that is to be reference by the image protocols, if the
+ /// animation function is not supported or disabled. This image can
+ /// be one particular image from the animation sequence (if any one
+ /// of the animation frames has a complete image) or an alternate
+ /// image that can be displayed alone. If the value is zero, no image
+ /// is displayed.
+ ///
+ EFI_IMAGE_ID DftImageId;
+ ///
+ /// The overall width of the set of images (logical window width).
+ ///
+ UINT16 Width;
+ ///
+ /// The overall height of the set of images (logical window height).
+ ///
+ UINT16 Height;
+ ///
+ /// The number of EFI_HII_ANIMATION_CELL contained in the
+ /// animation sequence.
+ ///
+ UINT16 CellCount;
+ ///
+ /// An array of CellCount animation cells.
+ ///
+ EFI_HII_ANIMATION_CELL AnimationCell[1];
+} EFI_HII_AIBT_OVERLAY_IMAGES_BLOCK;
+
+///
+/// An animation block to describe an animation sequence that does not cycle,
+/// and where the logical window is cleared to the specified color before
+/// the next image is displayed.
+///
+typedef struct _EFI_HII_AIBT_CLEAR_IMAGES_BLOCK {
+ ///
+ /// This is image that is to be reference by the image protocols, if the
+ /// animation function is not supported or disabled. This image can
+ /// be one particular image from the animation sequence (if any one
+ /// of the animation frames has a complete image) or an alternate
+ /// image that can be displayed alone. If the value is zero, no image
+ /// is displayed.
+ ///
+ EFI_IMAGE_ID DftImageId;
+ ///
+ /// The overall width of the set of images (logical window width).
+ ///
+ UINT16 Width;
+ ///
+ /// The overall height of the set of images (logical window height).
+ ///
+ UINT16 Height;
+ ///
+ /// The number of EFI_HII_ANIMATION_CELL contained in the
+ /// animation sequence.
+ ///
+ UINT16 CellCount;
+ ///
+ /// The color to clear the logical window to before displaying the
+ /// indexed image.
+ ///
+ EFI_HII_RGB_PIXEL BackgndColor;
+ ///
+ /// An array of CellCount animation cells.
+ ///
+ EFI_HII_ANIMATION_CELL AnimationCell[1];
+} EFI_HII_AIBT_CLEAR_IMAGES_BLOCK;
+
+///
+/// An animation block to describe an animation sequence that does not cycle,
+/// and where the screen is restored to the original state before the next
+/// image is displayed.
+///
+typedef struct _EFI_HII_AIBT_RESTORE_SCRN_BLOCK {
+ ///
+ /// This is image that is to be reference by the image protocols, if the
+ /// animation function is not supported or disabled. This image can
+ /// be one particular image from the animation sequence (if any one
+ /// of the animation frames has a complete image) or an alternate
+ /// image that can be displayed alone. If the value is zero, no image
+ /// is displayed.
+ ///
+ EFI_IMAGE_ID DftImageId;
+ ///
+ /// The overall width of the set of images (logical window width).
+ ///
+ UINT16 Width;
+ ///
+ /// The overall height of the set of images (logical window height).
+ ///
+ UINT16 Height;
+ ///
+ /// The number of EFI_HII_ANIMATION_CELL contained in the
+ /// animation sequence.
+ ///
+ UINT16 CellCount;
+ ///
+ /// An array of CellCount animation cells.
+ ///
+ EFI_HII_ANIMATION_CELL AnimationCell[1];
+} EFI_HII_AIBT_RESTORE_SCRN_BLOCK;
+
+///
+/// An animation block to describe an animation sequence that continuously cycles,
+/// and where one image is simply displayed over the previous image.
+///
+typedef EFI_HII_AIBT_OVERLAY_IMAGES_BLOCK EFI_HII_AIBT_OVERLAY_IMAGES_LOOP_BLOCK;
+
+///
+/// An animation block to describe an animation sequence that continuously cycles,
+/// and where the logical window is cleared to the specified color before
+/// the next image is displayed.
+///
+typedef EFI_HII_AIBT_CLEAR_IMAGES_BLOCK EFI_HII_AIBT_CLEAR_IMAGES_LOOP_BLOCK;
+
+///
+/// An animation block to describe an animation sequence that continuously cycles,
+/// and where the screen is restored to the original state before
+/// the next image is displayed.
+///
+typedef EFI_HII_AIBT_RESTORE_SCRN_BLOCK EFI_HII_AIBT_RESTORE_SCRN_LOOP_BLOCK;
+
+///
+/// Assigns a new character value to a previously defined animation sequence.
+///
+typedef struct _EFI_HII_AIBT_DUPLICATE_BLOCK {
+ ///
+ /// The previously defined animation ID with the exact same
+ /// animation information.
+ ///
+ EFI_ANIMATION_ID AnimationId;
+} EFI_HII_AIBT_DUPLICATE_BLOCK;
+
+///
+/// Skips animation IDs.
+///
+typedef struct _EFI_HII_AIBT_SKIP1_BLOCK {
+ ///
+ /// The unsigned 8-bit value to add to AnimationIdCurrent.
+ ///
+ UINT8 SkipCount;
+} EFI_HII_AIBT_SKIP1_BLOCK;
+
+///
+/// Skips animation IDs.
+///
+typedef struct _EFI_HII_AIBT_SKIP2_BLOCK {
+ ///
+ /// The unsigned 16-bit value to add to AnimationIdCurrent.
+ ///
+ UINT16 SkipCount;
+} EFI_HII_AIBT_SKIP2_BLOCK;
+
+#pragma pack()
+
+///
+/// References to string tokens must use this macro to enable scanning for
+/// token usages.
+///
+///
+/// STRING_TOKEN is not defined in UEFI specification. But it is placed
+/// here for the easy access by C files and VFR source files.
+///
+
+
+///
+/// IMAGE_TOKEN is not defined in UEFI specification. But it is placed
+/// here for the easy access by C files and VFR source files.
+///
+
+
+#line 2127 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiInternalFormRepresentation.h"
+
+#line 2230 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiSpec.h"
+
+#line 2232 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Uefi/UefiSpec.h"
+
+#line 15 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\PiDxe.h"
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiDxeCis.h"
+/** @file
+ Include file matches things in PI.
+
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ PI Version 1.7
+
+**/
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiMultiPhase.h"
+/** @file
+ Include file matches things in PI for multiple module types.
+
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ These elements are defined in UEFI Platform Initialization Specification 1.2.
+
+**/
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiFirmwareVolume.h"
+/** @file
+ The firmware volume related definitions in PI.
+
+ Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ PI Version 1.6
+
+**/
+
+
+
+
+///
+/// EFI_FV_FILE_ATTRIBUTES
+///
+typedef UINT32 EFI_FV_FILE_ATTRIBUTES;
+
+//
+// Value of EFI_FV_FILE_ATTRIBUTES.
+//
+
+
+
+
+///
+/// type of EFI FVB attribute
+///
+typedef UINT32 EFI_FVB_ATTRIBUTES_2;
+
+//
+// Attributes bit definitions
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct {
+ ///
+ /// The number of sequential blocks which are of the same size.
+ ///
+ UINT32 NumBlocks;
+ ///
+ /// The size of the blocks.
+ ///
+ UINT32 Length;
+} EFI_FV_BLOCK_MAP_ENTRY;
+
+///
+/// Describes the features and layout of the firmware volume.
+///
+typedef struct {
+ ///
+ /// The first 16 bytes are reserved to allow for the reset vector of
+ /// processors whose reset vector is at address 0.
+ ///
+ UINT8 ZeroVector[16];
+ ///
+ /// Declares the file system with which the firmware volume is formatted.
+ ///
+ EFI_GUID FileSystemGuid;
+ ///
+ /// Length in bytes of the complete firmware volume, including the header.
+ ///
+ UINT64 FvLength;
+ ///
+ /// Set to EFI_FVH_SIGNATURE
+ ///
+ UINT32 Signature;
+ ///
+ /// Declares capabilities and power-on defaults for the firmware volume.
+ ///
+ EFI_FVB_ATTRIBUTES_2 Attributes;
+ ///
+ /// Length in bytes of the complete firmware volume header.
+ ///
+ UINT16 HeaderLength;
+ ///
+ /// A 16-bit checksum of the firmware volume header. A valid header sums to zero.
+ ///
+ UINT16 Checksum;
+ ///
+ /// Offset, relative to the start of the header, of the extended header
+ /// (EFI_FIRMWARE_VOLUME_EXT_HEADER) or zero if there is no extended header.
+ ///
+ UINT16 ExtHeaderOffset;
+ ///
+ /// This field must always be set to zero.
+ ///
+ UINT8 Reserved[1];
+ ///
+ /// Set to 2. Future versions of this specification may define new header fields and will
+ /// increment the Revision field accordingly.
+ ///
+ UINT8 Revision;
+ ///
+ /// An array of run-length encoded FvBlockMapEntry structures. The array is
+ /// terminated with an entry of {0,0}.
+ ///
+ EFI_FV_BLOCK_MAP_ENTRY BlockMap[1];
+} EFI_FIRMWARE_VOLUME_HEADER;
+
+
+
+///
+/// Firmware Volume Header Revision definition
+///
+
+
+///
+/// Extension header pointed by ExtHeaderOffset of volume header.
+///
+typedef struct {
+ ///
+ /// Firmware volume name.
+ ///
+ EFI_GUID FvName;
+ ///
+ /// Size of the rest of the extension header, including this structure.
+ ///
+ UINT32 ExtHeaderSize;
+} EFI_FIRMWARE_VOLUME_EXT_HEADER;
+
+///
+/// Entry struture for describing FV extension header
+///
+typedef struct {
+ ///
+ /// Size of this header extension.
+ ///
+ UINT16 ExtEntrySize;
+ ///
+ /// Type of the header.
+ ///
+ UINT16 ExtEntryType;
+} EFI_FIRMWARE_VOLUME_EXT_ENTRY;
+
+
+///
+/// This extension header provides a mapping between a GUID and an OEM file type.
+///
+typedef struct {
+ ///
+ /// Standard extension entry, with the type EFI_FV_EXT_TYPE_OEM_TYPE.
+ ///
+ EFI_FIRMWARE_VOLUME_EXT_ENTRY Hdr;
+ ///
+ /// A bit mask, one bit for each file type between 0xC0 (bit 0) and 0xDF (bit 31). If a bit
+ /// is '1', then the GUID entry exists in Types. If a bit is '0' then no GUID entry exists in Types.
+ ///
+ UINT32 TypeMask;
+ ///
+ /// An array of GUIDs, each GUID representing an OEM file type.
+ ///
+ /// EFI_GUID Types[1];
+ ///
+} EFI_FIRMWARE_VOLUME_EXT_ENTRY_OEM_TYPE;
+
+
+
+///
+/// This extension header EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE provides a vendor specific
+/// GUID FormatType type which includes a length and a successive series of data bytes.
+///
+typedef struct {
+ ///
+ /// Standard extension entry, with the type EFI_FV_EXT_TYPE_OEM_TYPE.
+ ///
+ EFI_FIRMWARE_VOLUME_EXT_ENTRY Hdr;
+ ///
+ /// Vendor-specific GUID.
+ ///
+ EFI_GUID FormatType;
+ ///
+ /// An arry of bytes of length Length.
+ ///
+ /// UINT8 Data[1];
+ ///
+} EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE;
+
+
+
+///
+/// The EFI_FIRMWARE_VOLUME_EXT_ENTRY_USED_SIZE_TYPE can be used to find
+/// out how many EFI_FVB2_ERASE_POLARITY bytes are at the end of the FV.
+///
+typedef struct {
+ ///
+ /// Standard extension entry, with the type EFI_FV_EXT_TYPE_USED_SIZE_TYPE.
+ ///
+ EFI_FIRMWARE_VOLUME_EXT_ENTRY Hdr;
+ ///
+ /// The number of bytes of the FV that are in uses. The remaining
+ /// EFI_FIRMWARE_VOLUME_HEADER FvLength minus UsedSize bytes in
+ /// the FV must contain the value implied by EFI_FVB2_ERASE_POLARITY.
+ ///
+ UINT32 UsedSize;
+} EFI_FIRMWARE_VOLUME_EXT_ENTRY_USED_SIZE_TYPE;
+
+#line 248 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiFirmwareVolume.h"
+#line 16 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiMultiPhase.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiFirmwareFile.h"
+/** @file
+ The firmware file related definitions in PI.
+
+Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ PI Version 1.6.
+
+**/
+
+
+
+
+#pragma pack(1)
+///
+/// Used to verify the integrity of the file.
+///
+typedef union {
+ struct {
+ ///
+ /// The IntegrityCheck.Checksum.Header field is an 8-bit checksum of the file
+ /// header. The State and IntegrityCheck.Checksum.File fields are assumed
+ /// to be zero and the checksum is calculated such that the entire header sums to zero.
+ ///
+ UINT8 Header;
+ ///
+ /// If the FFS_ATTRIB_CHECKSUM (see definition below) bit of the Attributes
+ /// field is set to one, the IntegrityCheck.Checksum.File field is an 8-bit
+ /// checksum of the file data.
+ /// If the FFS_ATTRIB_CHECKSUM bit of the Attributes field is cleared to zero,
+ /// the IntegrityCheck.Checksum.File field must be initialized with a value of
+ /// 0xAA. The IntegrityCheck.Checksum.File field is valid any time the
+ /// EFI_FILE_DATA_VALID bit is set in the State field.
+ ///
+ UINT8 File;
+ } Checksum;
+ ///
+ /// This is the full 16 bits of the IntegrityCheck field.
+ ///
+ UINT16 Checksum16;
+} EFI_FFS_INTEGRITY_CHECK;
+
+///
+/// FFS_FIXED_CHECKSUM is the checksum value used when the
+/// FFS_ATTRIB_CHECKSUM attribute bit is clear.
+///
+
+
+typedef UINT8 EFI_FV_FILETYPE;
+typedef UINT8 EFI_FFS_FILE_ATTRIBUTES;
+typedef UINT8 EFI_FFS_FILE_STATE;
+
+///
+/// File Types Definitions
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// FFS File Attributes.
+///
+
+
+
+
+
+
+///
+/// FFS File State Bits.
+///
+
+
+
+
+
+
+
+///
+/// Each file begins with the header that describe the
+/// contents and state of the files.
+///
+typedef struct {
+ ///
+ /// This GUID is the file name. It is used to uniquely identify the file.
+ ///
+ EFI_GUID Name;
+ ///
+ /// Used to verify the integrity of the file.
+ ///
+ EFI_FFS_INTEGRITY_CHECK IntegrityCheck;
+ ///
+ /// Identifies the type of file.
+ ///
+ EFI_FV_FILETYPE Type;
+ ///
+ /// Declares various file attribute bits.
+ ///
+ EFI_FFS_FILE_ATTRIBUTES Attributes;
+ ///
+ /// The length of the file in bytes, including the FFS header.
+ ///
+ UINT8 Size[3];
+ ///
+ /// Used to track the state of the file throughout the life of the file from creation to deletion.
+ ///
+ EFI_FFS_FILE_STATE State;
+} EFI_FFS_FILE_HEADER;
+
+typedef struct {
+ ///
+ /// This GUID is the file name. It is used to uniquely identify the file. There may be only
+ /// one instance of a file with the file name GUID of Name in any given firmware
+ /// volume, except if the file type is EFI_FV_FILETYPE_FFS_PAD.
+ ///
+ EFI_GUID Name;
+
+ ///
+ /// Used to verify the integrity of the file.
+ ///
+ EFI_FFS_INTEGRITY_CHECK IntegrityCheck;
+
+ ///
+ /// Identifies the type of file.
+ ///
+ EFI_FV_FILETYPE Type;
+
+ ///
+ /// Declares various file attribute bits.
+ ///
+ EFI_FFS_FILE_ATTRIBUTES Attributes;
+
+ ///
+ /// The length of the file in bytes, including the FFS header.
+ /// The length of the file data is either (Size - sizeof(EFI_FFS_FILE_HEADER)). This calculation means a
+ /// zero-length file has a Size of 24 bytes, which is sizeof(EFI_FFS_FILE_HEADER).
+ /// Size is not required to be a multiple of 8 bytes. Given a file F, the next file header is
+ /// located at the next 8-byte aligned firmware volume offset following the last byte of the file F.
+ ///
+ UINT8 Size[3];
+
+ ///
+ /// Used to track the state of the file throughout the life of the file from creation to deletion.
+ ///
+ EFI_FFS_FILE_STATE State;
+
+ ///
+ /// If FFS_ATTRIB_LARGE_FILE is set in Attributes, then ExtendedSize exists and Size must be set to zero.
+ /// If FFS_ATTRIB_LARGE_FILE is not set then EFI_FFS_FILE_HEADER is used.
+ ///
+ UINT64 ExtendedSize;
+} EFI_FFS_FILE_HEADER2;
+
+
+
+
+///
+/// The argument passed as the FfsFileHeaderPtr parameter to the
+/// FFS_FILE_SIZE() function-like macro below must not have side effects:
+/// FfsFileHeaderPtr is evaluated multiple times.
+///
+
+
+
+
+
+
+
+
+typedef UINT8 EFI_SECTION_TYPE;
+
+///
+/// Pseudo type. It is used as a wild card when retrieving sections.
+/// The section type EFI_SECTION_ALL matches all section types.
+///
+
+
+///
+/// Encapsulation section Type values.
+///
+
+
+
+
+
+
+///
+/// Leaf section Type values.
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// Common section header.
+///
+typedef struct {
+ ///
+ /// A 24-bit unsigned integer that contains the total size of the section in bytes,
+ /// including the EFI_COMMON_SECTION_HEADER.
+ ///
+ UINT8 Size[3];
+ EFI_SECTION_TYPE Type;
+ ///
+ /// Declares the section type.
+ ///
+} EFI_COMMON_SECTION_HEADER;
+
+typedef struct {
+ ///
+ /// A 24-bit unsigned integer that contains the total size of the section in bytes,
+ /// including the EFI_COMMON_SECTION_HEADER.
+ ///
+ UINT8 Size[3];
+
+ EFI_SECTION_TYPE Type;
+
+ ///
+ /// If Size is 0xFFFFFF, then ExtendedSize contains the size of the section. If
+ /// Size is not equal to 0xFFFFFF, then this field does not exist.
+ ///
+ UINT32 ExtendedSize;
+} EFI_COMMON_SECTION_HEADER2;
+
+///
+/// Leaf section type that contains an
+/// IA-32 16-bit executable image.
+///
+typedef EFI_COMMON_SECTION_HEADER EFI_COMPATIBILITY16_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2 EFI_COMPATIBILITY16_SECTION2;
+
+///
+/// CompressionType of EFI_COMPRESSION_SECTION.
+///
+
+
+///
+/// An encapsulation section type in which the
+/// section data is compressed.
+///
+typedef struct {
+ ///
+ /// Usual common section header. CommonHeader.Type = EFI_SECTION_COMPRESSION.
+ ///
+ EFI_COMMON_SECTION_HEADER CommonHeader;
+ ///
+ /// The UINT32 that indicates the size of the section data after decompression.
+ ///
+ UINT32 UncompressedLength;
+ ///
+ /// Indicates which compression algorithm is used.
+ ///
+ UINT8 CompressionType;
+} EFI_COMPRESSION_SECTION;
+
+typedef struct {
+ ///
+ /// Usual common section header. CommonHeader.Type = EFI_SECTION_COMPRESSION.
+ ///
+ EFI_COMMON_SECTION_HEADER2 CommonHeader;
+ ///
+ /// UINT32 that indicates the size of the section data after decompression.
+ ///
+ UINT32 UncompressedLength;
+ ///
+ /// Indicates which compression algorithm is used.
+ ///
+ UINT8 CompressionType;
+} EFI_COMPRESSION_SECTION2;
+
+///
+/// An encapsulation section type in which the section data is disposable.
+/// A disposable section is an encapsulation section in which the section data may be disposed of during
+/// the process of creating or updating a firmware image without significant impact on the usefulness of
+/// the file. The Type field in the section header is set to EFI_SECTION_DISPOSABLE. This
+/// allows optional or descriptive data to be included with the firmware file which can be removed in
+/// order to conserve space. The contents of this section are implementation specific, but might contain
+/// debug data or detailed integration instructions.
+///
+typedef EFI_COMMON_SECTION_HEADER EFI_DISPOSABLE_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2 EFI_DISPOSABLE_SECTION2;
+
+///
+/// The leaf section which could be used to determine the dispatch order of DXEs.
+///
+typedef EFI_COMMON_SECTION_HEADER EFI_DXE_DEPEX_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2 EFI_DXE_DEPEX_SECTION2;
+
+///
+/// The leaf section which contains a PI FV.
+///
+typedef EFI_COMMON_SECTION_HEADER EFI_FIRMWARE_VOLUME_IMAGE_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2 EFI_FIRMWARE_VOLUME_IMAGE_SECTION2;
+
+///
+/// The leaf section which contains a single GUID.
+///
+typedef struct {
+ ///
+ /// Common section header. CommonHeader.Type = EFI_SECTION_FREEFORM_SUBTYPE_GUID.
+ ///
+ EFI_COMMON_SECTION_HEADER CommonHeader;
+ ///
+ /// This GUID is defined by the creator of the file. It is a vendor-defined file type.
+ ///
+ EFI_GUID SubTypeGuid;
+} EFI_FREEFORM_SUBTYPE_GUID_SECTION;
+
+typedef struct {
+ ///
+ /// The common section header. CommonHeader.Type = EFI_SECTION_FREEFORM_SUBTYPE_GUID.
+ ///
+ EFI_COMMON_SECTION_HEADER2 CommonHeader;
+ ///
+ /// This GUID is defined by the creator of the file. It is a vendor-defined file type.
+ ///
+ EFI_GUID SubTypeGuid;
+} EFI_FREEFORM_SUBTYPE_GUID_SECTION2;
+
+///
+/// Attributes of EFI_GUID_DEFINED_SECTION.
+///
+
+
+///
+/// The leaf section which is encapsulation defined by specific GUID.
+///
+typedef struct {
+ ///
+ /// The common section header. CommonHeader.Type = EFI_SECTION_GUID_DEFINED.
+ ///
+ EFI_COMMON_SECTION_HEADER CommonHeader;
+ ///
+ /// The GUID that defines the format of the data that follows. It is a vendor-defined section type.
+ ///
+ EFI_GUID SectionDefinitionGuid;
+ ///
+ /// Contains the offset in bytes from the beginning of the common header to the first byte of the data.
+ ///
+ UINT16 DataOffset;
+ ///
+ /// The bit field that declares some specific characteristics of the section contents.
+ ///
+ UINT16 Attributes;
+} EFI_GUID_DEFINED_SECTION;
+
+typedef struct {
+ ///
+ /// The common section header. CommonHeader.Type = EFI_SECTION_GUID_DEFINED.
+ ///
+ EFI_COMMON_SECTION_HEADER2 CommonHeader;
+ ///
+ /// The GUID that defines the format of the data that follows. It is a vendor-defined section type.
+ ///
+ EFI_GUID SectionDefinitionGuid;
+ ///
+ /// Contains the offset in bytes from the beginning of the common header to the first byte of the data.
+ ///
+ UINT16 DataOffset;
+ ///
+ /// The bit field that declares some specific characteristics of the section contents.
+ ///
+ UINT16 Attributes;
+} EFI_GUID_DEFINED_SECTION2;
+
+///
+/// The leaf section which contains PE32+ image.
+///
+typedef EFI_COMMON_SECTION_HEADER EFI_PE32_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2 EFI_PE32_SECTION2;
+
+///
+/// The leaf section used to determine the dispatch order of PEIMs.
+///
+typedef EFI_COMMON_SECTION_HEADER EFI_PEI_DEPEX_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2 EFI_PEI_DEPEX_SECTION2;
+
+///
+/// A leaf section type that contains a position-independent-code (PIC) image.
+/// A PIC image section is a leaf section that contains a position-independent-code (PIC) image.
+/// In addition to normal PE32+ images that contain relocation information, PEIM executables may be
+/// PIC and are referred to as PIC images. A PIC image is the same as a PE32+ image except that all
+/// relocation information has been stripped from the image and the image can be moved and will
+/// execute correctly without performing any relocation or other fix-ups. EFI_PIC_SECTION2 must
+/// be used if the section is 16MB or larger.
+///
+typedef EFI_COMMON_SECTION_HEADER EFI_PIC_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2 EFI_PIC_SECTION2;
+
+///
+/// The leaf section which constains the position-independent-code image.
+///
+typedef EFI_COMMON_SECTION_HEADER EFI_TE_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2 EFI_TE_SECTION2;
+
+///
+/// The leaf section which contains an array of zero or more bytes.
+///
+typedef EFI_COMMON_SECTION_HEADER EFI_RAW_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2 EFI_RAW_SECTION2;
+
+///
+/// The SMM dependency expression section is a leaf section that contains a dependency expression that
+/// is used to determine the dispatch order for SMM drivers. Before the SMRAM invocation of the
+/// SMM driver's entry point, this dependency expression must evaluate to TRUE. See the Platform
+/// Initialization Specification, Volume 2, for details regarding the format of the dependency expression.
+/// The dependency expression may refer to protocols installed in either the UEFI or the SMM protocol
+/// database. EFI_SMM_DEPEX_SECTION2 must be used if the section is 16MB or larger.
+///
+typedef EFI_COMMON_SECTION_HEADER EFI_SMM_DEPEX_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2 EFI_SMM_DEPEX_SECTION2;
+
+///
+/// The leaf section which contains a unicode string that
+/// is human readable file name.
+///
+typedef struct {
+ EFI_COMMON_SECTION_HEADER CommonHeader;
+
+ ///
+ /// Array of unicode string.
+ ///
+ CHAR16 FileNameString[1];
+} EFI_USER_INTERFACE_SECTION;
+
+typedef struct {
+ EFI_COMMON_SECTION_HEADER2 CommonHeader;
+ CHAR16 FileNameString[1];
+} EFI_USER_INTERFACE_SECTION2;
+
+///
+/// The leaf section which contains a numeric build number and
+/// an optional unicode string that represents the file revision.
+///
+typedef struct {
+ EFI_COMMON_SECTION_HEADER CommonHeader;
+ UINT16 BuildNumber;
+
+ ///
+ /// Array of unicode string.
+ ///
+ CHAR16 VersionString[1];
+} EFI_VERSION_SECTION;
+
+typedef struct {
+ EFI_COMMON_SECTION_HEADER2 CommonHeader;
+ ///
+ /// A UINT16 that represents a particular build. Subsequent builds have monotonically
+ /// increasing build numbers relative to earlier builds.
+ ///
+ UINT16 BuildNumber;
+ CHAR16 VersionString[1];
+} EFI_VERSION_SECTION2;
+
+///
+/// The argument passed as the SectionHeaderPtr parameter to the SECTION_SIZE()
+/// and IS_SECTION2() function-like macros below must not have side effects:
+/// SectionHeaderPtr is evaluated multiple times.
+///
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack()
+
+#line 507 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiFirmwareFile.h"
+#line 17 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiMultiPhase.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiBootMode.h"
+/** @file
+ Present the boot mode values in PI.
+
+ Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ PI Version 1.2.1A
+
+**/
+
+
+
+
+///
+/// EFI boot mode
+///
+typedef UINT32 EFI_BOOT_MODE;
+
+//
+// 0x21 - 0xf..f are reserved.
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 37 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiBootMode.h"
+#line 18 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiMultiPhase.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiHob.h"
+/** @file
+ HOB related definitions in PI.
+
+Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ PI Version 1.6
+
+**/
+
+
+
+
+//
+// HobType of EFI_HOB_GENERIC_HEADER.
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// Describes the format and size of the data inside the HOB.
+/// All HOBs must contain this generic HOB header.
+///
+typedef struct {
+ ///
+ /// Identifies the HOB data structure type.
+ ///
+ UINT16 HobType;
+ ///
+ /// The length in bytes of the HOB.
+ ///
+ UINT16 HobLength;
+ ///
+ /// This field must always be set to zero.
+ ///
+ UINT32 Reserved;
+} EFI_HOB_GENERIC_HEADER;
+
+///
+/// Value of version in EFI_HOB_HANDOFF_INFO_TABLE.
+///
+
+
+///
+/// Contains general state information used by the HOB producer phase.
+/// This HOB must be the first one in the HOB list.
+///
+typedef struct {
+ ///
+ /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_HANDOFF.
+ ///
+ EFI_HOB_GENERIC_HEADER Header;
+ ///
+ /// The version number pertaining to the PHIT HOB definition.
+ /// This value is four bytes in length to provide an 8-byte aligned entry
+ /// when it is combined with the 4-byte BootMode.
+ ///
+ UINT32 Version;
+ ///
+ /// The system boot mode as determined during the HOB producer phase.
+ ///
+ EFI_BOOT_MODE BootMode;
+ ///
+ /// The highest address location of memory that is allocated for use by the HOB producer
+ /// phase. This address must be 4-KB aligned to meet page restrictions of UEFI.
+ ///
+ EFI_PHYSICAL_ADDRESS EfiMemoryTop;
+ ///
+ /// The lowest address location of memory that is allocated for use by the HOB producer phase.
+ ///
+ EFI_PHYSICAL_ADDRESS EfiMemoryBottom;
+ ///
+ /// The highest address location of free memory that is currently available
+ /// for use by the HOB producer phase.
+ ///
+ EFI_PHYSICAL_ADDRESS EfiFreeMemoryTop;
+ ///
+ /// The lowest address location of free memory that is available for use by the HOB producer phase.
+ ///
+ EFI_PHYSICAL_ADDRESS EfiFreeMemoryBottom;
+ ///
+ /// The end of the HOB list.
+ ///
+ EFI_PHYSICAL_ADDRESS EfiEndOfHobList;
+} EFI_HOB_HANDOFF_INFO_TABLE;
+
+///
+/// EFI_HOB_MEMORY_ALLOCATION_HEADER describes the
+/// various attributes of the logical memory allocation. The type field will be used for
+/// subsequent inclusion in the UEFI memory map.
+///
+typedef struct {
+ ///
+ /// A GUID that defines the memory allocation region's type and purpose, as well as
+ /// other fields within the memory allocation HOB. This GUID is used to define the
+ /// additional data within the HOB that may be present for the memory allocation HOB.
+ /// Type EFI_GUID is defined in InstallProtocolInterface() in the UEFI 2.0
+ /// specification.
+ ///
+ EFI_GUID Name;
+
+ ///
+ /// The base address of memory allocated by this HOB. Type
+ /// EFI_PHYSICAL_ADDRESS is defined in AllocatePages() in the UEFI 2.0
+ /// specification.
+ ///
+ EFI_PHYSICAL_ADDRESS MemoryBaseAddress;
+
+ ///
+ /// The length in bytes of memory allocated by this HOB.
+ ///
+ UINT64 MemoryLength;
+
+ ///
+ /// Defines the type of memory allocated by this HOB. The memory type definition
+ /// follows the EFI_MEMORY_TYPE definition. Type EFI_MEMORY_TYPE is defined
+ /// in AllocatePages() in the UEFI 2.0 specification.
+ ///
+ EFI_MEMORY_TYPE MemoryType;
+
+ ///
+ /// Padding for Itanium processor family
+ ///
+ UINT8 Reserved[4];
+} EFI_HOB_MEMORY_ALLOCATION_HEADER;
+
+///
+/// Describes all memory ranges used during the HOB producer
+/// phase that exist outside the HOB list. This HOB type
+/// describes how memory is used, not the physical attributes of memory.
+///
+typedef struct {
+ ///
+ /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_ALLOCATION.
+ ///
+ EFI_HOB_GENERIC_HEADER Header;
+ ///
+ /// An instance of the EFI_HOB_MEMORY_ALLOCATION_HEADER that describes the
+ /// various attributes of the logical memory allocation.
+ ///
+ EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor;
+ //
+ // Additional data pertaining to the "Name" Guid memory
+ // may go here.
+ //
+} EFI_HOB_MEMORY_ALLOCATION;
+
+///
+/// Describes the memory stack that is produced by the HOB producer
+/// phase and upon which all post-memory-installed executable
+/// content in the HOB producer phase is executing.
+///
+typedef struct {
+ ///
+ /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_ALLOCATION.
+ ///
+ EFI_HOB_GENERIC_HEADER Header;
+ ///
+ /// An instance of the EFI_HOB_MEMORY_ALLOCATION_HEADER that describes the
+ /// various attributes of the logical memory allocation.
+ ///
+ EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor;
+} EFI_HOB_MEMORY_ALLOCATION_STACK;
+
+///
+/// Defines the location of the boot-strap
+/// processor (BSP) BSPStore ("Backing Store Pointer Store").
+/// This HOB is valid for the Itanium processor family only
+/// register overflow store.
+///
+typedef struct {
+ ///
+ /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_ALLOCATION.
+ ///
+ EFI_HOB_GENERIC_HEADER Header;
+ ///
+ /// An instance of the EFI_HOB_MEMORY_ALLOCATION_HEADER that describes the
+ /// various attributes of the logical memory allocation.
+ ///
+ EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor;
+} EFI_HOB_MEMORY_ALLOCATION_BSP_STORE;
+
+///
+/// Defines the location and entry point of the HOB consumer phase.
+///
+typedef struct {
+ ///
+ /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_ALLOCATION.
+ ///
+ EFI_HOB_GENERIC_HEADER Header;
+ ///
+ /// An instance of the EFI_HOB_MEMORY_ALLOCATION_HEADER that describes the
+ /// various attributes of the logical memory allocation.
+ ///
+ EFI_HOB_MEMORY_ALLOCATION_HEADER MemoryAllocationHeader;
+ ///
+ /// The GUID specifying the values of the firmware file system name
+ /// that contains the HOB consumer phase component.
+ ///
+ EFI_GUID ModuleName;
+ ///
+ /// The address of the memory-mapped firmware volume
+ /// that contains the HOB consumer phase firmware file.
+ ///
+ EFI_PHYSICAL_ADDRESS EntryPoint;
+} EFI_HOB_MEMORY_ALLOCATION_MODULE;
+
+///
+/// The resource type.
+///
+typedef UINT32 EFI_RESOURCE_TYPE;
+
+//
+// Value of ResourceType in EFI_HOB_RESOURCE_DESCRIPTOR.
+//
+
+
+
+
+
+
+
+
+
+///
+/// A type of recount attribute type.
+///
+typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
+
+//
+// These types can be ORed together as needed.
+//
+// The following attributes are used to describe settings
+//
+
+
+
+
+//
+// This is typically used as memory cacheability attribute today.
+// NOTE: Since PI spec 1.4, please use EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTED
+// as Physical write protected attribute, and EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTED
+// means Memory cacheability attribute: The memory supports being programmed with
+// a writeprotected cacheable attribute.
+//
+
+
+
+//
+// The rest of the attributes are used to describe capabilities
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+//
+// This is typically used as memory cacheability attribute today.
+// NOTE: Since PI spec 1.4, please use EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTABLE
+// as Memory capability attribute: The memory supports being protected from processor
+// writes, and EFI_RESOURCE_ATTRIBUTE_WRITE_PROTEC TABLE means Memory cacheability attribute:
+// The memory supports being programmed with a writeprotected cacheable attribute.
+//
+
+
+
+
+
+
+
+//
+// Physical memory relative reliability attribute. This
+// memory provides higher reliability relative to other
+// memory in the system. If all memory has the same
+// reliability, then this bit is not used.
+//
+
+
+///
+/// Describes the resource properties of all fixed,
+/// nonrelocatable resource ranges found on the processor
+/// host bus during the HOB producer phase.
+///
+typedef struct {
+ ///
+ /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_RESOURCE_DESCRIPTOR.
+ ///
+ EFI_HOB_GENERIC_HEADER Header;
+ ///
+ /// A GUID representing the owner of the resource. This GUID is used by HOB
+ /// consumer phase components to correlate device ownership of a resource.
+ ///
+ EFI_GUID Owner;
+ ///
+ /// The resource type enumeration as defined by EFI_RESOURCE_TYPE.
+ ///
+ EFI_RESOURCE_TYPE ResourceType;
+ ///
+ /// Resource attributes as defined by EFI_RESOURCE_ATTRIBUTE_TYPE.
+ ///
+ EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute;
+ ///
+ /// The physical start address of the resource region.
+ ///
+ EFI_PHYSICAL_ADDRESS PhysicalStart;
+ ///
+ /// The number of bytes of the resource region.
+ ///
+ UINT64 ResourceLength;
+} EFI_HOB_RESOURCE_DESCRIPTOR;
+
+///
+/// Allows writers of executable content in the HOB producer phase to
+/// maintain and manage HOBs with specific GUID.
+///
+typedef struct {
+ ///
+ /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_GUID_EXTENSION.
+ ///
+ EFI_HOB_GENERIC_HEADER Header;
+ ///
+ /// A GUID that defines the contents of this HOB.
+ ///
+ EFI_GUID Name;
+ //
+ // Guid specific data goes here
+ //
+} EFI_HOB_GUID_TYPE;
+
+///
+/// Details the location of firmware volumes that contain firmware files.
+///
+typedef struct {
+ ///
+ /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_FV.
+ ///
+ EFI_HOB_GENERIC_HEADER Header;
+ ///
+ /// The physical memory-mapped base address of the firmware volume.
+ ///
+ EFI_PHYSICAL_ADDRESS BaseAddress;
+ ///
+ /// The length in bytes of the firmware volume.
+ ///
+ UINT64 Length;
+} EFI_HOB_FIRMWARE_VOLUME;
+
+///
+/// Details the location of a firmware volume that was extracted
+/// from a file within another firmware volume.
+///
+typedef struct {
+ ///
+ /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_FV2.
+ ///
+ EFI_HOB_GENERIC_HEADER Header;
+ ///
+ /// The physical memory-mapped base address of the firmware volume.
+ ///
+ EFI_PHYSICAL_ADDRESS BaseAddress;
+ ///
+ /// The length in bytes of the firmware volume.
+ ///
+ UINT64 Length;
+ ///
+ /// The name of the firmware volume.
+ ///
+ EFI_GUID FvName;
+ ///
+ /// The name of the firmware file that contained this firmware volume.
+ ///
+ EFI_GUID FileName;
+} EFI_HOB_FIRMWARE_VOLUME2;
+
+///
+/// Details the location of a firmware volume that was extracted
+/// from a file within another firmware volume.
+///
+typedef struct {
+ ///
+ /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_FV3.
+ ///
+ EFI_HOB_GENERIC_HEADER Header;
+ ///
+ /// The physical memory-mapped base address of the firmware volume.
+ ///
+ EFI_PHYSICAL_ADDRESS BaseAddress;
+ ///
+ /// The length in bytes of the firmware volume.
+ ///
+ UINT64 Length;
+ ///
+ /// The authentication status.
+ ///
+ UINT32 AuthenticationStatus;
+ ///
+ /// TRUE if the FV was extracted as a file within another firmware volume.
+ /// FALSE otherwise.
+ ///
+ BOOLEAN ExtractedFv;
+ ///
+ /// The name of the firmware volume.
+ /// Valid only if IsExtractedFv is TRUE.
+ ///
+ EFI_GUID FvName;
+ ///
+ /// The name of the firmware file that contained this firmware volume.
+ /// Valid only if IsExtractedFv is TRUE.
+ ///
+ EFI_GUID FileName;
+} EFI_HOB_FIRMWARE_VOLUME3;
+
+///
+/// Describes processor information, such as address space and I/O space capabilities.
+///
+typedef struct {
+ ///
+ /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_CPU.
+ ///
+ EFI_HOB_GENERIC_HEADER Header;
+ ///
+ /// Identifies the maximum physical memory addressability of the processor.
+ ///
+ UINT8 SizeOfMemorySpace;
+ ///
+ /// Identifies the maximum physical I/O addressability of the processor.
+ ///
+ UINT8 SizeOfIoSpace;
+ ///
+ /// This field will always be set to zero.
+ ///
+ UINT8 Reserved[6];
+} EFI_HOB_CPU;
+
+///
+/// Describes pool memory allocations.
+///
+typedef struct {
+ ///
+ /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_POOL.
+ ///
+ EFI_HOB_GENERIC_HEADER Header;
+} EFI_HOB_MEMORY_POOL;
+
+///
+/// Each UEFI capsule HOB details the location of a UEFI capsule. It includes a base address and length
+/// which is based upon memory blocks with a EFI_CAPSULE_HEADER and the associated
+/// CapsuleImageSize-based payloads. These HOB's shall be created by the PEI PI firmware
+/// sometime after the UEFI UpdateCapsule service invocation with the
+/// CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE flag set in the EFI_CAPSULE_HEADER.
+///
+typedef struct {
+ ///
+ /// The HOB generic header where Header.HobType = EFI_HOB_TYPE_UEFI_CAPSULE.
+ ///
+ EFI_HOB_GENERIC_HEADER Header;
+
+ ///
+ /// The physical memory-mapped base address of an UEFI capsule. This value is set to
+ /// point to the base of the contiguous memory of the UEFI capsule.
+ /// The length of the contiguous memory in bytes.
+ ///
+ EFI_PHYSICAL_ADDRESS BaseAddress;
+ UINT64 Length;
+} EFI_HOB_UEFI_CAPSULE;
+
+///
+/// Union of all the possible HOB Types.
+///
+typedef union {
+ EFI_HOB_GENERIC_HEADER *Header;
+ EFI_HOB_HANDOFF_INFO_TABLE *HandoffInformationTable;
+ EFI_HOB_MEMORY_ALLOCATION *MemoryAllocation;
+ EFI_HOB_MEMORY_ALLOCATION_BSP_STORE *MemoryAllocationBspStore;
+ EFI_HOB_MEMORY_ALLOCATION_STACK *MemoryAllocationStack;
+ EFI_HOB_MEMORY_ALLOCATION_MODULE *MemoryAllocationModule;
+ EFI_HOB_RESOURCE_DESCRIPTOR *ResourceDescriptor;
+ EFI_HOB_GUID_TYPE *Guid;
+ EFI_HOB_FIRMWARE_VOLUME *FirmwareVolume;
+ EFI_HOB_FIRMWARE_VOLUME2 *FirmwareVolume2;
+ EFI_HOB_FIRMWARE_VOLUME3 *FirmwareVolume3;
+ EFI_HOB_CPU *Cpu;
+ EFI_HOB_MEMORY_POOL *Pool;
+ EFI_HOB_UEFI_CAPSULE *Capsule;
+ UINT8 *Raw;
+} EFI_PEI_HOB_POINTERS;
+
+#line 509 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiHob.h"
+#line 19 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiMultiPhase.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiDependency.h"
+/** @file
+ Present the dependency expression values in PI.
+
+ Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ PI Version 1.0
+
+**/
+
+
+
+
+///
+/// If present, this must be the first and only opcode,
+/// EFI_DEP_BEFORE may be used by DXE and SMM drivers.
+///
+
+
+///
+/// If present, this must be the first and only opcode,
+/// EFI_DEP_AFTER may be used by DXE and SMM drivers.
+///
+
+
+
+
+
+
+
+
+
+
+///
+/// If present, this must be the first opcode,
+/// EFI_DEP_SOR is only used by DXE driver.
+///
+
+
+#line 42 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiDependency.h"
+#line 20 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiMultiPhase.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiStatusCode.h"
+/** @file
+ StatusCode related definitions in PI.
+
+Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Revision Reference:
+ These status codes are defined in UEFI Platform Initialization Specification 1.2,
+ Volume 3: Shared Architectural Elements.
+
+**/
+
+
+
+
+//
+// Required for IA32, X64, IPF, ARM and EBC defines for CPU exception types
+//
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Protocol/DebugSupport.h"
+/** @file
+ DebugSupport protocol and supporting definitions as defined in the UEFI2.4
+ specification.
+
+ The DebugSupport protocol is used by source level debuggers to abstract the
+ processor and handle context save and restore operations.
+
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR>
+Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
+
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/PeImage.h"
+/** @file
+ EFI image format for PE32, PE32+ and TE. Please note some data structures are
+ different for PE32 and PE32+. EFI_IMAGE_NT_HEADERS32 is for PE32 and
+ EFI_IMAGE_NT_HEADERS64 is for PE32+.
+
+ This file is coded to the Visual Studio, Microsoft Portable Executable and
+ Common Object File Format Specification, Revision 8.3 - February 6, 2013.
+ This file also includes some definitions in PI Specification, Revision 1.0.
+
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
+Portions Copyright (c) 2016 - 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
+
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+
+
+
+//
+// PE32+ Subsystem type for EFI images
+//
+
+
+
+
+
+//
+// PE32+ Machine type for EFI images
+//
+
+
+
+
+
+
+
+
+
+
+//
+// EXE file formats
+//
+
+
+
+
+
+///
+/// PE images can start with an optional DOS header, so if an image is run
+/// under DOS it can print an error message.
+///
+typedef struct {
+ UINT16 e_magic; ///< Magic number.
+ UINT16 e_cblp; ///< Bytes on last page of file.
+ UINT16 e_cp; ///< Pages in file.
+ UINT16 e_crlc; ///< Relocations.
+ UINT16 e_cparhdr; ///< Size of header in paragraphs.
+ UINT16 e_minalloc; ///< Minimum extra paragraphs needed.
+ UINT16 e_maxalloc; ///< Maximum extra paragraphs needed.
+ UINT16 e_ss; ///< Initial (relative) SS value.
+ UINT16 e_sp; ///< Initial SP value.
+ UINT16 e_csum; ///< Checksum.
+ UINT16 e_ip; ///< Initial IP value.
+ UINT16 e_cs; ///< Initial (relative) CS value.
+ UINT16 e_lfarlc; ///< File address of relocation table.
+ UINT16 e_ovno; ///< Overlay number.
+ UINT16 e_res[4]; ///< Reserved words.
+ UINT16 e_oemid; ///< OEM identifier (for e_oeminfo).
+ UINT16 e_oeminfo; ///< OEM information; e_oemid specific.
+ UINT16 e_res2[10]; ///< Reserved words.
+ UINT32 e_lfanew; ///< File address of new exe header.
+} EFI_IMAGE_DOS_HEADER;
+
+///
+/// COFF File Header (Object and Image).
+///
+typedef struct {
+ UINT16 Machine;
+ UINT16 NumberOfSections;
+ UINT32 TimeDateStamp;
+ UINT32 PointerToSymbolTable;
+ UINT32 NumberOfSymbols;
+ UINT16 SizeOfOptionalHeader;
+ UINT16 Characteristics;
+} EFI_IMAGE_FILE_HEADER;
+
+///
+/// Size of EFI_IMAGE_FILE_HEADER.
+///
+
+
+//
+// Characteristics
+//
+
+
+
+
+
+
+
+
+
+
+
+///
+/// Header Data Directories.
+///
+typedef struct {
+ UINT32 VirtualAddress;
+ UINT32 Size;
+} EFI_IMAGE_DATA_DIRECTORY;
+
+//
+// Directory Entries
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// @attention
+/// EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC means PE32 and
+/// EFI_IMAGE_OPTIONAL_HEADER32 must be used. The data structures only vary
+/// after NT additional fields.
+///
+
+
+///
+/// Optional Header Standard Fields for PE32.
+///
+typedef struct {
+ ///
+ /// Standard fields.
+ ///
+ UINT16 Magic;
+ UINT8 MajorLinkerVersion;
+ UINT8 MinorLinkerVersion;
+ UINT32 SizeOfCode;
+ UINT32 SizeOfInitializedData;
+ UINT32 SizeOfUninitializedData;
+ UINT32 AddressOfEntryPoint;
+ UINT32 BaseOfCode;
+ UINT32 BaseOfData; ///< PE32 contains this additional field, which is absent in PE32+.
+ ///
+ /// Optional Header Windows-Specific Fields.
+ ///
+ UINT32 ImageBase;
+ UINT32 SectionAlignment;
+ UINT32 FileAlignment;
+ UINT16 MajorOperatingSystemVersion;
+ UINT16 MinorOperatingSystemVersion;
+ UINT16 MajorImageVersion;
+ UINT16 MinorImageVersion;
+ UINT16 MajorSubsystemVersion;
+ UINT16 MinorSubsystemVersion;
+ UINT32 Win32VersionValue;
+ UINT32 SizeOfImage;
+ UINT32 SizeOfHeaders;
+ UINT32 CheckSum;
+ UINT16 Subsystem;
+ UINT16 DllCharacteristics;
+ UINT32 SizeOfStackReserve;
+ UINT32 SizeOfStackCommit;
+ UINT32 SizeOfHeapReserve;
+ UINT32 SizeOfHeapCommit;
+ UINT32 LoaderFlags;
+ UINT32 NumberOfRvaAndSizes;
+ EFI_IMAGE_DATA_DIRECTORY DataDirectory[16];
+} EFI_IMAGE_OPTIONAL_HEADER32;
+
+///
+/// @attention
+/// EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC means PE32+ and
+/// EFI_IMAGE_OPTIONAL_HEADER64 must be used. The data structures only vary
+/// after NT additional fields.
+///
+
+
+///
+/// Optional Header Standard Fields for PE32+.
+///
+typedef struct {
+ ///
+ /// Standard fields.
+ ///
+ UINT16 Magic;
+ UINT8 MajorLinkerVersion;
+ UINT8 MinorLinkerVersion;
+ UINT32 SizeOfCode;
+ UINT32 SizeOfInitializedData;
+ UINT32 SizeOfUninitializedData;
+ UINT32 AddressOfEntryPoint;
+ UINT32 BaseOfCode;
+ ///
+ /// Optional Header Windows-Specific Fields.
+ ///
+ UINT64 ImageBase;
+ UINT32 SectionAlignment;
+ UINT32 FileAlignment;
+ UINT16 MajorOperatingSystemVersion;
+ UINT16 MinorOperatingSystemVersion;
+ UINT16 MajorImageVersion;
+ UINT16 MinorImageVersion;
+ UINT16 MajorSubsystemVersion;
+ UINT16 MinorSubsystemVersion;
+ UINT32 Win32VersionValue;
+ UINT32 SizeOfImage;
+ UINT32 SizeOfHeaders;
+ UINT32 CheckSum;
+ UINT16 Subsystem;
+ UINT16 DllCharacteristics;
+ UINT64 SizeOfStackReserve;
+ UINT64 SizeOfStackCommit;
+ UINT64 SizeOfHeapReserve;
+ UINT64 SizeOfHeapCommit;
+ UINT32 LoaderFlags;
+ UINT32 NumberOfRvaAndSizes;
+ EFI_IMAGE_DATA_DIRECTORY DataDirectory[16];
+} EFI_IMAGE_OPTIONAL_HEADER64;
+
+///
+/// @attention
+/// EFI_IMAGE_NT_HEADERS32 is for use ONLY by tools.
+///
+typedef struct {
+ UINT32 Signature;
+ EFI_IMAGE_FILE_HEADER FileHeader;
+ EFI_IMAGE_OPTIONAL_HEADER32 OptionalHeader;
+} EFI_IMAGE_NT_HEADERS32;
+
+
+
+///
+/// @attention
+/// EFI_IMAGE_HEADERS64 is for use ONLY by tools.
+///
+typedef struct {
+ UINT32 Signature;
+ EFI_IMAGE_FILE_HEADER FileHeader;
+ EFI_IMAGE_OPTIONAL_HEADER64 OptionalHeader;
+} EFI_IMAGE_NT_HEADERS64;
+
+
+
+//
+// Other Windows Subsystem Values
+//
+
+
+
+
+
+
+
+///
+/// Length of ShortName.
+///
+
+
+///
+/// Section Table. This table immediately follows the optional header.
+///
+typedef struct {
+ UINT8 Name[8];
+ union {
+ UINT32 PhysicalAddress;
+ UINT32 VirtualSize;
+ } Misc;
+ UINT32 VirtualAddress;
+ UINT32 SizeOfRawData;
+ UINT32 PointerToRawData;
+ UINT32 PointerToRelocations;
+ UINT32 PointerToLinenumbers;
+ UINT16 NumberOfRelocations;
+ UINT16 NumberOfLinenumbers;
+ UINT32 Characteristics;
+} EFI_IMAGE_SECTION_HEADER;
+
+///
+/// Size of EFI_IMAGE_SECTION_HEADER.
+///
+
+
+//
+// Section Flags Values
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// Size of a Symbol Table Record.
+///
+
+
+//
+// Symbols have a section number of the section in which they are
+// defined. Otherwise, section numbers have the following meanings:
+//
+
+
+
+
+//
+// Symbol Type (fundamental) values.
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+//
+// Symbol Type (derived) values.
+//
+
+
+
+
+
+//
+// Storage classes.
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+//
+// type packing constants
+//
+
+
+
+
+
+
+
+//
+// Communal selection types.
+//
+
+
+
+
+
+
+//
+// the following values only be referred in PeCoff, not defined in PECOFF.
+//
+
+
+
+
+///
+/// Relocation format.
+///
+typedef struct {
+ UINT32 VirtualAddress;
+ UINT32 SymbolTableIndex;
+ UINT16 Type;
+} EFI_IMAGE_RELOCATION;
+
+///
+/// Size of EFI_IMAGE_RELOCATION
+///
+
+
+//
+// I386 relocation types.
+//
+
+
+
+
+
+
+
+
+
+
+//
+// x64 processor relocation types.
+//
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// Based relocation format.
+///
+typedef struct {
+ UINT32 VirtualAddress;
+ UINT32 SizeOfBlock;
+} EFI_IMAGE_BASE_RELOCATION;
+
+///
+/// Size of EFI_IMAGE_BASE_RELOCATION.
+///
+
+
+//
+// Based relocation types.
+//
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// Relocation types of RISC-V processor.
+///
+
+
+
+
+///
+/// Line number format.
+///
+typedef struct {
+ union {
+ UINT32 SymbolTableIndex; ///< Symbol table index of function name if Linenumber is 0.
+ UINT32 VirtualAddress; ///< Virtual address of line number.
+ } Type;
+ UINT16 Linenumber; ///< Line number.
+} EFI_IMAGE_LINENUMBER;
+
+///
+/// Size of EFI_IMAGE_LINENUMBER.
+///
+
+
+//
+// Archive format.
+//
+
+
+
+
+
+
+
+///
+/// Archive Member Headers
+///
+typedef struct {
+ UINT8 Name[16]; ///< File member name - `/' terminated.
+ UINT8 Date[12]; ///< File member date - decimal.
+ UINT8 UserID[6]; ///< File member user id - decimal.
+ UINT8 GroupID[6]; ///< File member group id - decimal.
+ UINT8 Mode[8]; ///< File member mode - octal.
+ UINT8 Size[10]; ///< File member size - decimal.
+ UINT8 EndHeader[2]; ///< String to end header. (0x60 0x0A).
+} EFI_IMAGE_ARCHIVE_MEMBER_HEADER;
+
+///
+/// Size of EFI_IMAGE_ARCHIVE_MEMBER_HEADER.
+///
+
+
+//
+// DLL Support
+//
+
+///
+/// Export Directory Table.
+///
+typedef struct {
+ UINT32 Characteristics;
+ UINT32 TimeDateStamp;
+ UINT16 MajorVersion;
+ UINT16 MinorVersion;
+ UINT32 Name;
+ UINT32 Base;
+ UINT32 NumberOfFunctions;
+ UINT32 NumberOfNames;
+ UINT32 AddressOfFunctions;
+ UINT32 AddressOfNames;
+ UINT32 AddressOfNameOrdinals;
+} EFI_IMAGE_EXPORT_DIRECTORY;
+
+///
+/// Hint/Name Table.
+///
+typedef struct {
+ UINT16 Hint;
+ UINT8 Name[1];
+} EFI_IMAGE_IMPORT_BY_NAME;
+
+///
+/// Import Address Table RVA (Thunk Table).
+///
+typedef struct {
+ union {
+ UINT32 Function;
+ UINT32 Ordinal;
+ EFI_IMAGE_IMPORT_BY_NAME *AddressOfData;
+ } u1;
+} EFI_IMAGE_THUNK_DATA;
+
+
+
+
+
+///
+/// Import Directory Table
+///
+typedef struct {
+ UINT32 Characteristics;
+ UINT32 TimeDateStamp;
+ UINT32 ForwarderChain;
+ UINT32 Name;
+ EFI_IMAGE_THUNK_DATA *FirstThunk;
+} EFI_IMAGE_IMPORT_DESCRIPTOR;
+
+///
+/// Debug Directory Format.
+///
+typedef struct {
+ UINT32 Characteristics;
+ UINT32 TimeDateStamp;
+ UINT16 MajorVersion;
+ UINT16 MinorVersion;
+ UINT32 Type;
+ UINT32 SizeOfData;
+ UINT32 RVA; ///< The address of the debug data when loaded, relative to the image base.
+ UINT32 FileOffset; ///< The file pointer to the debug data.
+} EFI_IMAGE_DEBUG_DIRECTORY_ENTRY;
+
+
+
+///
+/// Debug Data Structure defined in Microsoft C++.
+///
+
+typedef struct {
+ UINT32 Signature; ///< "NB10"
+ UINT32 Unknown;
+ UINT32 Unknown2;
+ UINT32 Unknown3;
+ //
+ // Filename of .PDB goes here
+ //
+} EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY;
+
+///
+/// Debug Data Structure defined in Microsoft C++.
+///
+
+typedef struct {
+ UINT32 Signature; ///< "RSDS".
+ UINT32 Unknown;
+ UINT32 Unknown2;
+ UINT32 Unknown3;
+ UINT32 Unknown4;
+ UINT32 Unknown5;
+ //
+ // Filename of .PDB goes here
+ //
+} EFI_IMAGE_DEBUG_CODEVIEW_RSDS_ENTRY;
+
+///
+/// Debug Data Structure defined by Apple Mach-O to Coff utility.
+///
+
+typedef struct {
+ UINT32 Signature; ///< "MTOC".
+ GUID MachOUuid;
+ //
+ // Filename of .DLL (Mach-O with debug info) goes here
+ //
+} EFI_IMAGE_DEBUG_CODEVIEW_MTOC_ENTRY;
+
+///
+/// Resource format.
+///
+typedef struct {
+ UINT32 Characteristics;
+ UINT32 TimeDateStamp;
+ UINT16 MajorVersion;
+ UINT16 MinorVersion;
+ UINT16 NumberOfNamedEntries;
+ UINT16 NumberOfIdEntries;
+ //
+ // Array of EFI_IMAGE_RESOURCE_DIRECTORY_ENTRY entries goes here.
+ //
+} EFI_IMAGE_RESOURCE_DIRECTORY;
+
+///
+/// Resource directory entry format.
+///
+typedef struct {
+ union {
+ struct {
+ UINT32 NameOffset : 31;
+ UINT32 NameIsString : 1;
+ } s;
+ UINT32 Id;
+ } u1;
+ union {
+ UINT32 OffsetToData;
+ struct {
+ UINT32 OffsetToDirectory : 31;
+ UINT32 DataIsDirectory : 1;
+ } s;
+ } u2;
+} EFI_IMAGE_RESOURCE_DIRECTORY_ENTRY;
+
+///
+/// Resource directory entry for string.
+///
+typedef struct {
+ UINT16 Length;
+ CHAR16 String[1];
+} EFI_IMAGE_RESOURCE_DIRECTORY_STRING;
+
+///
+/// Resource directory entry for data array.
+///
+typedef struct {
+ UINT32 OffsetToData;
+ UINT32 Size;
+ UINT32 CodePage;
+ UINT32 Reserved;
+} EFI_IMAGE_RESOURCE_DATA_ENTRY;
+
+///
+/// Header format for TE images, defined in the PI Specification, 1.0.
+///
+typedef struct {
+ UINT16 Signature; ///< The signature for TE format = "VZ".
+ UINT16 Machine; ///< From the original file header.
+ UINT8 NumberOfSections; ///< From the original file header.
+ UINT8 Subsystem; ///< From original optional header.
+ UINT16 StrippedSize; ///< Number of bytes we removed from the header.
+ UINT32 AddressOfEntryPoint; ///< Offset to entry point -- from original optional header.
+ UINT32 BaseOfCode; ///< From original image -- required for ITP debug.
+ UINT64 ImageBase; ///< From original file header.
+ EFI_IMAGE_DATA_DIRECTORY DataDirectory[2]; ///< Only base relocation and debug directory.
+} EFI_TE_IMAGE_HEADER;
+
+
+
+//
+// Data directory indexes in our TE image header
+//
+
+
+
+///
+/// Union of PE32, PE32+, and TE headers.
+///
+typedef union {
+ EFI_IMAGE_NT_HEADERS32 Pe32;
+ EFI_IMAGE_NT_HEADERS64 Pe32Plus;
+ EFI_TE_IMAGE_HEADER Te;
+} EFI_IMAGE_OPTIONAL_HEADER_UNION;
+
+typedef union {
+ EFI_IMAGE_NT_HEADERS32 *Pe32;
+ EFI_IMAGE_NT_HEADERS64 *Pe32Plus;
+ EFI_TE_IMAGE_HEADER *Te;
+ EFI_IMAGE_OPTIONAL_HEADER_UNION *Union;
+} EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION;
+
+#line 756 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\IndustryStandard/PeImage.h"
+#line 20 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Protocol/DebugSupport.h"
+
+typedef struct _EFI_DEBUG_SUPPORT_PROTOCOL EFI_DEBUG_SUPPORT_PROTOCOL;
+
+///
+/// Debug Support protocol {2755590C-6F3C-42FA-9EA4-A3BA543CDA25}.
+///
+
+
+
+
+
+///
+/// Processor exception to be hooked.
+/// All exception types for IA32, X64, Itanium and EBC processors are defined.
+///
+typedef INTN EFI_EXCEPTION_TYPE;
+
+///
+/// IA-32 processor exception types.
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// FXSAVE_STATE.
+/// FP / MMX / XMM registers (see fxrstor instruction definition).
+///
+typedef struct {
+ UINT16 Fcw;
+ UINT16 Fsw;
+ UINT16 Ftw;
+ UINT16 Opcode;
+ UINT32 Eip;
+ UINT16 Cs;
+ UINT16 Reserved1;
+ UINT32 DataOffset;
+ UINT16 Ds;
+ UINT8 Reserved2[10];
+ UINT8 St0Mm0[10], Reserved3[6];
+ UINT8 St1Mm1[10], Reserved4[6];
+ UINT8 St2Mm2[10], Reserved5[6];
+ UINT8 St3Mm3[10], Reserved6[6];
+ UINT8 St4Mm4[10], Reserved7[6];
+ UINT8 St5Mm5[10], Reserved8[6];
+ UINT8 St6Mm6[10], Reserved9[6];
+ UINT8 St7Mm7[10], Reserved10[6];
+ UINT8 Xmm0[16];
+ UINT8 Xmm1[16];
+ UINT8 Xmm2[16];
+ UINT8 Xmm3[16];
+ UINT8 Xmm4[16];
+ UINT8 Xmm5[16];
+ UINT8 Xmm6[16];
+ UINT8 Xmm7[16];
+ UINT8 Reserved11[14 * 16];
+} EFI_FX_SAVE_STATE_IA32;
+
+///
+/// IA-32 processor context definition.
+///
+typedef struct {
+ UINT32 ExceptionData;
+ EFI_FX_SAVE_STATE_IA32 FxSaveState;
+ UINT32 Dr0;
+ UINT32 Dr1;
+ UINT32 Dr2;
+ UINT32 Dr3;
+ UINT32 Dr6;
+ UINT32 Dr7;
+ UINT32 Cr0;
+ UINT32 Cr1; /* Reserved */
+ UINT32 Cr2;
+ UINT32 Cr3;
+ UINT32 Cr4;
+ UINT32 Eflags;
+ UINT32 Ldtr;
+ UINT32 Tr;
+ UINT32 Gdtr[2];
+ UINT32 Idtr[2];
+ UINT32 Eip;
+ UINT32 Gs;
+ UINT32 Fs;
+ UINT32 Es;
+ UINT32 Ds;
+ UINT32 Cs;
+ UINT32 Ss;
+ UINT32 Edi;
+ UINT32 Esi;
+ UINT32 Ebp;
+ UINT32 Esp;
+ UINT32 Ebx;
+ UINT32 Edx;
+ UINT32 Ecx;
+ UINT32 Eax;
+} EFI_SYSTEM_CONTEXT_IA32;
+
+///
+/// x64 processor exception types.
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// FXSAVE_STATE.
+/// FP / MMX / XMM registers (see fxrstor instruction definition).
+///
+typedef struct {
+ UINT16 Fcw;
+ UINT16 Fsw;
+ UINT16 Ftw;
+ UINT16 Opcode;
+ UINT64 Rip;
+ UINT64 DataOffset;
+ UINT8 Reserved1[8];
+ UINT8 St0Mm0[10], Reserved2[6];
+ UINT8 St1Mm1[10], Reserved3[6];
+ UINT8 St2Mm2[10], Reserved4[6];
+ UINT8 St3Mm3[10], Reserved5[6];
+ UINT8 St4Mm4[10], Reserved6[6];
+ UINT8 St5Mm5[10], Reserved7[6];
+ UINT8 St6Mm6[10], Reserved8[6];
+ UINT8 St7Mm7[10], Reserved9[6];
+ UINT8 Xmm0[16];
+ UINT8 Xmm1[16];
+ UINT8 Xmm2[16];
+ UINT8 Xmm3[16];
+ UINT8 Xmm4[16];
+ UINT8 Xmm5[16];
+ UINT8 Xmm6[16];
+ UINT8 Xmm7[16];
+ //
+ // NOTE: UEFI 2.0 spec definition as follows.
+ //
+ UINT8 Reserved11[14 * 16];
+} EFI_FX_SAVE_STATE_X64;
+
+///
+/// x64 processor context definition.
+///
+typedef struct {
+ UINT64 ExceptionData;
+ EFI_FX_SAVE_STATE_X64 FxSaveState;
+ UINT64 Dr0;
+ UINT64 Dr1;
+ UINT64 Dr2;
+ UINT64 Dr3;
+ UINT64 Dr6;
+ UINT64 Dr7;
+ UINT64 Cr0;
+ UINT64 Cr1; /* Reserved */
+ UINT64 Cr2;
+ UINT64 Cr3;
+ UINT64 Cr4;
+ UINT64 Cr8;
+ UINT64 Rflags;
+ UINT64 Ldtr;
+ UINT64 Tr;
+ UINT64 Gdtr[2];
+ UINT64 Idtr[2];
+ UINT64 Rip;
+ UINT64 Gs;
+ UINT64 Fs;
+ UINT64 Es;
+ UINT64 Ds;
+ UINT64 Cs;
+ UINT64 Ss;
+ UINT64 Rdi;
+ UINT64 Rsi;
+ UINT64 Rbp;
+ UINT64 Rsp;
+ UINT64 Rbx;
+ UINT64 Rdx;
+ UINT64 Rcx;
+ UINT64 Rax;
+ UINT64 R8;
+ UINT64 R9;
+ UINT64 R10;
+ UINT64 R11;
+ UINT64 R12;
+ UINT64 R13;
+ UINT64 R14;
+ UINT64 R15;
+} EFI_SYSTEM_CONTEXT_X64;
+
+///
+/// Itanium Processor Family Exception types.
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+//
+// 13 - 19 reserved
+//
+
+
+
+
+
+
+
+
+//
+// 28 reserved
+//
+
+
+
+
+
+
+
+
+//
+// 37 - 44 reserved
+//
+
+
+
+
+///
+/// IPF processor context definition.
+///
+typedef struct {
+ //
+ // The first reserved field is necessary to preserve alignment for the correct
+ // bits in UNAT and to insure F2 is 16 byte aligned.
+ //
+ UINT64 Reserved;
+ UINT64 R1;
+ UINT64 R2;
+ UINT64 R3;
+ UINT64 R4;
+ UINT64 R5;
+ UINT64 R6;
+ UINT64 R7;
+ UINT64 R8;
+ UINT64 R9;
+ UINT64 R10;
+ UINT64 R11;
+ UINT64 R12;
+ UINT64 R13;
+ UINT64 R14;
+ UINT64 R15;
+ UINT64 R16;
+ UINT64 R17;
+ UINT64 R18;
+ UINT64 R19;
+ UINT64 R20;
+ UINT64 R21;
+ UINT64 R22;
+ UINT64 R23;
+ UINT64 R24;
+ UINT64 R25;
+ UINT64 R26;
+ UINT64 R27;
+ UINT64 R28;
+ UINT64 R29;
+ UINT64 R30;
+ UINT64 R31;
+
+ UINT64 F2[2];
+ UINT64 F3[2];
+ UINT64 F4[2];
+ UINT64 F5[2];
+ UINT64 F6[2];
+ UINT64 F7[2];
+ UINT64 F8[2];
+ UINT64 F9[2];
+ UINT64 F10[2];
+ UINT64 F11[2];
+ UINT64 F12[2];
+ UINT64 F13[2];
+ UINT64 F14[2];
+ UINT64 F15[2];
+ UINT64 F16[2];
+ UINT64 F17[2];
+ UINT64 F18[2];
+ UINT64 F19[2];
+ UINT64 F20[2];
+ UINT64 F21[2];
+ UINT64 F22[2];
+ UINT64 F23[2];
+ UINT64 F24[2];
+ UINT64 F25[2];
+ UINT64 F26[2];
+ UINT64 F27[2];
+ UINT64 F28[2];
+ UINT64 F29[2];
+ UINT64 F30[2];
+ UINT64 F31[2];
+
+ UINT64 Pr;
+
+ UINT64 B0;
+ UINT64 B1;
+ UINT64 B2;
+ UINT64 B3;
+ UINT64 B4;
+ UINT64 B5;
+ UINT64 B6;
+ UINT64 B7;
+
+ //
+ // application registers
+ //
+ UINT64 ArRsc;
+ UINT64 ArBsp;
+ UINT64 ArBspstore;
+ UINT64 ArRnat;
+
+ UINT64 ArFcr;
+
+ UINT64 ArEflag;
+ UINT64 ArCsd;
+ UINT64 ArSsd;
+ UINT64 ArCflg;
+ UINT64 ArFsr;
+ UINT64 ArFir;
+ UINT64 ArFdr;
+
+ UINT64 ArCcv;
+
+ UINT64 ArUnat;
+
+ UINT64 ArFpsr;
+
+ UINT64 ArPfs;
+ UINT64 ArLc;
+ UINT64 ArEc;
+
+ //
+ // control registers
+ //
+ UINT64 CrDcr;
+ UINT64 CrItm;
+ UINT64 CrIva;
+ UINT64 CrPta;
+ UINT64 CrIpsr;
+ UINT64 CrIsr;
+ UINT64 CrIip;
+ UINT64 CrIfa;
+ UINT64 CrItir;
+ UINT64 CrIipa;
+ UINT64 CrIfs;
+ UINT64 CrIim;
+ UINT64 CrIha;
+
+ //
+ // debug registers
+ //
+ UINT64 Dbr0;
+ UINT64 Dbr1;
+ UINT64 Dbr2;
+ UINT64 Dbr3;
+ UINT64 Dbr4;
+ UINT64 Dbr5;
+ UINT64 Dbr6;
+ UINT64 Dbr7;
+
+ UINT64 Ibr0;
+ UINT64 Ibr1;
+ UINT64 Ibr2;
+ UINT64 Ibr3;
+ UINT64 Ibr4;
+ UINT64 Ibr5;
+ UINT64 Ibr6;
+ UINT64 Ibr7;
+
+ //
+ // virtual registers - nat bits for R1-R31
+ //
+ UINT64 IntNat;
+} EFI_SYSTEM_CONTEXT_IPF;
+
+///
+/// EBC processor exception types.
+///
+
+
+
+
+
+
+
+
+
+
+
+///
+/// For coding convenience, define the maximum valid EBC exception.
+///
+
+
+///
+/// EBC processor context definition.
+///
+typedef struct {
+ UINT64 R0;
+ UINT64 R1;
+ UINT64 R2;
+ UINT64 R3;
+ UINT64 R4;
+ UINT64 R5;
+ UINT64 R6;
+ UINT64 R7;
+ UINT64 Flags;
+ UINT64 ControlFlags;
+ UINT64 Ip;
+} EFI_SYSTEM_CONTEXT_EBC;
+
+///
+/// ARM processor exception types.
+///
+
+
+
+
+
+
+
+
+
+///
+/// For coding convenience, define the maximum valid ARM exception.
+///
+
+
+///
+/// ARM processor context definition.
+///
+typedef struct {
+ UINT32 R0;
+ UINT32 R1;
+ UINT32 R2;
+ UINT32 R3;
+ UINT32 R4;
+ UINT32 R5;
+ UINT32 R6;
+ UINT32 R7;
+ UINT32 R8;
+ UINT32 R9;
+ UINT32 R10;
+ UINT32 R11;
+ UINT32 R12;
+ UINT32 SP;
+ UINT32 LR;
+ UINT32 PC;
+ UINT32 CPSR;
+ UINT32 DFSR;
+ UINT32 DFAR;
+ UINT32 IFSR;
+ UINT32 IFAR;
+} EFI_SYSTEM_CONTEXT_ARM;
+
+///
+/// AARCH64 processor exception types.
+///
+
+
+
+
+
+///
+/// For coding convenience, define the maximum valid ARM exception.
+///
+
+
+typedef struct {
+ // General Purpose Registers
+ UINT64 X0;
+ UINT64 X1;
+ UINT64 X2;
+ UINT64 X3;
+ UINT64 X4;
+ UINT64 X5;
+ UINT64 X6;
+ UINT64 X7;
+ UINT64 X8;
+ UINT64 X9;
+ UINT64 X10;
+ UINT64 X11;
+ UINT64 X12;
+ UINT64 X13;
+ UINT64 X14;
+ UINT64 X15;
+ UINT64 X16;
+ UINT64 X17;
+ UINT64 X18;
+ UINT64 X19;
+ UINT64 X20;
+ UINT64 X21;
+ UINT64 X22;
+ UINT64 X23;
+ UINT64 X24;
+ UINT64 X25;
+ UINT64 X26;
+ UINT64 X27;
+ UINT64 X28;
+ UINT64 FP; // x29 - Frame pointer
+ UINT64 LR; // x30 - Link Register
+ UINT64 SP; // x31 - Stack pointer
+
+ // FP/SIMD Registers
+ UINT64 V0[2];
+ UINT64 V1[2];
+ UINT64 V2[2];
+ UINT64 V3[2];
+ UINT64 V4[2];
+ UINT64 V5[2];
+ UINT64 V6[2];
+ UINT64 V7[2];
+ UINT64 V8[2];
+ UINT64 V9[2];
+ UINT64 V10[2];
+ UINT64 V11[2];
+ UINT64 V12[2];
+ UINT64 V13[2];
+ UINT64 V14[2];
+ UINT64 V15[2];
+ UINT64 V16[2];
+ UINT64 V17[2];
+ UINT64 V18[2];
+ UINT64 V19[2];
+ UINT64 V20[2];
+ UINT64 V21[2];
+ UINT64 V22[2];
+ UINT64 V23[2];
+ UINT64 V24[2];
+ UINT64 V25[2];
+ UINT64 V26[2];
+ UINT64 V27[2];
+ UINT64 V28[2];
+ UINT64 V29[2];
+ UINT64 V30[2];
+ UINT64 V31[2];
+
+ UINT64 ELR; // Exception Link Register
+ UINT64 SPSR; // Saved Processor Status Register
+ UINT64 FPSR; // Floating Point Status Register
+ UINT64 ESR; // Exception syndrome register
+ UINT64 FAR; // Fault Address Register
+} EFI_SYSTEM_CONTEXT_AARCH64;
+
+///
+/// RISC-V processor exception types.
+///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct {
+ UINT64 X0;
+ UINT64 X1;
+ UINT64 X2;
+ UINT64 X3;
+ UINT64 X4;
+ UINT64 X5;
+ UINT64 X6;
+ UINT64 X7;
+ UINT64 X8;
+ UINT64 X9;
+ UINT64 X10;
+ UINT64 X11;
+ UINT64 X12;
+ UINT64 X13;
+ UINT64 X14;
+ UINT64 X15;
+ UINT64 X16;
+ UINT64 X17;
+ UINT64 X18;
+ UINT64 X19;
+ UINT64 X20;
+ UINT64 X21;
+ UINT64 X22;
+ UINT64 X23;
+ UINT64 X24;
+ UINT64 X25;
+ UINT64 X26;
+ UINT64 X27;
+ UINT64 X28;
+ UINT64 X29;
+ UINT64 X30;
+ UINT64 X31;
+} EFI_SYSTEM_CONTEXT_RISCV64;
+
+///
+/// Universal EFI_SYSTEM_CONTEXT definition.
+///
+typedef union {
+ EFI_SYSTEM_CONTEXT_EBC *SystemContextEbc;
+ EFI_SYSTEM_CONTEXT_IA32 *SystemContextIa32;
+ EFI_SYSTEM_CONTEXT_X64 *SystemContextX64;
+ EFI_SYSTEM_CONTEXT_IPF *SystemContextIpf;
+ EFI_SYSTEM_CONTEXT_ARM *SystemContextArm;
+ EFI_SYSTEM_CONTEXT_AARCH64 *SystemContextAArch64;
+ EFI_SYSTEM_CONTEXT_RISCV64 *SystemContextRiscV64;
+} EFI_SYSTEM_CONTEXT;
+
+//
+// DebugSupport callback function prototypes
+//
+
+/**
+ Registers and enables an exception callback function for the specified exception.
+
+ @param ExceptionType Exception types in EBC, IA-32, x64, or IPF.
+ @param SystemContext Exception content.
+
+**/
+typedef
+void
+(__cdecl *EFI_EXCEPTION_CALLBACK)(
+ EFI_EXCEPTION_TYPE ExceptionType,
+ EFI_SYSTEM_CONTEXT SystemContext
+ );
+
+/**
+ Registers and enables the on-target debug agent's periodic entry point.
+
+ @param SystemContext Exception content.
+
+**/
+typedef
+void
+(__cdecl *EFI_PERIODIC_CALLBACK)(
+ EFI_SYSTEM_CONTEXT SystemContext
+ );
+
+///
+/// Machine type definition
+///
+typedef enum {
+ IsaIa32 = 0x014c, ///< 0x014C
+ IsaX64 = 0x8664, ///< 0x8664
+ IsaIpf = 0x0200, ///< 0x0200
+ IsaEbc = 0x0EBC, ///< 0x0EBC
+ IsaArm = 0x01c2, ///< 0x01c2
+ IsaAArch64 = 0xAA64 ///< 0xAA64
+} EFI_INSTRUCTION_SET_ARCHITECTURE;
+
+//
+// DebugSupport member function definitions
+//
+
+/**
+ Returns the maximum value that may be used for the ProcessorIndex parameter in
+ RegisterPeriodicCallback() and RegisterExceptionCallback().
+
+ @param This A pointer to the EFI_DEBUG_SUPPORT_PROTOCOL instance.
+ @param MaxProcessorIndex Pointer to a caller-allocated UINTN in which the maximum supported
+ processor index is returned.
+
+ @retval EFI_SUCCESS The function completed successfully.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_GET_MAXIMUM_PROCESSOR_INDEX)(
+ EFI_DEBUG_SUPPORT_PROTOCOL *This,
+ UINTN *MaxProcessorIndex
+ );
+
+/**
+ Registers a function to be called back periodically in interrupt context.
+
+ @param This A pointer to the EFI_DEBUG_SUPPORT_PROTOCOL instance.
+ @param ProcessorIndex Specifies which processor the callback function applies to.
+ @param PeriodicCallback A pointer to a function of type PERIODIC_CALLBACK that is the main
+ periodic entry point of the debug agent.
+
+ @retval EFI_SUCCESS The function completed successfully.
+ @retval EFI_ALREADY_STARTED Non-NULL PeriodicCallback parameter when a callback
+ function was previously registered.
+ @retval EFI_OUT_OF_RESOURCES System has insufficient memory resources to register new callback
+ function.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_REGISTER_PERIODIC_CALLBACK)(
+ EFI_DEBUG_SUPPORT_PROTOCOL *This,
+ UINTN ProcessorIndex,
+ EFI_PERIODIC_CALLBACK PeriodicCallback
+ );
+
+/**
+ Registers a function to be called when a given processor exception occurs.
+
+ @param This A pointer to the EFI_DEBUG_SUPPORT_PROTOCOL instance.
+ @param ProcessorIndex Specifies which processor the callback function applies to.
+ @param ExceptionCallback A pointer to a function of type EXCEPTION_CALLBACK that is called
+ when the processor exception specified by ExceptionType occurs.
+ @param ExceptionType Specifies which processor exception to hook.
+
+ @retval EFI_SUCCESS The function completed successfully.
+ @retval EFI_ALREADY_STARTED Non-NULL PeriodicCallback parameter when a callback
+ function was previously registered.
+ @retval EFI_OUT_OF_RESOURCES System has insufficient memory resources to register new callback
+ function.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_REGISTER_EXCEPTION_CALLBACK)(
+ EFI_DEBUG_SUPPORT_PROTOCOL *This,
+ UINTN ProcessorIndex,
+ EFI_EXCEPTION_CALLBACK ExceptionCallback,
+ EFI_EXCEPTION_TYPE ExceptionType
+ );
+
+/**
+ Invalidates processor instruction cache for a memory range. Subsequent execution in this range
+ causes a fresh memory fetch to retrieve code to be executed.
+
+ @param This A pointer to the EFI_DEBUG_SUPPORT_PROTOCOL instance.
+ @param ProcessorIndex Specifies which processor's instruction cache is to be invalidated.
+ @param Start Specifies the physical base of the memory range to be invalidated.
+ @param Length Specifies the minimum number of bytes in the processor's instruction
+ cache to invalidate.
+
+ @retval EFI_SUCCESS The function completed successfully.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_INVALIDATE_INSTRUCTION_CACHE)(
+ EFI_DEBUG_SUPPORT_PROTOCOL *This,
+ UINTN ProcessorIndex,
+ void *Start,
+ UINT64 Length
+ );
+
+///
+/// This protocol provides the services to allow the debug agent to register
+/// callback functions that are called either periodically or when specific
+/// processor exceptions occur.
+///
+struct _EFI_DEBUG_SUPPORT_PROTOCOL {
+ ///
+ /// Declares the processor architecture for this instance of the EFI Debug Support protocol.
+ ///
+ EFI_INSTRUCTION_SET_ARCHITECTURE Isa;
+ EFI_GET_MAXIMUM_PROCESSOR_INDEX GetMaximumProcessorIndex;
+ EFI_REGISTER_PERIODIC_CALLBACK RegisterPeriodicCallback;
+ EFI_REGISTER_EXCEPTION_CALLBACK RegisterExceptionCallback;
+ EFI_INVALIDATE_INSTRUCTION_CACHE InvalidateInstructionCache;
+};
+
+extern EFI_GUID gEfiDebugSupportProtocolGuid;
+
+#line 823 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Protocol/DebugSupport.h"
+#line 20 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiStatusCode.h"
+
+///
+/// Status Code Type Definition.
+///
+typedef UINT32 EFI_STATUS_CODE_TYPE;
+
+///
+/// A Status Code Type is made up of the code type and severity.
+/// All values masked by EFI_STATUS_CODE_RESERVED_MASK are
+/// reserved for use by this specification.
+///
+///@{
+
+
+
+///@}
+
+///
+/// Definition of code types. All other values masked by
+/// EFI_STATUS_CODE_TYPE_MASK are reserved for use by
+/// this specification.
+///
+///@{
+
+
+
+///@}
+
+///
+/// Definitions of severities, all other values masked by
+/// EFI_STATUS_CODE_SEVERITY_MASK are reserved for use by
+/// this specification.
+/// Uncontained errors are major errors that could not contained
+/// to the specific component that is reporting the error.
+/// For example, if a memory error was not detected early enough,
+/// the bad data could be consumed by other drivers.
+///
+///@{
+
+
+
+
+///@}
+
+///
+/// Status Code Value Definition.
+///
+typedef UINT32 EFI_STATUS_CODE_VALUE;
+
+///
+/// A Status Code Value is made up of the class, subclass, and
+/// an operation.
+///
+///@{
+
+
+
+///@}
+
+///
+/// Definition of Status Code extended data header.
+/// The data will follow HeaderSize bytes from the beginning of
+/// the structure and is Size bytes long.
+///
+typedef struct {
+ ///
+ /// The size of the structure. This is specified to enable future expansion.
+ ///
+ UINT16 HeaderSize;
+ ///
+ /// The size of the data in bytes. This does not include the size of the header structure.
+ ///
+ UINT16 Size;
+ ///
+ /// The GUID defining the type of the data.
+ ///
+ EFI_GUID Type;
+} EFI_STATUS_CODE_DATA;
+
+///
+/// General partitioning scheme for Progress and Error Codes are:
+/// - 0x0000-0x0FFF Shared by all sub-classes in a given class.
+/// - 0x1000-0x7FFF Subclass Specific.
+/// - 0x8000-0xFFFF OEM specific.
+///@{
+
+
+///@}
+
+///
+/// Debug Code definitions for all classes and subclass.
+/// Only one debug code is defined at this point and should
+/// be used for anything that is sent to the debug stream.
+///
+///@{
+
+///@}
+
+///
+/// Class definitions.
+/// Values of 4-127 are reserved for future use by this specification.
+/// Values in the range 127-255 are reserved for OEM use.
+///
+///@{
+
+
+
+
+///@}
+
+///
+/// Computing Unit Subclass definitions.
+/// Values of 8-127 are reserved for future use by this specification.
+/// Values of 128-255 are reserved for OEM use.
+///
+///@{
+
+
+
+
+
+
+
+///@}
+
+///
+/// Computing Unit Class Progress Code definitions.
+/// These are shared by all subclasses.
+///
+///@{
+
+
+///@}
+
+//
+// Computing Unit Unspecified Subclass Progress Code definitions.
+//
+
+///
+/// Computing Unit Host Processor Subclass Progress Code definitions.
+///@{
+
+
+
+
+
+
+
+
+
+///@}
+
+//
+// Computing Unit Firmware Processor Subclass Progress Code definitions.
+//
+
+//
+// Computing Unit IO Processor Subclass Progress Code definitions.
+//
+
+///
+/// Computing Unit Cache Subclass Progress Code definitions.
+///
+///@{
+
+
+///@}
+
+///
+/// Computing Unit Memory Subclass Progress Code definitions.
+///
+///@{
+
+
+
+
+
+
+
+///@}
+
+//
+// Computing Unit Chipset Subclass Progress Code definitions.
+//
+
+///
+/// South Bridge initialization prior to memory detection.
+///
+
+
+///
+/// North Bridge initialization prior to memory detection.
+///
+
+
+///
+/// South Bridge initialization after memory detection.
+///
+
+
+///
+/// North Bridge initialization after memory detection.
+///
+
+
+///
+/// PCI Host Bridge DXE initialization.
+///
+
+
+///
+/// North Bridge DXE initialization.
+///
+
+
+///
+/// North Bridge specific SMM initialization in DXE.
+///
+
+
+///
+/// Initialization of the South Bridge specific UEFI Runtime Services.
+///
+
+
+///
+/// South Bridge DXE initialization
+///
+
+
+///
+/// South Bridge specific SMM initialization in DXE.
+///
+
+
+///
+/// Initialization of the South Bridge devices.
+///
+
+
+///
+/// Computing Unit Class Error Code definitions.
+/// These are shared by all subclasses.
+///
+///@{
+
+
+
+
+
+///@}
+
+//
+// Computing Unit Unspecified Subclass Error Code definitions.
+//
+
+///
+/// Computing Unit Host Processor Subclass Error Code definitions.
+///
+///@{
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///@}
+
+///
+/// Computing Unit Firmware Processor Subclass Error Code definitions.
+///
+///@{
+
+
+
+///@}
+
+//
+// Computing Unit IO Processor Subclass Error Code definitions.
+//
+
+///
+/// Computing Unit Cache Subclass Error Code definitions.
+///
+///@{
+
+
+
+
+///@}
+
+///
+/// Computing Unit Memory Subclass Error Code definitions.
+///
+///@{
+
+
+
+
+
+
+
+
+
+
+
+///@}
+
+///
+/// Computing Unit Chipset Subclass Error Code definitions.
+///
+///@{
+
+
+
+
+///@}
+
+///
+/// Peripheral Subclass definitions.
+/// Values of 12-127 are reserved for future use by this specification.
+/// Values of 128-255 are reserved for OEM use.
+///
+///@{
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///@}
+
+///
+/// Peripheral Class Progress Code definitions.
+/// These are shared by all subclasses.
+///
+///@{
+
+
+
+
+
+
+
+
+///@}
+
+//
+// Peripheral Class Unspecified Subclass Progress Code definitions.
+//
+
+///
+/// Peripheral Class Keyboard Subclass Progress Code definitions.
+///
+///@{
+
+
+///@}
+
+///
+/// Peripheral Class Mouse Subclass Progress Code definitions.
+///
+///@{
+
+///@}
+
+//
+// Peripheral Class Local Console Subclass Progress Code definitions.
+//
+
+//
+// Peripheral Class Remote Console Subclass Progress Code definitions.
+//
+
+///
+/// Peripheral Class Serial Port Subclass Progress Code definitions.
+///
+///@{
+
+///@}
+
+//
+// Peripheral Class Parallel Port Subclass Progress Code definitions.
+//
+
+//
+// Peripheral Class Fixed Media Subclass Progress Code definitions.
+//
+
+//
+// Peripheral Class Removable Media Subclass Progress Code definitions.
+//
+
+//
+// Peripheral Class Audio Input Subclass Progress Code definitions.
+//
+
+//
+// Peripheral Class Audio Output Subclass Progress Code definitions.
+//
+
+//
+// Peripheral Class LCD Device Subclass Progress Code definitions.
+//
+
+//
+// Peripheral Class Network Subclass Progress Code definitions.
+//
+
+///
+/// Peripheral Class Error Code definitions.
+/// These are shared by all subclasses.
+///
+///@{
+
+
+
+
+
+
+
+
+
+
+///@}
+
+//
+// Peripheral Class Unspecified Subclass Error Code definitions.
+//
+
+///
+/// Peripheral Class Keyboard Subclass Error Code definitions.
+///
+///@{
+
+
+
+///@}
+
+///
+/// Peripheral Class Mouse Subclass Error Code definitions.
+///
+///@{
+
+///@}
+
+//
+// Peripheral Class Local Console Subclass Error Code definitions.
+//
+
+//
+// Peripheral Class Remote Console Subclass Error Code definitions.
+//
+
+//
+// Peripheral Class Serial Port Subclass Error Code definitions.
+//
+
+//
+// Peripheral Class Parallel Port Subclass Error Code definitions.
+//
+
+//
+// Peripheral Class Fixed Media Subclass Error Code definitions.
+//
+
+//
+// Peripheral Class Removable Media Subclass Error Code definitions.
+//
+
+//
+// Peripheral Class Audio Input Subclass Error Code definitions.
+//
+
+//
+// Peripheral Class Audio Output Subclass Error Code definitions.
+//
+
+//
+// Peripheral Class LCD Device Subclass Error Code definitions.
+//
+
+//
+// Peripheral Class Network Subclass Error Code definitions.
+//
+
+///
+/// IO Bus Subclass definitions.
+/// Values of 14-127 are reserved for future use by this specification.
+/// Values of 128-255 are reserved for OEM use.
+///
+///@{
+
+
+
+
+
+
+
+
+
+
+
+
+
+///@}
+
+///
+/// IO Bus Class Progress Code definitions.
+/// These are shared by all subclasses.
+///
+///@{
+
+
+
+
+
+
+
+///@}
+
+//
+// IO Bus Class Unspecified Subclass Progress Code definitions.
+//
+
+///
+/// IO Bus Class PCI Subclass Progress Code definitions.
+///
+///@{
+
+
+
+///@}
+
+//
+// IO Bus Class USB Subclass Progress Code definitions.
+//
+
+//
+// IO Bus Class IBA Subclass Progress Code definitions.
+//
+
+//
+// IO Bus Class AGP Subclass Progress Code definitions.
+//
+
+//
+// IO Bus Class PC Card Subclass Progress Code definitions.
+//
+
+//
+// IO Bus Class LPC Subclass Progress Code definitions.
+//
+
+//
+// IO Bus Class SCSI Subclass Progress Code definitions.
+//
+
+//
+// IO Bus Class ATA/ATAPI Subclass Progress Code definitions.
+//
+
+
+
+
+//
+// IO Bus Class FC Subclass Progress Code definitions.
+//
+
+//
+// IO Bus Class IP Network Subclass Progress Code definitions.
+//
+
+//
+// IO Bus Class SMBUS Subclass Progress Code definitions.
+//
+
+//
+// IO Bus Class I2C Subclass Progress Code definitions.
+//
+
+///
+/// IO Bus Class Error Code definitions.
+/// These are shared by all subclasses.
+///
+///@{
+
+
+
+
+
+
+
+
+
+
+///@}
+
+//
+// IO Bus Class Unspecified Subclass Error Code definitions.
+//
+
+///
+/// IO Bus Class PCI Subclass Error Code definitions.
+///
+///@{
+
+
+///@}
+
+//
+// IO Bus Class USB Subclass Error Code definitions.
+//
+
+//
+// IO Bus Class IBA Subclass Error Code definitions.
+//
+
+//
+// IO Bus Class AGP Subclass Error Code definitions.
+//
+
+//
+// IO Bus Class PC Card Subclass Error Code definitions.
+//
+
+//
+// IO Bus Class LPC Subclass Error Code definitions.
+//
+
+//
+// IO Bus Class SCSI Subclass Error Code definitions.
+//
+
+//
+// IO Bus Class ATA/ATAPI Subclass Error Code definitions.
+//
+
+
+
+//
+// IO Bus Class FC Subclass Error Code definitions.
+//
+
+//
+// IO Bus Class IP Network Subclass Error Code definitions.
+//
+
+//
+// IO Bus Class SMBUS Subclass Error Code definitions.
+//
+
+//
+// IO Bus Class I2C Subclass Error Code definitions.
+//
+
+///
+/// Software Subclass definitions.
+/// Values of 14-127 are reserved for future use by this specification.
+/// Values of 128-255 are reserved for OEM use.
+///
+///@{
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///@}
+
+///
+/// Software Class Progress Code definitions.
+/// These are shared by all subclasses.
+///
+///@{
+
+
+
+
+
+
+
+
+///@}
+
+//
+// Software Class Unspecified Subclass Progress Code definitions.
+//
+
+///
+/// Software Class SEC Subclass Progress Code definitions.
+///
+///@{
+
+
+///@}
+
+///
+/// Software Class PEI Core Subclass Progress Code definitions.
+///
+///@{
+
+
+
+///@}
+
+///
+/// Software Class PEI Module Subclass Progress Code definitions.
+///
+///@{
+
+
+
+
+
+
+
+
+///@}
+
+///
+/// Software Class DXE Core Subclass Progress Code definitions.
+///
+///@{
+
+
+
+
+
+///@}
+
+///
+/// Software Class DXE BS Driver Subclass Progress Code definitions.
+///
+///@{
+
+
+
+
+
+
+
+
+
+
+///@}
+
+//
+// Software Class SMM Driver Subclass Progress Code definitions.
+//
+
+//
+// Software Class EFI Application Subclass Progress Code definitions.
+//
+
+//
+// Software Class EFI OS Loader Subclass Progress Code definitions.
+//
+
+///
+/// Software Class EFI RT Subclass Progress Code definitions.
+///
+///@{
+
+
+
+///@}
+
+//
+// Software Class X64 Exception Subclass Progress Code definitions.
+//
+
+//
+// Software Class ARM Exception Subclass Progress Code definitions.
+//
+
+//
+// Software Class EBC Exception Subclass Progress Code definitions.
+//
+
+//
+// Software Class IA32 Exception Subclass Progress Code definitions.
+//
+
+//
+// Software Class X64 Exception Subclass Progress Code definitions.
+//
+
+//
+// Software Class IPF Exception Subclass Progress Code definitions.
+//
+
+///
+/// Software Class PEI Services Subclass Progress Code definitions.
+///
+///@{
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///@}
+
+///
+/// Software Class EFI Boot Services Subclass Progress Code definitions.
+///
+///@{
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///@}
+
+///
+/// Software Class EFI Runtime Services Subclass Progress Code definitions.
+///
+///@{
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///@}
+
+///
+/// Software Class EFI DXE Services Subclass Progress Code definitions
+///
+///@{
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///@}
+
+///
+/// Software Class Error Code definitions.
+/// These are shared by all subclasses.
+///
+///@{
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///@}
+
+//
+// Software Class Unspecified Subclass Error Code definitions.
+//
+
+//
+// Software Class SEC Subclass Error Code definitions.
+//
+
+///
+/// Software Class PEI Core Subclass Error Code definitions.
+///
+///@{
+
+
+
+///@}
+
+///
+/// Software Class PEI Module Subclass Error Code definitions.
+///
+///@{
+
+
+
+
+
+
+
+
+
+
+///@}
+
+///
+/// Software Class DXE Foundation Subclass Error Code definitions.
+///
+///@{
+
+///@}
+
+///
+/// Software Class DXE Boot Service Driver Subclass Error Code definitions.
+///
+///@{
+
+
+
+
+
+///@}
+
+//
+// Software Class DXE Runtime Service Driver Subclass Error Code definitions.
+//
+
+//
+// Software Class SMM Driver Subclass Error Code definitions.
+//
+
+//
+// Software Class EFI Application Subclass Error Code definitions.
+//
+
+//
+// Software Class EFI OS Loader Subclass Error Code definitions.
+//
+
+//
+// Software Class EFI RT Subclass Error Code definitions.
+//
+
+//
+// Software Class EFI AL Subclass Error Code definitions.
+//
+
+///
+/// Software Class EBC Exception Subclass Error Code definitions.
+/// These exceptions are derived from the debug protocol definitions in the EFI
+/// specification.
+///
+///@{
+
+
+
+
+
+
+
+
+
+
+
+///@}
+
+///
+/// Software Class IA32 Exception Subclass Error Code definitions.
+/// These exceptions are derived from the debug protocol definitions in the EFI
+/// specification.
+///
+///@{
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///@}
+
+///
+/// Software Class IPF Exception Subclass Error Code definitions.
+/// These exceptions are derived from the debug protocol definitions in the EFI
+/// specification.
+///
+///@{
+
+
+
+
+
+
+
+
+
+
+
+
+///@}
+
+///
+/// Software Class PEI Service Subclass Error Code definitions.
+///
+///@{
+
+
+///@}
+
+//
+// Software Class EFI Boot Service Subclass Error Code definitions.
+//
+
+//
+// Software Class EFI Runtime Service Subclass Error Code definitions.
+//
+
+///
+/// Software Class EFI DXE Service Subclass Error Code definitions.
+///
+///@{
+
+
+///@}
+
+///
+/// Software Class DXE RT Driver Subclass Progress Code definitions.
+///
+///@{
+
+
+
+
+
+
+///@}
+
+///
+/// Software Class X64 Exception Subclass Error Code definitions.
+/// These exceptions are derived from the debug protocol
+/// definitions in the EFI specification.
+///
+///@{
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+///@}
+
+///
+/// Software Class ARM Exception Subclass Error Code definitions.
+/// These exceptions are derived from the debug protocol
+/// definitions in the EFI specification.
+///
+///@{
+
+
+
+
+
+
+
+
+///@}
+
+#line 1207 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiStatusCode.h"
+
+#line 21 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiMultiPhase.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiS3BootScript.h"
+/** @file
+ This file contains the boot script defintions that are shared between the
+ Boot Script Executor PPI and the Boot Script Save Protocol.
+
+ Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+
+
+
+// *******************************************
+// EFI Boot Script Opcode definitions
+// *******************************************
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// *******************************************
+// EFI_BOOT_SCRIPT_WIDTH
+// *******************************************
+typedef enum {
+ EfiBootScriptWidthUint8,
+ EfiBootScriptWidthUint16,
+ EfiBootScriptWidthUint32,
+ EfiBootScriptWidthUint64,
+ EfiBootScriptWidthFifoUint8,
+ EfiBootScriptWidthFifoUint16,
+ EfiBootScriptWidthFifoUint32,
+ EfiBootScriptWidthFifoUint64,
+ EfiBootScriptWidthFillUint8,
+ EfiBootScriptWidthFillUint16,
+ EfiBootScriptWidthFillUint32,
+ EfiBootScriptWidthFillUint64,
+ EfiBootScriptWidthMaximum
+} EFI_BOOT_SCRIPT_WIDTH;
+
+#line 54 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiS3BootScript.h"
+#line 22 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiMultiPhase.h"
+
+/**
+ Produces an error code in the range reserved for use by the Platform Initialization
+ Architecture Specification.
+
+ The supported 32-bit range is 0xA0000000-0xBFFFFFFF
+ The supported 64-bit range is 0xA000000000000000-0xBFFFFFFFFFFFFFFF
+
+ @param StatusCode The status code value to convert into a warning code.
+ StatusCode must be in the range 0x00000000..0x1FFFFFFF.
+
+ @return The value specified by StatusCode in the PI reserved range.
+
+**/
+
+
+///
+/// If this value is returned by an EFI image, then the image should be unloaded.
+///
+
+
+///
+/// If this value is returned by an API, it means the capability is not yet
+/// installed/available/ready to use.
+///
+
+
+///
+/// Success and warning codes reserved for use by PI.
+/// Supported 32-bit range is 0x20000000-0x3fffffff.
+/// Supported 64-bit range is 0x2000000000000000-0x3fffffffffffffff.
+///
+
+
+///
+/// Error codes reserved for use by PI.
+/// Supported 32-bit range is 0xa0000000-0xbfffffff.
+/// Supported 64-bit range is 0xa000000000000000-0xbfffffffffffffff.
+///
+
+
+///
+/// Return status codes defined in SMM CIS.
+///
+
+
+
+
+
+///
+/// Bitmask of values for Authentication Status.
+/// Authentication Status is returned from EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL
+/// and the EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI
+///
+/// xx00 Image was not signed.
+/// xxx1 Platform security policy override. Assumes the same meaning as 0010 (the image was signed, the
+/// signature was tested, and the signature passed authentication test).
+/// 0010 Image was signed, the signature was tested, and the signature passed authentication test.
+/// 0110 Image was signed and the signature was not tested.
+/// 1010 Image was signed, the signature was tested, and the signature failed the authentication test.
+///
+///@{
+
+
+
+
+
+///@}
+
+///
+/// MMRAM states and capabilities
+///
+
+
+
+
+
+
+
+
+
+
+
+
+///
+/// Structure describing a MMRAM region and its accessibility attributes.
+///
+typedef struct {
+ ///
+ /// Designates the physical address of the MMRAM in memory. This view of memory is
+ /// the same as seen by I/O-based agents, for example, but it may not be the address seen
+ /// by the processors.
+ ///
+ EFI_PHYSICAL_ADDRESS PhysicalStart;
+ ///
+ /// Designates the address of the MMRAM, as seen by software executing on the
+ /// processors. This address may or may not match PhysicalStart.
+ ///
+ EFI_PHYSICAL_ADDRESS CpuStart;
+ ///
+ /// Describes the number of bytes in the MMRAM region.
+ ///
+ UINT64 PhysicalSize;
+ ///
+ /// Describes the accessibility attributes of the MMRAM. These attributes include the
+ /// hardware state (e.g., Open/Closed/Locked), capability (e.g., cacheable), logical
+ /// allocation (e.g., allocated), and pre-use initialization (e.g., needs testing/ECC
+ /// initialization).
+ ///
+ UINT64 RegionState;
+} EFI_MMRAM_DESCRIPTOR;
+
+typedef EFI_MMRAM_DESCRIPTOR EFI_SMRAM_DESCRIPTOR;
+
+///
+/// Structure describing a MMRAM region which cannot be used for the MMRAM heap.
+///
+typedef struct _EFI_MM_RESERVED_MMRAM_REGION {
+ ///
+ /// Starting address of the reserved MMRAM area, as it appears while MMRAM is open.
+ /// Ignored if MmramReservedSize is 0.
+ ///
+ EFI_PHYSICAL_ADDRESS MmramReservedStart;
+ ///
+ /// Number of bytes occupied by the reserved MMRAM area. A size of zero indicates the
+ /// last MMRAM area.
+ ///
+ UINT64 MmramReservedSize;
+} EFI_MM_RESERVED_MMRAM_REGION;
+
+typedef enum {
+ EFI_PCD_TYPE_8,
+ EFI_PCD_TYPE_16,
+ EFI_PCD_TYPE_32,
+ EFI_PCD_TYPE_64,
+ EFI_PCD_TYPE_BOOL,
+ EFI_PCD_TYPE_PTR
+} EFI_PCD_TYPE;
+
+typedef struct {
+ ///
+ /// The returned information associated with the requested TokenNumber. If
+ /// TokenNumber is 0, then PcdType is set to EFI_PCD_TYPE_8.
+ ///
+ EFI_PCD_TYPE PcdType;
+ ///
+ /// The size of the data in bytes associated with the TokenNumber specified. If
+ /// TokenNumber is 0, then PcdSize is set 0.
+ ///
+ UINTN PcdSize;
+ ///
+ /// The null-terminated ASCII string associated with a given token. If the
+ /// TokenNumber specified was 0, then this field corresponds to the null-terminated
+ /// ASCII string associated with the token's namespace Guid. If NULL, there is no
+ /// name associated with this request.
+ ///
+ CHAR8 *PcdName;
+} EFI_PCD_INFO;
+
+/**
+ The function prototype for invoking a function on an Application Processor.
+
+ This definition is used by the UEFI MP Serices Protocol, and the
+ PI SMM System Table.
+
+ @param[in,out] Buffer The pointer to private data buffer.
+**/
+typedef
+void
+(__cdecl *EFI_AP_PROCEDURE)(
+ void *Buffer
+ );
+
+/**
+ The function prototype for invoking a function on an Application Processor.
+
+ This definition is used by the UEFI MM MP Serices Protocol.
+
+ @param[in] ProcedureArgument The pointer to private data buffer.
+
+ @retval EFI_SUCCESS Excutive the procedure successfully
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_AP_PROCEDURE2)(
+ void *ProcedureArgument
+ );
+
+#line 212 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiMultiPhase.h"
+#line 17 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiDxeCis.h"
+
+///
+/// Global Coherencey Domain types - Memory type.
+///
+typedef enum {
+ ///
+ /// A memory region that is visible to the boot processor. However, there are no system
+ /// components that are currently decoding this memory region.
+ ///
+ EfiGcdMemoryTypeNonExistent,
+ ///
+ /// A memory region that is visible to the boot processor. This memory region is being
+ /// decoded by a system component, but the memory region is not considered to be either
+ /// system memory or memory-mapped I/O.
+ ///
+ EfiGcdMemoryTypeReserved,
+ ///
+ /// A memory region that is visible to the boot processor. A memory controller is
+ /// currently decoding this memory region and the memory controller is producing a
+ /// tested system memory region that is available to the memory services.
+ ///
+ EfiGcdMemoryTypeSystemMemory,
+ ///
+ /// A memory region that is visible to the boot processor. This memory region is
+ /// currently being decoded by a component as memory-mapped I/O that can be used to
+ /// access I/O devices in the platform.
+ ///
+ EfiGcdMemoryTypeMemoryMappedIo,
+ ///
+ /// A memory region that is visible to the boot processor.
+ /// This memory supports byte-addressable non-volatility.
+ ///
+ EfiGcdMemoryTypePersistent,
+ //
+ // Keep original one for the compatibility.
+ //
+ EfiGcdMemoryTypePersistentMemory = EfiGcdMemoryTypePersistent,
+ ///
+ /// A memory region that provides higher reliability relative to other memory in the
+ /// system. If all memory has the same reliability, then this bit is not used.
+ ///
+ EfiGcdMemoryTypeMoreReliable,
+ EfiGcdMemoryTypeMaximum
+} EFI_GCD_MEMORY_TYPE;
+
+///
+/// Global Coherencey Domain types - IO type.
+///
+typedef enum {
+ ///
+ /// An I/O region that is visible to the boot processor. However, there are no system
+ /// components that are currently decoding this I/O region.
+ ///
+ EfiGcdIoTypeNonExistent,
+ ///
+ /// An I/O region that is visible to the boot processor. This I/O region is currently being
+ /// decoded by a system component, but the I/O region cannot be used to access I/O devices.
+ ///
+ EfiGcdIoTypeReserved,
+ ///
+ /// An I/O region that is visible to the boot processor. This I/O region is currently being
+ /// decoded by a system component that is producing I/O ports that can be used to access I/O devices.
+ ///
+ EfiGcdIoTypeIo,
+ EfiGcdIoTypeMaximum
+} EFI_GCD_IO_TYPE;
+
+///
+/// The type of allocation to perform.
+///
+typedef enum {
+ ///
+ /// The GCD memory space map is searched from the lowest address up to the highest address
+ /// looking for unallocated memory ranges.
+ ///
+ EfiGcdAllocateAnySearchBottomUp,
+ ///
+ /// The GCD memory space map is searched from the lowest address up
+ /// to the specified MaxAddress looking for unallocated memory ranges.
+ ///
+ EfiGcdAllocateMaxAddressSearchBottomUp,
+ ///
+ /// The GCD memory space map is checked to see if the memory range starting
+ /// at the specified Address is available.
+ ///
+ EfiGcdAllocateAddress,
+ ///
+ /// The GCD memory space map is searched from the highest address down to the lowest address
+ /// looking for unallocated memory ranges.
+ ///
+ EfiGcdAllocateAnySearchTopDown,
+ ///
+ /// The GCD memory space map is searched from the specified MaxAddress
+ /// down to the lowest address looking for unallocated memory ranges.
+ ///
+ EfiGcdAllocateMaxAddressSearchTopDown,
+ EfiGcdMaxAllocateType
+} EFI_GCD_ALLOCATE_TYPE;
+
+///
+/// EFI_GCD_MEMORY_SPACE_DESCRIPTOR.
+///
+typedef struct {
+ ///
+ /// The physical address of the first byte in the memory region. Type
+ /// EFI_PHYSICAL_ADDRESS is defined in the AllocatePages() function
+ /// description in the UEFI 2.0 specification.
+ ///
+ EFI_PHYSICAL_ADDRESS BaseAddress;
+
+ ///
+ /// The number of bytes in the memory region.
+ ///
+ UINT64 Length;
+
+ ///
+ /// The bit mask of attributes that the memory region is capable of supporting. The bit
+ /// mask of available attributes is defined in the GetMemoryMap() function description
+ /// in the UEFI 2.0 specification.
+ ///
+ UINT64 Capabilities;
+ ///
+ /// The bit mask of attributes that the memory region is currently using. The bit mask of
+ /// available attributes is defined in GetMemoryMap().
+ ///
+ UINT64 Attributes;
+ ///
+ /// Type of the memory region. Type EFI_GCD_MEMORY_TYPE is defined in the
+ /// AddMemorySpace() function description.
+ ///
+ EFI_GCD_MEMORY_TYPE GcdMemoryType;
+
+ ///
+ /// The image handle of the agent that allocated the memory resource described by
+ /// PhysicalStart and NumberOfBytes. If this field is NULL, then the memory
+ /// resource is not currently allocated. Type EFI_HANDLE is defined in
+ /// InstallProtocolInterface() in the UEFI 2.0 specification.
+ ///
+ EFI_HANDLE ImageHandle;
+
+ ///
+ /// The device handle for which the memory resource has been allocated. If
+ /// ImageHandle is NULL, then the memory resource is not currently allocated. If this
+ /// field is NULL, then the memory resource is not associated with a device that is
+ /// described by a device handle. Type EFI_HANDLE is defined in
+ /// InstallProtocolInterface() in the UEFI 2.0 specification.
+ ///
+ EFI_HANDLE DeviceHandle;
+} EFI_GCD_MEMORY_SPACE_DESCRIPTOR;
+
+///
+/// EFI_GCD_IO_SPACE_DESCRIPTOR.
+///
+typedef struct {
+ ///
+ /// Physical address of the first byte in the I/O region. Type
+ /// EFI_PHYSICAL_ADDRESS is defined in the AllocatePages() function
+ /// description in the UEFI 2.0 specification.
+ ///
+ EFI_PHYSICAL_ADDRESS BaseAddress;
+
+ ///
+ /// Number of bytes in the I/O region.
+ ///
+ UINT64 Length;
+
+ ///
+ /// Type of the I/O region. Type EFI_GCD_IO_TYPE is defined in the
+ /// AddIoSpace() function description.
+ ///
+ EFI_GCD_IO_TYPE GcdIoType;
+
+ ///
+ /// The image handle of the agent that allocated the I/O resource described by
+ /// PhysicalStart and NumberOfBytes. If this field is NULL, then the I/O
+ /// resource is not currently allocated. Type EFI_HANDLE is defined in
+ /// InstallProtocolInterface() in the UEFI 2.0 specification.
+ ///
+ EFI_HANDLE ImageHandle;
+
+ ///
+ /// The device handle for which the I/O resource has been allocated. If ImageHandle
+ /// is NULL, then the I/O resource is not currently allocated. If this field is NULL, then
+ /// the I/O resource is not associated with a device that is described by a device handle.
+ /// Type EFI_HANDLE is defined in InstallProtocolInterface() in the UEFI
+ /// 2.0 specification.
+ ///
+ EFI_HANDLE DeviceHandle;
+} EFI_GCD_IO_SPACE_DESCRIPTOR;
+
+/**
+ Adds reserved memory, system memory, or memory-mapped I/O resources to the
+ global coherency domain of the processor.
+
+ @param GcdMemoryType The type of memory resource being added.
+ @param BaseAddress The physical address that is the start address
+ of the memory resource being added.
+ @param Length The size, in bytes, of the memory resource that
+ is being added.
+ @param Capabilities The bit mask of attributes that the memory
+ resource region supports.
+
+ @retval EFI_SUCCESS The memory resource was added to the global
+ coherency domain of the processor.
+ @retval EFI_INVALID_PARAMETER GcdMemoryType is invalid.
+ @retval EFI_INVALID_PARAMETER Length is zero.
+ @retval EFI_OUT_OF_RESOURCES There are not enough system resources to add
+ the memory resource to the global coherency
+ domain of the processor.
+ @retval EFI_UNSUPPORTED The processor does not support one or more bytes
+ of the memory resource range specified by
+ BaseAddress and Length.
+ @retval EFI_ACCESS_DENIED One or more bytes of the memory resource range
+ specified by BaseAddress and Length conflicts
+ with a memory resource range that was previously
+ added to the global coherency domain of the processor.
+ @retval EFI_ACCESS_DENIED One or more bytes of the memory resource range
+ specified by BaseAddress and Length was allocated
+ in a prior call to AllocateMemorySpace().
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_ADD_MEMORY_SPACE)(
+ EFI_GCD_MEMORY_TYPE GcdMemoryType,
+ EFI_PHYSICAL_ADDRESS BaseAddress,
+ UINT64 Length,
+ UINT64 Capabilities
+ );
+
+/**
+ Allocates nonexistent memory, reserved memory, system memory, or memorymapped
+ I/O resources from the global coherency domain of the processor.
+
+ @param GcdAllocateType The type of allocation to perform.
+ @param GcdMemoryType The type of memory resource being allocated.
+ @param Alignment The log base 2 of the boundary that BaseAddress must
+ be aligned on output. Align with 2^Alignment.
+ @param Length The size in bytes of the memory resource range that
+ is being allocated.
+ @param BaseAddress A pointer to a physical address to allocate.
+ @param Imagehandle The image handle of the agent that is allocating
+ the memory resource.
+ @param DeviceHandle The device handle for which the memory resource
+ is being allocated.
+
+ @retval EFI_INVALID_PARAMETER GcdAllocateType is invalid.
+ @retval EFI_INVALID_PARAMETER GcdMemoryType is invalid.
+ @retval EFI_INVALID_PARAMETER Length is zero.
+ @retval EFI_INVALID_PARAMETER BaseAddress is NULL.
+ @retval EFI_INVALID_PARAMETER ImageHandle is NULL.
+ @retval EFI_NOT_FOUND The memory resource request could not be satisfied.
+ No descriptor contains the desired space.
+ @retval EFI_OUT_OF_RESOURCES There are not enough system resources to allocate the memory
+ resource from the global coherency domain of the processor.
+ @retval EFI_SUCCESS The memory resource was allocated from the global coherency
+ domain of the processor.
+
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_ALLOCATE_MEMORY_SPACE)(
+ EFI_GCD_ALLOCATE_TYPE GcdAllocateType,
+ EFI_GCD_MEMORY_TYPE GcdMemoryType,
+ UINTN Alignment,
+ UINT64 Length,
+ EFI_PHYSICAL_ADDRESS *BaseAddress,
+ EFI_HANDLE ImageHandle,
+ EFI_HANDLE DeviceHandle
+ );
+
+/**
+ Frees nonexistent memory, reserved memory, system memory, or memory-mapped
+ I/O resources from the global coherency domain of the processor.
+
+ @param BaseAddress The physical address that is the start address of the memory resource being freed.
+ @param Length The size in bytes of the memory resource range that is being freed.
+
+ @retval EFI_SUCCESS The memory resource was freed from the global coherency domain of
+ the processor.
+ @retval EFI_INVALID_PARAMETER Length is zero.
+ @retval EFI_UNSUPPORTED The processor does not support one or more bytes of the memory
+ resource range specified by BaseAddress and Length.
+ @retval EFI_NOT_FOUND The memory resource range specified by BaseAddress and
+ Length was not allocated with previous calls to AllocateMemorySpace().
+ @retval EFI_OUT_OF_RESOURCES There are not enough system resources to free the memory resource
+ from the global coherency domain of the processor.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_FREE_MEMORY_SPACE)(
+ EFI_PHYSICAL_ADDRESS BaseAddress,
+ UINT64 Length
+ );
+
+/**
+ Removes reserved memory, system memory, or memory-mapped I/O resources from
+ the global coherency domain of the processor.
+
+ @param BaseAddress The physical address that is the start address of the memory resource being removed.
+ @param Length The size in bytes of the memory resource that is being removed.
+
+ @retval EFI_SUCCESS The memory resource was removed from the global coherency
+ domain of the processor.
+ @retval EFI_INVALID_PARAMETER Length is zero.
+ @retval EFI_UNSUPPORTED The processor does not support one or more bytes of the memory
+ resource range specified by BaseAddress and Length.
+ @retval EFI_NOT_FOUND One or more bytes of the memory resource range specified by
+ BaseAddress and Length was not added with previous calls to
+ AddMemorySpace().
+ @retval EFI_ACCESS_DEFINED One or more bytes of the memory resource range specified by
+ BaseAddress and Length has been allocated with AllocateMemorySpace().
+ @retval EFI_OUT_OF_RESOURCES There are not enough system resources to remove the memory
+ resource from the global coherency domain of the processor.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_REMOVE_MEMORY_SPACE)(
+ EFI_PHYSICAL_ADDRESS BaseAddress,
+ UINT64 Length
+ );
+
+/**
+ Retrieves the descriptor for a memory region containing a specified address.
+
+ @param BaseAddress The physical address that is the start address of a memory region.
+ @param Descriptor A pointer to a caller allocated descriptor.
+
+ @retval EFI_SUCCESS The descriptor for the memory resource region containing
+ BaseAddress was returned in Descriptor.
+ @retval EFI_INVALID_PARAMETER Descriptor is NULL.
+ @retval EFI_NOT_FOUND A memory resource range containing BaseAddress was not found.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_GET_MEMORY_SPACE_DESCRIPTOR)(
+ EFI_PHYSICAL_ADDRESS BaseAddress,
+ EFI_GCD_MEMORY_SPACE_DESCRIPTOR *Descriptor
+ );
+
+/**
+ Modifies the attributes for a memory region in the global coherency domain of the
+ processor.
+
+ @param BaseAddress The physical address that is the start address of a memory region.
+ @param Length The size in bytes of the memory region.
+ @param Attributes The bit mask of attributes to set for the memory region.
+
+ @retval EFI_SUCCESS The attributes were set for the memory region.
+ @retval EFI_INVALID_PARAMETER Length is zero.
+ @retval EFI_UNSUPPORTED The processor does not support one or more bytes of the memory
+ resource range specified by BaseAddress and Length.
+ @retval EFI_UNSUPPORTED The bit mask of attributes is not support for the memory resource
+ range specified by BaseAddress and Length.
+ @retval EFI_ACCESS_DENIED The attributes for the memory resource range specified by
+ BaseAddress and Length cannot be modified.
+ @retval EFI_OUT_OF_RESOURCES There are not enough system resources to modify the attributes of
+ the memory resource range.
+ @retval EFI_NOT_AVAILABLE_YET The attributes cannot be set because CPU architectural protocol is
+ not available yet.
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_SET_MEMORY_SPACE_ATTRIBUTES)(
+ EFI_PHYSICAL_ADDRESS BaseAddress,
+ UINT64 Length,
+ UINT64 Attributes
+ );
+
+/**
+ Modifies the capabilities for a memory region in the global coherency domain of the
+ processor.
+
+ @param BaseAddress The physical address that is the start address of a memory region.
+ @param Length The size in bytes of the memory region.
+ @param Capabilities The bit mask of capabilities that the memory region supports.
+
+ @retval EFI_SUCCESS The capabilities were set for the memory region.
+ @retval EFI_INVALID_PARAMETER Length is zero.
+ @retval EFI_UNSUPPORTED The capabilities specified by Capabilities do not include the
+ memory region attributes currently in use.
+ @retval EFI_ACCESS_DENIED The capabilities for the memory resource range specified by
+ BaseAddress and Length cannot be modified.
+ @retval EFI_OUT_OF_RESOURCES There are not enough system resources to modify the capabilities
+ of the memory resource range.
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_SET_MEMORY_SPACE_CAPABILITIES)(
+ EFI_PHYSICAL_ADDRESS BaseAddress,
+ UINT64 Length,
+ UINT64 Capabilities
+ );
+
+/**
+ Returns a map of the memory resources in the global coherency domain of the
+ processor.
+
+ @param NumberOfDescriptors A pointer to number of descriptors returned in the MemorySpaceMap buffer.
+ @param MemorySpaceMap A pointer to the array of EFI_GCD_MEMORY_SPACE_DESCRIPTORs.
+
+ @retval EFI_SUCCESS The memory space map was returned in the MemorySpaceMap
+ buffer, and the number of descriptors in MemorySpaceMap was
+ returned in NumberOfDescriptors.
+ @retval EFI_INVALID_PARAMETER NumberOfDescriptors is NULL.
+ @retval EFI_INVALID_PARAMETER MemorySpaceMap is NULL.
+ @retval EFI_OUT_OF_RESOURCES There are not enough resources to allocate MemorySpaceMap.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_GET_MEMORY_SPACE_MAP)(
+ UINTN *NumberOfDescriptors,
+ EFI_GCD_MEMORY_SPACE_DESCRIPTOR **MemorySpaceMap
+ );
+
+/**
+ Adds reserved I/O or I/O resources to the global coherency domain of the processor.
+
+ @param GcdIoType The type of I/O resource being added.
+ @param BaseAddress The physical address that is the start address of the I/O resource being added.
+ @param Length The size in bytes of the I/O resource that is being added.
+
+ @retval EFI_SUCCESS The I/O resource was added to the global coherency domain of
+ the processor.
+ @retval EFI_INVALID_PARAMETER GcdIoType is invalid.
+ @retval EFI_INVALID_PARAMETER Length is zero.
+ @retval EFI_OUT_OF_RESOURCES There are not enough system resources to add the I/O resource to
+ the global coherency domain of the processor.
+ @retval EFI_UNSUPPORTED The processor does not support one or more bytes of the I/O
+ resource range specified by BaseAddress and Length.
+ @retval EFI_ACCESS_DENIED One or more bytes of the I/O resource range specified by
+ BaseAddress and Length conflicts with an I/O resource
+ range that was previously added to the global coherency domain
+ of the processor.
+ @retval EFI_ACCESS_DENIED One or more bytes of the I/O resource range specified by
+ BaseAddress and Length was allocated in a prior call to
+ AllocateIoSpace().
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_ADD_IO_SPACE)(
+ EFI_GCD_IO_TYPE GcdIoType,
+ EFI_PHYSICAL_ADDRESS BaseAddress,
+ UINT64 Length
+ );
+
+/**
+ Allocates nonexistent I/O, reserved I/O, or I/O resources from the global coherency
+ domain of the processor.
+
+ @param GcdAllocateType The type of allocation to perform.
+ @param GcdIoType The type of I/O resource being allocated.
+ @param Alignment The log base 2 of the boundary that BaseAddress must be aligned on output.
+ @param Length The size in bytes of the I/O resource range that is being allocated.
+ @param BaseAddress A pointer to a physical address.
+ @param Imagehandle The image handle of the agent that is allocating the I/O resource.
+ @param DeviceHandle The device handle for which the I/O resource is being allocated.
+
+ @retval EFI_SUCCESS The I/O resource was allocated from the global coherency domain
+ of the processor.
+ @retval EFI_INVALID_PARAMETER GcdAllocateType is invalid.
+ @retval EFI_INVALID_PARAMETER GcdIoType is invalid.
+ @retval EFI_INVALID_PARAMETER Length is zero.
+ @retval EFI_INVALID_PARAMETER BaseAddress is NULL.
+ @retval EFI_INVALID_PARAMETER ImageHandle is NULL.
+ @retval EFI_OUT_OF_RESOURCES There are not enough system resources to allocate the I/O
+ resource from the global coherency domain of the processor.
+ @retval EFI_NOT_FOUND The I/O resource request could not be satisfied.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_ALLOCATE_IO_SPACE)(
+ EFI_GCD_ALLOCATE_TYPE GcdAllocateType,
+ EFI_GCD_IO_TYPE GcdIoType,
+ UINTN Alignment,
+ UINT64 Length,
+ EFI_PHYSICAL_ADDRESS *BaseAddress,
+ EFI_HANDLE ImageHandle,
+ EFI_HANDLE DeviceHandle
+ );
+
+/**
+ Frees nonexistent I/O, reserved I/O, or I/O resources from the global coherency
+ domain of the processor.
+
+ @param BaseAddress The physical address that is the start address of the I/O resource being freed.
+ @param Length The size in bytes of the I/O resource range that is being freed.
+
+ @retval EFI_SUCCESS The I/O resource was freed from the global coherency domain of the
+ processor.
+ @retval EFI_INVALID_PARAMETER Length is zero.
+ @retval EFI_UNSUPPORTED The processor does not support one or more bytes of the I/O resource
+ range specified by BaseAddress and Length.
+ @retval EFI_NOT_FOUND The I/O resource range specified by BaseAddress and Length
+ was not allocated with previous calls to AllocateIoSpace().
+ @retval EFI_OUT_OF_RESOURCES There are not enough system resources to free the I/O resource from
+ the global coherency domain of the processor.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_FREE_IO_SPACE)(
+ EFI_PHYSICAL_ADDRESS BaseAddress,
+ UINT64 Length
+ );
+
+/**
+ Removes reserved I/O or I/O resources from the global coherency domain of the
+ processor.
+
+ @param BaseAddress A pointer to a physical address that is the start address of the I/O resource being
+ removed.
+ @param Length The size in bytes of the I/O resource that is being removed.
+
+ @retval EFI_SUCCESS The I/O resource was removed from the global coherency domain
+ of the processor.
+ @retval EFI_INVALID_PARAMETER Length is zero.
+ @retval EFI_UNSUPPORTED The processor does not support one or more bytes of the I/O
+ resource range specified by BaseAddress and Length.
+ @retval EFI_NOT_FOUND One or more bytes of the I/O resource range specified by
+ BaseAddress and Length was not added with previous
+ calls to AddIoSpace().
+ @retval EFI_ACCESS_DENIED One or more bytes of the I/O resource range specified by
+ BaseAddress and Length has been allocated with
+ AllocateIoSpace().
+ @retval EFI_OUT_OF_RESOURCES There are not enough system resources to remove the I/O
+ resource from the global coherency domain of the processor.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_REMOVE_IO_SPACE)(
+ EFI_PHYSICAL_ADDRESS BaseAddress,
+ UINT64 Length
+ );
+
+/**
+ Retrieves the descriptor for an I/O region containing a specified address.
+
+ @param BaseAddress The physical address that is the start address of an I/O region.
+ @param Descriptor A pointer to a caller allocated descriptor.
+
+ @retval EFI_SUCCESS The descriptor for the I/O resource region containing
+ BaseAddress was returned in Descriptor.
+ @retval EFI_INVALID_PARAMETER Descriptor is NULL.
+ @retval EFI_NOT_FOUND An I/O resource range containing BaseAddress was not found.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_GET_IO_SPACE_DESCRIPTOR)(
+ EFI_PHYSICAL_ADDRESS BaseAddress,
+ EFI_GCD_IO_SPACE_DESCRIPTOR *Descriptor
+ );
+
+/**
+ Returns a map of the I/O resources in the global coherency domain of the processor.
+
+ @param NumberOfDescriptors A pointer to number of descriptors returned in the IoSpaceMap buffer.
+ @param MemorySpaceMap A pointer to the array of EFI_GCD_IO_SPACE_DESCRIPTORs.
+
+ @retval EFI_SUCCESS The I/O space map was returned in the IoSpaceMap buffer, and
+ the number of descriptors in IoSpaceMap was returned in
+ NumberOfDescriptors.
+ @retval EFI_INVALID_PARAMETER NumberOfDescriptors is NULL.
+ @retval EFI_INVALID_PARAMETER IoSpaceMap is NULL.
+ @retval EFI_OUT_OF_RESOURCES There are not enough resources to allocate IoSpaceMap.
+
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_GET_IO_SPACE_MAP)(
+ UINTN *NumberOfDescriptors,
+ EFI_GCD_IO_SPACE_DESCRIPTOR **IoSpaceMap
+ );
+
+/**
+ Loads and executed DXE drivers from firmware volumes.
+
+ The Dispatch() function searches for DXE drivers in firmware volumes that have been
+ installed since the last time the Dispatch() service was called. It then evaluates
+ the dependency expressions of all the DXE drivers and loads and executes those DXE
+ drivers whose dependency expression evaluate to TRUE. This service must interact with
+ the Security Architectural Protocol to authenticate DXE drivers before they are executed.
+ This process is continued until no more DXE drivers can be executed.
+
+ @retval EFI_SUCCESS One or more DXE driver were dispatched.
+ @retval EFI_NOT_FOUND No DXE drivers were dispatched.
+ @retval EFI_ALREADY_STARTED An attempt is being made to start the DXE Dispatcher recursively.
+ Thus, no action was taken.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_DISPATCH)(
+ void
+ );
+
+/**
+ Clears the Schedule on Request (SOR) flag for a component that is stored in a firmware volume.
+
+ @param FirmwareVolumeHandle The handle of the firmware volume that contains the file specified by FileName.
+ @param FileName A pointer to the name of the file in a firmware volume.
+
+ @retval EFI_SUCCESS The DXE driver was found and its SOR bit was cleared.
+ @retval EFI_NOT_FOUND The DXE driver does not exist, or the DXE driver exists and its SOR
+ bit is not set.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_SCHEDULE)(
+ EFI_HANDLE FirmwareVolumeHandle,
+ const EFI_GUID *FileName
+ );
+
+/**
+ Promotes a file stored in a firmware volume from the untrusted to the trusted state.
+
+ @param FirmwareVolumeHandle The handle of the firmware volume that contains the file specified by FileName.
+ @param DriverName A pointer to the name of the file in a firmware volume.
+
+ @return Status of promoting FFS from untrusted to trusted
+ state.
+ @retval EFI_NOT_FOUND The file was not found in the untrusted state.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_TRUST)(
+ EFI_HANDLE FirmwareVolumeHandle,
+ const EFI_GUID *FileName
+ );
+
+/**
+ Creates a firmware volume handle for a firmware volume that is present in system memory.
+
+ @param FirmwareVolumeHeader A pointer to the header of the firmware volume.
+ @param Size The size, in bytes, of the firmware volume.
+ @param FirmwareVolumeHandle On output, a pointer to the created handle.
+
+ @retval EFI_SUCCESS The EFI_FIRMWARE_VOLUME_PROTOCOL and
+ EFI_DEVICE_PATH_PROTOCOL were installed onto
+ FirmwareVolumeHandle for the firmware volume described
+ by FirmwareVolumeHeader and Size.
+ @retval EFI_VOLUME_CORRUPTED The firmware volume described by FirmwareVolumeHeader
+ and Size is corrupted.
+ @retval EFI_OUT_OF_RESOURCES There are not enough system resources available to produce the
+ EFI_FIRMWARE_VOLUME_PROTOCOL and EFI_DEVICE_PATH_PROTOCOL
+ for the firmware volume described by FirmwareVolumeHeader and Size.
+
+**/
+typedef
+EFI_STATUS
+(__cdecl *EFI_PROCESS_FIRMWARE_VOLUME)(
+ const void *FirmwareVolumeHeader,
+ UINTN Size,
+ EFI_HANDLE *FirmwareVolumeHandle
+ );
+
+//
+// DXE Services Table
+//
+
+
+
+
+
+typedef struct {
+ ///
+ /// The table header for the DXE Services Table.
+ /// This header contains the DXE_SERVICES_SIGNATURE and DXE_SERVICES_REVISION values.
+ ///
+ EFI_TABLE_HEADER Hdr;
+
+ //
+ // Global Coherency Domain Services
+ //
+ EFI_ADD_MEMORY_SPACE AddMemorySpace;
+ EFI_ALLOCATE_MEMORY_SPACE AllocateMemorySpace;
+ EFI_FREE_MEMORY_SPACE FreeMemorySpace;
+ EFI_REMOVE_MEMORY_SPACE RemoveMemorySpace;
+ EFI_GET_MEMORY_SPACE_DESCRIPTOR GetMemorySpaceDescriptor;
+ EFI_SET_MEMORY_SPACE_ATTRIBUTES SetMemorySpaceAttributes;
+ EFI_GET_MEMORY_SPACE_MAP GetMemorySpaceMap;
+ EFI_ADD_IO_SPACE AddIoSpace;
+ EFI_ALLOCATE_IO_SPACE AllocateIoSpace;
+ EFI_FREE_IO_SPACE FreeIoSpace;
+ EFI_REMOVE_IO_SPACE RemoveIoSpace;
+ EFI_GET_IO_SPACE_DESCRIPTOR GetIoSpaceDescriptor;
+ EFI_GET_IO_SPACE_MAP GetIoSpaceMap;
+
+ //
+ // Dispatcher Services
+ //
+ EFI_DISPATCH Dispatch;
+ EFI_SCHEDULE Schedule;
+ EFI_TRUST Trust;
+ //
+ // Service to process a single firmware volume found in a capsule
+ //
+ EFI_PROCESS_FIRMWARE_VOLUME ProcessFirmwareVolume;
+ //
+ // Extensions to Global Coherency Domain Services
+ //
+ EFI_SET_MEMORY_SPACE_CAPABILITIES SetMemorySpaceCapabilities;
+} DXE_SERVICES;
+
+typedef DXE_SERVICES EFI_DXE_SERVICES;
+
+#line 736 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Pi/PiDxeCis.h"
+
+#line 17 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\PiDxe.h"
+
+#line 19 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\PiDxe.h"
+#line 17 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Universal\\Disk\\RamDiskDxe\\RamDiskDxe\\DEBUG\\AutoGen.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Library/PcdLib.h"
+/** @file
+ Provides library services to get and set Platform Configuration Database entries.
+
+ PCD Library Class provides a PCD usage macro interface for all PCD types.
+ It should be included in any module that uses PCD. If a module uses dynamic/dynamicex
+ PCD, module should be linked to a PEIM/DXE library instance to access that PCD.
+ If a module uses PatchableInModule type PCD, it also needs the library instance to produce
+ LibPatchPcdSetPtr() interface. For FeatureFlag/Fixed PCD, the macro interface is
+ translated to a variable or macro that is auto-generated by build tool in
+ module's autogen.h/autogen.c.
+ The PcdGetXX(), PcdSetXX(), PcdToken(), and PcdGetNextTokenSpace() operations are
+ only available prior to ExitBootServices(). If access to PCD values are required
+ at runtime, then their values must be collected prior to ExitBootServices().
+ There are no restrictions on the use of FeaturePcd(), FixedPcdGetXX(),
+ PatchPcdGetXX(), and PatchPcdSetXX().
+
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+
+
+
+/**
+ Retrieves a token number based on a token name.
+
+ Returns the token number associated with the PCD token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve the token number for.
+
+ @return The token number associated with the PCD.
+
+**/
+
+
+/**
+ Retrieves a Boolean PCD feature flag based on a token name.
+
+ Returns the Boolean value for the PCD feature flag specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+ If TokenName is not a feature flag PCD, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return Boolean value for the PCD feature flag.
+
+**/
+
+
+/**
+ Retrieves an 8-bit fixed PCD token value based on a token name.
+
+ Returns the 8-bit value for the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+ If TokenName is not a fixed at build PCD, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return 8-bit value for the token specified by TokenName.
+
+**/
+
+
+/**
+ Retrieves a 16-bit fixed PCD token value based on a token name.
+
+ Returns the 16-bit value for the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+ If TokenName is not a fixed at build PCD, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return 16-bit value for the token specified by TokenName.
+
+**/
+
+
+/**
+ Retrieves a 32-bit fixed PCD token value based on a token name.
+
+ Returns the 32-bit value for the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+ If TokenName is not a fixed at build PCD, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return 32-bit value for the token specified by TokenName.
+
+**/
+
+
+/**
+ Retrieves a 64-bit fixed PCD token value based on a token name.
+
+ Returns the 64-bit value for the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+ If TokenName is not a fixed at build PCD, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return 64-bit value for the token specified by TokenName.
+
+**/
+
+
+/**
+ Retrieves a Boolean fixed PCD token value based on a token name.
+
+ Returns the Boolean value for the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+ If TokenName is not a fixed at build PCD, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return The Boolean value for the token.
+
+**/
+
+
+/**
+ Retrieves a pointer to a fixed PCD token buffer based on a token name.
+
+ Returns a pointer to the buffer for the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+ If TokenName is not a fixed at build PCD, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return A pointer to the buffer.
+
+**/
+
+
+/**
+ Retrieves an 8-bit binary patchable PCD token value based on a token name.
+
+ Returns the 8-bit value for the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+ If TokenName is not a patchable in module PCD, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return An 8-bit binary patchable PCD token value.
+
+**/
+
+
+/**
+ Retrieves a 16-bit binary patchable PCD token value based on a token name.
+
+ Returns the 16-bit value for the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+ If TokenName is not a patchable in module PCD, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return A 16-bit binary patchable PCD token value.
+
+**/
+
+
+/**
+ Retrieves a 32-bit binary patchable PCD token value based on a token name.
+
+ Returns the 32-bit value for the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+ If TokenName is not a patchable in module PCD, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return A 32-bit binary patchable PCD token value.
+
+**/
+
+
+/**
+ Retrieves a 64-bit binary patchable PCD token value based on a token name.
+
+ Returns the 64-bit value for the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+ If TokenName is not a patchable in module PCD, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return A 64-bit binary patchable PCD token value.
+
+**/
+
+
+/**
+ Retrieves a Boolean binary patchable PCD token value based on a token name.
+
+ Returns the Boolean value for the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+ If TokenName is not a patchable in module PCD, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return The Boolean value for the token.
+
+**/
+
+
+/**
+ Retrieves a pointer to a binary patchable PCD token buffer based on a token name.
+
+ Returns a pointer to the buffer for the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+ If TokenName is not a patchable in module PCD, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return A pointer to the buffer for the token.
+
+**/
+
+
+/**
+ Sets an 8-bit binary patchable PCD token value based on a token name.
+
+ Sets the 8-bit value for the token specified by TokenName. Value is returned.
+ If TokenName is not a valid token in the token space, then the module will not build.
+ If TokenName is not a patchable in module PCD, then the module will not build.
+
+ @param TokenName The name of the binary patchable PCD token to set the current value for.
+ @param Value The 8-bit value to set.
+
+ @return Return the Value that was set.
+
+**/
+
+
+/**
+ Sets a 16-bit binary patchable PCD token value based on a token name.
+
+ Sets the 16-bit value for the token specified by TokenName. Value is returned.
+ If TokenName is not a valid token in the token space, then the module will not build.
+ If TokenName is not a patchable in module PCD, then the module will not build.
+
+ @param TokenName The name of the binary patchable PCD token to set the current value for.
+ @param Value The 16-bit value to set.
+
+ @return Return the Value that was set.
+
+**/
+
+
+/**
+ Sets a 32-bit binary patchable PCD token value based on a token name.
+
+ Sets the 32-bit value for the token specified by TokenName. Value is returned.
+ If TokenName is not a valid token in the token space, then the module will not build.
+ If TokenName is not a patchable in module PCD, then the module will not build.
+
+ @param TokenName The name of the binary patchable PCD token to set the current value for.
+ @param Value The 32-bit value to set.
+
+ @return Return the Value that was set.
+
+**/
+
+
+/**
+ Sets a 64-bit binary patchable PCD token value based on a token name.
+
+ Sets the 64-bit value for the token specified by TokenName. Value is returned.
+ If TokenName is not a valid token in the token space, then the module will not build.
+ If TokenName is not a patchable in module PCD, then the module will not build.
+
+ @param TokenName The name of the binary patchable PCD token to set the current value for.
+ @param Value The 64-bit value to set.
+
+ @return Return the Value that was set.
+
+**/
+
+
+/**
+ Sets a Boolean binary patchable PCD token value based on a token name.
+
+ Sets the Boolean value for the token specified by TokenName. Value is returned.
+ If TokenName is not a valid token in the token space, then the module will not build.
+ If TokenName is not a patchable in module PCD, then the module will not build.
+
+ @param TokenName The name of the binary patchable PCD token to set the current value for.
+ @param Value The boolean value to set.
+
+ @return Return the Value that was set.
+
+**/
+
+
+/**
+ Sets a pointer to a binary patchable PCD token buffer based on a token name.
+
+ Sets the buffer for the token specified by TokenName. Buffer is returned.
+ If SizeOfBuffer is greater than the maximum size supported by TokenName, then set SizeOfBuffer
+ to the maximum size supported by TokenName and return NULL to indicate that the set operation
+ was not actually performed. If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be
+ set to the maximum size supported by TokenName and NULL must be returned.
+ If TokenName is not a valid token in the token space, then the module will not build.
+ If TokenName is not a patchable in module PCD, then the module will not build.
+
+ If SizeOfBuffer is NULL, then ASSERT().
+ If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
+
+ @param TokenName The name of the binary patchable PCD token to set the current value for.
+ @param SizeOfBuffer A pointer to the size, in bytes, of Buffer.
+ @param Buffer Pointer to the value to set.
+
+ @return Return the pointer to the Buffer that was set.
+
+**/
+
+
+
+
+
+
+
+
+
+/**
+ Retrieves an 8-bit PCD token value based on a token name.
+
+ Returns the 8-bit value for the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return 8-bit value for the token specified by TokenName.
+
+**/
+
+
+/**
+ Retrieves a 16-bit PCD token value based on a token name.
+
+ Returns the 16-bit value for the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return 16-bit value for the token specified by TokenName.
+
+**/
+
+
+/**
+ Retrieves a 32-bit PCD token value based on a token name.
+
+ Returns the 32-bit value for the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return 32-bit value for the token specified by TokenName.
+
+**/
+
+
+/**
+ Retrieves a 64-bit PCD token value based on a token name.
+
+ Returns the 64-bit value for the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return 64-bit value for the token specified by TokenName.
+
+**/
+
+
+/**
+ Retrieves a pointer to a PCD token buffer based on a token name.
+
+ Returns a pointer to the buffer for the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return A pointer to the buffer.
+
+**/
+
+
+/**
+ Retrieves a Boolean PCD token value based on a token name.
+
+ Returns the Boolean value for the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return A Boolean PCD token value.
+
+**/
+
+
+/**
+ Retrieves the size of a fixed PCD token based on a token name.
+
+ Returns the size of the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+
+ @param[in] TokenName The name of the PCD token to retrieve a current value size for.
+
+ @return Return the size
+
+**/
+
+
+/**
+ Retrieves the size of a binary patchable PCD token based on a token name.
+
+ Returns the size of the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+
+ @param[in] TokenName The name of the PCD token to retrieve a current value size for.
+
+ @return Return the size
+
+**/
+
+
+/**
+ Retrieves the size of the PCD token based on a token name.
+
+ Returns the size of the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+
+ @param[in] TokenName The name of the PCD token to retrieve a current value size for.
+
+ @return Return the size
+
+**/
+
+
+/**
+ Retrieve the size of a given PCD token.
+
+ Returns the size of the token specified by TokenNumber and Guid.
+ If Guid is NULL, then ASSERT().
+
+ @param[in] Guid Pointer to a 128-bit unique value that designates
+ which namespace to retrieve a value from.
+ @param[in] TokenNumber The PCD token number to retrieve a current value size for.
+
+ @return Return the size.
+
+**/
+
+
+/**
+ Sets a 8-bit PCD token value based on a token name.
+
+ Sets the 8-bit value for the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+ @param Value The 8-bit value to set.
+
+ @return The status of the set operation.
+
+**/
+
+
+/**
+ Sets a 16-bit PCD token value based on a token name.
+
+ Sets the 16-bit value for the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+ @param Value The 16-bit value to set.
+
+ @return The status of the set operation.
+
+**/
+
+
+/**
+ Sets a 32-bit PCD token value based on a token name.
+
+ Sets the 32-bit value for the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+ @param Value The 32-bit value to set.
+
+ @return The status of the set operation.
+
+**/
+
+
+/**
+ Sets a 64-bit PCD token value based on a token name.
+
+ Sets the 64-bit value for the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+ @param Value The 64-bit value to set.
+
+ @return The status of the set operation.
+
+**/
+
+
+/**
+ Sets a pointer to a PCD token buffer based on a token name.
+
+ Sets the buffer for the token specified by TokenName.
+ If SizeOfBuffer is greater than the maximum size supported by TokenName,
+ then set SizeOfBuffer to the maximum size supported by TokenName and return
+ RETURN_INVALID_PARAMETER to indicate that the set operation was not actually performed.
+ If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to the maximum size
+ supported by TokenName and RETURN_INVALID_PARAMETER must be returned.
+ If TokenName is not a valid token in the token space, then the module will not build.
+
+ If SizeOfBuffer is NULL, then ASSERT().
+ If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
+
+ @param TokenName The name of the PCD token to set the current value for.
+ @param SizeOfBuffer A pointer to the size, in bytes, of Buffer.
+ @param Buffer A pointer to the buffer to set.
+
+ @return The status of the set operation.
+
+**/
+
+
+
+/**
+ Sets a boolean PCD token value based on a token name.
+
+ Sets the boolean value for the token specified by TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+
+ @param TokenName The name of the PCD token to retrieve a current value for.
+ @param Value The boolean value to set.
+
+ @return The status of the set operation.
+
+**/
+
+
+/**
+ Retrieves a token number based on a GUID and a token name.
+
+ Returns the token number for the token specified by Guid and TokenName.
+ If TokenName is not a valid token in the token space, then the module will not build.
+
+ @param Guid Pointer to a 128-bit unique value that designates
+ which namespace to retrieve a value from.
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return Return the token number.
+
+**/
+
+
+/**
+ Retrieves an 8-bit PCD token value based on a GUID and a token name.
+
+ Returns the 8-bit value for the token specified by Guid and TokenName.
+ If TokenName is not a valid token in the token space specified by Guid,
+ then the module will not build.
+
+ If Guid is NULL, then ASSERT().
+
+ @param Guid Pointer to a 128-bit unique value that designates
+ which namespace to retrieve a value from.
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return An 8-bit PCD token value.
+
+**/
+
+
+/**
+ Retrieves a 16-bit PCD token value based on a GUID and a token name.
+
+ Returns the 16-bit value for the token specified by Guid and TokenName.
+ If TokenName is not a valid token in the token space specified by Guid,
+ then the module will not build.
+
+ If Guid is NULL, then ASSERT().
+
+ @param Guid Pointer to a 128-bit unique value that designates
+ which namespace to retrieve a value from.
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return A 16-bit PCD token value.
+
+**/
+
+
+/**
+ Retrieves a 32-bit PCD token value based on a GUID and a token name.
+
+ Returns the 32-bit value for the token specified by Guid and TokenName.
+ If TokenName is not a valid token in the token space specified by Guid,
+ then the module will not build.
+
+ If Guid is NULL, then ASSERT().
+
+ @param Guid Pointer to a 128-bit unique value that designates
+ which namespace to retrieve a value from.
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return A 32-bit PCD token value.
+
+**/
+
+
+/**
+ Retrieves a 64-bit PCD token value based on a GUID and a token name.
+
+ Returns the 64-bit value for the token specified by Guid and TokenName.
+ If TokenName is not a valid token in the token space specified by Guid,
+ then the module will not build.
+
+ If Guid is NULL, then ASSERT().
+
+ @param Guid Pointer to a 128-bit unique value that designates
+ which namespace to retrieve a value from.
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return A 64-bit PCD token value.
+
+**/
+
+
+/**
+ Retrieves a pointer to a PCD token buffer based on a GUID and a token name.
+
+ Returns a pointer to the buffer for the token specified by Guid and TokenName.
+ If TokenName is not a valid token in the token space specified by Guid,
+ then the module will not build.
+
+ If Guid is NULL, then ASSERT().
+
+ @param Guid Pointer to a 128-bit unique value that designates
+ which namespace to retrieve a value from.
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return A pointer to a PCD token buffer.
+
+**/
+
+
+/**
+ Retrieves a Boolean PCD token value based on a GUID and a token name.
+
+ Returns the Boolean value for the token specified by Guid and TokenName.
+ If TokenName is not a valid token in the token space specified by Guid,
+ then the module will not build.
+
+ If Guid is NULL, then ASSERT().
+
+ @param Guid Pointer to a 128-bit unique value that designates
+ which namespace to retrieve a value from.
+ @param TokenName The name of the PCD token to retrieve a current value for.
+
+ @return A Boolean PCD token value.
+
+**/
+
+
+/**
+ Sets an 8-bit PCD token value based on a GUID and a token name.
+
+ Sets the 8-bit value for the token specified by Guid and TokenName.
+ If TokenName is not a valid token in the token space specified by Guid,
+ then the module will not build.
+
+ If Guid is NULL, then ASSERT().
+
+ @param Guid Pointer to a 128-bit unique value that designates
+ which namespace to retrieve a value from.
+ @param TokenName The name of the PCD token to set the current value for.
+ @param Value The 8-bit value to set.
+
+ @return The status of the set operation.
+
+**/
+
+
+/**
+ Sets an 16-bit PCD token value based on a GUID and a token name.
+
+ Sets the 16-bit value for the token specified by Guid and TokenName.
+ If TokenName is not a valid token in the token space specified by Guid,
+ then the module will not build.
+
+ If Guid is NULL, then ASSERT().
+
+ @param Guid Pointer to a 128-bit unique value that designates
+ which namespace to retrieve a value from.
+ @param TokenName The name of the PCD token to set the current value for.
+ @param Value The 16-bit value to set.
+
+ @return The status of the set operation.
+
+**/
+
+
+/**
+ Sets an 32-bit PCD token value based on a GUID and a token name.
+
+ Sets the 32-bit value for the token specified by Guid and TokenName.
+ If TokenName is not a valid token in the token space specified by Guid,
+ then the module will not build.
+
+ If Guid is NULL, then ASSERT().
+
+ @param Guid Pointer to a 128-bit unique value that designates
+ which namespace to retrieve a value from.
+ @param TokenName The name of the PCD token to set the current value for.
+ @param Value The 32-bit value to set.
+
+ @return The status of the set operation.
+
+**/
+
+
+/**
+ Sets an 64-bit PCD token value based on a GUID and a token name.
+
+ Sets the 64-bit value for the token specified by Guid and TokenName.
+ If TokenName is not a valid token in the token space specified by Guid,
+ then the module will not build.
+
+ If Guid is NULL, then ASSERT().
+
+ @param Guid Pointer to a 128-bit unique value that designates
+ which namespace to retrieve a value from.
+ @param TokenName The name of the PCD token to set the current value for.
+ @param Value The 64-bit value to set.
+
+ @return The status of the set operation.
+
+**/
+
+
+/**
+ Sets a pointer to a PCD token buffer based on a GUID and a token name.
+
+ Sets the buffer for the token specified by Guid and TokenName.
+ If SizeOfBuffer is greater than the maximum size supported by Guid and TokenName,
+ then set SizeOfBuffer to the maximum size supported by Guid and TokenName and return
+ RETURN_INVALID_PARAMETER to indicate that the set operation was not actually performed.
+ If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to the maximum size
+ supported by Guid and TokenName and RETURN_INVALID_PARAMETER must be returned.
+ If TokenName is not a valid token in the token space specified by Guid,
+ then the module will not build.
+
+ If Guid is NULL, then ASSERT().
+ If SizeOfBuffer is NULL, then ASSERT().
+ If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
+
+ @param Guid Pointer to a 128-bit unique value that designates
+ which namespace to retrieve a value from.
+ @param TokenName The name of the PCD token to set the current value for.
+ @param SizeOfBuffer A pointer to the size, in bytes, of Buffer.
+ @param Buffer Pointer to the buffer to set.
+
+ @return The status of the set operation.
+
+**/
+
+
+
+/**
+ Sets an boolean PCD token value based on a GUID and a token name.
+
+ Sets the boolean value for the token specified by Guid and TokenName.
+ If TokenName is not a valid token in the token space specified by Guid,
+ then the module will not build.
+
+ If Guid is NULL, then ASSERT().
+
+ @param Guid Pointer to a 128-bit unique value that designates
+ which namespace to retrieve a value from.
+ @param TokenName The name of the PCD token to set the current value for.
+ @param Value The boolean value to set.
+
+ @return The status of the set operation.
+
+**/
+
+
+
+/**
+ This function provides a means by which SKU support can be established in the PCD infrastructure.
+
+ Sets the current SKU in the PCD database to the value specified by SkuId. SkuId is returned.
+
+ @param SkuId The SKU value that will be used when the PCD service retrieves and sets values
+ associated with a PCD token.
+
+ @return Return the SKU ID that was set.
+
+**/
+UINTN
+__cdecl
+LibPcdSetSku (
+ UINTN SkuId
+ );
+
+/**
+ This function provides a means by which to retrieve a value for a given PCD token.
+
+ Returns the 8-bit value for the token specified by TokenNumber.
+
+ @param[in] TokenNumber The PCD token number to retrieve a current value for.
+
+ @return Returns the 8-bit value for the token specified by TokenNumber.
+
+**/
+UINT8
+__cdecl
+LibPcdGet8 (
+ UINTN TokenNumber
+ );
+
+/**
+ This function provides a means by which to retrieve a value for a given PCD token.
+
+ Returns the 16-bit value for the token specified by TokenNumber.
+
+ @param[in] TokenNumber The PCD token number to retrieve a current value for.
+
+ @return Returns the 16-bit value for the token specified by TokenNumber.
+
+**/
+UINT16
+__cdecl
+LibPcdGet16 (
+ UINTN TokenNumber
+ );
+
+/**
+ This function provides a means by which to retrieve a value for a given PCD token.
+
+ Returns the 32-bit value for the token specified by TokenNumber.
+
+ @param[in] TokenNumber The PCD token number to retrieve a current value for.
+
+ @return Returns the 32-bit value for the token specified by TokenNumber.
+
+**/
+UINT32
+__cdecl
+LibPcdGet32 (
+ UINTN TokenNumber
+ );
+
+/**
+ This function provides a means by which to retrieve a value for a given PCD token.
+
+ Returns the 64-bit value for the token specified by TokenNumber.
+
+ @param[in] TokenNumber The PCD token number to retrieve a current value for.
+
+ @return Returns the 64-bit value for the token specified by TokenNumber.
+
+**/
+UINT64
+__cdecl
+LibPcdGet64 (
+ UINTN TokenNumber
+ );
+
+/**
+ This function provides a means by which to retrieve a value for a given PCD token.
+
+ Returns the pointer to the buffer of the token specified by TokenNumber.
+
+ @param[in] TokenNumber The PCD token number to retrieve a current value for.
+
+ @return Returns the pointer to the token specified by TokenNumber.
+
+**/
+void *
+__cdecl
+LibPcdGetPtr (
+ UINTN TokenNumber
+ );
+
+/**
+ This function provides a means by which to retrieve a value for a given PCD token.
+
+ Returns the Boolean value of the token specified by TokenNumber.
+
+ @param[in] TokenNumber The PCD token number to retrieve a current value for.
+
+ @return Returns the Boolean value of the token specified by TokenNumber.
+
+**/
+BOOLEAN
+__cdecl
+LibPcdGetBool (
+ UINTN TokenNumber
+ );
+
+/**
+ This function provides a means by which to retrieve the size of a given PCD token.
+
+ @param[in] TokenNumber The PCD token number to retrieve a current value for.
+
+ @return Returns the size of the token specified by TokenNumber.
+
+**/
+UINTN
+__cdecl
+LibPcdGetSize (
+ UINTN TokenNumber
+ );
+
+/**
+ This function provides a means by which to retrieve a value for a given PCD token.
+
+ Returns the 8-bit value for the token specified by TokenNumber and Guid.
+
+ If Guid is NULL, then ASSERT().
+
+ @param[in] Guid Pointer to a 128-bit unique value that designates
+ which namespace to retrieve a value from.
+ @param[in] TokenNumber The PCD token number to retrieve a current value for.
+
+ @return Return the UINT8.
+
+**/
+UINT8
+__cdecl
+LibPcdGetEx8 (
+ const GUID *Guid,
+ UINTN TokenNumber
+ );
+
+/**
+ This function provides a means by which to retrieve a value for a given PCD token.
+
+ Returns the 16-bit value for the token specified by TokenNumber and Guid.
+
+ If Guid is NULL, then ASSERT().
+
+ @param[in] Guid Pointer to a 128-bit unique value that designates
+ which namespace to retrieve a value from.
+ @param[in] TokenNumber The PCD token number to retrieve a current value for.
+
+ @return Return the UINT16.
+
+**/
+UINT16
+__cdecl
+LibPcdGetEx16 (
+ const GUID *Guid,
+ UINTN TokenNumber
+ );
+
+/**
+ Returns the 32-bit value for the token specified by TokenNumber and Guid.
+ If Guid is NULL, then ASSERT().
+
+ @param[in] Guid Pointer to a 128-bit unique value that designates
+ which namespace to retrieve a value from.
+ @param[in] TokenNumber The PCD token number to retrieve a current value for.
+
+ @return Return the UINT32.
+
+**/
+UINT32
+__cdecl
+LibPcdGetEx32 (
+ const GUID *Guid,
+ UINTN TokenNumber
+ );
+
+/**
+ This function provides a means by which to retrieve a value for a given PCD token.
+
+ Returns the 64-bit value for the token specified by TokenNumber and Guid.
+
+ If Guid is NULL, then ASSERT().
+
+ @param[in] Guid Pointer to a 128-bit unique value that designates
+ which namespace to retrieve a value from.
+ @param[in] TokenNumber The PCD token number to retrieve a current value for.
+
+ @return Return the UINT64.
+
+**/
+UINT64
+__cdecl
+LibPcdGetEx64 (
+ const GUID *Guid,
+ UINTN TokenNumber
+ );
+
+/**
+ This function provides a means by which to retrieve a value for a given PCD token.
+
+ Returns the pointer to the buffer of token specified by TokenNumber and Guid.
+
+ If Guid is NULL, then ASSERT().
+
+ @param[in] Guid Pointer to a 128-bit unique value that designates
+ which namespace to retrieve a value from.
+ @param[in] TokenNumber The PCD token number to retrieve a current value for.
+
+ @return Return the VOID* pointer.
+
+**/
+void *
+__cdecl
+LibPcdGetExPtr (
+ const GUID *Guid,
+ UINTN TokenNumber
+ );
+
+/**
+ This function provides a means by which to retrieve a value for a given PCD token.
+
+ Returns the Boolean value of the token specified by TokenNumber and Guid.
+
+ If Guid is NULL, then ASSERT().
+
+ @param[in] Guid Pointer to a 128-bit unique value that designates
+ which namespace to retrieve a value from.
+ @param[in] TokenNumber The PCD token number to retrieve a current value for.
+
+ @return Return the BOOLEAN.
+
+**/
+BOOLEAN
+__cdecl
+LibPcdGetExBool (
+ const GUID *Guid,
+ UINTN TokenNumber
+ );
+
+/**
+ This function provides a means by which to retrieve the size of a given PCD token.
+
+ Returns the size of the token specified by TokenNumber and Guid.
+
+ If Guid is NULL, then ASSERT().
+
+ @param[in] Guid Pointer to a 128-bit unique value that designates
+ which namespace to retrieve a value from.
+ @param[in] TokenNumber The PCD token number to retrieve a current value for.
+
+ @return Return the size.
+
+**/
+UINTN
+__cdecl
+LibPcdGetExSize (
+ const GUID *Guid,
+ UINTN TokenNumber
+ );
+
+/**
+ This function provides a means by which to set a value for a given PCD token.
+
+ Sets the 8-bit value for the token specified by TokenNumber
+ to the value specified by Value.
+
+ @param[in] TokenNumber The PCD token number to set a current value for.
+ @param[in] Value The 8-bit value to set.
+
+ @return The status of the set operation.
+
+**/
+RETURN_STATUS
+__cdecl
+LibPcdSet8S (
+ UINTN TokenNumber,
+ UINT8 Value
+ );
+
+/**
+ This function provides a means by which to set a value for a given PCD token.
+
+ Sets the 16-bit value for the token specified by TokenNumber
+ to the value specified by Value.
+
+ @param[in] TokenNumber The PCD token number to set a current value for.
+ @param[in] Value The 16-bit value to set.
+
+ @return The status of the set operation.
+
+**/
+RETURN_STATUS
+__cdecl
+LibPcdSet16S (
+ UINTN TokenNumber,
+ UINT16 Value
+ );
+
+/**
+ This function provides a means by which to set a value for a given PCD token.
+
+ Sets the 32-bit value for the token specified by TokenNumber
+ to the value specified by Value.
+
+ @param[in] TokenNumber The PCD token number to set a current value for.
+ @param[in] Value The 32-bit value to set.
+
+ @return The status of the set operation.
+
+**/
+RETURN_STATUS
+__cdecl
+LibPcdSet32S (
+ UINTN TokenNumber,
+ UINT32 Value
+ );
+
+/**
+ This function provides a means by which to set a value for a given PCD token.
+
+ Sets the 64-bit value for the token specified by TokenNumber
+ to the value specified by Value.
+
+ @param[in] TokenNumber The PCD token number to set a current value for.
+ @param[in] Value The 64-bit value to set.
+
+ @return The status of the set operation.
+
+**/
+RETURN_STATUS
+__cdecl
+LibPcdSet64S (
+ UINTN TokenNumber,
+ UINT64 Value
+ );
+
+/**
+ This function provides a means by which to set a value for a given PCD token.
+
+ Sets a buffer for the token specified by TokenNumber to the value specified
+ by Buffer and SizeOfBuffer. If SizeOfBuffer is greater than the maximum size
+ support by TokenNumber, then set SizeOfBuffer to the maximum size supported by
+ TokenNumber and return RETURN_INVALID_PARAMETER to indicate that the set operation
+ was not actually performed.
+
+ If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to the
+ maximum size supported by TokenName and RETURN_INVALID_PARAMETER must be returned.
+
+ If SizeOfBuffer is NULL, then ASSERT().
+ If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
+
+ @param[in] TokenNumber The PCD token number to set a current value for.
+ @param[in, out] SizeOfBuffer The size, in bytes, of Buffer.
+ @param[in] Buffer A pointer to the buffer to set.
+
+ @return The status of the set operation.
+
+**/
+RETURN_STATUS
+__cdecl
+LibPcdSetPtrS (
+ UINTN TokenNumber,
+ UINTN *SizeOfBuffer,
+ const void *Buffer
+ );
+
+/**
+ This function provides a means by which to set a value for a given PCD token.
+
+ Sets the boolean value for the token specified by TokenNumber
+ to the value specified by Value.
+
+ @param[in] TokenNumber The PCD token number to set a current value for.
+ @param[in] Value The boolean value to set.
+
+ @return The status of the set operation.
+
+**/
+RETURN_STATUS
+__cdecl
+LibPcdSetBoolS (
+ UINTN TokenNumber,
+ BOOLEAN Value
+ );
+
+/**
+ This function provides a means by which to set a value for a given PCD token.
+
+ Sets the 8-bit value for the token specified by TokenNumber
+ to the value specified by Value.
+
+ If Guid is NULL, then ASSERT().
+
+ @param[in] Guid The pointer to a 128-bit unique value that
+ designates which namespace to set a value from.
+ @param[in] TokenNumber The PCD token number to set a current value for.
+ @param[in] Value The 8-bit value to set.
+
+ @return The status of the set operation.
+
+**/
+RETURN_STATUS
+__cdecl
+LibPcdSetEx8S (
+ const GUID *Guid,
+ UINTN TokenNumber,
+ UINT8 Value
+ );
+
+/**
+ This function provides a means by which to set a value for a given PCD token.
+
+ Sets the 16-bit value for the token specified by TokenNumber
+ to the value specified by Value.
+
+ If Guid is NULL, then ASSERT().
+
+ @param[in] Guid The pointer to a 128-bit unique value that
+ designates which namespace to set a value from.
+ @param[in] TokenNumber The PCD token number to set a current value for.
+ @param[in] Value The 16-bit value to set.
+
+ @return The status of the set operation.
+
+**/
+RETURN_STATUS
+__cdecl
+LibPcdSetEx16S (
+ const GUID *Guid,
+ UINTN TokenNumber,
+ UINT16 Value
+ );
+
+/**
+ This function provides a means by which to set a value for a given PCD token.
+
+ Sets the 32-bit value for the token specified by TokenNumber
+ to the value specified by Value.
+
+ If Guid is NULL, then ASSERT().
+
+ @param[in] Guid The pointer to a 128-bit unique value that
+ designates which namespace to set a value from.
+ @param[in] TokenNumber The PCD token number to set a current value for.
+ @param[in] Value The 32-bit value to set.
+
+ @return The status of the set operation.
+
+**/
+RETURN_STATUS
+__cdecl
+LibPcdSetEx32S (
+ const GUID *Guid,
+ UINTN TokenNumber,
+ UINT32 Value
+ );
+
+/**
+ This function provides a means by which to set a value for a given PCD token.
+
+ Sets the 64-bit value for the token specified by TokenNumber
+ to the value specified by Value.
+
+ If Guid is NULL, then ASSERT().
+
+ @param[in] Guid The pointer to a 128-bit unique value that
+ designates which namespace to set a value from.
+ @param[in] TokenNumber The PCD token number to set a current value for.
+ @param[in] Value The 64-bit value to set.
+
+ @return The status of the set operation.
+
+**/
+RETURN_STATUS
+__cdecl
+LibPcdSetEx64S (
+ const GUID *Guid,
+ UINTN TokenNumber,
+ UINT64 Value
+ );
+
+/**
+ This function provides a means by which to set a value for a given PCD token.
+
+ Sets a buffer for the token specified by TokenNumber to the value specified by
+ Buffer and SizeOfBuffer. If SizeOfBuffer is greater than the maximum size
+ support by TokenNumber, then set SizeOfBuffer to the maximum size supported by
+ TokenNumber and return RETURN_INVALID_PARAMETER to indicate that the set operation
+ was not actually performed.
+
+ If Guid is NULL, then ASSERT().
+ If SizeOfBuffer is NULL, then ASSERT().
+ If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
+
+ @param[in] Guid Pointer to a 128-bit unique value that
+ designates which namespace to set a value from.
+ @param[in] TokenNumber The PCD token number to set a current value for.
+ @param[in, out] SizeOfBuffer The size, in bytes, of Buffer.
+ @param[in] Buffer A pointer to the buffer to set.
+
+ @return The status of the set operation.
+
+**/
+RETURN_STATUS
+__cdecl
+LibPcdSetExPtrS (
+ const GUID *Guid,
+ UINTN TokenNumber,
+ UINTN *SizeOfBuffer,
+ void *Buffer
+ );
+
+/**
+ This function provides a means by which to set a value for a given PCD token.
+
+ Sets the boolean value for the token specified by TokenNumber
+ to the value specified by Value.
+
+ If Guid is NULL, then ASSERT().
+
+ @param[in] Guid The pointer to a 128-bit unique value that
+ designates which namespace to set a value from.
+ @param[in] TokenNumber The PCD token number to set a current value for.
+ @param[in] Value The boolean value to set.
+
+ @return The status of the set operation.
+
+**/
+RETURN_STATUS
+__cdecl
+LibPcdSetExBoolS (
+ const GUID *Guid,
+ UINTN TokenNumber,
+ BOOLEAN Value
+ );
+
+/**
+ This notification function serves two purposes.
+
+ Firstly, it notifies the module that did the registration that the value of this
+ PCD token has been set.
+ Secondly, it provides a mechanism for the module that did the registration to intercept
+ the set operation and override the value been set if necessary. After the invocation of
+ the callback function, TokenData will be used by PCD service PEIM or driver to modify th
+ internal data in PCD database.
+
+ @param[in] CallBackGuid The PCD token GUID being set.
+ @param[in] CallBackToken The PCD token number being set.
+ @param[in, out] TokenData A pointer to the token data being set.
+ @param[in] TokenDataSize The size, in bytes, of the data being set.
+
+**/
+typedef
+void
+(__cdecl *PCD_CALLBACK)(
+ const GUID *CallBackGuid ,
+ UINTN CallBackToken,
+ void *TokenData,
+ UINTN TokenDataSize
+ );
+
+/**
+ Set up a notification function that is called when a specified token is set.
+
+ When the token specified by TokenNumber and Guid is set,
+ then notification function specified by NotificationFunction is called.
+ If Guid is NULL, then the default token space is used.
+ If NotificationFunction is NULL, then ASSERT().
+
+ @param[in] Guid Pointer to a 128-bit unique value that designates which
+ namespace to set a value from. If NULL, then the default
+ token space is used.
+ @param[in] TokenNumber The PCD token number to monitor.
+ @param[in] NotificationFunction The function to call when the token
+ specified by Guid and TokenNumber is set.
+
+**/
+void
+__cdecl
+LibPcdCallbackOnSet (
+ const GUID *Guid ,
+ UINTN TokenNumber,
+ PCD_CALLBACK NotificationFunction
+ );
+
+/**
+ Disable a notification function that was established with LibPcdCallbackonSet().
+
+ Disable a notification function that was previously established with LibPcdCallbackOnSet().
+ If NotificationFunction is NULL, then ASSERT().
+ If LibPcdCallbackOnSet() was not previously called with Guid, TokenNumber,
+ and NotificationFunction, then ASSERT().
+
+ @param[in] Guid Specify the GUID token space.
+ @param[in] TokenNumber Specify the token number.
+ @param[in] NotificationFunction The callback function to be unregistered.
+
+**/
+void
+__cdecl
+LibPcdCancelCallback (
+ const GUID *Guid ,
+ UINTN TokenNumber,
+ PCD_CALLBACK NotificationFunction
+ );
+
+/**
+ Retrieves the next token in a token space.
+
+ Retrieves the next PCD token number from the token space specified by Guid.
+ If Guid is NULL, then the default token space is used. If TokenNumber is 0,
+ then the first token number is returned. Otherwise, the token number that
+ follows TokenNumber in the token space is returned. If TokenNumber is the last
+ token number in the token space, then 0 is returned.
+
+ If TokenNumber is not 0 and is not in the token space specified by Guid, then ASSERT().
+
+ @param[in] Guid Pointer to a 128-bit unique value that designates which namespace
+ to set a value from. If NULL, then the default token space is used.
+ @param[in] TokenNumber The previous PCD token number. If 0, then retrieves the first PCD
+ token number.
+
+ @return The next valid token number.
+
+**/
+UINTN
+__cdecl
+LibPcdGetNextToken (
+ const GUID *Guid ,
+ UINTN TokenNumber
+ );
+
+/**
+ Used to retrieve the list of available PCD token space GUIDs.
+
+ Returns the PCD token space GUID that follows TokenSpaceGuid in the list of token spaces
+ in the platform.
+ If TokenSpaceGuid is NULL, then a pointer to the first PCD token spaces returned.
+ If TokenSpaceGuid is the last PCD token space GUID in the list, then NULL is returned.
+
+ @param TokenSpaceGuid Pointer to the a PCD token space GUID
+
+ @return The next valid token namespace.
+
+**/
+GUID *
+__cdecl
+LibPcdGetNextTokenSpace (
+ const GUID *TokenSpaceGuid
+ );
+
+/**
+ Sets a value of a patchable PCD entry that is type pointer.
+
+ Sets the PCD entry specified by PatchVariable to the value specified by Buffer
+ and SizeOfBuffer. Buffer is returned. If SizeOfBuffer is greater than
+ MaximumDatumSize, then set SizeOfBuffer to MaximumDatumSize and return
+ NULL to indicate that the set operation was not actually performed.
+ If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to
+ MaximumDatumSize and NULL must be returned.
+
+ If PatchVariable is NULL, then ASSERT().
+ If SizeOfBuffer is NULL, then ASSERT().
+ If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
+
+ @param[out] PatchVariable A pointer to the global variable in a module that is
+ the target of the set operation.
+ @param[in] MaximumDatumSize The maximum size allowed for the PCD entry specified by PatchVariable.
+ @param[in, out] SizeOfBuffer A pointer to the size, in bytes, of Buffer.
+ @param[in] Buffer A pointer to the buffer to used to set the target variable.
+
+ @return Return the pointer to the Buffer that was set.
+
+**/
+void *
+__cdecl
+LibPatchPcdSetPtr (
+ void *PatchVariable,
+ UINTN MaximumDatumSize,
+ UINTN *SizeOfBuffer,
+ const void *Buffer
+ );
+
+/**
+ Sets a value of a patchable PCD entry that is type pointer.
+
+ Sets the PCD entry specified by PatchVariable to the value specified
+ by Buffer and SizeOfBuffer. If SizeOfBuffer is greater than MaximumDatumSize,
+ then set SizeOfBuffer to MaximumDatumSize and return RETURN_INVALID_PARAMETER
+ to indicate that the set operation was not actually performed.
+ If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to
+ MaximumDatumSize and RETURN_INVALID_PARAMETER must be returned.
+
+ If PatchVariable is NULL, then ASSERT().
+ If SizeOfBuffer is NULL, then ASSERT().
+ If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
+
+ @param[out] PatchVariable A pointer to the global variable in a module that is
+ the target of the set operation.
+ @param[in] MaximumDatumSize The maximum size allowed for the PCD entry specified by PatchVariable.
+ @param[in, out] SizeOfBuffer A pointer to the size, in bytes, of Buffer.
+ @param[in] Buffer A pointer to the buffer to used to set the target variable.
+
+ @return The status of the set operation.
+
+**/
+RETURN_STATUS
+__cdecl
+LibPatchPcdSetPtrS (
+ void *PatchVariable,
+ UINTN MaximumDatumSize,
+ UINTN *SizeOfBuffer,
+ const void *Buffer
+ );
+
+/**
+ Sets a value and size of a patchable PCD entry that is type pointer.
+
+ Sets the PCD entry specified by PatchVariable to the value specified by Buffer
+ and SizeOfBuffer. Buffer is returned. If SizeOfBuffer is greater than
+ MaximumDatumSize, then set SizeOfBuffer to MaximumDatumSize and return
+ NULL to indicate that the set operation was not actually performed.
+ If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to
+ MaximumDatumSize and NULL must be returned.
+
+ If PatchVariable is NULL, then ASSERT().
+ If SizeOfPatchVariable is NULL, then ASSERT().
+ If SizeOfBuffer is NULL, then ASSERT().
+ If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
+
+ @param[out] PatchVariable A pointer to the global variable in a module that is
+ the target of the set operation.
+ @param[out] SizeOfPatchVariable A pointer to the size, in bytes, of PatchVariable.
+ @param[in] MaximumDatumSize The maximum size allowed for the PCD entry specified by PatchVariable.
+ @param[in, out] SizeOfBuffer A pointer to the size, in bytes, of Buffer.
+ @param[in] Buffer A pointer to the buffer to used to set the target variable.
+
+ @return Return the pointer to the Buffer that was set.
+
+**/
+void *
+__cdecl
+LibPatchPcdSetPtrAndSize (
+ void *PatchVariable,
+ UINTN *SizeOfPatchVariable,
+ UINTN MaximumDatumSize,
+ UINTN *SizeOfBuffer,
+ const void *Buffer
+ );
+
+/**
+ Sets a value and size of a patchable PCD entry that is type pointer.
+
+ Sets the PCD entry specified by PatchVariable to the value specified
+ by Buffer and SizeOfBuffer. If SizeOfBuffer is greater than MaximumDatumSize,
+ then set SizeOfBuffer to MaximumDatumSize and return RETURN_INVALID_PARAMETER
+ to indicate that the set operation was not actually performed.
+ If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to
+ MaximumDatumSize and RETURN_INVALID_PARAMETER must be returned.
+
+ If PatchVariable is NULL, then ASSERT().
+ If SizeOfPatchVariable is NULL, then ASSERT().
+ If SizeOfBuffer is NULL, then ASSERT().
+ If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
+
+ @param[out] PatchVariable A pointer to the global variable in a module that is
+ the target of the set operation.
+ @param[out] SizeOfPatchVariable A pointer to the size, in bytes, of PatchVariable.
+ @param[in] MaximumDatumSize The maximum size allowed for the PCD entry specified by PatchVariable.
+ @param[in, out] SizeOfBuffer A pointer to the size, in bytes, of Buffer.
+ @param[in] Buffer A pointer to the buffer to used to set the target variable.
+
+ @return The status of the set operation.
+
+**/
+RETURN_STATUS
+__cdecl
+LibPatchPcdSetPtrAndSizeS (
+ void *PatchVariable,
+ UINTN *SizeOfPatchVariable,
+ UINTN MaximumDatumSize,
+ UINTN *SizeOfBuffer,
+ const void *Buffer
+ );
+
+typedef enum {
+ PCD_TYPE_8,
+ PCD_TYPE_16,
+ PCD_TYPE_32,
+ PCD_TYPE_64,
+ PCD_TYPE_BOOL,
+ PCD_TYPE_PTR
+} PCD_TYPE;
+
+typedef struct {
+ ///
+ /// The returned information associated with the requested TokenNumber. If
+ /// TokenNumber is 0, then PcdType is set to PCD_TYPE_8.
+ ///
+ PCD_TYPE PcdType;
+ ///
+ /// The size of the data in bytes associated with the TokenNumber specified. If
+ /// TokenNumber is 0, then PcdSize is set 0.
+ ///
+ UINTN PcdSize;
+ ///
+ /// The null-terminated ASCII string associated with a given token. If the
+ /// TokenNumber specified was 0, then this field corresponds to the null-terminated
+ /// ASCII string associated with the token's namespace Guid. If NULL, there is no
+ /// name associated with this request.
+ ///
+ CHAR8 *PcdName;
+} PCD_INFO;
+
+/**
+ Retrieve additional information associated with a PCD token.
+
+ This includes information such as the type of value the TokenNumber is associated with as well as possible
+ human readable name that is associated with the token.
+
+ If TokenNumber is not in the default token space specified, then ASSERT().
+
+ @param[in] TokenNumber The PCD token number.
+ @param[out] PcdInfo The returned information associated with the requested TokenNumber.
+ The caller is responsible for freeing the buffer that is allocated by callee for PcdInfo->PcdName.
+**/
+void
+__cdecl
+LibPcdGetInfo (
+ UINTN TokenNumber,
+ PCD_INFO *PcdInfo
+ );
+
+/**
+ Retrieve additional information associated with a PCD token.
+
+ This includes information such as the type of value the TokenNumber is associated with as well as possible
+ human readable name that is associated with the token.
+
+ If TokenNumber is not in the token space specified by Guid, then ASSERT().
+
+ @param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value.
+ @param[in] TokenNumber The PCD token number.
+ @param[out] PcdInfo The returned information associated with the requested TokenNumber.
+ The caller is responsible for freeing the buffer that is allocated by callee for PcdInfo->PcdName.
+**/
+void
+__cdecl
+LibPcdGetInfoEx (
+ const GUID *Guid,
+ UINTN TokenNumber,
+ PCD_INFO *PcdInfo
+ );
+
+/**
+ Retrieve the currently set SKU Id.
+
+ @return The currently set SKU Id. If the platform has not set at a SKU Id, then the
+ default SKU Id value of 0 is returned. If the platform has set a SKU Id, then the currently set SKU
+ Id is returned.
+**/
+UINTN
+__cdecl
+LibPcdGetSku (
+ void
+ );
+
+#line 1677 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Library/PcdLib.h"
+
+#line 18 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Universal\\Disk\\RamDiskDxe\\RamDiskDxe\\DEBUG\\AutoGen.h"
+
+extern GUID gEfiCallerIdGuid;
+extern GUID gEdkiiDscPlatformGuid;
+extern CHAR8 *gEfiCallerBaseName;
+
+
+
+
+
+
+// Guids
+extern EFI_GUID gEfiIfrTianoGuid;
+extern EFI_GUID gRamDiskFormSetGuid;
+extern EFI_GUID gEfiVirtualDiskGuid;
+extern EFI_GUID gEfiFileInfoGuid;
+extern EFI_GUID gEfiMdeModulePkgTokenSpaceGuid;
+extern EFI_GUID gEfiMdePkgTokenSpaceGuid;
+extern EFI_GUID gUefiOvmfPkgTokenSpaceGuid;
+extern EFI_GUID gEfiEventReadyToBootGuid;
+extern EFI_GUID gEfiEventLegacyBootGuid;
+extern EFI_GUID gEfiGlobalVariableGuid;
+extern EFI_GUID gEfiAcpi20TableGuid;
+extern EFI_GUID gEfiAcpi10TableGuid;
+extern EFI_GUID gEdkiiIfrBitVarstoreGuid;
+extern EFI_GUID gEfiHobListGuid;
+extern EFI_GUID gEfiFileSystemVolumeLabelInfoIdGuid;
+
+// Protocols
+extern EFI_GUID gEfiRamDiskProtocolGuid;
+extern EFI_GUID gEfiHiiConfigAccessProtocolGuid;
+extern EFI_GUID gEfiDevicePathProtocolGuid;
+extern EFI_GUID gEfiBlockIoProtocolGuid;
+extern EFI_GUID gEfiBlockIo2ProtocolGuid;
+extern EFI_GUID gEfiAcpiTableProtocolGuid;
+extern EFI_GUID gEfiAcpiSdtProtocolGuid;
+extern EFI_GUID gPcdProtocolGuid;
+extern EFI_GUID gEfiPcdProtocolGuid;
+extern EFI_GUID gGetPcdInfoProtocolGuid;
+extern EFI_GUID gEfiGetPcdInfoProtocolGuid;
+extern EFI_GUID gEfiDevicePathUtilitiesProtocolGuid;
+extern EFI_GUID gEfiDevicePathToTextProtocolGuid;
+extern EFI_GUID gEfiDevicePathFromTextProtocolGuid;
+extern EFI_GUID gEfiHiiFontProtocolGuid;
+extern EFI_GUID gEfiHiiStringProtocolGuid;
+extern EFI_GUID gEfiHiiImageProtocolGuid;
+extern EFI_GUID gEfiHiiDatabaseProtocolGuid;
+extern EFI_GUID gEfiHiiConfigRoutingProtocolGuid;
+extern EFI_GUID gEfiDriverBindingProtocolGuid;
+extern EFI_GUID gEfiSimpleTextOutProtocolGuid;
+extern EFI_GUID gEfiGraphicsOutputProtocolGuid;
+extern EFI_GUID gEfiSimpleFileSystemProtocolGuid;
+extern EFI_GUID gEfiUgaDrawProtocolGuid;
+extern EFI_GUID gEfiComponentNameProtocolGuid;
+extern EFI_GUID gEfiComponentName2ProtocolGuid;
+extern EFI_GUID gEfiDriverConfigurationProtocolGuid;
+extern EFI_GUID gEfiDriverConfiguration2ProtocolGuid;
+extern EFI_GUID gEfiDriverDiagnosticsProtocolGuid;
+extern EFI_GUID gEfiDriverDiagnostics2ProtocolGuid;
+extern EFI_GUID gEfiFormBrowser2ProtocolGuid;
+extern EFI_GUID gEfiLoadedImageProtocolGuid;
+extern EFI_GUID gEfiFirmwareVolume2ProtocolGuid;
+extern EFI_GUID gEfiLoadFileProtocolGuid;
+extern EFI_GUID gEfiLoadFile2ProtocolGuid;
+
+// Definition of SkuId Array
+extern UINT64 _gPcd_SkuId_Array[];
+
+// Definition of PCDs used in this module
+
+
+
+extern const UINT8 _gPcd_FixedAtBuild_PcdAcpiDefaultOemId[7];
+
+
+
+//#define _PCD_SET_MODE_PTR_PcdAcpiDefaultOemId ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+
+
+
+
+extern const UINT64 _gPcd_FixedAtBuild_PcdAcpiDefaultOemTableId;
+
+//#define _PCD_SET_MODE_64_PcdAcpiDefaultOemTableId ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+
+
+
+
+extern const UINT32 _gPcd_FixedAtBuild_PcdAcpiDefaultOemRevision;
+
+//#define _PCD_SET_MODE_32_PcdAcpiDefaultOemRevision ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+
+
+
+
+extern const UINT32 _gPcd_FixedAtBuild_PcdAcpiDefaultCreatorId;
+
+//#define _PCD_SET_MODE_32_PcdAcpiDefaultCreatorId ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+
+
+
+
+extern const UINT32 _gPcd_FixedAtBuild_PcdAcpiDefaultCreatorRevision;
+
+//#define _PCD_SET_MODE_32_PcdAcpiDefaultCreatorRevision ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD
+
+// Definition of PCDs used in libraries is in AutoGen.c
+
+
+EFI_STATUS
+__cdecl
+RamDiskDxeEntryPoint (
+ EFI_HANDLE ImageHandle,
+ EFI_SYSTEM_TABLE *SystemTable
+ );
+
+
+
+EFI_STATUS
+__cdecl
+RamDiskDxeUnload (
+ EFI_HANDLE ImageHandle
+ );
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\build\\ovmfx64\\debug_vs2015x86\\x64\\mdemodulepkg\\universal\\disk\\ramdiskdxe\\ramdiskdxe\\debug\\RamDiskDxeStrDefs.h"
+/**
+ DO NOT EDIT
+ FILE auto-generated
+ Module name:
+ RamDiskDxeStrDefs.h
+ Abstract: Auto-generated RamDiskDxeStrDefs.h for building module or library.
+**/
+
+
+
+
+
+//
+//Unicode String ID
+//
+// #define $LANGUAGE_NAME 0x0000 // not referenced
+// #define $PRINTABLE_LANGUAGE_NAME 0x0001 // not referenced
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// #define STR_ADD_RAW_FORM_SUBTITLE_TEXT 0x0019 // not referenced
+
+extern unsigned char RamDiskDxeStrings[];
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 84 "c:\\users\\mliang2x\\workspace\\edk2\\build\\ovmfx64\\debug_vs2015x86\\x64\\mdemodulepkg\\universal\\disk\\ramdiskdxe\\ramdiskdxe\\debug\\RamDiskDxeStrDefs.h"
+#line 146 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Universal\\Disk\\RamDiskDxe\\RamDiskDxe\\DEBUG\\AutoGen.h"
+
+
+
+
+
+
+#line 153 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Universal\\Disk\\RamDiskDxe\\RamDiskDxe\\DEBUG\\AutoGen.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Universal\\Disk\\RamDiskDxe\\RamDiskDxe\\OUTPUT\\.\\RamDisk.i"
+
+
+/** @file
+ The definition block in ACPI table for NVDIMM root device.
+
+Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+DefinitionBlock (
+ "RamDisk.aml",
+ "SSDT",
+ 2,
+ "INTEL ",
+ "RamDisk ",
+ 0x1000
+ )
+{
+ Scope (\_SB)
+ {
+ Device (NVDR)
+ {
+ //
+ // Define _HID, "ACPI0012" NVDIMM Root Device
+ //
+ Name (_HID, "ACPI0012")
+
+ //
+ // Readable name of this device
+ //
+ Name (_STR, Unicode ("NVDIMM Root Device"))
+
+ Method (_STA, 0)
+ {
+ Return (0x0f)
+ }
+ }
+ }
+}
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.iiii b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.iiii
new file mode 100644
index 000000000000..b35b1cfe7052
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDisk.iiii
@@ -0,0 +1,40 @@
+
+
+/** @file
+ The definition block in ACPI table for NVDIMM root device.
+
+Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+DefinitionBlock (
+ "RamDisk.aml",
+ "SSDT",
+ 2,
+ "INTEL ",
+ "RamDisk ",
+ 0x1000
+ )
+{
+ Scope (\_SB)
+ {
+ Device (NVDR)
+ {
+ //
+ // Define _HID, "ACPI0012" NVDIMM Root Device
+ //
+ Name (_HID, "ACPI0012")
+
+ //
+ // Readable name of this device
+ //
+ Name (_STR, Unicode ("NVDIMM Root Device"))
+
+ Method (_STA, 0)
+ {
+ Return (0x0f)
+ }
+ }
+ }
+}
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskBlockIo.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskBlockIo.c.deps
new file mode 100644
index 000000000000..765f04820730
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskBlockIo.c.deps
@@ -0,0 +1,87 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDiskBlockIo.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\mdemodulepkg\universal\disk\ramdiskdxe\ramdiskdxe\debug\RamDiskDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\universal\disk\ramdiskdxe\RamDiskImpl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/FileExplorerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FileExplorer.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DxeServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/RamDisk.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/BlockIo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/BlockIo2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiSystemDescriptionTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/RamDiskHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/FileInfo.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\universal\disk\ramdiskdxe\RamDiskNVData.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDriver.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDriver.c.deps
new file mode 100644
index 000000000000..36f386e7d293
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDriver.c.deps
@@ -0,0 +1,87 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDiskDriver.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\mdemodulepkg\universal\disk\ramdiskdxe\ramdiskdxe\debug\RamDiskDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\universal\disk\ramdiskdxe\RamDiskImpl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/FileExplorerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FileExplorer.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DxeServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/RamDisk.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/BlockIo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/BlockIo2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiSystemDescriptionTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/RamDiskHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/FileInfo.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\universal\disk\ramdiskdxe\RamDiskNVData.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.depex b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.depex
new file mode 100644
index 000000000000..22c9f2d4965b
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.depex
@@ -0,0 +1 @@
+\x02×r~XPÌyO Ê)\x1fÁ¡\x0f\x02rÁﲡF³'m2üA`B\x02öð£\x13J&ð>òàÞÅ\x124/4\x02N¾y\x03\x06×}C°7í¸/·r¤\x02tiÙ\x0fª#ÜL¹ËÑwP2*\x02`ÃÔ¹û¼OSÁ6"X\x03\x03\x03\x03\x03\b
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.efi b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.efi
new file mode 100644
index 0000000000000000000000000000000000000000..1fd20c9e3a011eb244349c1d4aca18039ee012ba
GIT binary patch
literal 48320
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	|Vh${1jKPM^{o8lT>It
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
WhftIcWw(4Rx7AnmUDeg)2OR+b+nTTd
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.lib b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.lib
new file mode 100644
index 0000000000000000000000000000000000000000..25fab4aff6a53442da881a6eca732c55c9733512
GIT binary patch
literal 247076
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
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.map b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.map
new file mode 100644
index 000000000000..73597425c646
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.map
@@ -0,0 +1,655 @@
+ RamDiskDxe
+
+ Timestamp is 64880b66 (Tue Jun 13 14:23:34 2023)
+
+ Preferred load address is 0000000000000000
+
+ Start Length Name Class
+ 0001:00000000 00000348H .text CODE
+ 0001:00000348 000072cbH .text$mn CODE
+ 0002:00000000 00002434H .rdata DATA
+ 0002:00002434 00000148H .rdata$zzzdbg DATA
+ 0003:00000000 00001400H .data DATA
+ 0003:00001400 00000120H .bss DATA
+ 0004:00000000 00000534H .pdata DATA
+ 0005:00000000 000003a8H .xdata DATA
+
+ Address Publics by Value Rva+Base Lib:Object
+
+ 0000:00000000 __dynamic_value_reloc_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_iat_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_flags 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_iat_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_longjmp_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_longjmp_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_table 0000000000000000 <absolute>
+ 0001:00000000 InternalMemCopyMem 00000000000002c0 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000040 InternalMemCompareMem 0000000000000300 BaseMemoryLibRepStr:CompareMem.obj
+ 0001:00000060 InternalMemSetMem 0000000000000320 BaseMemoryLibRepStr:SetMem.obj
+ 0001:00000080 InternalMemZeroMem 0000000000000340 BaseMemoryLibRepStr:ZeroMem.obj
+ 0001:000000a0 InternalMemSetMem16 0000000000000360 BaseMemoryLibRepStr:SetMem16.obj
+ 0001:000000c0 InternalMemIsZeroBuffer 0000000000000380 BaseMemoryLibRepStr:IsZeroBuffer.obj
+ 0001:000000f0 InternalMemSetMem64 00000000000003b0 BaseMemoryLibRepStr:SetMem64.obj
+ 0001:00000110 InternalMemSetMem32 00000000000003d0 BaseMemoryLibRepStr:SetMem32.obj
+ 0001:00000130 CpuPause 00000000000003f0 BaseLib:CpuPause.obj
+ 0001:00000140 SevNoRepIo 0000000000000400 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000180 SevIoReadFifo8 0000000000000440 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001a2 SevIoReadFifo16 0000000000000462 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001c8 SevIoReadFifo32 0000000000000488 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001eb SevIoWriteFifo8 00000000000004ab BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000020d SevIoWriteFifo16 00000000000004cd BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000233 SevIoWriteFifo32 00000000000004f3 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000260 TdVmCall 0000000000000520 BaseLib:TdVmcall.obj
+ 0001:000002f0 TdCall 00000000000005b0 BaseLib:TdCall.obj
+ 0001:00000348 _DriverUnloadHandler 0000000000000608 f UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0001:000003fc _ModuleEntryPoint 00000000000006bc f UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0001:00000484 ProcessLibraryConstructorList 0000000000000744 f RamDiskDxe:AutoGen.obj
+ 0001:00000854 ProcessLibraryDestructorList 0000000000000b14 f RamDiskDxe:AutoGen.obj
+ 0001:00000918 ProcessModuleEntryPointList 0000000000000bd8 f RamDiskDxe:AutoGen.obj
+ 0001:00000a50 RamDiskAcpiCheck 0000000000000d10 f RamDiskDxe:RamDiskDriver.obj
+ 0001:00000b2c RamDiskPublishSsdt 0000000000000dec f RamDiskDxe:RamDiskProtocol.obj
+ 0001:00000bf4 RamDiskPublishNfit 0000000000000eb4 f RamDiskDxe:RamDiskProtocol.obj
+ 0001:00000f98 RamDiskUnpublishNfit 0000000000001258 f RamDiskDxe:RamDiskProtocol.obj
+ 0001:00001208 RamDiskRegister 00000000000014c8 f RamDiskDxe:RamDiskProtocol.obj
+ 0001:0000150c RamDiskUnregister 00000000000017cc f RamDiskDxe:RamDiskProtocol.obj
+ 0001:000016c4 InstallRamDiskConfigForm 0000000000001984 f RamDiskDxe:RamDiskImpl.obj
+ 0001:0000178c UninstallRamDiskConfigForm 0000000000001a4c f RamDiskDxe:RamDiskImpl.obj
+ 0001:000017f4 UnregisterAllRamDisks 0000000000001ab4 f RamDiskDxe:RamDiskImpl.obj
+ 0001:000018f4 LibExtractConfig 0000000000001bb4 f FileExplorerLib:FileExplorer.obj
+ 0001:000018f4 RamDiskExtractConfig 0000000000001bb4 f RamDiskDxe:RamDiskImpl.obj
+ 0001:00001918 LibRouteConfig 0000000000001bd8 f FileExplorerLib:FileExplorer.obj
+ 0001:00001918 RamDiskRouteConfig 0000000000001bd8 f RamDiskDxe:RamDiskImpl.obj
+ 0001:0000193c HiiCreateRamDisk 0000000000001bfc f RamDiskDxe:RamDiskImpl.obj
+ 0001:00001b78 UpdateMainForm 0000000000001e38 f RamDiskDxe:RamDiskImpl.obj
+ 0001:00001d7c RamDiskCallback 000000000000203c f RamDiskDxe:RamDiskImpl.obj
+ 0001:00002048 RamDiskInitBlockIo 0000000000002308 f RamDiskDxe:RamDiskBlockIo.obj
+ 0001:00002108 RamDiskBlkIoReset 00000000000023c8 f RamDiskDxe:RamDiskBlockIo.obj
+ 0001:00002108 RamDiskBlkIoFlushBlocks 00000000000023c8 f RamDiskDxe:RamDiskBlockIo.obj
+ 0001:00002108 RamDiskBlkIo2Reset 00000000000023c8 f RamDiskDxe:RamDiskBlockIo.obj
+ 0001:0000210c RamDiskBlkIoReadBlocks 00000000000023cc f RamDiskDxe:RamDiskBlockIo.obj
+ 0001:000021e4 RamDiskBlkIoWriteBlocks 00000000000024a4 f RamDiskDxe:RamDiskBlockIo.obj
+ 0001:000022cc RamDiskBlkIo2ReadBlocksEx 000000000000258c f RamDiskDxe:RamDiskBlockIo.obj
+ 0001:00002368 RamDiskBlkIo2WriteBlocksEx 0000000000002628 f RamDiskDxe:RamDiskBlockIo.obj
+ 0001:00002404 RamDiskBlkIo2FlushBlocksEx 00000000000026c4 f RamDiskDxe:RamDiskBlockIo.obj
+ 0001:00002478 FileInfo 0000000000002738 f RamDiskDxe:RamDiskFileExplorer.obj
+ 0001:0000252c CopyGuid 00000000000027ec f BaseMemoryLibRepStr:MemLibGuid.obj
+ 0001:00002574 CompareGuid 0000000000002834 f BaseMemoryLibRepStr:MemLibGuid.obj
+ 0001:000025dc CopyMem 000000000000289c f BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0001:00002678 CompareMem 0000000000002938 f BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0001:00002750 InternalBaseLibIsListValid 0000000000002a10 f BaseLib:LinkedList.obj
+ 0001:000027bc InitializeListHead 0000000000002a7c f BaseLib:LinkedList.obj
+ 0001:000027f4 InsertTailList 0000000000002ab4 f BaseLib:LinkedList.obj
+ 0001:00002848 IsListEmpty 0000000000002b08 f BaseLib:LinkedList.obj
+ 0001:00002880 RemoveEntryList 0000000000002b40 f BaseLib:LinkedList.obj
+ 0001:000028c8 CalculateCheckSum8 0000000000002b88 f BaseLib:CheckSum.obj
+ 0001:00002944 ReadUnaligned32 0000000000002c04 f BaseLib:Unaligned.obj
+ 0001:00002974 ReadUnaligned64 0000000000002c34 f BaseLib:Unaligned.obj
+ 0001:000029a4 WriteUnaligned64 0000000000002c64 f BaseLib:Unaligned.obj
+ 0001:000029e4 DivU64x32Remainder 0000000000002ca4 f BaseLib:DivU64x32Remainder.obj
+ 0001:00002a40 UnicodeSPrint 0000000000002d00 f BasePrintLib:PrintLib.obj
+ 0001:00002ac0 AsciiSPrint 0000000000002d80 f BasePrintLib:PrintLib.obj
+ 0001:00002ae8 BasePrintLibFillBuffer 0000000000002da8 f BasePrintLib:PrintLibInternal.obj
+ 0001:00002b1c BasePrintLibValueToString 0000000000002ddc f BasePrintLib:PrintLibInternal.obj
+ 0001:00002b6c BasePrintLibSPrintMarker 0000000000002e2c f BasePrintLib:PrintLibInternal.obj
+ 0001:000039f0 BasePrintLibSPrint 0000000000003cb0 f BasePrintLib:PrintLibInternal.obj
+ 0001:00003a14 DebugPrint 0000000000003cd4 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:00003a38 DebugPrintMarker 0000000000003cf8 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:00003ac0 DebugAssert 0000000000003d80 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:00003b30 PlatformDebugLibIoPortFound 0000000000003df0 f PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0001:00003b78 InternalAllocatePool 0000000000003e38 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00003ba8 AllocateZeroPool 0000000000003e68 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00003bd4 InternalAllocateCopyPool 0000000000003e94 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00003c4c InternalReallocatePool 0000000000003f0c f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00003ccc FreePool 0000000000003f8c f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00003d10 DevicePathType 0000000000003fd0 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00003d40 DevicePathSubType 0000000000004000 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00003d70 DevicePathNodeLength 0000000000004030 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00003dbc NextDevicePathNode 000000000000407c f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00003df4 IsDevicePathEnd 00000000000040b4 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00003e60 SetDevicePathNodeLength 0000000000004120 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00003ee0 DevicePathFromHandle 00000000000041a0 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00003f14 FileDevicePath 00000000000041d4 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00004000 GetEfiGlobalVariable2 00000000000042c0 f UefiLib:UefiLib.obj
+ 0001:000040f8 GetBestLanguage 00000000000043b8 f UefiLib:UefiLib.obj
+ 0001:0000423c EfiOpenFileByDevicePath 00000000000044fc f UefiLib:UefiLib.obj
+ 0001:000043f0 EfiCreateEventReadyToBootEx 00000000000046b0 f UefiLib:UefiNotTiano.obj
+ 0001:00004494 UefiLibGetStringWidth 0000000000004754 f UefiLib:Console.obj
+ 0001:0000453c CreatePopUp 00000000000047fc f UefiLib:Console.obj
+ 0001:00004900 HiiSetString 0000000000004bc0 f UefiHiiLib:HiiString.obj
+ 0001:00004a5c HiiGetString 0000000000004d1c f UefiHiiLib:HiiString.obj
+ 0001:00004bf8 HiiAddPackages 0000000000004eb8 f UefiHiiLib:HiiLib.obj
+ 0001:00004d34 HiiRemovePackages 0000000000004ff4 f UefiHiiLib:HiiLib.obj
+ 0001:00004da4 HiiAllocateOpCodeHandle 0000000000005064 f UefiHiiLib:HiiLib.obj
+ 0001:00004df4 HiiFreeOpCodeHandle 00000000000050b4 f UefiHiiLib:HiiLib.obj
+ 0001:00004e34 InternalHiiGrowOpCodeHandle 00000000000050f4 f UefiHiiLib:HiiLib.obj
+ 0001:00004ed8 InternalHiiCreateOpCodeExtended 0000000000005198 f UefiHiiLib:HiiLib.obj
+ 0001:00004f8c HiiCreateGuidOpCode 000000000000524c f UefiHiiLib:HiiLib.obj
+ 0001:00004fe0 HiiCreateGotoOpCode 00000000000052a0 f UefiHiiLib:HiiLib.obj
+ 0001:00005068 InternalHiiUpdateFormPackageData 0000000000005328 f UefiHiiLib:HiiLib.obj
+ 0001:000052e4 HiiUpdateForm 00000000000055a4 f UefiHiiLib:HiiLib.obj
+ 0001:00005558 HiiGetSupportedLanguages 0000000000005818 f UefiHiiLib:HiiLanguage.obj
+ 0001:000055fc GetHobList 00000000000058bc f DxeHobLib:HobLib.obj
+ 0001:000056dc LibCallback 000000000000599c f FileExplorerLib:FileExplorer.obj
+ 0001:000058cc LibCreateMenuEntry 0000000000005b8c f FileExplorerLib:FileExplorer.obj
+ 0001:00005918 LibGetMenuEntry 0000000000005bd8 f FileExplorerLib:FileExplorer.obj
+ 0001:00005990 LibDestroyMenuEntry 0000000000005c50 f FileExplorerLib:FileExplorer.obj
+ 0001:00005a0c LibFreeMenu 0000000000005ccc f FileExplorerLib:FileExplorer.obj
+ 0001:00005a84 LibStrDuplicate 0000000000005d44 f FileExplorerLib:FileExplorer.obj
+ 0001:00005af0 LibAppendFileName 0000000000005db0 f FileExplorerLib:FileExplorer.obj
+ 0001:00005ca4 LibFindFileSystem 0000000000005f64 f FileExplorerLib:FileExplorer.obj
+ 0001:00005f88 LibGetFileHandleFromDevicePath 0000000000006248 f FileExplorerLib:FileExplorer.obj
+ 0001:00006194 LibCreateNewFile 0000000000006454 f FileExplorerLib:FileExplorer.obj
+ 0001:0000628c LibFindFiles 000000000000654c f FileExplorerLib:FileExplorer.obj
+ 0001:00006530 LibUpdateFileExplorePage 00000000000067f0 f FileExplorerLib:FileExplorer.obj
+ 0001:000067a4 LibUpdateFileExplorer 0000000000006a64 f FileExplorerLib:FileExplorer.obj
+ 0001:00006884 LibGetDevicePath 0000000000006b44 f FileExplorerLib:FileExplorer.obj
+ 0001:000068d8 ChooseFile 0000000000006b98 f FileExplorerLib:FileExplorer.obj
+ 0001:000069b0 InternalImageHandleToFvHandle 0000000000006c70 f DxeServicesLib:DxeServicesLib.obj
+ 0001:00006a38 InternalGetSectionFromFv 0000000000006cf8 f DxeServicesLib:DxeServicesLib.obj
+ 0001:00006b10 ZeroMem 0000000000006dd0 f BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0001:00006b74 SetMem16 0000000000006e34 f BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0001:00006c3c IsZeroBuffer 0000000000006efc f BaseMemoryLibRepStr:IsZeroBufferWrapper.obj
+ 0001:00006c98 StrnLenS 0000000000006f58 f BaseLib:SafeString.obj
+ 0001:00006d00 StrCpyS 0000000000006fc0 f BaseLib:SafeString.obj
+ 0001:00006ea4 StrnCpyS 0000000000007164 f BaseLib:SafeString.obj
+ 0001:0000707c StrCatS 000000000000733c f BaseLib:SafeString.obj
+ 0001:00007264 AsciiStrnLenS 0000000000007524 f BaseLib:SafeString.obj
+ 0001:00007288 StrLen 0000000000007548 f BaseLib:String.obj
+ 0001:0000731c StrStr 00000000000075dc f BaseLib:String.obj
+ 0001:000073e4 AsciiStrLen 00000000000076a4 f BaseLib:String.obj
+ 0001:00007450 AsciiStrnCmp 0000000000007710 f BaseLib:String.obj
+ 0001:0000751c IoWriteFifo8 00000000000077dc f BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0001:00007570 TdIoRead8 0000000000007830 f BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0001:000075c0 TdIoWrite8 0000000000007880 f BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0002:00000000 ??_C@_0CB@DMEJJJHA@?6ASSERT_EFI_ERROR?5?$CIStatus?5?$DN?5?$CFr?$CJ?6@ 00000000000078e0 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:00000028 ??_C@_0CH@BBNBJKHK@?$CB?$CI?$CI?$CIINTN?$CJ?$CIRETURN_STATUS?$CJ?$CIStatus?$CJ@ 0000000000007908 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:00000050 ??_C@_0FI@PIDCFOGG@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000007930 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:000000b0 ??_C@_0IF@FEBLDIJK@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000007990 RamDiskDxe:AutoGen.obj
+ 0002:00000138 _gPcd_FixedAtBuild_PcdAcpiDefaultOemId 0000000000007a18 RamDiskDxe:AutoGen.obj
+ 0002:00000140 ??_C@_0GD@BNLIKAOG@RamDiskAcpiCheck?3?5Cannot?5locate?5@ 0000000000007a20 RamDiskDxe:RamDiskDriver.obj
+ 0002:000001b0 ??_C@_0GB@MEOCDBHF@RamDiskAcpiCheck?3?5Cannot?5locate?5@ 0000000000007a90 RamDiskDxe:RamDiskDriver.obj
+ 0002:00000218 ??_C@_0BF@NDBIKIKC@CR?5has?5Bad?5Signature?$AA@ 0000000000007af8 RamDiskDxe:RamDiskDriver.obj
+ 0002:00000230 ??_C@_0FI@CEMDHKBL@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000007b10 RamDiskDxe:RamDiskDriver.obj
+ 0002:00000288 ??_C@_0BJ@KGHECGOD@Driver?5already?5started?$CB?6?$AA@ 0000000000007b68 RamDiskDxe:RamDiskDriver.obj
+ 0002:000002b0 ??_C@_0FC@PHDEKBJC@ConfigPrivate?9?$DOSignature?5?$DN?$DN?5?$CI?$CI?$CI?8@ 0000000000007b90 RamDiskDxe:RamDiskDriver.obj
+ 0002:00000310 ??_C@_0FK@BLPPACJE@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000007bf0 RamDiskDxe:RamDiskProtocol.obj
+ 0002:00000370 ??_C@_0DJ@CIDFFKAG@Status?5?$DN?$DN?5?$CI?$CIRETURN_STATUS?$CJ?$CI0x800@ 0000000000007c50 RamDiskDxe:RamDiskProtocol.obj
+ 0002:000003b0 ??_C@_0BK@BEMEMBP@MemoryMap?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000007c90 RamDiskDxe:RamDiskProtocol.obj
+ 0002:000003d0 ??_C@_0EP@DLAOFOF@RamDiskPublishNfit?3?5RAM?5disk?5wit@ 0000000000007cb0 RamDiskDxe:RamDiskProtocol.obj
+ 0002:00000420 ??_C@_0EA@CHLMIELN@RamDiskPublishNfit?3?5A?5NFIT?5is?5al@ 0000000000007d00 RamDiskDxe:RamDiskProtocol.obj
+ 0002:00000460 ??_C@_0EE@JOJIMDHM@RamDiskPublishNfit?3?5No?5NFIT?5is?5i@ 0000000000007d40 RamDiskDxe:RamDiskProtocol.obj
+ 0002:000004b0 ??_C@_0FG@OMEOLKBK@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000007d90 RamDiskDxe:RamDiskImpl.obj
+ 0002:00000508 ??_C@_11LOCGONAA@?$AA?$AA@ 0000000000007de8 RamDiskDxe:RamDiskImpl.obj
+ 0002:00000510 ??_C@_1DI@OGKNCJLH@?$AAP?$AAr?$AAe?$AAs?$AAs?$AA?5?$AAE?$AAN?$AAT?$AAE?$AAR?$AA?5?$AAt?$AAo?$AA?5?$AAc?$AAo?$AAn?$AAt?$AAi?$AAn?$AAu?$AAe?$AA?5?$AA?4?$AA?4?$AA?4?$AA?$AA@ 0000000000007df0 RamDiskDxe:RamDiskImpl.obj
+ 0002:00000550 ??_C@_1FO@LPLEAKEO@?$AAN?$AAo?$AAt?$AA?5?$AAe?$AAn?$AAo?$AAu?$AAg?$AAh?$AA?5?$AAm?$AAe?$AAm?$AAo?$AAr?$AAy?$AA?5?$AAt?$AAo?$AA?5?$AAg?$AAe?$AAt?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAf?$AAi?$AAl@ 0000000000007e30 RamDiskDxe:RamDiskImpl.obj
+ 0002:000005b0 ??_C@_1FE@INMJPINH@?$AAN?$AAo?$AAt?$AA?5?$AAe?$AAn?$AAo?$AAu?$AAg?$AAh?$AA?5?$AAm?$AAe?$AAm?$AAo?$AAr?$AAy?$AA?5?$AAt?$AAo?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAt?$AAh?$AAe?$AA?5@ 0000000000007e90 RamDiskDxe:RamDiskImpl.obj
+ 0002:00000608 ??_C@_1DC@FPBJCKFI@?$AAF?$AAi?$AAl?$AAe?$AA?5?$AAc?$AAo?$AAn?$AAt?$AAe?$AAn?$AAt?$AA?5?$AAr?$AAe?$AAa?$AAd?$AA?5?$AAe?$AAr?$AAr?$AAo?$AAr?$AA?$CB?$AA?$AA@ 0000000000007ee8 RamDiskDxe:RamDiskImpl.obj
+ 0002:00000640 ??_C@_1FK@CHJMPKHK@?$AAF?$AAa?$AAi?$AAl?$AA?5?$AAt?$AAo?$AA?5?$AAr?$AAe?$AAg?$AAi?$AAs?$AAt?$AAe?$AAr?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAn?$AAe?$AAw?$AAl?$AAy?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt@ 0000000000007f20 RamDiskDxe:RamDiskImpl.obj
+ 0002:000006a0 ??_C@_0CC@PIBHJFDN@StartOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 0000000000007f80 RamDiskDxe:RamDiskImpl.obj
+ 0002:000006c8 ??_C@_0CA@FMKGPAPI@EndOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000007fa8 RamDiskDxe:RamDiskImpl.obj
+ 0002:000006e8 ??_C@_1DO@IMLEIFHC@?$AA?5?$AA?5?$AAR?$AAA?$AAM?$AA?5?$AAD?$AAi?$AAs?$AAk?$AA?5?$AA?$CF?$AAd?$AA?3?$AA?5?$AA?$FL?$AA0?$AAx?$AA?$CF?$AAl?$AAx?$AA?0?$AA?5?$AA0?$AAx?$AA?$CF?$AAl?$AAx?$AA?$FN?$AA?6?$AA?$AA@ 0000000000007fc8 RamDiskDxe:RamDiskImpl.obj
+ 0002:00000728 ??_C@_0O@EMMLPDMJ@StringId?5?$CB?$DN?50?$AA@ 0000000000008008 RamDiskDxe:RamDiskImpl.obj
+ 0002:00000738 ??_C@_0BG@CJDFNAOE@Media?9?$DOBlockSize?5?$CB?$DN?50?$AA@ 0000000000008018 RamDiskDxe:RamDiskBlockIo.obj
+ 0002:00000750 ??_C@_0FJ@OJBFKIJE@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008030 RamDiskDxe:RamDiskBlockIo.obj
+ 0002:000007b0 ??_C@_0DG@EEENIGGL@Length?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFFFFFULL@ 0000000000008090 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0002:000007f0 ??_C@_0ED@MKGCMJG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 00000000000080d0 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00000840 ??_C@_0FF@LLAFLLDM@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008120 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00000898 ??_C@_0DO@MAOBOFEG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 0000000000008178 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:000008d8 ??_C@_0CC@JOEHDGKB@DestinationBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 00000000000081b8 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00000900 ??_C@_0FI@NCCCHAEB@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000081e0 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00000958 ??_C@_0BN@MDMCNBCC@SourceBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000008238 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00000978 ??_C@_0BF@NJNGJMPC@List?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000008258 BaseLib:LinkedList.obj
+ 0002:00000990 ??_C@_0EF@PHMLHICE@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008270 BaseLib:LinkedList.obj
+ 0002:000009d8 ??_C@_0CC@KDLPLAED@List?9?$DOForwardLink?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 00000000000082b8 BaseLib:LinkedList.obj
+ 0002:00000a00 ??_C@_0BP@IJJCCMAK@List?9?$DOBackLink?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000082e0 BaseLib:LinkedList.obj
+ 0002:00000a20 ??_C@_0BJ@NJABNCDK@ListHead?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000008300 BaseLib:LinkedList.obj
+ 0002:00000a40 ??_C@_0CG@LGIALJFK@InternalBaseLibIsListValid?5?$CIList@ 0000000000008320 BaseLib:LinkedList.obj
+ 0002:00000a68 ??_C@_0BF@NMBJJECB@?$CBIsListEmpty?5?$CIEntry?$CJ?$AA@ 0000000000008348 BaseLib:LinkedList.obj
+ 0002:00000a80 ??_C@_0BH@IACGKAP@Buffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000008360 BaseLib:CheckSum.obj
+ 0002:00000aa0 ??_C@_0ED@GJHPOIEN@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008380 BaseLib:CheckSum.obj
+ 0002:00000ae8 ??_C@_0DI@FAOGOFLE@Length?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFFFFFULL@ 00000000000083c8 BaseLib:CheckSum.obj
+ 0002:00000b20 ??_C@_0EE@FAJFAODK@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008400 BaseLib:Unaligned.obj
+ 0002:00000b68 ??_C@_0N@KGHEHMDL@Divisor?5?$CB?$DN?50?$AA@ 0000000000008448 BaseLib:DivU64x32Remainder.obj
+ 0002:00000b80 ??_C@_0EN@EIGKPMFG@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008460 BaseLib:DivU64x32Remainder.obj
+ 0002:00000bd0 ??_C@_0CI@BGLNHBLM@?$CI?$CI?$CIUINTN?$CJ?5?$CIStartOfBuffer?$CJ?$CJ?5?$CG?50x0@ 00000000000084b0 BasePrintLib:PrintLib.obj
+ 0002:00000c00 ??_C@_0EI@PHEOPKNG@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000084e0 BasePrintLib:PrintLib.obj
+ 0002:00000c48 ??_C@_0CH@KJLBGOBB@?$CI?$CI?$CIUINTN?$CJ?5?$CIFormatString?$CJ?$CJ?5?$CG?50x01@ 0000000000008528 BasePrintLib:PrintLib.obj
+ 0002:00000c70 ??_C@_0FA@JGMHCDLA@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008550 BasePrintLib:PrintLibInternal.obj
+ 0002:00000cc0 ??_C@_0BJ@CNKJJNE@?$CIBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 00000000000085a0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000ce0 ??_C@_0EB@HDGIDCIO@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 00000000000085c0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000d28 ??_C@_0BJ@PPAKKDJG@?$CIFormat?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 0000000000008608 BasePrintLib:PrintLibInternal.obj
+ 0002:00000d50 ??_C@_0ED@LPDDCECB@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 0000000000008630 BasePrintLib:PrintLibInternal.obj
+ 0002:00000da0 ??_C@_0IM@BFJJFLGB@?$CIStrnLenS?5?$CI?$CICHAR16?5?$CK?$CJFormat?0?5?$CI_g@ 0000000000008680 BasePrintLib:PrintLibInternal.obj
+ 0002:00000e30 ??_C@_0ID@PLGJGION@?$CIAsciiStrnLenS?5?$CIFormat?0?5?$CI_gPcd_F@ 0000000000008710 BasePrintLib:PrintLibInternal.obj
+ 0002:00000eb8 ??_C@_0O@MLOLIMFM@?$DMnull?5string?$DO?$AA@ 0000000000008798 BasePrintLib:PrintLibInternal.obj
+ 0002:00000ec8 ??_C@_0M@BJJDNPHK@?$DMnull?5guid?$DO?$AA@ 00000000000087a8 BasePrintLib:PrintLibInternal.obj
+ 0002:00000ed8 ??_C@_0DB@PMLHLBMO@?$CF08x?9?$CF04x?9?$CF04x?9?$CF02x?$CF02x?9?$CF02x?$CF02x@ 00000000000087b8 BasePrintLib:PrintLibInternal.obj
+ 0002:00000f10 ??_C@_0M@LHGBCIKM@?$DMnull?5time?$DO?$AA@ 00000000000087f0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000f20 ??_C@_0BK@FCPKCIDD@?$CF02d?1?$CF02d?1?$CF04d?5?5?$CF02d?3?$CF02d?$AA@ 0000000000008800 BasePrintLib:PrintLibInternal.obj
+ 0002:00000f3c ??_C@_04JIMNDDED@?$CF08X?$AA@ 000000000000881c BasePrintLib:PrintLibInternal.obj
+ 0002:00000f44 ??_C@_02PCIJFNDE@?$AN?6?$AA@ 0000000000008824 BasePrintLib:PrintLibInternal.obj
+ 0002:00000f48 ??_C@_01LIIJDEN@?$AN?$AA@ 0000000000008828 BasePrintLib:PrintLibInternal.obj
+ 0002:00000f50 mWarningString 0000000000008830 BasePrintLib:PrintLibInternal.obj
+ 0002:00000ff0 mErrorString 00000000000088d0 BasePrintLib:PrintLibInternal.obj
+ 0002:000012b0 mHexStr 0000000000008b90 BasePrintLib:PrintLibInternal.obj
+ 0002:000012c0 ??_C@_0BH@LKMBFCBF@Format?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000008ba0 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:000012e0 ??_C@_0FD@OABGLBHF@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008bc0 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00001338 ??_C@_0BE@ECBJLCDE@ASSERT?5?$CFa?$CI?$CFLu?$CJ?3?5?$CFa?6?$AA@ 0000000000008c18 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00001350 ??_C@_0BN@COECPDCC@gImageHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000008c30 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00001370 ??_C@_0GE@FKBNDHHB@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008c50 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:000013d8 ??_C@_0BE@DGNHAHIL@gST?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000008cb8 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:000013f0 ??_C@_0BE@BDFJLGLN@gBS?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000008cd0 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00001410 ??_C@_0FO@BEMDJMPM@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008cf0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:00001470 ??_C@_0DO@GEEICOOO@AllocationSize?5?$DM?$DN?5?$CI0xFFFFFFFFFFF@ 0000000000008d50 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:000014b0 ??_C@_0BE@OBDFIHND@gRT?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000008d90 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:000014d0 ??_C@_0GK@FJIMGEPP@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008db0 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:00001540 ??_C@_0GI@KEFAHLGJ@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008e20 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:000015a8 ??_C@_0DC@CNNBPJA@mDevicePathLibDevicePathUtilitie@ 0000000000008e88 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:000015e0 ??_C@_0BF@CBLMFKOC@Node?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000008ec0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00001600 ??_C@_0EH@ENCEEKKL@?$CILength?5?$DO?$DN?5sizeof?5?$CIEFI_DEVICE_PA@ 0000000000008ee0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00001648 ??_C@_0BF@MBJFHGBE@Size?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000008f28 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00001660 mUefiDevicePathLibEndDevicePath 0000000000008f40 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00001670 ??_C@_0FO@HNLMMFDN@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008f50 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0002:000016d0 ??_C@_0EC@DCGCAOKF@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000008fb0 UefiLib:UefiLib.obj
+ 0002:00001720 ??_C@_0EG@GOBFPEEP@Name?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5Guid?5?$CB?$DN?5@ 0000000000009000 UefiLib:UefiLib.obj
+ 0002:00001768 ??_C@_0BH@FMEOEIBC@?$CKValue?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000009048 UefiLib:UefiLib.obj
+ 0002:00001780 ??_C@_0CD@OLFKAJF@SupportedLanguages?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?5@ 0000000000009060 UefiLib:UefiLib.obj
+ 0002:000017a8 ??_C@_0CG@CADOKAGM@?$CI?$CI?$CIINTN?$CJ?$CIRETURN_STATUS?$CJ?$CIStatus?$CJ?$CJ@ 0000000000009088 UefiLib:UefiLib.obj
+ 0002:000017d0 ??_C@_0EH@BHJPKNIJ@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000090b0 UefiLib:UefiNotTiano.obj
+ 0002:00001818 ??_C@_0BC@FEDIJHFF@?$CI?$CIBOOLEAN?$CJ?$CI0?$DN?$DN1?$CJ?$CJ?$AA@ 00000000000090f8 UefiLib:UefiNotTiano.obj
+ 0002:00001830 ??_C@_0CB@LNNMJOKK@ReadyToBootEvent?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ@ 0000000000009110 UefiLib:UefiNotTiano.obj
+ 0002:00001858 ??_C@_0CH@LOBIJKLE@EFI1?41?5can?8t?5support?5ReadyToBoot@ 0000000000009138 UefiLib:UefiNotTiano.obj
+ 0002:00001880 ??_C@_0BD@BHENKNKP@NumberOfLines?5?$CB?$DN?50?$AA@ 0000000000009160 UefiLib:Console.obj
+ 0002:000018a0 ??_C@_0EC@EJLIGNPA@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000009180 UefiLib:Console.obj
+ 0002:000018e8 ??_C@_0P@ICDOOCHP@MaxLength?5?$CB?$DN?50?$AA@ 00000000000091c8 UefiLib:Console.obj
+ 0002:000018f8 ??_C@_0BF@DMEONNDO@Line?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000091d8 UefiLib:Console.obj
+ 0002:00001910 ??_C@_0BK@IHAIHFJE@TmpString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000091f0 UefiLib:Console.obj
+ 0002:00001930 ??_C@_17LGKOMLJ@?$AA?4?$AA?4?$AA?4?$AA?$AA@ 0000000000009210 UefiLib:Console.obj
+ 0002:00001938 ??_C@_0BK@KLJHMMPJ@HiiHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000009218 UefiHiiLib:HiiString.obj
+ 0002:00001960 ??_C@_0EN@DDBLCGFI@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000009240 UefiHiiLib:HiiString.obj
+ 0002:000019b0 ??_C@_0BH@MAAHKCPC@String?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000009290 UefiHiiLib:HiiString.obj
+ 0002:000019c8 ??_C@_06PLDEFKP@x?9UEFI?$AA@ 00000000000092a8 UefiHiiLib:HiiString.obj
+ 0002:000019d0 ??_C@_0CA@OEKIMLLB@PackageListGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000092b0 UefiHiiLib:HiiString.obj
+ 0002:000019f0 ??_C@_1BK@GGGENMOA@?$AAP?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AAL?$AAa?$AAn?$AAg?$AA?$AA@ 00000000000092d0 UefiHiiLib:HiiString.obj
+ 0002:00001a0a ??_C@_00CNPNBAHC@?$AA@ 00000000000092ea UefiHiiLib:HiiString.obj
+ 0002:00001a10 ??_C@_0EK@CCOCGB@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000092f0 UefiHiiLib:HiiLib.obj
+ 0002:00001a60 ??_C@_0BN@OKKMNGPH@OpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000009340 UefiHiiLib:HiiLib.obj
+ 0002:00001a80 ??_C@_0BP@IOABAFLF@OpCodeTemplate?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000009360 UefiHiiLib:HiiLib.obj
+ 0002:00001aa0 ??_C@_0CF@DPHCOLMP@?$CIOpCodeSize?5?$CL?5ExtensionSize?$CJ?5?$DM?$DN?5@ 0000000000009380 UefiHiiLib:HiiLib.obj
+ 0002:00001ac8 mEndOfPakageList 00000000000093a8 UefiHiiLib:HiiLib.obj
+ 0002:00001ad0 ??_C@_0EP@LMJDKFAP@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000093b0 UefiHiiLib:HiiLanguage.obj
+ 0002:00001b20 ??_C@_0ED@HPBEEAH@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000009400 DxeHobLib:HobLib.obj
+ 0002:00001b68 ??_C@_0BJ@OBFMLLDO@mHobList?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000009448 DxeHobLib:HobLib.obj
+ 0002:00001b88 ??_C@_0CE@MDBJFLCA@MenuNumber?5?$DM?5MenuOption?9?$DOMenuNum@ 0000000000009468 FileExplorerLib:FileExplorer.obj
+ 0002:00001bb0 ??_C@_0FF@NGAEBIMK@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000009490 FileExplorerLib:FileExplorer.obj
+ 0002:00001c08 ??_C@_0BH@GHAKFHML@ToText?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000094e8 FileExplorerLib:FileExplorer.obj
+ 0002:00001c20 ??_C@_0BF@CPBCKIGP@Dest?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000009500 FileExplorerLib:FileExplorer.obj
+ 0002:00001c38 ??_C@_0BH@FMMHHFDB@TmpStr?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000009518 FileExplorerLib:FileExplorer.obj
+ 0002:00001c50 ??_C@_0BE@LNIAOOBG@Str?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000009530 FileExplorerLib:FileExplorer.obj
+ 0002:00001c64 ??_C@_13FPGAJAPJ@?$AA?2?$AA?$AA@ 0000000000009544 FileExplorerLib:FileExplorer.obj
+ 0002:00001c68 ??_C@_1CI@JGIGCDAN@?$AAN?$AAO?$AA?5?$AAF?$AAI?$AAL?$AAE?$AA?5?$AAS?$AAY?$AAS?$AAT?$AAE?$AAM?$AA?5?$AAI?$AAN?$AAF?$AAO?$AA?$AA@ 0000000000009548 FileExplorerLib:FileExplorer.obj
+ 0002:00001c90 ??_C@_1CA@KOPNEOKK@?$AAN?$AAO?$AA?5?$AAV?$AAO?$AAL?$AAU?$AAM?$AAE?$AA?5?$AAL?$AAA?$AAB?$AAE?$AAL?$AA?$AA@ 0000000000009570 FileExplorerLib:FileExplorer.obj
+ 0002:00001cb0 ??_C@_0CJ@CDKCBEKC@MenuEntry?9?$DODisplayString?5?$CB?$DN?5?$CI?$CIvo@ 0000000000009590 FileExplorerLib:FileExplorer.obj
+ 0002:00001ce0 ??_C@_1BC@GMOFGFBO@?$AA?$CF?$AAs?$AA?0?$AA?5?$AA?$FL?$AA?$CF?$AAs?$AA?$FN?$AA?$AA@ 00000000000095c0 FileExplorerLib:FileExplorer.obj
+ 0002:00001cf8 ??_C@_19ECGOGJPA@?$AA?$DM?$AA?$CF?$AAs?$AA?$DO?$AA?$AA@ 00000000000095d8 FileExplorerLib:FileExplorer.obj
+ 0002:00001d08 ??_C@_0CF@KMPENEEM@gHiiVendorDevicePath?5?$CB?$DN?5?$CI?$CIvoid?5?$CK@ 00000000000095e8 FileExplorerLib:FileExplorer.obj
+ 0002:00001d30 ??_C@_0DB@BODFOPAI@gFileExplorerPrivate?4FeHiiHandle@ 0000000000009610 FileExplorerLib:FileExplorer.obj
+ 0002:00001d68 ??_C@_0BM@PHFBGKMM@ImageHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000009648 DxeServicesLib:DxeServicesLib.obj
+ 0002:00001d90 ??_C@_0FA@LFFAEHFG@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000009670 DxeServicesLib:DxeServicesLib.obj
+ 0002:00001de0 ??_C@_0DI@DAGDPLPG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 00000000000096c0 BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0002:00001e20 ??_C@_0FF@PKHNKPL@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000009700 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:00001e80 ??_C@_0FG@BHBOFAHM@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000009760 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00001ed8 ??_C@_0CO@LECKNDNC@?$CI?$CI?$CIUINTN?$CJBuffer?$CJ?5?$CG?5?$CIsizeof?5?$CIValu@ 00000000000097b8 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00001f08 ??_C@_0CF@LEICOABD@?$CILength?5?$CG?5?$CIsizeof?5?$CIValue?$CJ?5?9?51?$CJ?$CJ?5@ 00000000000097e8 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00001f30 ??_C@_0CI@MNELLLEK@?$CB?$CIBuffer?5?$DN?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5Leng@ 0000000000009810 BaseMemoryLibRepStr:IsZeroBufferWrapper.obj
+ 0002:00001f60 ??_C@_0FK@BHBEFCFM@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000009840 BaseMemoryLibRepStr:IsZeroBufferWrapper.obj
+ 0002:00001fc0 ??_C@_0CC@GFNLNIOC@?$CI?$CIUINTN?$CJString?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 00000000000098a0 BaseLib:SafeString.obj
+ 0002:00001ff0 ??_C@_0EF@MFKKFBPN@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000098d0 BaseLib:SafeString.obj
+ 0002:00002038 ??_C@_0CH@LALFPBMC@?$CI?$CIUINTN?$CJDestination?5?$CG?50x00000001@ 0000000000009918 BaseLib:SafeString.obj
+ 0002:00002060 ??_C@_0CC@HEBCMBPF@?$CI?$CIUINTN?$CJSource?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 0000000000009940 BaseLib:SafeString.obj
+ 0002:00002088 ??_C@_0BO@ECNIOIHG@?$CIDestination?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 0000000000009968 BaseLib:SafeString.obj
+ 0002:000020a8 ??_C@_07KBGDFDAM@StrCpyS?$AA@ 0000000000009988 BaseLib:SafeString.obj
+ 0002:000020b0 ??_C@_0EA@PDPDJJNN@?$CFa?$CI?$CFd?$CJ?5?$CFa?3?5SAFE_STRING_CONSTRAIN@ 0000000000009990 BaseLib:SafeString.obj
+ 0002:000020f0 ??_C@_0BJ@EAEEJIP@?$CISource?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 00000000000099d0 BaseLib:SafeString.obj
+ 0002:00002110 ??_C@_0EA@BBALOHPI@?$CIDestMax?5?$DM?$DN?5?$CI_gPcd_FixedAtBuild_@ 00000000000099f0 BaseLib:SafeString.obj
+ 0002:00002150 ??_C@_0P@PMIMLIHM@?$CIDestMax?5?$CB?$DN?50?$CJ?$AA@ 0000000000009a30 BaseLib:SafeString.obj
+ 0002:00002160 ??_C@_0BG@EEGIIOKH@?$CIDestMax?5?$DO?5SourceLen?$CJ?$AA@ 0000000000009a40 BaseLib:SafeString.obj
+ 0002:00002180 ??_C@_0FH@PPBLBDBJ@InternalSafeStringNoStrOverlap?5?$CI@ 0000000000009a60 BaseLib:SafeString.obj
+ 0002:000021d8 ??_C@_08INOAHJON@StrnCpyS?$AA@ 0000000000009ab8 BaseLib:SafeString.obj
+ 0002:000021e8 ??_C@_0DP@PBOJGJC@?$CILength?5?$DM?$DN?5?$CI_gPcd_FixedAtBuild_P@ 0000000000009ac8 BaseLib:SafeString.obj
+ 0002:00002228 ??_C@_07EBBOPAKF@StrCatS?$AA@ 0000000000009b08 BaseLib:SafeString.obj
+ 0002:00002230 ??_C@_0P@BHOOOJPD@?$CICopyLen?5?$CB?$DN?50?$CJ?$AA@ 0000000000009b10 BaseLib:SafeString.obj
+ 0002:00002240 ??_C@_0BG@BPGICNPK@?$CICopyLen?5?$DO?5SourceLen?$CJ?$AA@ 0000000000009b20 BaseLib:SafeString.obj
+ 0002:00002260 ??_C@_0EB@OHCINBMP@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000009b40 BaseLib:String.obj
+ 0002:000022a8 ??_C@_0DK@EOJCOAME@Length?5?$DM?5_gPcd_FixedAtBuild_PcdM@ 0000000000009b88 BaseLib:String.obj
+ 0002:000022e8 ??_C@_0BG@KBNOLIGE@StrSize?5?$CIString?$CJ?5?$CB?$DN?50?$AA@ 0000000000009bc8 BaseLib:String.obj
+ 0002:00002300 ??_C@_0BM@NNBLOHJD@StrSize?5?$CISearchString?$CJ?5?$CB?$DN?50?$AA@ 0000000000009be0 BaseLib:String.obj
+ 0002:00002320 ??_C@_0DI@MDIKFADO@Length?5?$DM?5_gPcd_FixedAtBuild_PcdM@ 0000000000009c00 BaseLib:String.obj
+ 0002:00002358 ??_C@_0BL@IKFBNFIL@AsciiStrSize?5?$CIFirstString?$CJ?$AA@ 0000000000009c38 BaseLib:String.obj
+ 0002:00002378 ??_C@_0BM@EDNOKLLE@AsciiStrSize?5?$CISecondString?$CJ?$AA@ 0000000000009c58 BaseLib:String.obj
+ 0002:00002398 ??_C@_0DJ@JJHGIFMP@Length?5?$DM?$DN?5_gPcd_FixedAtBuild_Pcd@ 0000000000009c78 BaseLib:String.obj
+ 0003:00000000 gEfiLoadedImageProtocolGuid 0000000000009e60 RamDiskDxe:AutoGen.obj
+ 0003:00000010 gEfiGlobalVariableGuid 0000000000009e70 RamDiskDxe:AutoGen.obj
+ 0003:00000020 gEfiIfrTianoGuid 0000000000009e80 RamDiskDxe:AutoGen.obj
+ 0003:00000030 gEfiRamDiskProtocolGuid 0000000000009e90 RamDiskDxe:AutoGen.obj
+ 0003:00000040 gEfiEventReadyToBootGuid 0000000000009ea0 RamDiskDxe:AutoGen.obj
+ 0003:00000050 gEfiBlockIo2ProtocolGuid 0000000000009eb0 RamDiskDxe:AutoGen.obj
+ 0003:00000060 gEfiFileInfoGuid 0000000000009ec0 RamDiskDxe:AutoGen.obj
+ 0003:00000070 gEfiDevicePathProtocolGuid 0000000000009ed0 RamDiskDxe:AutoGen.obj
+ 0003:00000080 gEfiFirmwareVolume2ProtocolGuid 0000000000009ee0 RamDiskDxe:AutoGen.obj
+ 0003:00000090 gRamDiskFormSetGuid 0000000000009ef0 RamDiskDxe:AutoGen.obj
+ 0003:000000a0 gEfiDevicePathToTextProtocolGuid 0000000000009f00 RamDiskDxe:AutoGen.obj
+ 0003:000000b0 gEfiHiiConfigRoutingProtocolGuid 0000000000009f10 RamDiskDxe:AutoGen.obj
+ 0003:000000c0 gEfiHiiImageProtocolGuid 0000000000009f20 RamDiskDxe:AutoGen.obj
+ 0003:000000d0 gEfiDevicePathUtilitiesProtocolGuid 0000000000009f30 RamDiskDxe:AutoGen.obj
+ 0003:000000e0 gEfiHiiDatabaseProtocolGuid 0000000000009f40 RamDiskDxe:AutoGen.obj
+ 0003:000000f0 gEfiSimpleFileSystemProtocolGuid 0000000000009f50 RamDiskDxe:AutoGen.obj
+ 0003:00000100 gEfiHiiStringProtocolGuid 0000000000009f60 RamDiskDxe:AutoGen.obj
+ 0003:00000110 gEfiAcpiTableProtocolGuid 0000000000009f70 RamDiskDxe:AutoGen.obj
+ 0003:00000120 gEfiAcpiSdtProtocolGuid 0000000000009f80 RamDiskDxe:AutoGen.obj
+ 0003:00000130 RamDiskDxeStrings 0000000000009f90 RamDiskDxe:AutoGen.obj
+ 0003:00000670 gEfiHiiConfigAccessProtocolGuid 000000000000a4d0 RamDiskDxe:AutoGen.obj
+ 0003:00000680 gEfiHobListGuid 000000000000a4e0 RamDiskDxe:AutoGen.obj
+ 0003:00000690 gEfiFileSystemVolumeLabelInfoIdGuid 000000000000a4f0 RamDiskDxe:AutoGen.obj
+ 0003:000006a0 gEfiFormBrowser2ProtocolGuid 000000000000a500 RamDiskDxe:AutoGen.obj
+ 0003:000006b0 gEfiVirtualDiskGuid 000000000000a510 RamDiskDxe:AutoGen.obj
+ 0003:000006c0 gEfiBlockIoProtocolGuid 000000000000a520 RamDiskDxe:AutoGen.obj
+ 0003:000006d0 gEfiCallerIdGuid 000000000000a530 RamDiskDxe:AutoGen.obj
+ 0003:000006e0 gEfiHiiFontProtocolGuid 000000000000a540 RamDiskDxe:AutoGen.obj
+ 0003:000006f0 mRamDiskProtocol 000000000000a550 RamDiskDxe:RamDiskDriver.obj
+ 0003:00000700 mRamDiskPrivateDataTemplate 000000000000a560 RamDiskDxe:RamDiskProtocol.obj
+ 0003:000007e0 mRamDiskDeviceNodeTemplate 000000000000a640 RamDiskDxe:RamDiskProtocol.obj
+ 0003:00000810 mRamDiskConfigPrivateDataTemplate 000000000000a670 RamDiskDxe:RamDiskImpl.obj
+ 0003:00000850 mRamDiskHiiVendorDevicePath 000000000000a6b0 RamDiskDxe:RamDiskImpl.obj
+ 0003:00000868 mRamDiskBlockIoTemplate 000000000000a6c8 RamDiskDxe:RamDiskBlockIo.obj
+ 0003:00000898 mRamDiskBlockIo2Template 000000000000a6f8 RamDiskDxe:RamDiskBlockIo.obj
+ 0003:000008c0 RamDiskHiiBin 000000000000a720 RamDiskDxe:RamDiskHii.obj
+ 0003:00000a08 FeHiiVendorDevicePath 000000000000a868 FileExplorerLib:FileExplorer.obj
+ 0003:00000a20 FileExplorerGuid 000000000000a880 FileExplorerLib:FileExplorer.obj
+ 0003:00000a30 mNewFolderQuestionId 000000000000a890 FileExplorerLib:FileExplorer.obj
+ 0003:00000a40 gFileExplorerPrivate 000000000000a8a0 FileExplorerLib:FileExplorer.obj
+ 0003:00000a98 mNewFileQuestionId 000000000000a8f8 FileExplorerLib:FileExplorer.obj
+ 0003:00000aa0 mFsOptionMenu 000000000000a900 FileExplorerLib:FileExplorer.obj
+ 0003:00000ad0 FileExplorerVfrBin 000000000000a930 FileExplorerLib:FileExplorerVfr.obj
+ 0003:00000bd0 FileExplorerLibStrings 000000000000aa30 FileExplorerLib:AutoGen.obj
+ 0003:00001400 mAcpiTableProtocol 000000000000b260 RamDiskDxe:RamDiskDriver.obj
+ 0003:00001408 mAcpiSdtProtocol 000000000000b268 RamDiskDxe:RamDiskDriver.obj
+ 0003:00001410 mRamDiskHandle 000000000000b270 RamDiskDxe:RamDiskDriver.obj
+ 0003:00001418 mRamDiskSsdtTableKeyValid 000000000000b278 RamDiskDxe:RamDiskProtocol.obj
+ 0003:00001420 gST 000000000000b280 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00001428 gBS 000000000000b288 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00001430 gImageHandle 000000000000b290 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00001438 gRT 000000000000b298 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0003:00001440 mDevicePathLibDevicePathUtilities 000000000000b2a0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0003:00001448 gHiiString 000000000000b2a8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00001450 gHiiFont 000000000000b2b0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00001458 gHiiConfigRouting 000000000000b2b8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00001460 gHiiImage 000000000000b2c0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00001468 gHiiDatabase 000000000000b2c8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00001470 mHobList 000000000000b2d0 DxeHobLib:HobLib.obj
+ 0003:00001478 mLibEndOpCodeHandle 000000000000b2d8 FileExplorerLib:FileExplorer.obj
+ 0003:00001480 mLibStartLabel 000000000000b2e0 FileExplorerLib:FileExplorer.obj
+ 0003:00001488 mLibStartOpCodeHandle 000000000000b2e8 FileExplorerLib:FileExplorer.obj
+ 0003:00001490 mLibEndLabel 000000000000b2f0 FileExplorerLib:FileExplorer.obj
+ 0003:00001498 mQuestionIdUpdate 000000000000b2f8 <common>
+ 0003:000014a0 mNewFolderName 000000000000b300 <common>
+ 0003:000014c8 gHiiVendorDevicePath 000000000000b328 <common>
+ 0003:000014e0 mNewFileName 000000000000b340 <common>
+ 0003:00001508 mRamDiskSsdtTableKey 000000000000b368 <common>
+ 0003:00001510 RegisteredRamDisks 000000000000b370 <common>
+
+ entry point at 0001:000003fc
+
+ Static symbols
+
+ 0001:0000001a InternalMemCopyMem.0 00000000000002da BaseMemoryLibRepStr:CopyMem.obj
+ 0001:0000002a @CopyBackward 00000000000002ea BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000033 @CopyBytes 00000000000002f3 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:000000e5 @ReturnFalse 00000000000003a5 BaseMemoryLibRepStr:IsZeroBuffer.obj
+ 0001:0000017a @UseRepIo 000000000000043a BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000017c @SevNoRepIo_Done 000000000000043c BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000194 @IoReadFifo8_NoRep 0000000000000454 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000196 @IoReadFifo8_Loop 0000000000000456 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000019e @IoReadFifo8_Done 000000000000045e BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001b7 @IoReadFifo16_NoRep 0000000000000477 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001b9 @IoReadFifo16_Loop 0000000000000479 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001c4 @IoReadFifo16_Done 0000000000000484 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001dc @IoReadFifo32_NoRep 000000000000049c BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001de @IoReadFifo32_Loop 000000000000049e BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001e7 @IoReadFifo32_Done 00000000000004a7 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001ff @IoWriteFifo8_NoRep 00000000000004bf BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000201 @IoWriteFifo8_Loop 00000000000004c1 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000209 @IoWriteFifo8_Done 00000000000004c9 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000222 @IoWriteFifo16_NoRep 00000000000004e2 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000224 @IoWriteFifo16_Loop 00000000000004e4 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000022f @IoWriteFifo16_Done 00000000000004ef BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000247 @IoWriteFifo32_NoRep 0000000000000507 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000249 @IoWriteFifo32_Loop 0000000000000509 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000252 @IoWriteFifo32_Done 0000000000000512 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000002be TdVmCall.no_return_data 000000000000057e BaseLib:TdVmcall.obj
+ 0001:0000033b TdCall.exit 00000000000005fb BaseLib:TdCall.obj
+ 0003:00001419 mDebugIoPortChecked 000000000000b279 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0003:0000141a mDebugIoPortFound 000000000000b27a PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0004:00000000 $pdata$_DriverUnloadHandler 000000000000b380 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0004:0000000c $pdata$_ModuleEntryPoint 000000000000b38c UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0004:00000018 $pdata$ProcessLibraryConstructorList 000000000000b398 RamDiskDxe:AutoGen.obj
+ 0004:00000024 $pdata$ProcessLibraryDestructorList 000000000000b3a4 RamDiskDxe:AutoGen.obj
+ 0004:00000030 $pdata$ProcessModuleEntryPointList 000000000000b3b0 RamDiskDxe:AutoGen.obj
+ 0004:0000003c $pdata$RamDiskAcpiCheck 000000000000b3bc RamDiskDxe:RamDiskDriver.obj
+ 0004:00000048 $pdata$RamDiskPublishSsdt 000000000000b3c8 RamDiskDxe:RamDiskProtocol.obj
+ 0004:00000054 $pdata$RamDiskPublishNfit 000000000000b3d4 RamDiskDxe:RamDiskProtocol.obj
+ 0004:00000060 $pdata$RamDiskUnpublishNfit 000000000000b3e0 RamDiskDxe:RamDiskProtocol.obj
+ 0004:0000006c $pdata$RamDiskRegister 000000000000b3ec RamDiskDxe:RamDiskProtocol.obj
+ 0004:00000078 $pdata$RamDiskUnregister 000000000000b3f8 RamDiskDxe:RamDiskProtocol.obj
+ 0004:00000084 $pdata$InstallRamDiskConfigForm 000000000000b404 RamDiskDxe:RamDiskImpl.obj
+ 0004:00000090 $pdata$UninstallRamDiskConfigForm 000000000000b410 RamDiskDxe:RamDiskImpl.obj
+ 0004:0000009c $pdata$UnregisterAllRamDisks 000000000000b41c RamDiskDxe:RamDiskImpl.obj
+ 0004:000000a8 $pdata$HiiCreateRamDisk 000000000000b428 RamDiskDxe:RamDiskImpl.obj
+ 0004:000000b4 $pdata$UpdateMainForm 000000000000b434 RamDiskDxe:RamDiskImpl.obj
+ 0004:000000c0 $pdata$RamDiskCallback 000000000000b440 RamDiskDxe:RamDiskImpl.obj
+ 0004:000000cc $pdata$RamDiskInitBlockIo 000000000000b44c RamDiskDxe:RamDiskBlockIo.obj
+ 0004:000000d8 $pdata$RamDiskBlkIoReadBlocks 000000000000b458 RamDiskDxe:RamDiskBlockIo.obj
+ 0004:000000e4 $pdata$RamDiskBlkIoWriteBlocks 000000000000b464 RamDiskDxe:RamDiskBlockIo.obj
+ 0004:000000f0 $pdata$RamDiskBlkIo2ReadBlocksEx 000000000000b470 RamDiskDxe:RamDiskBlockIo.obj
+ 0004:000000fc $pdata$RamDiskBlkIo2WriteBlocksEx 000000000000b47c RamDiskDxe:RamDiskBlockIo.obj
+ 0004:00000108 $pdata$RamDiskBlkIo2FlushBlocksEx 000000000000b488 RamDiskDxe:RamDiskBlockIo.obj
+ 0004:00000114 $pdata$FileInfo 000000000000b494 RamDiskDxe:RamDiskFileExplorer.obj
+ 0004:00000120 $pdata$CopyGuid 000000000000b4a0 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0004:0000012c $pdata$CompareGuid 000000000000b4ac BaseMemoryLibRepStr:MemLibGuid.obj
+ 0004:00000138 $pdata$CopyMem 000000000000b4b8 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0004:00000144 $pdata$CompareMem 000000000000b4c4 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0004:00000150 $pdata$InternalBaseLibIsListValid 000000000000b4d0 BaseLib:LinkedList.obj
+ 0004:0000015c $pdata$InitializeListHead 000000000000b4dc BaseLib:LinkedList.obj
+ 0004:00000168 $pdata$InsertTailList 000000000000b4e8 BaseLib:LinkedList.obj
+ 0004:00000174 $pdata$IsListEmpty 000000000000b4f4 BaseLib:LinkedList.obj
+ 0004:00000180 $pdata$RemoveEntryList 000000000000b500 BaseLib:LinkedList.obj
+ 0004:0000018c $pdata$CalculateCheckSum8 000000000000b50c BaseLib:CheckSum.obj
+ 0004:00000198 $pdata$ReadUnaligned32 000000000000b518 BaseLib:Unaligned.obj
+ 0004:000001a4 $pdata$ReadUnaligned64 000000000000b524 BaseLib:Unaligned.obj
+ 0004:000001b0 $pdata$WriteUnaligned64 000000000000b530 BaseLib:Unaligned.obj
+ 0004:000001bc $pdata$DivU64x32Remainder 000000000000b53c BaseLib:DivU64x32Remainder.obj
+ 0004:000001c8 $pdata$UnicodeSPrint 000000000000b548 BasePrintLib:PrintLib.obj
+ 0004:000001d4 $pdata$AsciiSPrint 000000000000b554 BasePrintLib:PrintLib.obj
+ 0004:000001e0 $pdata$BasePrintLibValueToString 000000000000b560 BasePrintLib:PrintLibInternal.obj
+ 0004:000001ec $pdata$BasePrintLibSPrintMarker 000000000000b56c BasePrintLib:PrintLibInternal.obj
+ 0004:000001f8 $pdata$BasePrintLibSPrint 000000000000b578 BasePrintLib:PrintLibInternal.obj
+ 0004:00000204 $pdata$DebugPrint 000000000000b584 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000210 $pdata$DebugPrintMarker 000000000000b590 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:0000021c $pdata$DebugAssert 000000000000b59c PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000228 $pdata$PlatformDebugLibIoPortFound 000000000000b5a8 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0004:00000234 $pdata$InternalAllocatePool 000000000000b5b4 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000240 $pdata$AllocateZeroPool 000000000000b5c0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:0000024c $pdata$InternalAllocateCopyPool 000000000000b5cc UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000258 $pdata$InternalReallocatePool 000000000000b5d8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000264 $pdata$FreePool 000000000000b5e4 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000270 $pdata$DevicePathType 000000000000b5f0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:0000027c $pdata$DevicePathSubType 000000000000b5fc UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000288 $pdata$DevicePathNodeLength 000000000000b608 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000294 $pdata$NextDevicePathNode 000000000000b614 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002a0 $pdata$IsDevicePathEnd 000000000000b620 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002ac $pdata$SetDevicePathNodeLength 000000000000b62c UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002b8 $pdata$DevicePathFromHandle 000000000000b638 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002c4 $pdata$FileDevicePath 000000000000b644 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002d0 $pdata$GetEfiGlobalVariable2 000000000000b650 UefiLib:UefiLib.obj
+ 0004:000002dc $pdata$GetBestLanguage 000000000000b65c UefiLib:UefiLib.obj
+ 0004:000002e8 $pdata$EfiOpenFileByDevicePath 000000000000b668 UefiLib:UefiLib.obj
+ 0004:000002f4 $pdata$EfiCreateEventReadyToBootEx 000000000000b674 UefiLib:UefiNotTiano.obj
+ 0004:00000300 $pdata$UefiLibGetStringWidth 000000000000b680 UefiLib:Console.obj
+ 0004:0000030c $pdata$CreatePopUp 000000000000b68c UefiLib:Console.obj
+ 0004:00000318 $pdata$HiiSetString 000000000000b698 UefiHiiLib:HiiString.obj
+ 0004:00000324 $pdata$HiiGetString 000000000000b6a4 UefiHiiLib:HiiString.obj
+ 0004:00000330 $pdata$HiiAddPackages 000000000000b6b0 UefiHiiLib:HiiLib.obj
+ 0004:0000033c $pdata$HiiRemovePackages 000000000000b6bc UefiHiiLib:HiiLib.obj
+ 0004:00000348 $pdata$HiiAllocateOpCodeHandle 000000000000b6c8 UefiHiiLib:HiiLib.obj
+ 0004:00000354 $pdata$HiiFreeOpCodeHandle 000000000000b6d4 UefiHiiLib:HiiLib.obj
+ 0004:00000360 $pdata$InternalHiiGrowOpCodeHandle 000000000000b6e0 UefiHiiLib:HiiLib.obj
+ 0004:0000036c $pdata$InternalHiiCreateOpCodeExtended 000000000000b6ec UefiHiiLib:HiiLib.obj
+ 0004:00000378 $pdata$HiiCreateGuidOpCode 000000000000b6f8 UefiHiiLib:HiiLib.obj
+ 0004:00000384 $pdata$HiiCreateGotoOpCode 000000000000b704 UefiHiiLib:HiiLib.obj
+ 0004:00000390 $pdata$InternalHiiUpdateFormPackageData 000000000000b710 UefiHiiLib:HiiLib.obj
+ 0004:0000039c $pdata$HiiUpdateForm 000000000000b71c UefiHiiLib:HiiLib.obj
+ 0004:000003a8 $pdata$HiiGetSupportedLanguages 000000000000b728 UefiHiiLib:HiiLanguage.obj
+ 0004:000003b4 $pdata$GetHobList 000000000000b734 DxeHobLib:HobLib.obj
+ 0004:000003c0 $pdata$LibCallback 000000000000b740 FileExplorerLib:FileExplorer.obj
+ 0004:000003cc $pdata$LibCreateMenuEntry 000000000000b74c FileExplorerLib:FileExplorer.obj
+ 0004:000003d8 $pdata$LibGetMenuEntry 000000000000b758 FileExplorerLib:FileExplorer.obj
+ 0004:000003e4 $pdata$LibDestroyMenuEntry 000000000000b764 FileExplorerLib:FileExplorer.obj
+ 0004:000003f0 $pdata$LibFreeMenu 000000000000b770 FileExplorerLib:FileExplorer.obj
+ 0004:000003fc $pdata$LibStrDuplicate 000000000000b77c FileExplorerLib:FileExplorer.obj
+ 0004:00000408 $pdata$LibAppendFileName 000000000000b788 FileExplorerLib:FileExplorer.obj
+ 0004:00000414 $pdata$LibFindFileSystem 000000000000b794 FileExplorerLib:FileExplorer.obj
+ 0004:00000420 $pdata$LibGetFileHandleFromDevicePath 000000000000b7a0 FileExplorerLib:FileExplorer.obj
+ 0004:0000042c $pdata$LibCreateNewFile 000000000000b7ac FileExplorerLib:FileExplorer.obj
+ 0004:00000438 $pdata$LibFindFiles 000000000000b7b8 FileExplorerLib:FileExplorer.obj
+ 0004:00000444 $pdata$LibUpdateFileExplorePage 000000000000b7c4 FileExplorerLib:FileExplorer.obj
+ 0004:00000450 $pdata$LibUpdateFileExplorer 000000000000b7d0 FileExplorerLib:FileExplorer.obj
+ 0004:0000045c $pdata$LibGetDevicePath 000000000000b7dc FileExplorerLib:FileExplorer.obj
+ 0004:00000468 $pdata$ChooseFile 000000000000b7e8 FileExplorerLib:FileExplorer.obj
+ 0004:00000474 $pdata$InternalImageHandleToFvHandle 000000000000b7f4 DxeServicesLib:DxeServicesLib.obj
+ 0004:00000480 $pdata$InternalGetSectionFromFv 000000000000b800 DxeServicesLib:DxeServicesLib.obj
+ 0004:0000048c $pdata$ZeroMem 000000000000b80c BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0004:00000498 $pdata$SetMem16 000000000000b818 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0004:000004a4 $pdata$IsZeroBuffer 000000000000b824 BaseMemoryLibRepStr:IsZeroBufferWrapper.obj
+ 0004:000004b0 $pdata$StrnLenS 000000000000b830 BaseLib:SafeString.obj
+ 0004:000004bc $pdata$StrCpyS 000000000000b83c BaseLib:SafeString.obj
+ 0004:000004c8 $pdata$StrnCpyS 000000000000b848 BaseLib:SafeString.obj
+ 0004:000004d4 $pdata$StrCatS 000000000000b854 BaseLib:SafeString.obj
+ 0004:000004e0 $pdata$StrLen 000000000000b860 BaseLib:String.obj
+ 0004:000004ec $pdata$StrStr 000000000000b86c BaseLib:String.obj
+ 0004:000004f8 $pdata$AsciiStrLen 000000000000b878 BaseLib:String.obj
+ 0004:00000504 $pdata$AsciiStrnCmp 000000000000b884 BaseLib:String.obj
+ 0004:00000510 $pdata$IoWriteFifo8 000000000000b890 BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0004:0000051c $pdata$TdIoRead8 000000000000b89c BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0004:00000528 $pdata$TdIoWrite8 000000000000b8a8 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:00000000 $unwind$RamDiskPublishSsdt 000000000000b8c0 RamDiskDxe:RamDiskProtocol.obj
+ 0005:00000000 $unwind$EfiCreateEventReadyToBootEx 000000000000b8c0 UefiLib:UefiNotTiano.obj
+ 0005:00000000 $unwind$_DriverUnloadHandler 000000000000b8c0 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0005:00000000 $unwind$UninstallRamDiskConfigForm 000000000000b8c0 RamDiskDxe:RamDiskImpl.obj
+ 0005:00000000 $unwind$TdIoWrite8 000000000000b8c0 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:00000008 $unwind$InitializeListHead 000000000000b8c8 BaseLib:LinkedList.obj
+ 0005:00000008 $unwind$ReadUnaligned32 000000000000b8c8 BaseLib:Unaligned.obj
+ 0005:00000008 $unwind$LibCreateMenuEntry 000000000000b8c8 FileExplorerLib:FileExplorer.obj
+ 0005:00000008 $unwind$IsListEmpty 000000000000b8c8 BaseLib:LinkedList.obj
+ 0005:00000008 $unwind$ReadUnaligned64 000000000000b8c8 BaseLib:Unaligned.obj
+ 0005:00000008 $unwind$DevicePathNodeLength 000000000000b8c8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000008 $unwind$HiiAllocateOpCodeHandle 000000000000b8c8 UefiHiiLib:HiiLib.obj
+ 0005:00000008 $unwind$_ModuleEntryPoint 000000000000b8c8 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0005:00000008 $unwind$IsZeroBuffer 000000000000b8c8 BaseMemoryLibRepStr:IsZeroBufferWrapper.obj
+ 0005:00000008 $unwind$DevicePathType 000000000000b8c8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000008 $unwind$RemoveEntryList 000000000000b8c8 BaseLib:LinkedList.obj
+ 0005:00000008 $unwind$AllocateZeroPool 000000000000b8c8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000008 $unwind$HiiRemovePackages 000000000000b8c8 UefiHiiLib:HiiLib.obj
+ 0005:00000008 $unwind$DevicePathSubType 000000000000b8c8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000008 $unwind$NextDevicePathNode 000000000000b8c8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000008 $unwind$HiiFreeOpCodeHandle 000000000000b8c8 UefiHiiLib:HiiLib.obj
+ 0005:00000008 $unwind$LibGetDevicePath 000000000000b8c8 FileExplorerLib:FileExplorer.obj
+ 0005:00000008 $unwind$InternalBaseLibIsListValid 000000000000b8c8 BaseLib:LinkedList.obj
+ 0005:00000010 $unwind$ProcessLibraryConstructorList 000000000000b8d0 RamDiskDxe:AutoGen.obj
+ 0005:00000024 $unwind$TdIoRead8 000000000000b8e4 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:00000024 $unwind$ProcessLibraryDestructorList 000000000000b8e4 RamDiskDxe:AutoGen.obj
+ 0005:0000002c $unwind$ProcessModuleEntryPointList 000000000000b8ec RamDiskDxe:AutoGen.obj
+ 0005:0000003c $unwind$HiiGetSupportedLanguages 000000000000b8fc UefiHiiLib:HiiLanguage.obj
+ 0005:0000003c $unwind$InternalAllocateCopyPool 000000000000b8fc UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:0000003c $unwind$StrnLenS 000000000000b8fc BaseLib:SafeString.obj
+ 0005:0000003c $unwind$RamDiskBlkIo2FlushBlocksEx 000000000000b8fc RamDiskDxe:RamDiskBlockIo.obj
+ 0005:0000003c $unwind$LibGetMenuEntry 000000000000b8fc FileExplorerLib:FileExplorer.obj
+ 0005:0000003c $unwind$CopyGuid 000000000000b8fc BaseMemoryLibRepStr:MemLibGuid.obj
+ 0005:0000003c $unwind$AsciiStrLen 000000000000b8fc BaseLib:String.obj
+ 0005:0000003c $unwind$LibDestroyMenuEntry 000000000000b8fc FileExplorerLib:FileExplorer.obj
+ 0005:0000003c $unwind$IsDevicePathEnd 000000000000b8fc UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:0000003c $unwind$WriteUnaligned64 000000000000b8fc BaseLib:Unaligned.obj
+ 0005:0000003c $unwind$ZeroMem 000000000000b8fc BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0005:0000003c $unwind$InsertTailList 000000000000b8fc BaseLib:LinkedList.obj
+ 0005:0000003c $unwind$SetDevicePathNodeLength 000000000000b8fc UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:0000003c $unwind$RamDiskAcpiCheck 000000000000b8fc RamDiskDxe:RamDiskDriver.obj
+ 0005:00000048 $unwind$RamDiskPublishNfit 000000000000b908 RamDiskDxe:RamDiskProtocol.obj
+ 0005:00000060 $unwind$RamDiskUnpublishNfit 000000000000b920 RamDiskDxe:RamDiskProtocol.obj
+ 0005:00000078 $unwind$LibGetFileHandleFromDevicePath 000000000000b938 FileExplorerLib:FileExplorer.obj
+ 0005:00000078 $unwind$RamDiskRegister 000000000000b938 RamDiskDxe:RamDiskProtocol.obj
+ 0005:00000078 $unwind$StrCatS 000000000000b938 BaseLib:SafeString.obj
+ 0005:00000094 $unwind$RamDiskUnregister 000000000000b954 RamDiskDxe:RamDiskProtocol.obj
+ 0005:00000094 $unwind$StrnCpyS 000000000000b954 BaseLib:SafeString.obj
+ 0005:000000ac $unwind$InstallRamDiskConfigForm 000000000000b96c RamDiskDxe:RamDiskImpl.obj
+ 0005:000000b8 $unwind$ChooseFile 000000000000b978 FileExplorerLib:FileExplorer.obj
+ 0005:000000b8 $unwind$UnregisterAllRamDisks 000000000000b978 RamDiskDxe:RamDiskImpl.obj
+ 0005:000000c8 $unwind$HiiCreateRamDisk 000000000000b988 RamDiskDxe:RamDiskImpl.obj
+ 0005:000000dc $unwind$UpdateMainForm 000000000000b99c RamDiskDxe:RamDiskImpl.obj
+ 0005:000000fc $unwind$RamDiskCallback 000000000000b9bc RamDiskDxe:RamDiskImpl.obj
+ 0005:00000114 $unwind$RamDiskInitBlockIo 000000000000b9d4 RamDiskDxe:RamDiskBlockIo.obj
+ 0005:00000128 $unwind$CompareGuid 000000000000b9e8 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0005:00000128 $unwind$CopyMem 000000000000b9e8 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0005:00000128 $unwind$InternalReallocatePool 000000000000b9e8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000128 $unwind$RamDiskBlkIoWriteBlocks 000000000000b9e8 RamDiskDxe:RamDiskBlockIo.obj
+ 0005:00000128 $unwind$RamDiskBlkIoReadBlocks 000000000000b9e8 RamDiskDxe:RamDiskBlockIo.obj
+ 0005:0000013c $unwind$RamDiskBlkIo2WriteBlocksEx 000000000000b9fc RamDiskDxe:RamDiskBlockIo.obj
+ 0005:0000013c $unwind$RamDiskBlkIo2ReadBlocksEx 000000000000b9fc RamDiskDxe:RamDiskBlockIo.obj
+ 0005:00000150 $unwind$FileInfo 000000000000ba10 RamDiskDxe:RamDiskFileExplorer.obj
+ 0005:00000164 $unwind$FileDevicePath 000000000000ba24 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000164 $unwind$CompareMem 000000000000ba24 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0005:00000164 $unwind$InternalHiiCreateOpCodeExtended 000000000000ba24 UefiHiiLib:HiiLib.obj
+ 0005:0000017c $unwind$CalculateCheckSum8 000000000000ba3c BaseLib:CheckSum.obj
+ 0005:0000017c $unwind$InternalHiiGrowOpCodeHandle 000000000000ba3c UefiHiiLib:HiiLib.obj
+ 0005:0000017c $unwind$SetMem16 000000000000ba3c BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0005:0000017c $unwind$DivU64x32Remainder 000000000000ba3c BaseLib:DivU64x32Remainder.obj
+ 0005:0000017c $unwind$LibStrDuplicate 000000000000ba3c FileExplorerLib:FileExplorer.obj
+ 0005:0000017c $unwind$StrStr 000000000000ba3c BaseLib:String.obj
+ 0005:0000017c $unwind$IoWriteFifo8 000000000000ba3c BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0005:0000017c $unwind$StrLen 000000000000ba3c BaseLib:String.obj
+ 0005:0000017c $unwind$LibFreeMenu 000000000000ba3c FileExplorerLib:FileExplorer.obj
+ 0005:0000017c $unwind$GetHobList 000000000000ba3c DxeHobLib:HobLib.obj
+ 0005:0000017c $unwind$AsciiStrnCmp 000000000000ba3c BaseLib:String.obj
+ 0005:0000018c $unwind$UnicodeSPrint 000000000000ba4c BasePrintLib:PrintLib.obj
+ 0005:00000198 $unwind$AsciiSPrint 000000000000ba58 BasePrintLib:PrintLib.obj
+ 0005:000001a0 $unwind$BasePrintLibValueToString 000000000000ba60 BasePrintLib:PrintLibInternal.obj
+ 0005:000001ac $unwind$BasePrintLibSPrintMarker 000000000000ba6c BasePrintLib:PrintLibInternal.obj
+ 0005:000001c8 $unwind$BasePrintLibSPrint 000000000000ba88 BasePrintLib:PrintLibInternal.obj
+ 0005:000001d0 $unwind$DebugPrint 000000000000ba90 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:000001d8 $unwind$DebugPrintMarker 000000000000ba98 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:000001ec $unwind$DebugAssert 000000000000baac PlatformDebugLibIoPort:DebugLib.obj
+ 0005:000001f8 $unwind$PlatformDebugLibIoPortFound 000000000000bab8 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0005:000001f8 $unwind$InternalAllocatePool 000000000000bab8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:000001f8 $unwind$FreePool 000000000000bab8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:000001f8 $unwind$DevicePathFromHandle 000000000000bab8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000200 $unwind$GetEfiGlobalVariable2 000000000000bac0 UefiLib:UefiLib.obj
+ 0005:0000020c $unwind$GetBestLanguage 000000000000bacc UefiLib:UefiLib.obj
+ 0005:00000220 $unwind$EfiOpenFileByDevicePath 000000000000bae0 UefiLib:UefiLib.obj
+ 0005:00000234 $unwind$UefiLibGetStringWidth 000000000000baf4 UefiLib:Console.obj
+ 0005:00000248 $unwind$CreatePopUp 000000000000bb08 UefiLib:Console.obj
+ 0005:00000260 $unwind$HiiSetString 000000000000bb20 UefiHiiLib:HiiString.obj
+ 0005:0000027c $unwind$HiiGetString 000000000000bb3c UefiHiiLib:HiiString.obj
+ 0005:00000290 $unwind$HiiAddPackages 000000000000bb50 UefiHiiLib:HiiLib.obj
+ 0005:000002a4 $unwind$HiiCreateGuidOpCode 000000000000bb64 UefiHiiLib:HiiLib.obj
+ 0005:000002ac $unwind$HiiCreateGotoOpCode 000000000000bb6c UefiHiiLib:HiiLib.obj
+ 0005:000002c0 $unwind$InternalHiiUpdateFormPackageData 000000000000bb80 UefiHiiLib:HiiLib.obj
+ 0005:000002d8 $unwind$HiiUpdateForm 000000000000bb98 UefiHiiLib:HiiLib.obj
+ 0005:000002f0 $unwind$LibAppendFileName 000000000000bbb0 FileExplorerLib:FileExplorer.obj
+ 0005:000002f0 $unwind$LibCallback 000000000000bbb0 FileExplorerLib:FileExplorer.obj
+ 0005:0000030c $unwind$LibFindFileSystem 000000000000bbcc FileExplorerLib:FileExplorer.obj
+ 0005:00000320 $unwind$LibCreateNewFile 000000000000bbe0 FileExplorerLib:FileExplorer.obj
+ 0005:00000330 $unwind$LibFindFiles 000000000000bbf0 FileExplorerLib:FileExplorer.obj
+ 0005:00000348 $unwind$LibUpdateFileExplorePage 000000000000bc08 FileExplorerLib:FileExplorer.obj
+ 0005:00000364 $unwind$LibUpdateFileExplorer 000000000000bc24 FileExplorerLib:FileExplorer.obj
+ 0005:00000378 $unwind$InternalImageHandleToFvHandle 000000000000bc38 DxeServicesLib:DxeServicesLib.obj
+ 0005:00000380 $unwind$InternalGetSectionFromFv 000000000000bc40 DxeServicesLib:DxeServicesLib.obj
+ 0005:00000390 $unwind$StrCpyS 000000000000bc50 BaseLib:SafeString.obj
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.txt
new file mode 100644
index 000000000000..0bbb67e443db
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.txt
@@ -0,0 +1,2 @@
+MODULE_SIZE = 48320
+TIME_STAMP = 0
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.uni b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.uni
new file mode 100644
index 000000000000..117e406c3a04
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxe.uni
@@ -0,0 +1,14 @@
+// /** @file
+// Produces EFI_RAM_DISK_PROTOCOL and provides the capability to
+// create/remove RAM disks in a setup browser.
+//
+// Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+//
+// SPDX-License-Identifier: BSD-2-Clause-Patent
+//
+// **/
+
+#string STR_MODULE_ABSTRACT #language en-US "Produces EFI_RAM_DISK_PROTOCOL and provides the capability to create/remove RAM disks in a setup browser."
+
+#string STR_MODULE_DESCRIPTION #language en-US "This module produces EFI_RAM_DISK_PROTOCOL and provides the capability to create/remove RAM disks in a setup browser."
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxeOffset.bin b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxeOffset.bin
new file mode 100644
index 0000000000000000000000000000000000000000..62ebac363a6f814d9b344ae8aa79b202325c2bbf
GIT binary patch
literal 48
xcmaEGRJik-ahvb#kIwHq|FES^n9l$PTWa=PaL<bOTqRh@?ski9k-~C_H~<mz5%T~5
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxeStrDefs.hpk b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxeStrDefs.hpk
new file mode 100644
index 0000000000000000000000000000000000000000..c363e5191f3c7c67c33028023a01e0d9284d0a14
GIT binary patch
literal 1337
zcmbVMT~ES55F8Wz2mFA0GWejr_@Xf;2qgGmVgP?YfdY-RCA8qjuXkpT3oSG;5mLC@
z+uhlno$LJt&hG%|`Rj9rIJ<ryq18u*1y)E<V9BV~5FNb2p=YKKuDZzSH0OSSEjEZy
zaxEL(-)M*#ThQ?l%2sl}!4vl-ogCd~{N9>hO3RMt4gqGihbeH=j6T2%zm7FUbj`RL
zVQR@@Ujd8g+Fo_VggQ;`_6?SJ5XgvbD?U>OI5w6u+|}wk%BjN$pNg$Qskd-+3Tpk-
z-RI1cBQ?;(N@&b@%#CUcfkIr62(c(KG#2%;XD?><KyguNvzeDR$9Cmu|4*P{c5J+k
zsu2ZZ=|Dx$ka3>ihXpybG2s6ffo&LL%1-7TV<p4p`4v3z;gV@i9j?rCVzH_1rOLID
zAu;BpMiTVdPbr<yGp7Wk@Q~da3PnqDo|O&0=``l=nwGtUw44%A1JDH!mUjr)X)WAe
zhAlnSZFQjPTtkeYnsi!^T(i!cCyrhkc|n}Qv@Rw2y#7Y`8{lObE|&H5Y$>F6X@5hq
z6BaM19$`y99MO;lRi|U=rBRz1kE$aMFpk!QnU+?PC%vju6&x|OhNL%+ip*?;(y_7x
ntKJsjonpn;@6aVf`;?EsSfQWR)N)HYhpgVEGSY)nJqLaPkSN&9
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxeUni.json b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxeUni.json
new file mode 100644
index 000000000000..d022009a2690
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskDxeUni.json
@@ -0,0 +1,38 @@
+{
+ "LanguageDef": [
+ [
+ "en-US",
+ "English"
+ ]
+ ],
+ "UniString": {
+ "en-US": {
+ "$LANGUAGE_NAME": "en-US",
+ "$PRINTABLE_LANGUAGE_NAME": "English",
+ "STR_FORM_SET_TITLE": "RAM Disk Configuration",
+ "STR_FORM_SET_TITLE_HELP": "Press <Enter> to add/remove RAM disks.",
+ "STR_MAIN_FORM_TITLE": "RAM Disk HII Main Screen",
+ "STR_RAM_DISK_NULL_STRING": "",
+ "STR_RAM_DISK_LIST_TEXT": "Created RAM disk list:",
+ "STR_RAM_DISK_LIST_HELP": "Select for remove",
+ "STR_GOTO_ADD_RAW_FORM": "Create raw",
+ "STR_GOTO_ADD_RAW_FORM_HELP": "Create a raw RAM disk.",
+ "STR_GOTO_ADD_FROM_FILE_FORM": "Create from file",
+ "STR_GOTO_ADD_FROM_FILE_FORM_HELP": "Create a RAM disk from a given file.",
+ "STR_REMOVE_SEL_HELP": "Remove selected RAM disk(s)",
+ "STR_REMOVE_SEL_TEXT": "Remove selected RAM disk(s).",
+ "STR_ADD_RAW_FORM_TITLE": "Add A Raw RAM Disk",
+ "STR_ADD_RAW_FORM_SUBTITLE_TEXT": " ",
+ "STR_SIZE_PROMPT": "Size (Hex):",
+ "STR_SIZE_HELP": "The valid RAM disk size should be multiples of the RAM disk block size.",
+ "STR_MEMORY_TYPE_PROMPT": "Disk Memory Type:",
+ "STR_MEMORY_TYPE_HELP": "Specifies type of memory to use from available memory pool in system to create a disk.",
+ "STR_RAM_DISK_BOOT_SERVICE_DATA_MEMORY": "Boot Service Data",
+ "STR_RAM_DISK_RESERVED_MEMORY": "Reserved",
+ "STR_CREATE_AND_EXIT_HELP": "Create a new RAM disk with the given starting and ending address.",
+ "STR_CREATE_AND_EXIT_PROMPT": "Create & Exit",
+ "STR_DISCARD_AND_EXIT_HELP": "Discard and exit.",
+ "STR_DISCARD_AND_EXIT_PROMPT": "Discard & Exit"
+ }
+ }
+}
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskFileExplorer.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskFileExplorer.c.deps
new file mode 100644
index 000000000000..61cca9cec812
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskFileExplorer.c.deps
@@ -0,0 +1,87 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDiskFileExplorer.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\mdemodulepkg\universal\disk\ramdiskdxe\ramdiskdxe\debug\RamDiskDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\universal\disk\ramdiskdxe\RamDiskImpl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/FileExplorerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FileExplorer.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DxeServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/RamDisk.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/BlockIo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/BlockIo2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiSystemDescriptionTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/RamDiskHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/FileInfo.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\universal\disk\ramdiskdxe\RamDiskNVData.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskHii.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskHii.c.deps
new file mode 100644
index 000000000000..7917b04bde54
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskHii.c.deps
@@ -0,0 +1,79 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDiskHii.obj: \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\mdemodulepkg\universal\disk\ramdiskdxe\ramdiskdxe\debug\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\mdemodulepkg\universal\disk\ramdiskdxe\ramdiskdxe\debug\RamDiskDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\mdemodulepkg\universal\disk\ramdiskdxe\ramdiskdxe\debug\RamDiskDxeStrDefs.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskHii.i b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskHii.i
new file mode 100644
index 000000000000..df6c4b0c87f6
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskHii.i
@@ -0,0 +1,375 @@
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Universal\\Disk\\RamDiskDxe\\RamDiskHii.vfr"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Universal\\Disk\\RamDiskDxe\\RamDiskDxe\\DEBUG\\RamDiskDxeStrDefs.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern unsigned char RamDiskDxeStrings[];
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 82 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Universal\\Disk\\RamDiskDxe\\RamDiskDxe\\DEBUG\\RamDiskDxeStrDefs.h"
+
+#line 84 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Universal\\Disk\\RamDiskDxe\\RamDiskDxe\\DEBUG\\RamDiskDxeStrDefs.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Universal\\Disk\\RamDiskDxe\\RamDiskHii.vfr"
+
+
+
+
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\mdemodulepkg\\universal\\disk\\ramdiskdxe\\RamDiskNVData.h"
+
+
+
+
+
+
+
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Guid/HiiPlatformSetupFormset.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern EFI_GUID gEfiHiiPlatformSetupFormsetGuid;
+extern EFI_GUID gEfiHiiDriverHealthFormsetGuid;
+extern EFI_GUID gEfiHiiUserCredentialFormsetGuid;
+extern EFI_GUID gEfiHiiRestStyleFormsetGuid;
+
+#line 34 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Guid/HiiPlatformSetupFormset.h"
+#line 14 "c:\\users\\mliang2x\\workspace\\edk2\\mdemodulepkg\\universal\\disk\\ramdiskdxe\\RamDiskNVData.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Include\\Guid/RamDiskHii.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern EFI_GUID { 0x2a46715f, 0x3581, 0x4a55, { 0x8e, 0x73, 0x2b, 0x76, 0x9a, 0xaa, 0x30, 0xc5 }};
+
+#line 20 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Include\\Guid/RamDiskHii.h"
+#line 15 "c:\\users\\mliang2x\\workspace\\edk2\\mdemodulepkg\\universal\\disk\\ramdiskdxe\\RamDiskNVData.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct {
+
+
+
+ UINT64 Size;
+
+
+
+ UINT8 MemType;
+} RAM_DISK_CONFIGURATION;
+
+#line 45 "c:\\users\\mliang2x\\workspace\\edk2\\mdemodulepkg\\universal\\disk\\ramdiskdxe\\RamDiskNVData.h"
+#line 11 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Universal\\Disk\\RamDiskDxe\\RamDiskHii.vfr"
+
+formset
+ guid = { 0x2a46715f, 0x3581, 0x4a55, {0x8e, 0x73, 0x2b, 0x76, 0x9a, 0xaa, 0x30, 0xc5} },
+ title = STRING_TOKEN(0x0002),
+ help = STRING_TOKEN(0x0003),
+ classguid = { 0x93039971, 0x8545, 0x4b04, { 0xb4, 0x5e, 0x32, 0xeb, 0x83, 0x26, 0x4, 0xe } },
+
+
+
+
+ form formid = 0x1000,
+ title = STRING_TOKEN(0x0004);
+
+ oneof
+ questionid = 0x2004,
+ prompt = STRING_TOKEN(0x0011),
+ help = STRING_TOKEN(0x0012),
+ flags = NUMERIC_SIZE_1 | INTERACTIVE,
+ option text = STRING_TOKEN(0x0013), value = 0x00, flags = DEFAULT;
+ option text = STRING_TOKEN(0x0014), value = 0x01, flags = 0;
+ endoneof;
+
+ subtitle text = STRING_TOKEN(0x0005);
+
+ goto 0x2000,
+ prompt = STRING_TOKEN(0x0008),
+ help = STRING_TOKEN(0x0009);
+
+ goto 0x1000,
+ prompt = STRING_TOKEN(0x000A),
+ help = STRING_TOKEN(0x000B),
+ flags = INTERACTIVE,
+ key = 0x1001;
+
+ subtitle text = STRING_TOKEN(0x0005);
+ subtitle text = STRING_TOKEN(0x0006);
+
+ label 0x1003;
+ label 0x1004;
+
+ subtitle text = STRING_TOKEN(0x0005);
+
+ text
+ help = STRING_TOKEN(0x000C),
+ text = STRING_TOKEN(0x000D),
+ flags = INTERACTIVE,
+ key = 0x1002;
+
+ endform;
+
+
+
+
+ form formid = 0x2000,
+ title = STRING_TOKEN(0x000E);
+
+ subtitle text = STRING_TOKEN(0x0005);
+
+ numeric
+ questionid = 0x2001,
+ prompt = STRING_TOKEN(0x000F),
+ help = STRING_TOKEN(0x0010),
+ flags = NUMERIC_SIZE_8 | DISPLAY_UINT_HEX | INTERACTIVE,
+ minimum = 1,
+ maximum = 0xFFFFFFFFFFFFFFFF,
+ endnumeric;
+
+ subtitle text = STRING_TOKEN(0x0005);
+
+ text
+ help = STRING_TOKEN(0x0015),
+ text = STRING_TOKEN(0x0016),
+ flags = INTERACTIVE,
+ key = 0x2002;
+
+ text
+ help = STRING_TOKEN(0x0017),
+ text = STRING_TOKEN(0x0018),
+ flags = INTERACTIVE,
+ key = 0x2003;
+
+ endform;
+
+endformset;
+
+
+
+
+
+
+
+
+
+
+
+
+formset
+ guid = { 0x2a46715f, 0x3581, 0x4a55, {0x8e, 0x73, 0x2b, 0x76, 0x9a, 0xaa, 0x30, 0xc5} },
+ title = STRING_TOKEN(0x0002),
+ help = STRING_TOKEN(0x0003),
+ classguid = { 0x93039971, 0x8545, 0x4b04, { 0xb4, 0x5e, 0x32, 0xeb, 0x83, 0x26, 0x4, 0xe } },
+
+
+
+
+ form formid = 0x1000,
+ title = STRING_TOKEN(0x0004);
+
+ oneof
+ questionid = 0x2004,
+ prompt = STRING_TOKEN(0x0011),
+ help = STRING_TOKEN(0x0012),
+ flags = NUMERIC_SIZE_1 | INTERACTIVE,
+ option text = STRING_TOKEN(0x0013), value = 0x00, flags = DEFAULT;
+ option text = STRING_TOKEN(0x0014), value = 0x01, flags = 0;
+ endoneof;
+
+ subtitle text = STRING_TOKEN(0x0005);
+
+ goto 0x2000,
+ prompt = STRING_TOKEN(0x0008),
+ help = STRING_TOKEN(0x0009);
+
+ goto 0x1000,
+ prompt = STRING_TOKEN(0x000A),
+ help = STRING_TOKEN(0x000B),
+ flags = INTERACTIVE,
+ key = 0x1001;
+
+ subtitle text = STRING_TOKEN(0x0005);
+ subtitle text = STRING_TOKEN(0x0006);
+
+ label 0x1003;
+ label 0x1004;
+
+ subtitle text = STRING_TOKEN(0x0005);
+
+ text
+ help = STRING_TOKEN(0x000C),
+ text = STRING_TOKEN(0x000D),
+ flags = INTERACTIVE,
+ key = 0x1002;
+
+ endform;
+
+
+
+
+ form formid = 0x2000,
+ title = STRING_TOKEN(0x000E);
+
+ subtitle text = STRING_TOKEN(0x0005);
+
+ numeric
+ questionid = 0x2001,
+ prompt = STRING_TOKEN(0x000F),
+ help = STRING_TOKEN(0x0010),
+ flags = NUMERIC_SIZE_8 | DISPLAY_UINT_HEX | INTERACTIVE,
+ minimum = 1,
+ maximum = 0xFFFFFFFFFFFFFFFF,
+ endnumeric;
+
+ subtitle text = STRING_TOKEN(0x0005);
+
+ text
+ help = STRING_TOKEN(0x0015),
+ text = STRING_TOKEN(0x0016),
+ flags = INTERACTIVE,
+ key = 0x2002;
+
+ text
+ help = STRING_TOKEN(0x0017),
+ text = STRING_TOKEN(0x0018),
+ flags = INTERACTIVE,
+ key = 0x2003;
+
+ endform;
+
+endformset;
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskImpl.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskImpl.c.deps
new file mode 100644
index 000000000000..675453326249
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskImpl.c.deps
@@ -0,0 +1,87 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDiskImpl.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\mdemodulepkg\universal\disk\ramdiskdxe\ramdiskdxe\debug\RamDiskDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\universal\disk\ramdiskdxe\RamDiskImpl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/FileExplorerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FileExplorer.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DxeServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/RamDisk.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/BlockIo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/BlockIo2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiSystemDescriptionTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/RamDiskHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/FileInfo.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\universal\disk\ramdiskdxe\RamDiskNVData.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskProtocol.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskProtocol.c.deps
new file mode 100644
index 000000000000..392df4fc56a7
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/RamDiskProtocol.c.deps
@@ -0,0 +1,87 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDiskProtocol.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\mdemodulepkg\universal\disk\ramdiskdxe\ramdiskdxe\debug\RamDiskDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\universal\disk\ramdiskdxe\RamDiskImpl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/FileExplorerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FileExplorer.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DxeServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/RamDisk.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/BlockIo.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/BlockIo2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiSystemDescriptionTable.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/RamDiskHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/FileInfo.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\universal\disk\ramdiskdxe\RamDiskNVData.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/cc_resp_7.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/cc_resp_7.txt
new file mode 100644
index 000000000000..b5c93c2099e8
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/cc_resp_7.txt
@@ -0,0 +1 @@
+ c:\users\mliang2x\workspace\edk2\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDriver.c c:\users\mliang2x\workspace\edk2\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskImpl.c c:\users\mliang2x\workspace\edk2\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskProtocol.c c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG\RamDiskHii.c c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDisk.c c:\users\mliang2x\workspace\edk2\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskFileExplorer.c c:\users\mliang2x\workspace\edk2\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskBlockIo.c c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG\AutoGen.c
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/inc.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/inc.lst
new file mode 100644
index 000000000000..652bb1833b95
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/inc.lst
@@ -0,0 +1,9 @@
+/Ic:\users\mliang2x\workspace\edk2\MdeModulePkg\Universal\Disk\RamDiskDxe
+/Ic:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG
+/Ic:\users\mliang2x\workspace\edk2\MdePkg
+/Ic:\users\mliang2x\workspace\edk2\MdePkg\Include
+/Ic:\users\mliang2x\workspace\edk2\MdePkg\Test\UnitTest\Include
+/Ic:\users\mliang2x\workspace\edk2\MdePkg\Include\X64
+/Ic:\users\mliang2x\workspace\edk2\MdeModulePkg
+/Ic:\users\mliang2x\workspace\edk2\MdeModulePkg\Include
+/Ic:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BrotliCustomDecompressLib\brotli\c\include
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/object_files.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/object_files.lst
new file mode 100644
index 000000000000..a22c2f658be1
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/object_files.lst
@@ -0,0 +1,8 @@
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe/OUTPUT/RamDiskDriver.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe/OUTPUT/RamDiskImpl.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe/OUTPUT/RamDiskBlockIo.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe/OUTPUT/RamDiskProtocol.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe/OUTPUT/RamDiskFileExplorer.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe/OUTPUT/RamDiskHii.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe/OUTPUT/RamDisk.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe/OUTPUT/AutoGen.obj
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/static_library_files.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/static_library_files.lst
new file mode 100644
index 000000000000..b0f9ba0018eb
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/OUTPUT/static_library_files.lst
@@ -0,0 +1,22 @@
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/RegisterFilterLibNull/RegisterFilterLibNull/OUTPUT/FilterLibNull.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/DxePcdLib/DxePcdLib/OUTPUT/DxePcdLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr/OUTPUT/BaseMemoryLibRepStr.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BaseLib/BaseLib/OUTPUT/BaseLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/TdxLib/TdxLib/OUTPUT/TdxLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/OvmfPkg/Library/CcProbeLib/CcProbeLib/OUTPUT/CcProbeLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib/OUTPUT/BaseDebugPrintErrorLevelLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsicSev/OUTPUT/BaseIoLibIntrinsicSev.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BasePrintLib/BasePrintLib/OUTPUT/BasePrintLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort/OUTPUT/PlatformDebugLibIoPort.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib/OUTPUT/UefiBootServicesTableLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib/OUTPUT/UefiMemoryAllocationLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib/OUTPUT/UefiRuntimeServicesTableLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol/OUTPUT/UefiDevicePathLibDevicePathProtocol.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib/OUTPUT/UefiHiiServicesLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiLib/UefiLib/OUTPUT/UefiLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdeModulePkg/Library/UefiHiiLib/UefiHiiLib/OUTPUT/UefiHiiLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/DxeHobLib/DxeHobLib/OUTPUT/DxeHobLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint/OUTPUT/UefiDriverEntryPoint.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdeModulePkg/Library/FileExplorerLib/FileExplorerLib/OUTPUT/FileExplorerLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/DxeServicesLib/DxeServicesLib/OUTPUT/DxeServicesLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe/OUTPUT/RamDiskDxe.lib
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/RamDiskDxe.makefile b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/RamDiskDxe.makefile
new file mode 100644
index 000000000000..8b5bf50cd4a8
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/RamDiskDxe.makefile
@@ -0,0 +1 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\Makefile
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/dependency b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/dependency
new file mode 100644
index 000000000000..04dc663f6878
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/dependency
@@ -0,0 +1,43 @@
+
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG\RamDiskHii.vfr.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG\RamDiskHii.vfr.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\AutoGen.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\AutoGen.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDisk.asl.trim.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDisk.asl.trim.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDisk.i.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDisk.i.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDiskBlockIo.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDiskBlockIo.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDiskDriver.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDiskDriver.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDiskFileExplorer.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDiskFileExplorer.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDiskHii.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDiskHii.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDiskImpl.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDiskImpl.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDiskProtocol.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\OUTPUT\RamDiskProtocol.c.deps
+!ENDIF
+
+
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/deps.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/deps.txt
new file mode 100644
index 000000000000..5e83908b7aec
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/deps.txt
@@ -0,0 +1,88 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG\AutoGen.h
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG\RamDiskDxeStrDefs.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/RamDiskHii.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/FileExplorerLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FileExplorer.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/FileInfo.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DxeServicesLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiSystemDescriptionTable.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiTable.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/BlockIo.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/BlockIo2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/RamDisk.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h
+c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\mdemodulepkg\universal\disk\ramdiskdxe\ramdiskdxe\debug\AutoGen.h
+c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\mdemodulepkg\universal\disk\ramdiskdxe\ramdiskdxe\debug\RamDiskDxeStrDefs.h
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\universal\disk\ramdiskdxe\RamDiskImpl.h
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\universal\disk\ramdiskdxe\RamDiskNVData.h
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/deps_target b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/deps_target
new file mode 100644
index 000000000000..f7762fb68b0a
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/RamDiskDxe/deps_target
@@ -0,0 +1,88 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG\AutoGen.h:
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\MdeModulePkg\Universal\Disk\RamDiskDxe\RamDiskDxe\DEBUG\RamDiskDxeStrDefs.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/RamDiskHii.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/FileExplorerLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/FileExplorer.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/FileInfo.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DxeServicesLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiSystemDescriptionTable.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/AcpiTable.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/BlockIo.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/BlockIo2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/RamDisk.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h:
+c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\mdemodulepkg\universal\disk\ramdiskdxe\ramdiskdxe\debug\AutoGen.h:
+c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\mdemodulepkg\universal\disk\ramdiskdxe\ramdiskdxe\debug\RamDiskDxeStrDefs.h:
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\universal\disk\ramdiskdxe\RamDiskImpl.h:
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\universal\disk\ramdiskdxe\RamDiskNVData.h:
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/AutoGenTimeStamp b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/AutoGenTimeStamp
new file mode 100644
index 000000000000..cf316d1c95dd
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/AutoGenTimeStamp
@@ -0,0 +1,45 @@
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BasePerformanceLibNull\BasePerformanceLibNull.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Application\UiApp\FrontPageCustomizedUiSupport.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BasePrintLib\BasePrintLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiApplicationEntryPoint\UefiApplicationEntryPoint.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\DxeHobLib\DxeHobLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib.inf
+c:\users\mliang2x\workspace\edk2\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Application\UiApp\FrontPageVfr.Vfr
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\DxeServicesLib\DxeServicesLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Application\UiApp\FrontPage.c
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\UefiBootManagerLib\UefiBootManagerLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\DxePcdLib\DxePcdLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\DxeServicesTableLib\DxeServicesTableLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\UefiSortLib\UefiSortLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Application\UiApp\Ui.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Application\UiApp\UiApp.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Application\UiApp\FrontPageCustomizedUi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BasePeCoffGetEntryPointLib\BasePeCoffGetEntryPointLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\DxeReportStatusCodeLib\DxeReportStatusCodeLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Application\UiApp\String.c
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiLib\UefiLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Application\UiApp\FrontPage.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Application\UiApp\String.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseLib\BaseLib.inf
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\DEBUG\AutoGen.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\CcProbeLibNull\CcProbeLibNull.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\VariablePolicyHelperLib\VariablePolicyHelperLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Application\UiApp\FrontPageCustomizedUiSupport.c
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\TdxLib\TdxLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol.inf
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\DEBUG\UiAppStrDefs.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Application\UiApp\FrontPageCustomizedUi.c
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Application\UiApp\FrontPageStrings.uni
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/FrontPageVfr.Vfr.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/FrontPageVfr.Vfr.deps
new file mode 100644
index 000000000000..45a049cc5cd3
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/FrontPageVfr.Vfr.deps
@@ -0,0 +1,2 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\DEBUG\FrontPageVfr.c: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\DEBUG\UiAppStrDefs.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/FrontPageVfr.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/FrontPageVfr.lst
new file mode 100644
index 000000000000..32cb348a7509
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/FrontPageVfr.lst
@@ -0,0 +1,272 @@
+//
+// VFR compiler version 2.01 (UEFI 2.4) Developer Build based on Revision: Unknown
+//
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Application\\UiApp\\FrontPageVfr.Vfr"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Application\\UiApp\\UiApp\\DEBUG\\UiAppStrDefs.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern unsigned char UiAppStrings[];
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 85 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Application\\UiApp\\UiApp\\DEBUG\\UiAppStrDefs.h"
+
+#line 87 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Application\\UiApp\\UiApp\\DEBUG\\UiAppStrDefs.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Application\\UiApp\\FrontPageVfr.Vfr"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+formset
+>00000000: 0E A7 BC 30 0C 9E 06 3F A6 4B 82 88 09 17 9B 85 5D BE 02 00 0C 00 01 BC 30 0C 9E 06 3F A6 4B 82 88 09 17 9B 85 5D BE
+>00000027: 5C 06 00 00 00 00
+>0000002D: 5C 06 00 00 01 00
+ guid = { 0x9e0c30bc, 0x3f06, 0x4ba6, 0x82, 0x88, 0x9, 0x17, 0x9b, 0x85, 0x5d, 0xbe },
+ title = STRING_TOKEN(0x0002),
+ help = STRING_TOKEN(0x000C ),
+ classguid = { 0x9e0c30bc, 0x3f06, 0x4ba6, 0x82, 0x88, 0x9, 0x17, 0x9b, 0x85, 0x5d, 0xbe },
+
+ form formid = 0x1000,
+>00000033: 01 86 00 10 02 00
+ title = STRING_TOKEN(0x0002);
+
+ banner
+>00000039: 5F 18 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 01 03 00 01 00 00
+ title = STRING_TOKEN(0x0003),
+ line 1,
+ align left;
+
+ banner
+>00000051: 5F 18 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 01 04 00 02 00 00
+ title = STRING_TOKEN(0x0004),
+ line 2,
+ align left;
+
+ banner
+>00000069: 5F 18 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 01 05 00 02 00 02
+ title = STRING_TOKEN(0x0005),
+ line 2,
+ align right;
+
+ banner
+>00000081: 5F 18 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 01 07 00 03 00 00
+ title = STRING_TOKEN(0x0007),
+ line 3,
+ align left;
+
+ banner
+>00000099: 5F 18 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 01 06 00 03 00 02
+ title = STRING_TOKEN(0x0006),
+ line 3,
+ align right;
+
+ banner
+>000000B1: 5F 18 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 01 0E 00 04 00 00
+ title = STRING_TOKEN(0x000E),
+ line 4,
+ align left;
+
+ banner
+>000000C9: 5F 18 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 01 0F 00 04 00 02
+ title = STRING_TOKEN(0x000F),
+ line 4,
+ align right;
+
+ banner
+>000000E1: 5F 18 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 01 10 00 05 00 00
+ title = STRING_TOKEN(0x0010),
+ line 5,
+ align left;
+
+ banner
+>000000F9: 5F 18 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 01 11 00 05 00 02
+ title = STRING_TOKEN(0x0011),
+ line 5,
+ align right;
+
+ label 0x1000;
+>00000111: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 00 10
+
+
+
+
+ label 0xffff;
+>00000126: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+
+ endform;
+>0000013B: 29 02
+
+endformset;
+>0000013D: 29 02
+
+//
+// All Opcode Record List
+//
+>00000000: 0E A7 BC 30 0C 9E 06 3F A6 4B 82 88 09 17 9B 85 5D BE 02 00 0C 00 01 BC 30 0C 9E 06 3F A6 4B 82 88 09 17 9B 85 5D BE
+>00000027: 5C 06 00 00 00 00
+>0000002D: 5C 06 00 00 01 00
+>00000033: 01 86 00 10 02 00
+>00000039: 5F 18 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 01 03 00 01 00 00
+>00000051: 5F 18 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 01 04 00 02 00 00
+>00000069: 5F 18 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 01 05 00 02 00 02
+>00000081: 5F 18 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 01 07 00 03 00 00
+>00000099: 5F 18 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 01 06 00 03 00 02
+>000000B1: 5F 18 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 01 0E 00 04 00 00
+>000000C9: 5F 18 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 01 0F 00 04 00 02
+>000000E1: 5F 18 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 01 10 00 05 00 00
+>000000F9: 5F 18 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 01 11 00 05 00 02
+>00000111: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 00 10
+>00000126: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>0000013B: 29 02
+>0000013D: 29 02
+
+Total Size of all record is 0x0000013F
+
+
+***************************************************************
+ mPackAlign = 8
+ struct EFI_HII_REF : mAlign [16] mTotalSize [0x16]
+
+ struct EFI_HII_REF {
+ +00000000[00000000] QuestionId <UINT16>
+ +00000002[00000002] FormId <UINT16>
+ +00000004[00000004] FormSetGuid <(null)>
+ +00000020[00000014] DevicePath <EFI_STRING_ID>
+ };
+---------------------------------------------------------------
+ struct EFI_HII_TIME : mAlign [1] mTotalSize [0x3]
+
+ struct EFI_HII_TIME {
+ +00000000[00000000] Hours <UINT8>
+ +00000001[00000001] Minutes <UINT8>
+ +00000002[00000002] Seconds <UINT8>
+ };
+---------------------------------------------------------------
+ struct EFI_STRING_ID : mAlign [2] mTotalSize [0x2]
+
+ struct EFI_STRING_ID {
+ };
+---------------------------------------------------------------
+ struct EFI_HII_DATE : mAlign [2] mTotalSize [0x4]
+
+ struct EFI_HII_DATE {
+ +00000000[00000000] Year <UINT16>
+ +00000002[00000002] Month <UINT8>
+ +00000003[00000003] Day <UINT8>
+ };
+---------------------------------------------------------------
+ struct BOOLEAN : mAlign [1] mTotalSize [0x1]
+
+ struct BOOLEAN {
+ };
+---------------------------------------------------------------
+ struct UINT8 : mAlign [1] mTotalSize [0x1]
+
+ struct UINT8 {
+ };
+---------------------------------------------------------------
+ struct UINT16 : mAlign [2] mTotalSize [0x2]
+
+ struct UINT16 {
+ };
+---------------------------------------------------------------
+ struct UINT32 : mAlign [4] mTotalSize [0x4]
+
+ struct UINT32 {
+ };
+---------------------------------------------------------------
+ struct UINT64 : mAlign [8] mTotalSize [0x8]
+
+ struct UINT64 {
+ };
+---------------------------------------------------------------
+***************************************************************
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/FrontPageVfrCompiled.yml b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/FrontPageVfrCompiled.yml
new file mode 100644
index 000000000000..a66bcf91c5de
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/FrontPageVfrCompiled.yml
@@ -0,0 +1,51 @@
+## DO NOT REMOVE -- YAML Mode
+formset:
+ guid: '{0x9e0c30bc, 0x3f06, 0x4ba6, { 0x82, 0x88, 0x9, 0x17, 0x9b, 0x85, 0x5d, 0xbe }}'
+ help: ''
+ title: 'Front Page'
+ classguid1: '{0x9e0c30bc, 0x3f06, 0x4ba6, { 0x82, 0x88, 0x9, 0x17, 0x9b, 0x85, 0x5d, 0xbe }}'
+ component:
+ - form:
+ formid: 4096
+ title: 'Front Page'
+ component:
+ - banner:
+ title: 3
+ line: 1
+ align: 0
+ - banner:
+ title: 4
+ line: 2
+ align: 0
+ - banner:
+ title: 5
+ line: 2
+ align: 0
+ - banner:
+ title: 7
+ line: 3
+ align: 0
+ - banner:
+ title: 6
+ line: 3
+ align: 0
+ - banner:
+ title: 14
+ line: 4
+ align: 0
+ - banner:
+ title: 15
+ line: 4
+ align: 0
+ - banner:
+ title: 16
+ line: 5
+ align: 0
+ - banner:
+ title: 17
+ line: 5
+ align: 0
+ - label:
+ number: 0x1000 # Number
+ - label:
+ number: 0xffff # Number
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/FrontPageVfrProcessed.yml b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/FrontPageVfrProcessed.yml
new file mode 100644
index 000000000000..789b972cb2a1
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/FrontPageVfrProcessed.yml
@@ -0,0 +1,55 @@
+defines:
+ FORMSET_GUID: '{0x9e0c30bc, 0x3f06, 0x4ba6, {0x82, 0x88, 0x9, 0x17, 0x9b, 0x85, 0x5d, 0xbe}}'
+ FRONT_PAGE_FORM_ID: 4096
+ LABEL_END: 65535
+ LABEL_FRONTPAGE_INFORMATION: 4096
+formset:
+ classguid: '{0x9e0c30bc, 0x3f06, 0x4ba6, {0x82, 0x88, 0x9, 0x17, 0x9b, 0x85, 0x5d, 0xbe}}'
+ component:
+ - form:
+ component:
+ - banner:
+ align: left
+ line: 1
+ title: STRING_TOKEN(0x0003)
+ - banner:
+ align: left
+ line: 2
+ title: STRING_TOKEN(0x0004)
+ - banner:
+ align: right
+ line: 2
+ title: STRING_TOKEN(0x0005)
+ - banner:
+ align: left
+ line: 3
+ title: STRING_TOKEN(0x0007)
+ - banner:
+ align: right
+ line: 3
+ title: STRING_TOKEN(0x0006)
+ - banner:
+ align: left
+ line: 4
+ title: STRING_TOKEN(0x000E)
+ - banner:
+ align: right
+ line: 4
+ title: STRING_TOKEN(0x000F)
+ - banner:
+ align: left
+ line: 5
+ title: STRING_TOKEN(0x0010)
+ - banner:
+ align: right
+ line: 5
+ title: STRING_TOKEN(0x0011)
+ - label:
+ number: 4096
+ - label:
+ number: 65535
+ formid: 4096
+ title: STRING_TOKEN(0x0002)
+ guid: '{0x9e0c30bc, 0x3f06, 0x4ba6, {0x82, 0x88, 0x9, 0x17, 0x9b, 0x85, 0x5d, 0xbe}}'
+ help: STRING_TOKEN(0x000C)
+ title: STRING_TOKEN(0x0002)
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/UiApp.dll b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/UiApp.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f54e217ee7a0330977fe948d313defbae66950f6
GIT binary patch
literal 160448
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
E09|<6J^%m!
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/UiApp.efi b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/UiApp.efi
new file mode 100644
index 0000000000000000000000000000000000000000..514517d4ad983060d79b41ce4f1681760019169f
GIT binary patch
literal 160448
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∾{(8@9H>KYg=t}&Xmz%T6(D@-2@Ap(hKb-!
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�nomwMj|<`*W>E&&qBoXod;_M>+|Rm_{rV=_D1+
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
WnY_sN@|StEzl(%l=uYwPiO+AdnKP&W
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/UiApp.map b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/UiApp.map
new file mode 100644
index 000000000000..dab4327ebc4d
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/DEBUG/UiApp.map
@@ -0,0 +1,1519 @@
+ UiApp
+
+ Timestamp is 64881a45 (Tue Jun 13 15:27:01 2023)
+
+ Preferred load address is 0000000000000000
+
+ Start Length Name Class
+ 0001:00000000 00000348H .text CODE
+ 0001:00000348 00019425H .text$mn CODE
+ 0002:00000000 00004d14H .rdata DATA
+ 0002:00004d14 00000138H .rdata$zzzdbg DATA
+ 0003:00000000 00006ec0H .data DATA
+ 0003:00006ec0 00000240H .bss DATA
+ 0004:00000000 00000cf0H .pdata DATA
+ 0005:00000000 00000b58H .xdata DATA
+
+ Address Publics by Value Rva+Base Lib:Object
+
+ 0000:00000000 __guard_iat_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_flags 0000000000000000 <absolute>
+ 0000:00000000 __guard_longjmp_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_longjmp_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_iat_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_table 0000000000000000 <absolute>
+ 0000:00000000 __dynamic_value_reloc_table 0000000000000000 <absolute>
+ 0000:00000000 __ImageBase 0000000000000000 <linker-defined>
+ 0001:00000000 InternalMemCopyMem 00000000000002c0 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000040 InternalMemZeroMem 0000000000000300 BaseMemoryLibRepStr:ZeroMem.obj
+ 0001:00000060 InternalMemSetMem 0000000000000320 BaseMemoryLibRepStr:SetMem.obj
+ 0001:00000080 InternalMemSetMem16 0000000000000340 BaseMemoryLibRepStr:SetMem16.obj
+ 0001:000000a0 InternalMemCompareMem 0000000000000360 BaseMemoryLibRepStr:CompareMem.obj
+ 0001:000000c0 InternalMemIsZeroBuffer 0000000000000380 BaseMemoryLibRepStr:IsZeroBuffer.obj
+ 0001:000000f0 InternalMemSetMem64 00000000000003b0 BaseMemoryLibRepStr:SetMem64.obj
+ 0001:00000110 InternalMemSetMem32 00000000000003d0 BaseMemoryLibRepStr:SetMem32.obj
+ 0001:00000130 CpuPause 00000000000003f0 BaseLib:CpuPause.obj
+ 0001:00000140 SevNoRepIo 0000000000000400 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000180 SevIoReadFifo8 0000000000000440 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001a2 SevIoReadFifo16 0000000000000462 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001c8 SevIoReadFifo32 0000000000000488 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001eb SevIoWriteFifo8 00000000000004ab BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000020d SevIoWriteFifo16 00000000000004cd BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000233 SevIoWriteFifo32 00000000000004f3 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000260 TdVmCall 0000000000000520 BaseLib:TdVmcall.obj
+ 0001:000002f0 TdCall 00000000000005b0 BaseLib:TdCall.obj
+ 0001:00000348 _ModuleEntryPoint 0000000000000608 f UefiApplicationEntryPoint:ApplicationEntryPoint.obj
+ 0001:0000036c ProcessLibraryConstructorList 000000000000062c f UiApp:AutoGen.obj
+ 0001:000008dc ProcessLibraryDestructorList 0000000000000b9c f UiApp:AutoGen.obj
+ 0001:00000b80 DeviceManagerExtractConfig 0000000000000e40 f DeviceManagerUiLib:DeviceManager.obj
+ 0001:00000b80 BootManagerExtractConfig 0000000000000e40 f BootManagerUiLib:BootManager.obj
+ 0001:00000b80 FakeExtractConfig 0000000000000e40 f UiApp:FrontPage.obj
+ 0001:00000b80 LibExtractConfig 0000000000000e40 f FileExplorerLib:FileExplorer.obj
+ 0001:00000ba4 LibRouteConfig 0000000000000e64 f FileExplorerLib:FileExplorer.obj
+ 0001:00000ba4 BootManagerRouteConfig 0000000000000e64 f BootManagerUiLib:BootManager.obj
+ 0001:00000ba4 FakeRouteConfig 0000000000000e64 f UiApp:FrontPage.obj
+ 0001:00000ba4 DeviceManagerRouteConfig 0000000000000e64 f DeviceManagerUiLib:DeviceManager.obj
+ 0001:00000bc8 FrontPageCallback 0000000000000e88 f UiApp:FrontPage.obj
+ 0001:00000c94 UpdateFrontPageForm 0000000000000f54 f UiApp:FrontPage.obj
+ 0001:00000dcc ConvertProcessorToString 000000000000108c f UiApp:FrontPage.obj
+ 0001:00000ed8 GetOptionalStringByIndex 0000000000001198 f UiApp:FrontPage.obj
+ 0001:000010cc UpdateFrontPageBannerStrings 000000000000138c f UiApp:FrontPage.obj
+ 0001:00001f7c UiSetConsoleMode 000000000000223c f UiApp:FrontPage.obj
+ 0001:00002468 InitializeUserInterface 0000000000002728 f UiApp:FrontPage.obj
+ 0001:00002664 UiEntry 0000000000002924 f UiApp:FrontPage.obj
+ 0001:0000299c UiCustomizeFrontPageBanner 0000000000002c5c f UiApp:FrontPageCustomizedUi.obj
+ 0001:00002b4c GetNextLanguage 0000000000002e0c f UiApp:FrontPageCustomizedUiSupport.obj
+ 0001:00002c08 LanguageChangeHandler 0000000000002ec8 f UiApp:FrontPageCustomizedUiSupport.obj
+ 0001:00002d18 UiCreateLanguageMenu 0000000000002fd8 f UiApp:FrontPageCustomizedUiSupport.obj
+ 0001:00003218 UiListThirdPartyDrivers 00000000000034d8 f UiApp:FrontPageCustomizedUiSupport.obj
+ 0001:000038bc GetPcdProtocol 0000000000003b7c f DxePcdLib:DxePcdLib.obj
+ 0001:00003948 LibPcdSet32S 0000000000003c08 f DxePcdLib:DxePcdLib.obj
+ 0001:00003974 CopyMem 0000000000003c34 f BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0001:00003a10 CopyGuid 0000000000003cd0 f BaseMemoryLibRepStr:MemLibGuid.obj
+ 0001:00003a94 CompareGuid 0000000000003d54 f BaseMemoryLibRepStr:MemLibGuid.obj
+ 0001:00003afc StrnLenS 0000000000003dbc f BaseLib:SafeString.obj
+ 0001:00003b64 StrCpyS 0000000000003e24 f BaseLib:SafeString.obj
+ 0001:00003d08 StrnCpyS 0000000000003fc8 f BaseLib:SafeString.obj
+ 0001:00003ee0 StrCatS 00000000000041a0 f BaseLib:SafeString.obj
+ 0001:000040c8 StrnCatS 0000000000004388 f BaseLib:SafeString.obj
+ 0001:000042b0 AsciiStrnLenS 0000000000004570 f BaseLib:SafeString.obj
+ 0001:000042dc AsciiStrToUnicodeStrS 000000000000459c f BaseLib:SafeString.obj
+ 0001:00004454 StrLen 0000000000004714 f BaseLib:String.obj
+ 0001:000044e8 StrCmp 00000000000047a8 f BaseLib:String.obj
+ 0001:00004584 StrnCmp 0000000000004844 f BaseLib:String.obj
+ 0001:0000466c StrStr 000000000000492c f BaseLib:String.obj
+ 0001:00004734 AsciiStrLen 00000000000049f4 f BaseLib:String.obj
+ 0001:000047a0 AsciiStrnCmp 0000000000004a60 f BaseLib:String.obj
+ 0001:0000486c ReadUnaligned16 0000000000004b2c f BaseLib:Unaligned.obj
+ 0001:0000489c ReadUnaligned32 0000000000004b5c f BaseLib:Unaligned.obj
+ 0001:000048cc ReadUnaligned64 0000000000004b8c f BaseLib:Unaligned.obj
+ 0001:000048fc UnicodeVSPrint 0000000000004bbc f BasePrintLib:PrintLib.obj
+ 0001:00004988 UnicodeSPrint 0000000000004c48 f BasePrintLib:PrintLib.obj
+ 0001:000049a8 UnicodeValueToStringS 0000000000004c68 f BasePrintLib:PrintLib.obj
+ 0001:00004a18 AsciiSPrint 0000000000004cd8 f BasePrintLib:PrintLib.obj
+ 0001:00004a40 BasePrintLibFillBuffer 0000000000004d00 f BasePrintLib:PrintLibInternal.obj
+ 0001:00004a74 BasePrintLibValueToString 0000000000004d34 f BasePrintLib:PrintLibInternal.obj
+ 0001:00004aec BasePrintLibConvertValueToStringS 0000000000004dac f BasePrintLib:PrintLibInternal.obj
+ 0001:00004dfc BasePrintLibSPrintMarker 00000000000050bc f BasePrintLib:PrintLibInternal.obj
+ 0001:00005c30 BasePrintLibSPrint 0000000000005ef0 f BasePrintLib:PrintLibInternal.obj
+ 0001:00005c54 DebugPrint 0000000000005f14 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:00005c78 DebugPrintMarker 0000000000005f38 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:00005d28 DebugAssert 0000000000005fe8 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:00005dc0 InternalAllocatePages 0000000000006080 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00005dfc FreePages 00000000000060bc f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00005e78 InternalAllocatePool 0000000000006138 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00005ea8 AllocateZeroPool 0000000000006168 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00005ed4 InternalAllocateCopyPool 0000000000006194 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00005f4c InternalReallocatePool 000000000000620c f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00005fcc FreePool 000000000000628c f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00006010 IsDevicePathValid 00000000000062d0 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:000060f0 DevicePathType 00000000000063b0 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00006120 DevicePathSubType 00000000000063e0 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00006150 DevicePathNodeLength 0000000000006410 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00006188 NextDevicePathNode 0000000000006448 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:000061c0 IsDevicePathEndType 0000000000006480 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:000061fc IsDevicePathEnd 00000000000064bc f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00006250 SetDevicePathNodeLength 0000000000006510 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:000062d0 SetDevicePathEndNode 0000000000006590 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00006310 GetNextDevicePathInstance 00000000000065d0 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00006358 DevicePathFromHandle 0000000000006618 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:0000638c FileDevicePath 000000000000664c f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00006448 UefiDevicePathLibLocateProtocol 0000000000006708 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00006484 ConvertDevicePathToText 0000000000006744 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:000064c4 EfiGetSystemConfigurationTable 0000000000006784 f UefiLib:UefiLib.obj
+ 0001:00006588 EfiEventEmptyFunction 0000000000006848 f UefiLib:UefiLib.obj
+ 0001:0000658c EfiAcquireLock 000000000000684c f UefiLib:UefiLib.obj
+ 0001:000065d8 EfiReleaseLock 0000000000006898 f UefiLib:UefiLib.obj
+ 0001:00006620 GetVariable2 00000000000068e0 f UefiLib:UefiLib.obj
+ 0001:00006740 GetBestLanguage 0000000000006a00 f UefiLib:UefiLib.obj
+ 0001:00006884 UefiLibGetStringWidth 0000000000006b44 f UefiLib:Console.obj
+ 0001:0000692c CreatePopUp 0000000000006bec f UefiLib:Console.obj
+ 0001:00006cf0 GetHobList 0000000000006fb0 f DxeHobLib:HobLib.obj
+ 0001:00006d74 GetNextHob 0000000000007034 f DxeHobLib:HobLib.obj
+ 0001:00006dc4 HiiSetString 0000000000007084 f UefiHiiLib:HiiString.obj
+ 0001:00006f14 HiiGetStringEx 00000000000071d4 f UefiHiiLib:HiiString.obj
+ 0001:000070c4 HiiAddPackages 0000000000007384 f UefiHiiLib:HiiLib.obj
+ 0001:00007200 HiiRemovePackages 00000000000074c0 f UefiHiiLib:HiiLib.obj
+ 0001:00007270 HiiGetHiiHandles 0000000000007530 f UefiHiiLib:HiiLib.obj
+ 0001:000072fc HiiGetFormSetFromHiiHandle 00000000000075bc f UefiHiiLib:HiiLib.obj
+ 0001:000074ec InternalHiiBrowserCallback 00000000000077ac f UefiHiiLib:HiiLib.obj
+ 0001:000075fc HiiConstructConfigHdr 00000000000078bc f UefiHiiLib:HiiLib.obj
+ 0001:0000785c InternalHiiCompareSubString 0000000000007b1c f UefiHiiLib:HiiLib.obj
+ 0001:00007978 HiiIsConfigHdrMatch 0000000000007c38 f UefiHiiLib:HiiLib.obj
+ 0001:00007a10 HiiGetBrowserData 0000000000007cd0 f UefiHiiLib:HiiLib.obj
+ 0001:00007ae8 HiiSetBrowserData 0000000000007da8 f UefiHiiLib:HiiLib.obj
+ 0001:00007c08 HiiAllocateOpCodeHandle 0000000000007ec8 f UefiHiiLib:HiiLib.obj
+ 0001:00007c58 HiiFreeOpCodeHandle 0000000000007f18 f UefiHiiLib:HiiLib.obj
+ 0001:00007c98 InternalHiiGrowOpCodeHandle 0000000000007f58 f UefiHiiLib:HiiLib.obj
+ 0001:00007d3c InternalHiiCreateOpCodeExtended 0000000000007ffc f UefiHiiLib:HiiLib.obj
+ 0001:00007df0 InternalHiiAppendOpCodes 00000000000080b0 f UefiHiiLib:HiiLib.obj
+ 0001:00007e70 HiiCreateEndOpCode 0000000000008130 f UefiHiiLib:HiiLib.obj
+ 0001:00007e98 HiiCreateOneOfOptionOpCode 0000000000008158 f UefiHiiLib:HiiLib.obj
+ 0001:00007f54 HiiCreateGuidOpCode 0000000000008214 f UefiHiiLib:HiiLib.obj
+ 0001:00007fa8 HiiCreateActionOpCode 0000000000008268 f UefiHiiLib:HiiLib.obj
+ 0001:00008028 HiiCreateSubTitleOpCode 00000000000082e8 f UefiHiiLib:HiiLib.obj
+ 0001:00008084 HiiCreateGotoOpCode 0000000000008344 f UefiHiiLib:HiiLib.obj
+ 0001:00008134 HiiCreateGotoExOpCode 00000000000083f4 f UefiHiiLib:HiiLib.obj
+ 0001:00008204 HiiCreateCheckBoxOpCode 00000000000084c4 f UefiHiiLib:HiiLib.obj
+ 0001:000082c8 HiiCreateStringOpCode 0000000000008588 f UefiHiiLib:HiiLib.obj
+ 0001:00008354 HiiCreateOneOfOpCode 0000000000008614 f UefiHiiLib:HiiLib.obj
+ 0001:00008478 InternalHiiUpdateFormPackageData 0000000000008738 f UefiHiiLib:HiiLib.obj
+ 0001:000086cc HiiUpdateForm 000000000000898c f UefiHiiLib:HiiLib.obj
+ 0001:00008944 HiiGetSupportedLanguages 0000000000008c04 f UefiHiiLib:HiiLanguage.obj
+ 0001:000089e8 InternalReportStatusCode 0000000000008ca8 f DxeReportStatusCodeLib:ReportStatusCodeLib.obj
+ 0001:00008a98 ReportStatusCodeEx 0000000000008d58 f DxeReportStatusCodeLib:ReportStatusCodeLib.obj
+ 0001:00008c60 EfiBootManagerConnectAll 0000000000008f20 f UefiBootManagerLib:BmConnect.obj
+ 0001:00008cec EfiBootManagerConnectDevicePath 0000000000008fac f UefiBootManagerLib:BmConnect.obj
+ 0001:00008e38 BmConnectUsbShortFormDevicePath 00000000000090f8 f UefiBootManagerLib:BmConnect.obj
+ 0001:00008f84 BmFindBootOptionInVariable 0000000000009244 f UefiBootManagerLib:BmBoot.obj
+ 0001:000090d8 BmAdjustFvFilePath 0000000000009398 f UefiBootManagerLib:BmBoot.obj
+ 0001:0000925c BmMatchUsbClass 000000000000951c f UefiBootManagerLib:BmBoot.obj
+ 0001:00009324 BmMatchUsbWwid 00000000000095e4 f UefiBootManagerLib:BmBoot.obj
+ 0001:000094b4 BmExpandUsbDevicePath 0000000000009774 f UefiBootManagerLib:BmBoot.obj
+ 0001:0000967c BmExpandFileDevicePath 000000000000993c f UefiBootManagerLib:BmBoot.obj
+ 0001:000097ec BmExpandUriDevicePath 0000000000009aac f UefiBootManagerLib:BmBoot.obj
+ 0001:000098f8 BmCachePartitionDevicePath 0000000000009bb8 f UefiBootManagerLib:BmBoot.obj
+ 0001:000099b0 BmExpandPartitionDevicePath 0000000000009c70 f UefiBootManagerLib:BmBoot.obj
+ 0001:00009c58 BmExpandMediaDevicePath 0000000000009f18 f UefiBootManagerLib:BmBoot.obj
+ 0001:00009ed4 BmExpandNetworkFileSystem 000000000000a194 f UefiBootManagerLib:BmBoot.obj
+ 0001:00009fe0 BmGetRamDiskDevicePath 000000000000a2a0 f UefiBootManagerLib:BmBoot.obj
+ 0001:0000a090 BmDestroyRamDisk 000000000000a350 f UefiBootManagerLib:BmBoot.obj
+ 0001:0000a24c BmExpandLoadFile 000000000000a50c f UefiBootManagerLib:BmBoot.obj
+ 0001:0000a454 BmExpandLoadFiles 000000000000a714 f UefiBootManagerLib:BmBoot.obj
+ 0001:0000a658 BmGetNextLoadOptionDevicePath 000000000000a918 f UefiBootManagerLib:BmBoot.obj
+ 0001:0000a8dc BmIsBootManagerMenuFilePath 000000000000ab9c f UefiBootManagerLib:BmBoot.obj
+ 0001:0000a930 BmReportLoadFailure 000000000000abf0 f UefiBootManagerLib:BmBoot.obj
+ 0001:0000a9ac EfiBootManagerBoot 000000000000ac6c f UefiBootManagerLib:BmBoot.obj
+ 0001:0000ae60 BmMatchPartitionDevicePathNode 000000000000b120 f UefiBootManagerLib:BmBoot.obj
+ 0001:0000aeec BmEnumerateBootOptions 000000000000b1ac f UefiBootManagerLib:BmBoot.obj
+ 0001:0000b480 EfiBootManagerRefreshAllBootOption 000000000000b740 f UefiBootManagerLib:BmBoot.obj
+ 0001:0000b63c BmUpdateSystemTableConsole 000000000000b8fc f UefiBootManagerLib:BmConsole.obj
+ 0001:0000b804 EfiBootManagerUpdateConsoleVariable 000000000000bac4 f UefiBootManagerLib:BmConsole.obj
+ 0001:0000b908 EfiBootManagerConnectConsoleVariable 000000000000bbc8 f UefiBootManagerLib:BmConsole.obj
+ 0001:0000bb10 EfiBootManagerConnectAllDefaultConsoles 000000000000bdd0 f UefiBootManagerLib:BmConsole.obj
+ 0001:0000bc24 BmGetFreeOptionNumber 000000000000bee4 f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000bda0 EfiBootManagerLoadOptionToVariable 000000000000c060 f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000c004 BmAddOptionNumberToOrderVariable 000000000000c2c4 f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000c14c EfiBootManagerAddLoadOptionVariable 000000000000c40c f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000c1ec EfiBootManagerInitializeLoadOption 000000000000c4ac f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000c2d0 EfiBootManagerFindLoadOption 000000000000c590 f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000c380 EfiBootManagerDeleteLoadOptionVariable 000000000000c640 f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000c4e0 BmValidateOption 000000000000c7a0 f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000c624 EfiBootManagerIsValidLoadOptionVariableName 000000000000c8e4 f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000c734 EfiBootManagerVariableToLoadOptionEx 000000000000c9f4 f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000c89c EfiBootManagerGetLoadOptions 000000000000cb5c f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000ca28 EfiBootManagerFreeLoadOption 000000000000cce8 f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000ca64 EfiBootManagerFreeLoadOptions 000000000000cd24 f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000cac4 BmGetNextLoadOptionBuffer 000000000000cd84 f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000cc6c BmEliminateExtraSpaces 000000000000cf2c f UefiBootManagerLib:BmBootDescription.obj
+ 0001:0000ccb4 BmGetDescriptionFromDiskInfo 000000000000cf74 f UefiBootManagerLib:BmBootDescription.obj
+ 0001:0000cfa8 BmGetUsbDescription 000000000000d268 f UefiBootManagerLib:BmBootDescription.obj
+ 0001:0000d184 BmGetNetworkDescription 000000000000d444 f UefiBootManagerLib:BmBootDescription.obj
+ 0001:0000d464 BmGetLoadFileDescription 000000000000d724 f UefiBootManagerLib:BmBootDescription.obj
+ 0001:0000d500 BmGetNvmeDescription 000000000000d7c0 f UefiBootManagerLib:BmBootDescription.obj
+ 0001:0000d718 BmGetMiscDescription 000000000000d9d8 f UefiBootManagerLib:BmBootDescription.obj
+ 0001:0000d93c BmGetBootDescription 000000000000dbfc f UefiBootManagerLib:BmBootDescription.obj
+ 0001:0000daa8 BmHotkeyCallback 000000000000dd68 f UefiBootManagerLib:BmHotkey.obj
+ 0001:0000dcb0 BmGetActiveConsoleIn 000000000000df70 f UefiBootManagerLib:BmHotkey.obj
+ 0001:0000dd50 BmStopHotkeyService 000000000000e010 f UefiBootManagerLib:BmHotkey.obj
+ 0001:0000df08 BmDelPartMatchInstance 000000000000e1c8 f UefiBootManagerLib:BmMisc.obj
+ 0001:0000dfec MatchDevicePaths 000000000000e2ac f BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0001:0000dfec BmMatchDevicePaths 000000000000e2ac f UefiBootManagerLib:BmMisc.obj
+ 0001:0000e054 BmSetMemoryTypeInformationVariable 000000000000e314 f UefiBootManagerLib:BmMisc.obj
+ 0001:0000e2a8 BmSetVariableAndReportStatusCodeOnError 000000000000e568 f UefiBootManagerLib:BmMisc.obj
+ 0001:0000e3a8 BmGetControllerName 000000000000e668 f UefiBootManagerLib:BmDriverHealth.obj
+ 0001:0000e4f8 BmDisplayMessages 000000000000e7b8 f UefiBootManagerLib:BmDriverHealth.obj
+ 0001:0000e5ec BmRepairNotify 000000000000e8ac f UefiBootManagerLib:BmDriverHealth.obj
+ 0001:0000e634 BmGetSingleControllerHealthStatus 000000000000e8f4 f UefiBootManagerLib:BmDriverHealth.obj
+ 0001:0000e820 EfiBootManagerGetDriverHealthInfo 000000000000eae0 f UefiBootManagerLib:BmDriverHealth.obj
+ 0001:0000ea2c EfiBootManagerFreeDriverHealthInfo 000000000000ecec f UefiBootManagerLib:BmDriverHealth.obj
+ 0001:0000ea80 BmRepairAllControllers 000000000000ed40 f UefiBootManagerLib:BmDriverHealth.obj
+ 0001:0000ee34 LibCallback 000000000000f0f4 f FileExplorerLib:FileExplorer.obj
+ 0001:0000f024 LibCreateMenuEntry 000000000000f2e4 f FileExplorerLib:FileExplorer.obj
+ 0001:0000f070 LibGetMenuEntry 000000000000f330 f FileExplorerLib:FileExplorer.obj
+ 0001:0000f0e8 LibDestroyMenuEntry 000000000000f3a8 f FileExplorerLib:FileExplorer.obj
+ 0001:0000f164 LibFreeMenu 000000000000f424 f FileExplorerLib:FileExplorer.obj
+ 0001:0000f1dc LibStrDuplicate 000000000000f49c f FileExplorerLib:FileExplorer.obj
+ 0001:0000f248 LibAppendFileName 000000000000f508 f FileExplorerLib:FileExplorer.obj
+ 0001:0000f3fc LibFindFileSystem 000000000000f6bc f FileExplorerLib:FileExplorer.obj
+ 0001:0000f6e4 LibGetFileHandleFromDevicePath 000000000000f9a4 f FileExplorerLib:FileExplorer.obj
+ 0001:0000f8f0 LibCreateNewFile 000000000000fbb0 f FileExplorerLib:FileExplorer.obj
+ 0001:0000f9e8 LibFindFiles 000000000000fca8 f FileExplorerLib:FileExplorer.obj
+ 0001:0000fc90 LibUpdateFileExplorePage 000000000000ff50 f FileExplorerLib:FileExplorer.obj
+ 0001:0000fee0 LibUpdateFileExplorer 00000000000101a0 f FileExplorerLib:FileExplorer.obj
+ 0001:0000ffc0 LibGetDevicePath 0000000000010280 f FileExplorerLib:FileExplorer.obj
+ 0001:00010014 ChooseFile 00000000000102d4 f FileExplorerLib:FileExplorer.obj
+ 0001:0001015c DmExtractDevicePathFromHiiHandle 000000000001041c f DeviceManagerUiLib:DeviceManager.obj
+ 0001:000101b0 AddIdToMacDeviceList 0000000000010470 f DeviceManagerUiLib:DeviceManager.obj
+ 0001:000102c0 IsMacAddressDevicePath 0000000000010580 f DeviceManagerUiLib:DeviceManager.obj
+ 0001:00010564 IsNeedAddNetworkMenu 0000000000010824 f DeviceManagerUiLib:DeviceManager.obj
+ 0001:0001071c CreateDeviceManagerForm 00000000000109dc f DeviceManagerUiLib:DeviceManager.obj
+ 0001:00010f80 DeviceManagerCallback 0000000000011240 f DeviceManagerUiLib:DeviceManager.obj
+ 0001:0001103c BmSetConsoleMode 00000000000112fc f BootManagerUiLib:BootManager.obj
+ 0001:00011528 BmSetupResetReminder 00000000000117e8 f BootManagerUiLib:BootManager.obj
+ 0001:00011634 GroupMultipleLegacyBootOption4SameType 00000000000118f4 f BootManagerUiLib:BootManager.obj
+ 0001:00011824 UpdateBootManager 0000000000011ae4 f BootManagerUiLib:BootManager.obj
+ 0001:00011bb8 BootManagerCallback 0000000000011e78 f BootManagerUiLib:BootManager.obj
+ 0001:00011e34 BootManagerUiLibConstructor 00000000000120f4 f BootManagerUiLib:BootManager.obj
+ 0001:0001201c BmmSetConsoleMode 00000000000122dc f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:00012508 UiDevicePathToStr 00000000000127c8 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:000125a0 ExtractFileNameFromDevicePath 0000000000012860 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:00012648 UpdateProgress 0000000000012908 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:00012734 UpdateTerminalContent 00000000000129f4 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:000128f4 UpdateConsoleContent 0000000000012bb4 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:00012be8 BootMaintExtractConfig 0000000000012ea8 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:00012d88 BootMaintRouteConfig 0000000000013048 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:000136b4 BootMaintCallback 0000000000013974 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:00013d9c DiscardChangeHandler 000000000001405c f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:00013ef8 CleanUselessBeforeSubmit 00000000000141b8 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:00013fa8 CustomizeMenus 0000000000014268 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:00014078 InitializeBmmConfig 0000000000014338 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:000144c4 InitAllMenu 0000000000014784 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:000146b0 BootMaintenanceManagerUiLibConstructor 0000000000014970 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:000149d0 RefreshUpdateData 0000000000014c90 f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:00014a0c UpdatePageStart 0000000000014ccc f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:00014a5c UpdatePageEnd 0000000000014d1c f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:00014ae8 CleanUpPage 0000000000014da8 f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:00014b3c UpdateBootDelPage 0000000000014dfc f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:00014c4c UpdateDrvDelPage 0000000000014f0c f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:00014d54 UpdateDriverAddHandleDescPage 0000000000015014 f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:00014df8 UpdateConsolePage 00000000000150b8 f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:00015070 UpdateOrderPage 0000000000015330 f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:000152d4 UpdateConModePage 0000000000015594 f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:000154e0 UpdateTerminalPage 00000000000157a0 f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:00015948 UpdateOptionPage 0000000000015c08 f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:00015c0c UpdatePageBody 0000000000015ecc f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:00015c94 BmmSetupResetReminder 0000000000015f54 f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:00015d9c BOpt_CreateMenuEntry 000000000001605c f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:00015e38 BOpt_DestroyMenuEntry 00000000000160f8 f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:00015efc BOpt_GetMenuEntry 00000000000161bc f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:00015f74 BOpt_FreeMenu 0000000000016234 f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:00015fec BOpt_GetBootOptions 00000000000162ac f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:00016394 BOpt_GetOptionNumber 0000000000016654 f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:00016498 BOpt_GetDriverOptions 0000000000016758 f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:00016710 GetBootOrder 00000000000169d0 f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:000167e0 GetDriverOrder 0000000000016aa0 f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:000168b0 BootFromFile 0000000000016b70 f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:0001694c ReSendForm 0000000000016c0c f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:000169ac CreateBootOptionFromFile 0000000000016c6c f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:000169b8 CreateDriverOptionFromFile 0000000000016c78 f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:000169c4 Var_DelBootOption 0000000000016c84 f BootMaintenanceManagerUiLib:Variable.obj
+ 0001:00016aa8 Var_UpdateConsoleOption 0000000000016d68 f BootMaintenanceManagerUiLib:Variable.obj
+ 0001:00016ca4 Var_UpdateDriverOption 0000000000016f64 f BootMaintenanceManagerUiLib:Variable.obj
+ 0001:00016f34 Var_UpdateBootOption 00000000000171f4 f BootMaintenanceManagerUiLib:Variable.obj
+ 0001:000171cc Var_UpdateBootNext 000000000001748c f BootMaintenanceManagerUiLib:Variable.obj
+ 0001:000172e8 Var_UpdateBootOrder 00000000000175a8 f BootMaintenanceManagerUiLib:Variable.obj
+ 0001:00017454 Var_UpdateDriverOrder 0000000000017714 f BootMaintenanceManagerUiLib:Variable.obj
+ 0001:00017590 IsIsaSerialNode 0000000000017850 f BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0001:000175d4 ChangeTerminalDevicePath 0000000000017894 f BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0001:0001774c RetrieveUartUid 0000000000017a0c f BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0001:000177e0 SortedUartHandle 0000000000017aa0 f BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0001:000178e0 LocateSerialIo 0000000000017ba0 f BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0001:00017cd8 UpdateComAttributeFromVariable 0000000000017f98 f BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0001:00017e8c GetConsoleMenu 000000000001814c f BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0001:000180cc IsTerminalDevicePath 000000000001838c f BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0001:000181f4 GetConsoleOutMode 00000000000184b4 f BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0001:00018278 UiCustomizeBMMPage 0000000000018538 f BootMaintenanceManagerUiLib:BootMaintenanceManagerCustomizedUi.obj
+ 0001:000184b8 BmmListThirdPartyDrivers 0000000000018778 f BootMaintenanceManagerUiLib:BootMaintenanceManagerCustomizedUiSupport.obj
+ 0001:00018b48 ZeroMem 0000000000018e08 f BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0001:00018bac SetMem 0000000000018e6c f BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0001:00018bfc SetMem16 0000000000018ebc f BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0001:00018cc4 CompareMem 0000000000018f84 f BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0001:00018d9c IsZeroBuffer 000000000001905c f BaseMemoryLibRepStr:IsZeroBufferWrapper.obj
+ 0001:00018df8 InternalBaseLibIsListValid 00000000000190b8 f BaseLib:LinkedList.obj
+ 0001:00018e64 InitializeListHead 0000000000019124 f BaseLib:LinkedList.obj
+ 0001:00018e9c InsertTailList 000000000001915c f BaseLib:LinkedList.obj
+ 0001:00018ef0 GetFirstNode 00000000000191b0 f BaseLib:LinkedList.obj
+ 0001:00018f24 GetNextNode 00000000000191e4 f BaseLib:LinkedList.obj
+ 0001:00018f58 IsListEmpty 0000000000019218 f BaseLib:LinkedList.obj
+ 0001:00018f90 IsNull 0000000000019250 f BaseLib:LinkedList.obj
+ 0001:00018fd4 RemoveEntryList 0000000000019294 f BaseLib:LinkedList.obj
+ 0001:0001901c EfiCreateEventReadyToBootEx 00000000000192dc f UefiLib:UefiNotTiano.obj
+ 0001:000190c0 EfiGetNameGuidFromFwVolDevicePathNode 0000000000019380 f UefiLib:UefiNotTiano.obj
+ 0001:0001910c InternalPrint 00000000000193cc f UefiLib:UefiLibPrint.obj
+ 0001:00019204 Print 00000000000194c4 f UefiLib:UefiLibPrint.obj
+ 0001:00019234 RegisterBasicVariablePolicy 00000000000194f4 f VariablePolicyHelperLib:VariablePolicyHelperLib.obj
+ 0001:00019338 GetFileBufferByFilePath 00000000000195f8 f DxeServicesLib:DxeServicesLib.obj
+ 0002:00000000 ??_C@_05NODKPMNK@UiApp?$AA@ 0000000000019a40 UiApp:AutoGen.obj
+ 0002:00000008 ??_C@_0CH@BBNBJKHK@?$CB?$CI?$CI?$CIINTN?$CJ?$CIRETURN_STATUS?$CJ?$CIStatus?$CJ@ 0000000000019a48 UiApp:AutoGen.obj
+ 0002:00000030 ??_C@_0HJ@FELIMHPN@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000019a70 UiApp:AutoGen.obj
+ 0002:000000b0 ??_C@_0CB@DMEJJJHA@?6ASSERT_EFI_ERROR?5?$CIStatus?5?$DN?5?$CFr?$CJ?6@ 0000000000019af0 UiApp:AutoGen.obj
+ 0002:000000d8 _gPcd_FixedAtBuild_PcdDriverHealthConfigureForm 0000000000019b18 UiApp:AutoGen.obj
+ 0002:000000e8 _gPcd_FixedAtBuild_PcdBootManagerMenuFile 0000000000019b28 UiApp:AutoGen.obj
+ 0002:000000f8 _gPcd_FixedAtBuild_PcdUefiVariableDefaultPlatformLangCodes 0000000000019b38 UiApp:AutoGen.obj
+ 0002:00000110 ??_C@_0CC@PIBHJFDN@StartOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 0000000000019b50 UiApp:FrontPage.obj
+ 0002:00000140 ??_C@_0EM@IBAPGNPH@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000019b80 UiApp:FrontPage.obj
+ 0002:00000190 ??_C@_0CA@FMKGPAPI@EndOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019bd0 UiApp:FrontPage.obj
+ 0002:000001b0 ??_C@_0CM@HGKGDJCC@gFrontPagePrivate?4HiiHandle?5?$CB?$DN?5?$CI@ 0000000000019bf0 UiApp:FrontPage.obj
+ 0002:000001e0 ??_C@_0BN@KDBDLHMK@StringBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019c20 UiApp:FrontPage.obj
+ 0002:00000200 ??_C@_13JOFGPIOO@?$AA?4?$AA?$AA@ 0000000000019c40 UiApp:FrontPage.obj
+ 0002:00000208 ??_C@_19JHPJJHFE@?$AA?5?$AAG?$AAH?$AAz?$AA?$AA@ 0000000000019c48 UiApp:FrontPage.obj
+ 0002:00000218 ??_C@_1BA@NLEEMPFA@?$AA?5?$AAM?$AAB?$AA?5?$AAR?$AAA?$AAM?$AA?$AA@ 0000000000019c58 UiApp:FrontPage.obj
+ 0002:00000228 ??_C@_0BK@KLJHMMPJ@HiiHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019c68 UiApp:FrontPage.obj
+ 0002:00000248 ??_C@_0BO@IOFODAMB@StringBuffer1?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019c88 UiApp:FrontPage.obj
+ 0002:00000268 ??_C@_0BO@GENIONKD@StringBuffer2?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019ca8 UiApp:FrontPage.obj
+ 0002:00000290 ??_C@_1FM@DPJPLHJF@?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AAu?$AAr?$AAa?$AAt?$AAi?$AAo?$AAn?$AA?5?$AAc?$AAh?$AAa?$AAn?$AAg?$AAe?$AAd?$AA?4?$AA?5?$AAR?$AAe?$AAs?$AAe?$AAt?$AA?5?$AAt?$AAo?$AA?5@ 0000000000019cd0 UiApp:FrontPage.obj
+ 0002:000002f0 ??_C@_1CK@LOFHOMO@?$AAP?$AAr?$AAe?$AAs?$AAs?$AA?5?$AAE?$AAN?$AAT?$AAE?$AAR?$AA?5?$AAt?$AAo?$AA?5?$AAr?$AAe?$AAs?$AAe?$AAt?$AA?$AA@ 0000000000019d30 UiApp:FrontPage.obj
+ 0002:00000320 ??_C@_0CC@HFEIDHIP@gStringPackHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 0000000000019d60 UiApp:String.obj
+ 0002:00000350 ??_C@_0EJ@OHOOMBDB@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000019d90 UiApp:String.obj
+ 0002:000003a0 ??_C@_0BJ@NJEGJHFI@LangCode?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019de0 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:000003c0 ??_C@_0FP@ICKLIPAL@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000019e00 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:00000420 ??_C@_0BK@FANDPBIH@?$CKLangCode?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019e60 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:00000440 ??_C@_0BF@KEEBGAAP@Lang?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019e80 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:00000458 ??_C@_1BK@GGGENMOA@?$AAP?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AAL?$AAa?$AAn?$AAg?$AA?$AA@ 0000000000019e98 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:00000478 ??_C@_0BC@FEDIJHFF@?$CI?$CIBOOLEAN?$CJ?$CI0?$DN?$DN1?$CJ?$CJ?$AA@ 0000000000019eb8 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:00000490 ??_C@_0CE@KJODLANI@OptionsOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ@ 0000000000019ed0 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:000004b8 ??_C@_1CE@GLBFGNOF@?$AAP?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AAL?$AAa?$AAn?$AAg?$AAC?$AAo?$AAd?$AAe?$AAs?$AA?$AA@ 0000000000019ef8 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:000004e0 ??_C@_0CA@MJALGHG@gLanguageString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019f20 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:00000500 ??_C@_0BP@CAHLJC@gLanguageToken?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019f40 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:00000520 ??_C@_0BH@OOIJJHNK@Handle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019f60 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:00000538 ??_C@_0BL@IONPMOEP@HiiHandles?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019f78 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:00000558 ??_C@_0BP@DAEDPINL@gHiiDriverList?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019f98 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:00000578 ??_C@_0BH@MAAHKCPC@String?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019fb8 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:00000590 ??_C@_0BO@BDDNGENM@DriverListPtr?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019fd0 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:000005b0 ??_C@_0EG@MAJBHDFF@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000019ff0 DxePcdLib:DxePcdLib.obj
+ 0002:000005f8 ??_C@_0BF@OOKDELHM@mPcd?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001a038 DxePcdLib:DxePcdLib.obj
+ 0002:00000610 ??_C@_0BH@IACGKAP@Buffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001a050 DxePcdLib:DxePcdLib.obj
+ 0002:00000630 ??_C@_0ED@MKGCMJG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 000000000001a070 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00000680 ??_C@_0FF@LLAFLLDM@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001a0c0 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:000006d8 ??_C@_0DO@MAOBOFEG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 000000000001a118 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00000718 ??_C@_0DG@EEENIGGL@Length?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFFFFFULL@ 000000000001a158 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0002:00000750 ??_C@_0CC@GFNLNIOC@?$CI?$CIUINTN?$CJString?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 000000000001a190 BaseLib:SafeString.obj
+ 0002:00000780 ??_C@_0EF@MFKKFBPN@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001a1c0 BaseLib:SafeString.obj
+ 0002:000007c8 ??_C@_0CH@LALFPBMC@?$CI?$CIUINTN?$CJDestination?5?$CG?50x00000001@ 000000000001a208 BaseLib:SafeString.obj
+ 0002:000007f0 ??_C@_0CC@HEBCMBPF@?$CI?$CIUINTN?$CJSource?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 000000000001a230 BaseLib:SafeString.obj
+ 0002:00000818 ??_C@_0BO@ECNIOIHG@?$CIDestination?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 000000000001a258 BaseLib:SafeString.obj
+ 0002:00000838 ??_C@_07KBGDFDAM@StrCpyS?$AA@ 000000000001a278 BaseLib:SafeString.obj
+ 0002:00000840 ??_C@_0EA@PDPDJJNN@?$CFa?$CI?$CFd?$CJ?5?$CFa?3?5SAFE_STRING_CONSTRAIN@ 000000000001a280 BaseLib:SafeString.obj
+ 0002:00000880 ??_C@_0BJ@EAEEJIP@?$CISource?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 000000000001a2c0 BaseLib:SafeString.obj
+ 0002:000008a0 ??_C@_0EA@BBALOHPI@?$CIDestMax?5?$DM?$DN?5?$CI_gPcd_FixedAtBuild_@ 000000000001a2e0 BaseLib:SafeString.obj
+ 0002:000008e0 ??_C@_0P@PMIMLIHM@?$CIDestMax?5?$CB?$DN?50?$CJ?$AA@ 000000000001a320 BaseLib:SafeString.obj
+ 0002:000008f0 ??_C@_0BG@EEGIIOKH@?$CIDestMax?5?$DO?5SourceLen?$CJ?$AA@ 000000000001a330 BaseLib:SafeString.obj
+ 0002:00000910 ??_C@_0FH@PPBLBDBJ@InternalSafeStringNoStrOverlap?5?$CI@ 000000000001a350 BaseLib:SafeString.obj
+ 0002:00000968 ??_C@_08INOAHJON@StrnCpyS?$AA@ 000000000001a3a8 BaseLib:SafeString.obj
+ 0002:00000978 ??_C@_0DP@PBOJGJC@?$CILength?5?$DM?$DN?5?$CI_gPcd_FixedAtBuild_P@ 000000000001a3b8 BaseLib:SafeString.obj
+ 0002:000009b8 ??_C@_07EBBOPAKF@StrCatS?$AA@ 000000000001a3f8 BaseLib:SafeString.obj
+ 0002:000009c0 ??_C@_0P@BHOOOJPD@?$CICopyLen?5?$CB?$DN?50?$CJ?$AA@ 000000000001a400 BaseLib:SafeString.obj
+ 0002:000009d0 ??_C@_0BG@BPGICNPK@?$CICopyLen?5?$DO?5SourceLen?$CJ?$AA@ 000000000001a410 BaseLib:SafeString.obj
+ 0002:000009e8 ??_C@_08GNJNNKEE@StrnCatS?$AA@ 000000000001a428 BaseLib:SafeString.obj
+ 0002:000009f8 ??_C@_0BJ@CNKJJNE@?$CIBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 000000000001a438 BaseLib:SafeString.obj
+ 0002:00000a18 ??_C@_0BG@MFINJFHO@AsciiStrToUnicodeStrS?$AA@ 000000000001a458 BaseLib:SafeString.obj
+ 0002:00000a30 ??_C@_0GF@GCLJAOAI@?$CBInternalSafeStringIsOverlap?5?$CIDe@ 000000000001a470 BaseLib:SafeString.obj
+ 0002:00000aa0 ??_C@_0EB@OHCINBMP@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001a4e0 BaseLib:String.obj
+ 0002:00000ae8 ??_C@_0DK@EOJCOAME@Length?5?$DM?5_gPcd_FixedAtBuild_PcdM@ 000000000001a528 BaseLib:String.obj
+ 0002:00000b28 ??_C@_0BL@JAAMOCAJ@StrSize?5?$CIFirstString?$CJ?5?$CB?$DN?50?$AA@ 000000000001a568 BaseLib:String.obj
+ 0002:00000b48 ??_C@_0BM@DALBOILC@StrSize?5?$CISecondString?$CJ?5?$CB?$DN?50?$AA@ 000000000001a588 BaseLib:String.obj
+ 0002:00000b68 ??_C@_0DL@LFIMEMJP@Length?5?$DM?$DN?5_gPcd_FixedAtBuild_Pcd@ 000000000001a5a8 BaseLib:String.obj
+ 0002:00000ba8 ??_C@_0BG@KBNOLIGE@StrSize?5?$CIString?$CJ?5?$CB?$DN?50?$AA@ 000000000001a5e8 BaseLib:String.obj
+ 0002:00000bc0 ??_C@_0BM@NNBLOHJD@StrSize?5?$CISearchString?$CJ?5?$CB?$DN?50?$AA@ 000000000001a600 BaseLib:String.obj
+ 0002:00000be0 ??_C@_0DI@MDIKFADO@Length?5?$DM?5_gPcd_FixedAtBuild_PcdM@ 000000000001a620 BaseLib:String.obj
+ 0002:00000c18 ??_C@_0BL@IKFBNFIL@AsciiStrSize?5?$CIFirstString?$CJ?$AA@ 000000000001a658 BaseLib:String.obj
+ 0002:00000c38 ??_C@_0BM@EDNOKLLE@AsciiStrSize?5?$CISecondString?$CJ?$AA@ 000000000001a678 BaseLib:String.obj
+ 0002:00000c58 ??_C@_0DJ@JJHGIFMP@Length?5?$DM?$DN?5_gPcd_FixedAtBuild_Pcd@ 000000000001a698 BaseLib:String.obj
+ 0002:00000ca0 ??_C@_0EE@FAJFAODK@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001a6e0 BaseLib:Unaligned.obj
+ 0002:00000ce8 ??_C@_0N@KGHEHMDL@Divisor?5?$CB?$DN?50?$AA@ 000000000001a728 BaseLib:DivU64x32.obj
+ 0002:00000cf8 ??_C@_0CI@BGLNHBLM@?$CI?$CI?$CIUINTN?$CJ?5?$CIStartOfBuffer?$CJ?$CJ?5?$CG?50x0@ 000000000001a738 BasePrintLib:PrintLib.obj
+ 0002:00000d20 ??_C@_0EI@PHEOPKNG@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001a760 BasePrintLib:PrintLib.obj
+ 0002:00000d68 ??_C@_0CH@KJLBGOBB@?$CI?$CI?$CIUINTN?$CJ?5?$CIFormatString?$CJ?$CJ?5?$CG?50x01@ 000000000001a7a8 BasePrintLib:PrintLib.obj
+ 0002:00000d90 ??_C@_0CB@LDBAOPMG@?$CI?$CI?$CIUINTN?$CJ?5?$CIBuffer?$CJ?$CJ?5?$CG?50x01?$CJ?5?$DN?$DN?50@ 000000000001a7d0 BasePrintLib:PrintLib.obj
+ 0002:00000dc0 ??_C@_0FA@JGMHCDLA@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001a800 BasePrintLib:PrintLibInternal.obj
+ 0002:00000e10 ??_C@_0EB@HDGIDCIO@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 000000000001a850 BasePrintLib:PrintLibInternal.obj
+ 0002:00000e60 ??_C@_0FJ@HAEMOBLP@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 000000000001a8a0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000ec0 ??_C@_0CO@OJNGHNJG@?$CI?$CIFlags?5?$CG?5?$HO?$CI0x01?5?$HM?50x08?5?$HM?50x20?5?$HM@ 000000000001a900 BasePrintLib:PrintLibInternal.obj
+ 0002:00000ef0 ??_C@_0DB@HIDPIAGP@?$CI?$CI?$CIFlags?5?$CG?50x08?$CJ?5?$DN?$DN?50?$CJ?5?$HM?$HM?5?$CI?$CIFlag@ 000000000001a930 BasePrintLib:PrintLibInternal.obj
+ 0002:00000f28 ??_C@_0N@PNKFBKME@?$CIWidth?5?$DM?538?$CJ?$AA@ 000000000001a968 BasePrintLib:PrintLibInternal.obj
+ 0002:00000f38 ??_C@_0CI@HPJOGFNE@?$CIBufferSize?5?$DO?$DN?5?$CIWidth?5?$CL?51?$CJ?5?$CK?5Inc@ 000000000001a978 BasePrintLib:PrintLibInternal.obj
+ 0002:00000f60 ??_C@_0BJ@PPAKKDJG@?$CIFormat?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 000000000001a9a0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000f80 ??_C@_0ED@LPDDCECB@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 000000000001a9c0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000fd0 ??_C@_0IM@BFJJFLGB@?$CIStrnLenS?5?$CI?$CICHAR16?5?$CK?$CJFormat?0?5?$CI_g@ 000000000001aa10 BasePrintLib:PrintLibInternal.obj
+ 0002:00001060 ??_C@_0ID@PLGJGION@?$CIAsciiStrnLenS?5?$CIFormat?0?5?$CI_gPcd_F@ 000000000001aaa0 BasePrintLib:PrintLibInternal.obj
+ 0002:000010e8 ??_C@_0O@MLOLIMFM@?$DMnull?5string?$DO?$AA@ 000000000001ab28 BasePrintLib:PrintLibInternal.obj
+ 0002:000010f8 ??_C@_0M@BJJDNPHK@?$DMnull?5guid?$DO?$AA@ 000000000001ab38 BasePrintLib:PrintLibInternal.obj
+ 0002:00001108 ??_C@_0DB@PMLHLBMO@?$CF08x?9?$CF04x?9?$CF04x?9?$CF02x?$CF02x?9?$CF02x?$CF02x@ 000000000001ab48 BasePrintLib:PrintLibInternal.obj
+ 0002:00001140 ??_C@_0M@LHGBCIKM@?$DMnull?5time?$DO?$AA@ 000000000001ab80 BasePrintLib:PrintLibInternal.obj
+ 0002:00001150 ??_C@_0BK@FCPKCIDD@?$CF02d?1?$CF02d?1?$CF04d?5?5?$CF02d?3?$CF02d?$AA@ 000000000001ab90 BasePrintLib:PrintLibInternal.obj
+ 0002:0000116c ??_C@_04JIMNDDED@?$CF08X?$AA@ 000000000001abac BasePrintLib:PrintLibInternal.obj
+ 0002:00001174 ??_C@_02PCIJFNDE@?$AN?6?$AA@ 000000000001abb4 BasePrintLib:PrintLibInternal.obj
+ 0002:00001178 ??_C@_01LIIJDEN@?$AN?$AA@ 000000000001abb8 BasePrintLib:PrintLibInternal.obj
+ 0002:00001180 mWarningString 000000000001abc0 BasePrintLib:PrintLibInternal.obj
+ 0002:00001220 mErrorString 000000000001ac60 BasePrintLib:PrintLibInternal.obj
+ 0002:000014e0 mHexStr 000000000001af20 BasePrintLib:PrintLibInternal.obj
+ 0002:000014f0 ??_C@_0BH@LKMBFCBF@Format?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001af30 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00001510 ??_C@_0FD@OABGLBHF@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001af50 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00001568 ??_C@_0BE@ECBJLCDE@ASSERT?5?$CFa?$CI?$CFLu?$CJ?3?5?$CFa?6?$AA@ 000000000001afa8 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00001580 ??_C@_0BN@COECPDCC@gImageHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001afc0 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:000015a0 ??_C@_0GE@FKBNDHHB@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001afe0 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00001608 ??_C@_0BE@DGNHAHIL@gST?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b048 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00001620 ??_C@_0BE@BDFJLGLN@gBS?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b060 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00001638 ??_C@_0L@LBCNCHJA@Pages?5?$CB?$DN?50?$AA@ 000000000001b078 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:00001650 ??_C@_0FO@BEMDJMPM@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b090 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:000016b0 ??_C@_0DO@GEEICOOO@AllocationSize?5?$DM?$DN?5?$CI0xFFFFFFFFFFF@ 000000000001b0f0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:000016f0 ??_C@_0BE@OBDFIHND@gRT?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b130 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:00001710 ??_C@_0GK@FJIMGEPP@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b150 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:00001780 ??_C@_0GI@KEFAHLGJ@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b1c0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:000017e8 ??_C@_0DC@CNNBPJA@mDevicePathLibDevicePathUtilitie@ 000000000001b228 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00001820 ??_C@_0BL@JFODOCGB@DevicePath?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b260 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00001840 ??_C@_0BF@CBLMFKOC@Node?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b280 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00001860 ??_C@_0EH@ENCEEKKL@?$CILength?5?$DO?$DN?5sizeof?5?$CIEFI_DEVICE_PA@ 000000000001b2a0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:000018a8 ??_C@_0BF@MBJFHGBE@Size?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b2e8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:000018c0 mUefiDevicePathLibEndDevicePath 000000000001b300 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:000018c8 ??_C@_0BK@PPOBBAMB@TableGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b308 UefiLib:UefiLib.obj
+ 0002:000018f0 ??_C@_0EC@DCGCAOKF@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b330 UefiLib:UefiLib.obj
+ 0002:00001938 ??_C@_0BG@JDKEGFNB@Table?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b378 UefiLib:UefiLib.obj
+ 0002:00001950 ??_C@_0BO@IJOPPPFL@Lock?9?$DOLock?5?$DN?$DN?5EfiLockReleased?$AA@ 000000000001b390 UefiLib:UefiLib.obj
+ 0002:00001970 ??_C@_0BO@FHNOFLFJ@Lock?9?$DOLock?5?$DN?$DN?5EfiLockAcquired?$AA@ 000000000001b3b0 UefiLib:UefiLib.obj
+ 0002:00001990 ??_C@_0EG@GOBFPEEP@Name?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5Guid?5?$CB?$DN?5@ 000000000001b3d0 UefiLib:UefiLib.obj
+ 0002:000019d8 ??_C@_0BH@FMEOEIBC@?$CKValue?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b418 UefiLib:UefiLib.obj
+ 0002:000019f0 ??_C@_0CD@OLFKAJF@SupportedLanguages?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?5@ 000000000001b430 UefiLib:UefiLib.obj
+ 0002:00001a18 ??_C@_0BD@BHENKNKP@NumberOfLines?5?$CB?$DN?50?$AA@ 000000000001b458 UefiLib:Console.obj
+ 0002:00001a30 ??_C@_0EC@EJLIGNPA@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b470 UefiLib:Console.obj
+ 0002:00001a78 ??_C@_0P@ICDOOCHP@MaxLength?5?$CB?$DN?50?$AA@ 000000000001b4b8 UefiLib:Console.obj
+ 0002:00001a88 ??_C@_0BF@DMEONNDO@Line?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b4c8 UefiLib:Console.obj
+ 0002:00001aa0 ??_C@_0BK@IHAIHFJE@TmpString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b4e0 UefiLib:Console.obj
+ 0002:00001ac0 ??_C@_17LGKOMLJ@?$AA?4?$AA?4?$AA?4?$AA?$AA@ 000000000001b500 UefiLib:Console.obj
+ 0002:00001ad0 ??_C@_0ED@HPBEEAH@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b510 DxeHobLib:HobLib.obj
+ 0002:00001b18 ??_C@_0BJ@OBFMLLDO@mHobList?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b558 DxeHobLib:HobLib.obj
+ 0002:00001b38 ??_C@_0BJ@NOLLDKJB@HobStart?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b578 DxeHobLib:HobLib.obj
+ 0002:00001b60 ??_C@_0FO@HNLMMFDN@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b5a0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0002:00001bc0 ??_C@_0FK@MDDBGHAH@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b600 DxeServicesTableLib:DxeServicesTableLib.obj
+ 0002:00001c20 ??_C@_0BE@IOIFLNKO@gDS?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b660 DxeServicesTableLib:DxeServicesTableLib.obj
+ 0002:00001c40 ??_C@_0EN@DDBLCGFI@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b680 UefiHiiLib:HiiString.obj
+ 0002:00001c90 ??_C@_06PLDEFKP@x?9UEFI?$AA@ 000000000001b6d0 UefiHiiLib:HiiString.obj
+ 0002:00001c98 ??_C@_0CA@OEKIMLLB@PackageListGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b6d8 UefiHiiLib:HiiString.obj
+ 0002:00001cb8 ??_C@_0O@EMMLPDMJ@StringId?5?$CB?$DN?50?$AA@ 000000000001b6f8 UefiHiiLib:HiiString.obj
+ 0002:00001cc6 ??_C@_00CNPNBAHC@?$AA@ 000000000001b706 UefiHiiLib:HiiString.obj
+ 0002:00001cd0 ??_C@_0EK@CCOCGB@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b710 UefiHiiLib:HiiLib.obj
+ 0002:00001d20 ??_C@_0BN@EHPNHAIF@ConfigString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b760 UefiHiiLib:HiiLib.obj
+ 0002:00001d40 ??_C@_0BO@KAEFIFMO@ConfigRequest?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b780 UefiHiiLib:HiiLib.obj
+ 0002:00001d60 ??_C@_0BG@MJAHJKJ@Block?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b7a0 UefiHiiLib:HiiLib.obj
+ 0002:00001d78 ??_C@_1M@DPLGJLCD@?$AAG?$AAU?$AAI?$AAD?$AA?$DN?$AA?$AA@ 000000000001b7b8 UefiHiiLib:HiiLib.obj
+ 0002:00001d88 ??_C@_1O@FMIENBLJ@?$AA?$CG?$AAN?$AAA?$AAM?$AAE?$AA?$DN?$AA?$AA@ 000000000001b7c8 UefiHiiLib:HiiLib.obj
+ 0002:00001d98 ??_C@_1O@GGMHNGIF@?$AA?$CG?$AAP?$AAA?$AAT?$AAH?$AA?$DN?$AA?$AA@ 000000000001b7d8 UefiHiiLib:HiiLib.obj
+ 0002:00001da8 ??_C@_1BC@KLGPJAMP@?$AA?$CG?$AAO?$AAF?$AAF?$AAS?$AAE?$AAT?$AA?$DN?$AA?$AA@ 000000000001b7e8 UefiHiiLib:HiiLib.obj
+ 0002:00001dc0 ??_C@_0BM@LENJOOBF@FirstString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b800 UefiHiiLib:HiiLib.obj
+ 0002:00001de0 ??_C@_0BN@CGMEJHHH@SecondString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b820 UefiHiiLib:HiiLib.obj
+ 0002:00001e00 ??_C@_0CC@BCKDEPBB@StartSearchString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 000000000001b840 UefiHiiLib:HiiLib.obj
+ 0002:00001e28 ??_C@_0CB@NPMPBLHL@StopSearchString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ@ 000000000001b868 UefiHiiLib:HiiLib.obj
+ 0002:00001e50 ??_C@_0BK@LFDBOAFJ@ConfigHdr?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b890 UefiHiiLib:HiiLib.obj
+ 0002:00001e70 ??_C@_1M@IDEFLMF@?$AA?$CF?$AAs?$AA?$CG?$AA?$CF?$AAs?$AA?$AA@ 000000000001b8b0 UefiHiiLib:HiiLib.obj
+ 0002:00001e80 ??_C@_1DC@EPJEBJEB@?$AA?$CF?$AAs?$AA?$CG?$AAO?$AAF?$AAF?$AAS?$AAE?$AAT?$AA?$DN?$AA0?$AA?$CG?$AAW?$AAI?$AAD?$AAT?$AAH?$AA?$DN?$AA?$CF?$AA0?$AA1?$AA6?$AAL?$AAX?$AA?$AA@ 000000000001b8c0 UefiHiiLib:HiiLib.obj
+ 0002:00001eb8 ??_C@_0BN@OKKMNGPH@OpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b8f8 UefiHiiLib:HiiLib.obj
+ 0002:00001ed8 ??_C@_0BP@IOABAFLF@OpCodeTemplate?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b918 UefiHiiLib:HiiLib.obj
+ 0002:00001ef8 ??_C@_0CF@DPHCOLMP@?$CIOpCodeSize?5?$CL?5ExtensionSize?$CJ?5?$DM?$DN?5@ 000000000001b938 UefiHiiLib:HiiLib.obj
+ 0002:00001f20 ??_C@_0BK@JGHNIOOD@RawBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b960 UefiHiiLib:HiiLib.obj
+ 0002:00001f40 ??_C@_0CA@JCKPEJCB@RawOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b980 UefiHiiLib:HiiLib.obj
+ 0002:00001f60 ??_C@_0M@HDMCLEDO@Type?5?$DM?50x08?$AA@ 000000000001b9a0 UefiHiiLib:HiiLib.obj
+ 0002:00001f70 ??_C@_0CP@JCOCHGHI@?$CIQuestionFlags?5?$CG?5?$CI?$HO?$CI0x01?5?$HM?50x04?5@ 000000000001b9b0 UefiHiiLib:HiiLib.obj
+ 0002:00001fa0 ??_C@_0DG@CGCLKNEF@?$CIQuestionFlags?5?$CG?5?$CI?$HO?$CI0x01?5?$HM?50x04?5@ 000000000001b9e0 UefiHiiLib:HiiLib.obj
+ 0002:00001fd8 ??_C@_0DN@DNMIONI@?$CIQuestionFlags?5?$CG?5?$CI?$HO?$CI0x01?5?$HM?50x04?5@ 000000000001ba18 UefiHiiLib:HiiLib.obj
+ 0002:00002020 mConfigHdrTemplate 000000000001ba60 UefiHiiLib:HiiLib.obj
+ 0002:00002090 mHiiDefaultTypeToWidth 000000000001bad0 UefiHiiLib:HiiLib.obj
+ 0002:00002098 mEndOfPakageList 000000000001bad8 UefiHiiLib:HiiLib.obj
+ 0002:000020a0 ??_C@_0EP@LMJDKFAP@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001bae0 UefiHiiLib:HiiLanguage.obj
+ 0002:000020f0 ??_C@_0GD@PGPLJJNH@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001bb30 DxeReportStatusCodeLib:ReportStatusCodeLib.obj
+ 0002:00002158 ??_C@_0BM@HAIDGOCB@Description?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001bb98 DxeReportStatusCodeLib:ReportStatusCodeLib.obj
+ 0002:00002178 ??_C@_0DN@HHIHPHHB@?$CB?$CI?$CIExtendedData?5?$DN?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ@ 000000000001bbb8 DxeReportStatusCodeLib:ReportStatusCodeLib.obj
+ 0002:000021b8 ??_C@_0DN@BBBIFINB@?$CB?$CI?$CIExtendedData?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ@ 000000000001bbf8 DxeReportStatusCodeLib:ReportStatusCodeLib.obj
+ 0002:00002200 ??_C@_0EP@CPFHHOMB@?$CI?$CI?$CIINTN?$CJ?$CIRETURN_STATUS?$CJ?$CIStatus?$CJ?$CJ@ 000000000001bc40 UefiBootManagerLib:BmConnect.obj
+ 0002:00002250 ??_C@_0FF@EONLEJNC@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001bc90 UefiBootManagerLib:BmConnect.obj
+ 0002:000022a8 ??_C@_1O@CJIOJFKI@?$AA?$CF?$AAs?$AA?$CF?$AA0?$AA4?$AAx?$AA?$AA@ 000000000001bce8 UefiBootManagerLib:BmBoot.obj
+ 0002:000022b8 ??_C@_0DG@JBPPOHBO@OptionToFind?9?$DOOptionNumber?5?$DN?$DN?5Bo@ 000000000001bcf8 UefiBootManagerLib:BmBoot.obj
+ 0002:000022f0 ??_C@_0FC@OMHJNCLL@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001bd30 UefiBootManagerLib:BmBoot.obj
+ 0002:00002348 ??_C@_19GDALFLBC@?$AAH?$AAD?$AAD?$AAP?$AA?$AA@ 000000000001bd88 UefiBootManagerLib:BmBoot.obj
+ 0002:00002358 ??_C@_0CB@HNPPGGEL@IsDevicePathEnd?5?$CITempDevicePath?$CJ@ 000000000001bd98 UefiBootManagerLib:BmBoot.obj
+ 0002:00002380 ??_C@_1CM@POLGBFKG@?$AA?2?$AAE?$AAF?$AAI?$AA?2?$AAB?$AAO?$AAO?$AAT?$AA?2?$AAB?$AAO?$AAO?$AAT?$AAX?$AA6?$AA4?$AA?4?$AAE?$AAF?$AAI?$AA?$AA@ 000000000001bdc0 UefiBootManagerLib:BmBoot.obj
+ 0002:000023b0 ??_C@_0CC@IJGCPIJN@RamDiskDevicePath?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 000000000001bdf0 UefiBootManagerLib:BmBoot.obj
+ 0002:000023e0 ??_C@_0GA@KMAJBBHE@?$CIDevicePathType?5?$CIRamDiskDevicePa@ 000000000001be20 UefiBootManagerLib:BmBoot.obj
+ 0002:00002440 ??_C@_0BB@DLJFOJCC@BmExpandLoadFile?$AA@ 000000000001be80 UefiBootManagerLib:BmBoot.obj
+ 0002:00002460 ??_C@_0FG@OIHFMLDO@?$CFa?3?$CFa?3?5failed?5to?5allocate?5reserv@ 000000000001bea0 UefiBootManagerLib:BmBoot.obj
+ 0002:000024b8 ??_C@_0BJ@LNALCLOM@FilePath?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001bef8 UefiBootManagerLib:BmBoot.obj
+ 0002:000024e0 ??_C@_0EN@JHMJNHPF@?$CIErrorCode?5?$DN?$DN?5?$CI0x1000?5?$HM?50x000000@ 000000000001bf20 UefiBootManagerLib:BmBoot.obj
+ 0002:00002530 ??_C@_0DM@POBOKFGH@?$FLBds?$FN?5Failed?5to?5create?5Boot?$CD?$CD?$CD?$CD?5@ 000000000001bf70 UefiBootManagerLib:BmBoot.obj
+ 0002:00002570 ??_C@_1BI@LBNGELID@?$AAB?$AAo?$AAo?$AAt?$AAC?$AAu?$AAr?$AAr?$AAe?$AAn?$AAt?$AA?$AA@ 000000000001bfb0 UefiBootManagerLib:BmBoot.obj
+ 0002:00002588 ??_C@_0CC@HMPNCCAJ@?$FLBds?$FN?5Booting?5Boot?5Manager?5Menu?4@ 000000000001bfc8 UefiBootManagerLib:BmBoot.obj
+ 0002:000025b0 ??_C@_0CH@MAENAIDI@?$FLBds?$FNBooting?5from?5unknown?5device@ 000000000001bff0 UefiBootManagerLib:BmBoot.obj
+ 0002:000025d8 ??_C@_0BB@BJMHKPKN@?$FLBds?$FNBooting?5?$CFs?6?$AA@ 000000000001c018 UefiBootManagerLib:BmBoot.obj
+ 0002:000025f0 ??_C@_0BK@CCNIJCHI@Image?5Return?5Status?5?$DN?5?$CFr?6?$AA@ 000000000001c030 UefiBootManagerLib:BmBoot.obj
+ 0002:00002610 ??_C@_0EJ@CKFLEIKF@Status?5?$DN?$DN?50?5?$HM?$HM?5Status?5?$DN?$DN?5?$CI?$CIRETUR@ 000000000001c050 UefiBootManagerLib:BmBoot.obj
+ 0002:00002660 ??_C@_0CA@CKEJEPEJ@BootOptionCount?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c0a0 UefiBootManagerLib:BmBoot.obj
+ 0002:00002680 ??_C@_0BM@DJHLFDEF@BootOptions?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c0c0 UefiBootManagerLib:BmBoot.obj
+ 0002:000026a0 ??_C@_1M@NFPEGKHA@?$AAC?$AAo?$AAn?$AAI?$AAn?$AA?$AA@ 000000000001c0e0 UefiBootManagerLib:BmConsole.obj
+ 0002:000026b0 ??_C@_1O@MJHLOIFA@?$AAC?$AAo?$AAn?$AAO?$AAu?$AAt?$AA?$AA@ 000000000001c0f0 UefiBootManagerLib:BmConsole.obj
+ 0002:000026c0 ??_C@_1O@JOJMCOJC@?$AAE?$AAr?$AAr?$AAO?$AAu?$AAt?$AA?$AA@ 000000000001c100 UefiBootManagerLib:BmConsole.obj
+ 0002:000026d0 ??_C@_1BC@OBFMLJLI@?$AAC?$AAo?$AAn?$AAI?$AAn?$AAD?$AAe?$AAv?$AA?$AA@ 000000000001c110 UefiBootManagerLib:BmConsole.obj
+ 0002:000026e8 ??_C@_1BE@INNAKDAF@?$AAC?$AAo?$AAn?$AAO?$AAu?$AAt?$AAD?$AAe?$AAv?$AA?$AA@ 000000000001c128 UefiBootManagerLib:BmConsole.obj
+ 0002:00002700 ??_C@_1BE@JFPOEAHF@?$AAE?$AAr?$AAr?$AAO?$AAu?$AAt?$AAD?$AAe?$AAv?$AA?$AA@ 000000000001c140 UefiBootManagerLib:BmConsole.obj
+ 0002:00002720 ??_C@_0FF@IDLMDAJB@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c160 UefiBootManagerLib:BmConsole.obj
+ 0002:00002778 ??_C@_0BI@LEGCJJJC@VarName?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c1b8 UefiBootManagerLib:BmConsole.obj
+ 0002:00002790 ??_C@_0BO@LGKGLLEA@ConsoleHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c1d0 UefiBootManagerLib:BmConsole.obj
+ 0002:000027b0 ??_C@_0BM@CGHKLPCB@ConsoleGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c1f0 UefiBootManagerLib:BmConsole.obj
+ 0002:000027d0 ??_C@_0CC@IEKIILIB@ProtocolInterface?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 000000000001c210 UefiBootManagerLib:BmConsole.obj
+ 0002:000027f8 ??_C@_0DC@IFPPFOCH@?$FLBds?$FN?5No?5valid?5console?5instance?5@ 000000000001c238 UefiBootManagerLib:BmConsole.obj
+ 0002:00002830 mConVarName 000000000001c270 UefiBootManagerLib:BmConsole.obj
+ 0002:00002860 mBmLoadOptionName 000000000001c2a0 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002880 ??_C@_1O@GAOCKAOK@?$AAD?$AAr?$AAi?$AAv?$AAe?$AAr?$AA?$AA@ 000000000001c2c0 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002890 ??_C@_1BA@IBFPPJON@?$AAS?$AAy?$AAs?$AAP?$AAr?$AAe?$AAp?$AA?$AA@ 000000000001c2d0 UefiBootManagerLib:BmLoadOption.obj
+ 0002:000028a0 ??_C@_19JCAOHIEH@?$AAB?$AAo?$AAo?$AAt?$AA?$AA@ 000000000001c2e0 UefiBootManagerLib:BmLoadOption.obj
+ 0002:000028b0 ??_C@_1CC@LGMJPJO@?$AAP?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AAR?$AAe?$AAc?$AAo?$AAv?$AAe?$AAr?$AAy?$AA?$AA@ 000000000001c2f0 UefiBootManagerLib:BmLoadOption.obj
+ 0002:000028d8 ??_C@_1BI@PDMCFEDG@?$AAD?$AAr?$AAi?$AAv?$AAe?$AAr?$AAO?$AAr?$AAd?$AAe?$AAr?$AA?$AA@ 000000000001c318 UefiBootManagerLib:BmLoadOption.obj
+ 0002:000028f0 ??_C@_1BK@CHMLNGLH@?$AAS?$AAy?$AAs?$AAP?$AAr?$AAe?$AAp?$AAO?$AAr?$AAd?$AAe?$AAr?$AA?$AA@ 000000000001c330 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002910 ??_C@_1BE@CHCFCNKI@?$AAB?$AAo?$AAo?$AAt?$AAO?$AAr?$AAd?$AAe?$AAr?$AA?$AA@ 000000000001c350 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002930 ??_C@_0FI@IIKBJFKE@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c370 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002988 ??_C@_0CB@PFDEGLPD@FreeOptionNumber?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ@ 000000000001c3c8 UefiBootManagerLib:BmLoadOption.obj
+ 0002:000029b0 ??_C@_0HK@DHJNPELJ@LoadOptionType?5?$DN?$DN?5LoadOptionType@ 000000000001c3f0 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002a30 ??_C@_0GP@HFLIMAAP@?$CIOptionOrder?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5@ 000000000001c470 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002aa0 ??_C@_1BC@HGEHGBBD@?$AAB?$AAo?$AAo?$AAt?$AAN?$AAe?$AAx?$AAt?$AA?$AA@ 000000000001c4e0 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002ab8 ??_C@_0BI@HMGPIBBB@OptionNumber?5?$DM?$DN?50x10000?$AA@ 000000000001c4f8 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002ad0 ??_C@_0BJ@DLOFCCCI@Variable?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c510 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002af0 ??_C@_0BP@NMMDNJFN@NewOptionOrder?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c530 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002b10 ??_C@_0BM@ILMIEJOJ@OptionOrder?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c550 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002b30 ??_C@_0CM@MAOCOHA@String?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5MaxStr@ 000000000001c570 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002b60 ??_C@_0BI@BEIPAHPN@Options?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c5a0 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002b80 ??_C@_0EN@EEPBAEH@?$FLBds?$FN?5?$CFs?5doesn?8t?5exist?5?9?5Update?5@ 000000000001c5c0 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002bd0 ??_C@_0DC@GPHPCJCG@Options?$FLOptionIndex?$FN?4OptionNumbe@ 000000000001c610 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002c08 ??_C@_0O@JAAHIOB@?$FLBds?$FN?5Expand?5?$AA@ 000000000001c648 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002c18 ??_C@_04BBDFLMDN@?5?9?$DO?5?$AA@ 000000000001c658 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002c20 ??_C@_01EEMJAFIK@?6?$AA@ 000000000001c660 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002c28 mBmLoadOptionOrderName 000000000001c668 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002c50 ??_C@_0FN@OOLEKAAD@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c690 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002cb0 ??_C@_0DD@MBGDIJCD@Length?5?$DN?$DN?5ModelNameLength?5?$CL?5Seri@ 000000000001c6f0 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002ce8 ??_C@_1BE@HCCIKJOI@?$AAS?$AAD?$AA?5?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@ 000000000001c728 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002d00 ??_C@_1BI@MOIBBPND@?$AAe?$AAM?$AAM?$AAC?$AA?5?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@ 000000000001c740 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002d18 ??_C@_13HOIJIPNN@?$AA?5?$AA?$AA@ 000000000001c758 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002d20 ??_C@_17IDOMPBMF@?$AAP?$AAX?$AAE?$AA?$AA@ 000000000001c760 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002d28 ??_C@_19BMGGGIKC@?$AAH?$AAT?$AAT?$AAP?$AA?$AA@ 000000000001c768 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002d40 ??_C@_1EK@KDADHDDD@?$AA?$CF?$AAs?$AAv?$AA?$CF?$AAd?$AA?5?$AA?$CI?$AAM?$AAA?$AAC?$AA?3?$AA?$CF?$AA0?$AA2?$AAx?$AA?$CF?$AA0?$AA2?$AAx?$AA?$CF?$AA0?$AA2?$AAx?$AA?$CF?$AA0?$AA2?$AAx?$AA?$CF?$AA0?$AA2?$AAx?$AA?$CF@ 000000000001c780 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002d90 ??_C@_1FI@BDHDKNGL@?$AA?$CF?$AAs?$AAv?$AA?$CF?$AAd?$AA?5?$AA?$CI?$AAM?$AAA?$AAC?$AA?3?$AA?$CF?$AA0?$AA2?$AAx?$AA?$CF?$AA0?$AA2?$AAx?$AA?$CF?$AA0?$AA2?$AAx?$AA?$CF?$AA0?$AA2?$AAx?$AA?$CF?$AA0?$AA2?$AAx?$AA?$CF@ 000000000001c7d0 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002de8 ??_C@_1O@CLMODHEM@?$AAF?$AAl?$AAo?$AAp?$AAp?$AAy?$AA?$AA@ 000000000001c828 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002df8 ??_C@_1BE@CAANMHKL@?$AAD?$AAV?$AAD?$AA?1?$AAC?$AAD?$AAR?$AAO?$AAM?$AA?$AA@ 000000000001c838 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002e10 ??_C@_1BG@FNOOENMH@?$AAH?$AAa?$AAr?$AAd?$AA?5?$AAD?$AAr?$AAi?$AAv?$AAe?$AA?$AA@ 000000000001c850 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002e28 ??_C@_1BG@PDJIKBEG@?$AAU?$AAS?$AAB?$AA?5?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@ 000000000001c868 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002e40 ??_C@_1BI@NPAIJFIJ@?$AAS?$AAC?$AAS?$AAI?$AA?5?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@ 000000000001c880 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002e58 ??_C@_1BO@NNOGFLGA@?$AAR?$AAe?$AAm?$AAo?$AAv?$AAa?$AAb?$AAl?$AAe?$AA?5?$AAD?$AAi?$AAs?$AAk?$AA?$AA@ 000000000001c898 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002e78 ??_C@_1BI@IIOANEKN@?$AAM?$AAi?$AAs?$AAc?$AA?5?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@ 000000000001c8b8 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002e90 ??_C@_1CM@CCDJEPCI@?$AAN?$AAo?$AAn?$AA?9?$AAB?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAB?$AAo?$AAo?$AAt?$AA?5?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@ 000000000001c8d0 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002ec0 ??_C@_0BF@NDBIKIKC@CR?5has?5Bad?5Signature?$AA@ 000000000001c900 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002ed8 ??_C@_0BF@OIGBEABJ@Temp?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c918 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002ef0 ??_C@_0CD@NNLEHLIP@DefaultDescription?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?5@ 000000000001c930 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002f18 ??_C@_0BI@HAGDMNKK@Visited?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c958 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002f30 ??_C@_1M@DJFDNGE@?$AA?$CF?$AAs?$AA?5?$AA?$CF?$AAd?$AA?$AA@ 000000000001c970 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002f40 mBmBootDescriptionHandlers 000000000001c980 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002f70 ??_C@_0FE@BBPFHDL@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c9b0 UefiBootManagerLib:BmHotkey.obj
+ 0002:00002fc8 ??_C@_0CC@JHGOKCAM@?$FLBds?$FNBmHotkeyCallback?3?5?$CF04x?3?$CF04x@ 000000000001ca08 UefiBootManagerLib:BmHotkey.obj
+ 0002:00002ff0 ??_C@_0EO@PGCGMAA@Hotkey?9?$DOWaitingKey?5?$DM?5?$CIsizeof?5?$CIHo@ 000000000001ca30 UefiBootManagerLib:BmHotkey.obj
+ 0002:00003040 ??_C@_0CB@PFLHPPPA@?$FLBds?$FNHotkey?5for?5?$CFs?5pressed?5?9?5?$CFr?6@ 000000000001ca80 UefiBootManagerLib:BmHotkey.obj
+ 0002:00003068 ??_C@_0BM@PIEMCHHP@?$FLBds?$FNContinue?5key?5pressed?$CB?6?$AA@ 000000000001caa8 UefiBootManagerLib:BmHotkey.obj
+ 0002:00003088 ??_C@_0CI@IEECCPEN@?$FLBds?$FNUnregisterKeyNotify?3?5?$CF04x?1?$CF@ 000000000001cac8 UefiBootManagerLib:BmHotkey.obj
+ 0002:000030b0 ??_C@_0BL@ELKNAPIO@?$FLBds?$FNStop?5Hotkey?5Service?$CB?6?$AA@ 000000000001caf0 UefiBootManagerLib:BmHotkey.obj
+ 0002:000030d0 ??_C@_1CM@OLBNONPD@?$AAM?$AAe?$AAm?$AAo?$AAr?$AAy?$AAT?$AAy?$AAp?$AAe?$AAI?$AAn?$AAf?$AAo?$AAr?$AAm?$AAa?$AAt?$AAi?$AAo?$AAn?$AA?$AA@ 000000000001cb10 UefiBootManagerLib:BmMisc.obj
+ 0002:00003100 ??_C@_0CG@JANCEMEA@Memory?5?5Previous?5?5Current?5?5?5?5Nex@ 000000000001cb40 UefiBootManagerLib:BmMisc.obj
+ 0002:00003128 ??_C@_0CG@GIAKKOHH@?5Type?5?5?5?5Pages?5?5?5?5?5Pages?5?5?5?5?5Pag@ 000000000001cb68 UefiBootManagerLib:BmMisc.obj
+ 0002:00003150 ??_C@_0CG@DHPBOGIK@?$DN?$DN?$DN?$DN?$DN?$DN?5?5?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?5?5?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?5?5?$DN?$DN?$DN?$DN@ 000000000001cb90 UefiBootManagerLib:BmMisc.obj
+ 0002:00003178 ??_C@_0BM@FKMFCHDC@?5?5?$CF02x?5?5?5?5?$CF08x?5?5?$CF08x?5?5?$CF08x?6?$AA@ 000000000001cbb8 UefiBootManagerLib:BmMisc.obj
+ 0002:00003198 ??_C@_0CK@JOALLLAO@Memory?5Type?5Information?5settings@ 000000000001cbd8 UefiBootManagerLib:BmMisc.obj
+ 0002:000031d0 ??_C@_0ED@IFKDJDAE@Memory?5Type?5Information?5settings@ 000000000001cc10 UefiBootManagerLib:BmMisc.obj
+ 0002:00003214 ??_C@_02DKCKIIND@?$CFs?$AA@ 000000000001cc54 UefiBootManagerLib:BmMisc.obj
+ 0002:00003218 ??_C@_1BA@OEPBAFIJ@?$AAH?$AAe?$AAa?$AAl?$AAt?$AAh?$AAy?$AA?$AA@ 000000000001cc58 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003228 ??_C@_1CA@MECBMJF@?$AAR?$AAe?$AAp?$AAa?$AAi?$AAr?$AA?5?$AAR?$AAe?$AAq?$AAu?$AAi?$AAr?$AAe?$AAd?$AA?$AA@ 000000000001cc68 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003248 ??_C@_1CO@FBBOCFDH@?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AAu?$AAr?$AAa?$AAt?$AAi?$AAo?$AAn?$AA?5?$AAR?$AAe?$AAq?$AAu?$AAi?$AAr?$AAe?$AAd?$AA?$AA@ 000000000001cc88 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003278 ??_C@_1O@GCADHOOL@?$AAF?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?$AA@ 000000000001ccb8 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003288 ??_C@_1CG@MFKNOOC@?$AAR?$AAe?$AAc?$AAo?$AAn?$AAn?$AAe?$AAc?$AAt?$AA?5?$AAR?$AAe?$AAq?$AAu?$AAi?$AAr?$AAe?$AAd?$AA?$AA@ 000000000001ccc8 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:000032b0 ??_C@_1CA@LMENMPKC@?$AAR?$AAe?$AAb?$AAo?$AAo?$AAt?$AA?5?$AAR?$AAe?$AAq?$AAu?$AAi?$AAr?$AAe?$AAd?$AA?$AA@ 000000000001ccf0 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:000032d0 ??_C@_19BALNHBBC@?$AAL?$AAa?$AAn?$AAg?$AA?$AA@ 000000000001cd10 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:000032dc ??_C@_03LKLGDMJI@eng?$AA@ 000000000001cd1c UefiBootManagerLib:BmDriverHealth.obj
+ 0002:000032e0 ??_C@_05JJLPJMLG@en?9US?$AA@ 000000000001cd20 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:000032e8 ??_C@_0BA@PJPGFCCB@Controller?3?5?$CFs?6?$AA@ 000000000001cd28 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:000032f8 ??_C@_1CA@PLAOFDKP@?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAl?$AAe?$AAr?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?6?$AA?$AA@ 000000000001cd38 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003318 ??_C@_1M@IANLBCIB@?$AA?5?$AA?5?$AA?$CF?$AAs?$AA?6?$AA?$AA@ 000000000001cd58 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003324 ??_C@_05LDOEBFOB@?5?5?$CFs?6?$AA@ 000000000001cd64 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003330 ??_C@_0BK@NGFIGLGA@?$FLBDS?$FNRepairNotify?3?5?$CFd?1?$CFd?6?$AA@ 000000000001cd70 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003350 ??_C@_1DE@KPAEMAID@?$AA?$FL?$AAB?$AAD?$AAS?$AA?$FN?$AAR?$AAe?$AAp?$AAa?$AAi?$AAr?$AAN?$AAo?$AAt?$AAi?$AAf?$AAy?$AA?3?$AA?5?$AA?$CF?$AAd?$AA?1?$AA?$CF?$AAd?$AA?6?$AA?$AA@ 000000000001cd90 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003388 ??_C@_0CD@BOOHEENM@DriverHealthHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?5@ 000000000001cdc8 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:000033b0 ??_C@_0FK@NFNFEOGN@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001cdf0 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003410 ??_C@_0CC@KGLGCPCA@?$CKDriverHealthInfo?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 000000000001ce50 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003438 ??_C@_0CE@MFGOGKIA@DriverHealthHandles?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ@ 000000000001ce78 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003460 ??_C@_0P@JFBCBHIC@?$CF02d?3?5?$CFs?5?9?5?$CFs?6?$AA@ 000000000001cea0 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003470 ??_C@_0BH@PIKEIHIM@BmRepairAllControllers?$AA@ 000000000001ceb0 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003488 ??_C@_0CJ@OPCGBII@?$FL?$CFa?3?$CFd?$FN?5Repair?5failed?5after?5?$CFd?5r@ 000000000001cec8 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:000034b8 ??_C@_0DO@HEBFPBBH@?$FLBDS?$FN?5One?5of?5the?5Driver?5Health?5i@ 000000000001cef8 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003500 mBmHealthStatusText 000000000001cf40 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003530 ??_C@_0CE@MDBJFLCA@MenuNumber?5?$DM?5MenuOption?9?$DOMenuNum@ 000000000001cf70 FileExplorerLib:FileExplorer.obj
+ 0002:00003560 ??_C@_0FF@NGAEBIMK@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001cfa0 FileExplorerLib:FileExplorer.obj
+ 0002:000035b8 ??_C@_0BH@GHAKFHML@ToText?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cff8 FileExplorerLib:FileExplorer.obj
+ 0002:000035d0 ??_C@_0BF@CPBCKIGP@Dest?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d010 FileExplorerLib:FileExplorer.obj
+ 0002:000035e8 ??_C@_0BH@FMMHHFDB@TmpStr?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d028 FileExplorerLib:FileExplorer.obj
+ 0002:00003600 ??_C@_0BE@LNIAOOBG@Str?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d040 FileExplorerLib:FileExplorer.obj
+ 0002:00003614 ??_C@_13FPGAJAPJ@?$AA?2?$AA?$AA@ 000000000001d054 FileExplorerLib:FileExplorer.obj
+ 0002:00003618 ??_C@_1CI@JGIGCDAN@?$AAN?$AAO?$AA?5?$AAF?$AAI?$AAL?$AAE?$AA?5?$AAS?$AAY?$AAS?$AAT?$AAE?$AAM?$AA?5?$AAI?$AAN?$AAF?$AAO?$AA?$AA@ 000000000001d058 FileExplorerLib:FileExplorer.obj
+ 0002:00003640 ??_C@_1CA@KOPNEOKK@?$AAN?$AAO?$AA?5?$AAV?$AAO?$AAL?$AAU?$AAM?$AAE?$AA?5?$AAL?$AAA?$AAB?$AAE?$AAL?$AA?$AA@ 000000000001d080 FileExplorerLib:FileExplorer.obj
+ 0002:00003660 ??_C@_0CJ@CDKCBEKC@MenuEntry?9?$DODisplayString?5?$CB?$DN?5?$CI?$CIvo@ 000000000001d0a0 FileExplorerLib:FileExplorer.obj
+ 0002:00003690 ??_C@_1BC@GMOFGFBO@?$AA?$CF?$AAs?$AA?0?$AA?5?$AA?$FL?$AA?$CF?$AAs?$AA?$FN?$AA?$AA@ 000000000001d0d0 FileExplorerLib:FileExplorer.obj
+ 0002:000036a8 ??_C@_19ECGOGJPA@?$AA?$DM?$AA?$CF?$AAs?$AA?$DO?$AA?$AA@ 000000000001d0e8 FileExplorerLib:FileExplorer.obj
+ 0002:000036b8 ??_C@_0CO@BKJCELCP@gFileExplorerPrivate?4FileType?5?$CB?$DN@ 000000000001d0f8 FileExplorerLib:FileExplorer.obj
+ 0002:000036e8 ??_C@_0CF@KMPENEEM@gHiiVendorDevicePath?5?$CB?$DN?5?$CI?$CIvoid?5?$CK@ 000000000001d128 FileExplorerLib:FileExplorer.obj
+ 0002:00003710 ??_C@_0DB@BODFOPAI@gFileExplorerPrivate?4FeHiiHandle@ 000000000001d150 FileExplorerLib:FileExplorer.obj
+ 0002:00003750 ??_C@_0FJ@KJONMDOF@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d190 DeviceManagerUiLib:DeviceManager.obj
+ 0002:000037b0 ??_C@_0BP@KHCJJICF@MacAddressNode?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d1f0 DeviceManagerUiLib:DeviceManager.obj
+ 0002:000037d0 ??_C@_19IEFMLJON@?$AAM?$AAA?$AAC?$AA?3?$AA?$AA@ 000000000001d210 DeviceManagerUiLib:DeviceManager.obj
+ 0002:000037e0 ??_C@_1M@MOFLFCEC@?$AA?$CF?$AAs?$AA?5?$AA?$CF?$AAs?$AA?$AA@ 000000000001d220 DeviceManagerUiLib:DeviceManager.obj
+ 0002:000037f0 ??_C@_0DA@BBLDGEIM@gDeviceManagerPrivate?4HiiHandle?5@ 000000000001d230 DeviceManagerUiLib:DeviceManager.obj
+ 0002:00003820 ??_C@_1BG@DBHBDKIO@?$AAL?$AAe?$AAg?$AAa?$AAc?$AAy?$AA?5?$AAB?$AAE?$AAV?$AA?$AA@ 000000000001d260 BootManagerUiLib:BootManager.obj
+ 0002:00003838 ??_C@_1BM@IAJGCJBG@?$AAL?$AAe?$AAg?$AAa?$AAc?$AAy?$AA?5?$AAF?$AAl?$AAo?$AAp?$AAp?$AAy?$AA?$AA@ 000000000001d278 BootManagerUiLib:BootManager.obj
+ 0002:00003858 ??_C@_1CE@EJMDGBEH@?$AAL?$AAe?$AAg?$AAa?$AAc?$AAy?$AA?5?$AAH?$AAa?$AAr?$AAd?$AA?5?$AAD?$AAr?$AAi?$AAv?$AAe?$AA?$AA@ 000000000001d298 BootManagerUiLib:BootManager.obj
+ 0002:00003880 ??_C@_1BM@EEIPAJPF@?$AAL?$AAe?$AAg?$AAa?$AAc?$AAy?$AA?5?$AAC?$AAD?$AA?5?$AAR?$AAO?$AAM?$AA?$AA@ 000000000001d2c0 BootManagerUiLib:BootManager.obj
+ 0002:000038a0 ??_C@_1BM@CCEDBLBN@?$AAL?$AAe?$AAg?$AAa?$AAc?$AAy?$AA?5?$AAP?$AAC?$AAM?$AAC?$AAI?$AAA?$AA?$AA@ 000000000001d2e0 BootManagerUiLib:BootManager.obj
+ 0002:000038c0 ??_C@_1BG@ENPLCDPC@?$AAL?$AAe?$AAg?$AAa?$AAc?$AAy?$AA?5?$AAU?$AAS?$AAB?$AA?$AA@ 000000000001d300 BootManagerUiLib:BootManager.obj
+ 0002:000038d8 ??_C@_1DA@LLMHHEOA@?$AAL?$AAe?$AAg?$AAa?$AAc?$AAy?$AA?5?$AAE?$AAm?$AAb?$AAe?$AAd?$AAd?$AAe?$AAd?$AA?5?$AAN?$AAe?$AAt?$AAw?$AAo?$AAr?$AAk?$AA?$AA@ 000000000001d318 BootManagerUiLib:BootManager.obj
+ 0002:00003908 ??_C@_1CM@CNECEIDD@?$AAL?$AAe?$AAg?$AAa?$AAc?$AAy?$AA?5?$AAU?$AAn?$AAk?$AAn?$AAo?$AAw?$AAn?$AA?5?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@ 000000000001d348 BootManagerUiLib:BootManager.obj
+ 0002:00003940 ??_C@_0FF@JPPADOAG@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d380 BootManagerUiLib:BootManager.obj
+ 0002:00003998 ??_C@_1BC@HAMKBGJJ@?$AAB?$AAo?$AAo?$AAt?$AA?$CF?$AA0?$AA4?$AAx?$AA?$AA@ 000000000001d3d8 BootManagerUiLib:BootManager.obj
+ 0002:000039b0 ??_C@_0DM@KMLPJPAC@?$FLBootManagerDxe?$FN?5?$DN?$DN?$DN?$DN?5Find?5Legac@ 000000000001d3f0 BootManagerUiLib:BootManager.obj
+ 0002:000039f0 ??_C@_0HO@LAFBCGAG@?$CI?$CI?$CIBBS_BBS_DEVICE_PATH?5?$CK?$CJBootOpt@ 000000000001d430 BootManagerUiLib:BootManager.obj
+ 0002:00003a70 ??_C@_0CO@EBBHKDJM@BootOption?$FLIndex?$FN?4Description?5?$CB?$DN@ 000000000001d4b0 BootManagerUiLib:BootManager.obj
+ 0002:00003aa0 ??_C@_1BO@PNIJGPEG@?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAP?$AAa?$AAt?$AAh?$AA?5?$AA?3?$AA?5?$AA?$AA@ 000000000001d4e0 BootManagerUiLib:BootManager.obj
+ 0002:00003ac0 ??_C@_0BL@DFKODJNK@HelpString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d500 BootManagerUiLib:BootManager.obj
+ 0002:00003ae0 ??_C@_0CO@JHOJDCNH@gBootManagerPrivate?4HiiHandle?5?$CB?$DN@ 000000000001d520 BootManagerUiLib:BootManager.obj
+ 0002:00003b10 mDeviceTypeStr 000000000001d550 BootManagerUiLib:BootManager.obj
+ 0002:00003b50 ??_C@_0GE@NHCKFGHG@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d590 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003bb8 ??_C@_1BK@KPMCGGIO@?$AA?$CG?$AAO?$AAF?$AAF?$AAS?$AAE?$AAT?$AA?$DN?$AA?$CF?$AA0?$AA4?$AAx?$AA?$AA@ 000000000001d5f8 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003bd8 ??_C@_0BN@LKNBJPEL@NewMenuEntry?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d618 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003c00 ??_C@_0FF@OCGNDIFH@BmmData?9?$DOCOMBaudRate?$FLIndex?$FN?5?$DM?5?$CI?$CI@ 000000000001d640 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003c60 ??_C@_0FF@FOFLGLHI@BmmData?9?$DOCOMDataRate?$FLIndex?$FN?5?$DM?5?$CI?$CI@ 000000000001d6a0 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003cc0 ??_C@_0FF@LOCDEPJ@BmmData?9?$DOCOMStopBits?$FLIndex?$FN?5?$DM?5?$CI?$CI@ 000000000001d700 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003d20 ??_C@_0EP@DFIGDHMP@BmmData?9?$DOCOMParity?$FLIndex?$FN?5?$DM?5?$CI?$CIsi@ 000000000001d760 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003d70 ??_C@_0M@FEHBHOOC@Index?5?$DM?5100?$AA@ 000000000001d7b0 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003d80 ??_C@_0CI@LNNDKNDP@Index?5?$CL?5ConsoleInpMenu?4MenuNumbe@ 000000000001d7c0 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003da8 ??_C@_0CI@CDCMIKKB@Index?5?$CL?5ConsoleOutMenu?4MenuNumbe@ 000000000001d7e8 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003dd0 ??_C@_0CI@EDJDHKEG@Index?5?$CL?5ConsoleErrMenu?4MenuNumbe@ 000000000001d810 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003df8 ??_C@_1O@LFMAFHMH@?$AAO?$AAF?$AAF?$AAS?$AAE?$AAT?$AA?$AA@ 000000000001d838 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003e08 ??_C@_1BA@BKONPLFM@?$AAT?$AAi?$AAm?$AAe?$AAo?$AAu?$AAt?$AA?$AA@ 000000000001d848 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003e18 ??_C@_19ENGJFOPL@?$AA?4?$AAe?$AAf?$AAi?$AA?$AA@ 000000000001d858 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003e30 ??_C@_0HG@OENJEKEB@BootOptionMenu?4MenuNumber?5?$DM?$DN?5?$CIsi@ 000000000001d870 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003eb0 ??_C@_0HM@DOJIJBLN@DriverOptionMenu?4MenuNumber?5?$DM?$DN?5?$CI@ 000000000001d8f0 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003f30 ??_C@_0BN@NKFFBBKI@CallbackData?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d970 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003f50 ??_C@_0CP@EGBHBAE@mBmmCallbackInfo?9?$DOBmmHiiHandle?5?$CB@ 000000000001d990 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003f80 ??_C@_0BE@BCCJKDNM@Ptr?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d9c0 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003f98 ??_C@_0CD@EGLDNELE@mStartOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?5@ 000000000001d9d8 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0002:00003fc0 ??_C@_0FP@DBEFCKOP@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001da00 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0002:00004020 ??_C@_0CB@HCEMOFB@mEndOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ@ 000000000001da60 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0002:00004050 ??_C@_0IK@BBJPIDBO@BootOptionMenu?4MenuNumber?5?$DM?$DN?5?$CIsi@ 000000000001da90 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0002:000040e0 ??_C@_0JA@BIOKCMOO@DriverOptionMenu?4MenuNumber?5?$DM?$DN?5?$CI@ 000000000001db20 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0002:00004170 ??_C@_0BN@BJDEDCNB@ConsoleCheck?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001dbb0 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0002:00004190 ??_C@_0BK@EKIGBGH@ModeToken?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001dbd0 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0002:000041b0 ??_C@_17CEOIGCFC@?$AA?5?$AAx?$AA?5?$AA?$AA@ 000000000001dbf0 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0002:000041c0 ??_C@_0FP@MMPEAHGK@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001dc00 BootMaintenanceManagerUiLib:BootOption.obj
+ 0002:00004220 ??_C@_0BN@HMAFKBFF@?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CB?$DN?5NewMenuEntry?$AA@ 000000000001dc60 BootMaintenanceManagerUiLib:BootOption.obj
+ 0002:00004240 ??_C@_0CM@FNOIGNAK@NewLoadContext?9?$DODescription?5?$CB?$DN?5?$CI@ 000000000001dc80 BootMaintenanceManagerUiLib:BootOption.obj
+ 0002:00004270 ??_C@_0CN@PDJEMOOA@NewLoadContext?9?$DOFilePathList?5?$CB?$DN?5@ 000000000001dcb0 BootMaintenanceManagerUiLib:BootOption.obj
+ 0002:000042a0 ??_C@_0CN@NNIEOKOB@NewLoadContext?9?$DOOptionalData?5?$CB?$DN?5@ 000000000001dce0 BootMaintenanceManagerUiLib:BootOption.obj
+ 0002:000042d0 ??_C@_1BA@JFMJKBME@?$AA?$CF?$AAs?$AAO?$AAr?$AAd?$AAe?$AAr?$AA?$AA@ 000000000001dd10 BootMaintenanceManagerUiLib:BootOption.obj
+ 0002:000042e0 ??_C@_0N@OGKCONEE@Option?5?$DN?5?$CFs?6?$AA@ 000000000001dd20 BootMaintenanceManagerUiLib:BootOption.obj
+ 0002:000042f0 ??_C@_1BG@IKNMHBCC@?$AAD?$AAr?$AAi?$AAv?$AAe?$AAr?$AA?$CF?$AA0?$AA4?$AAx?$AA?$AA@ 000000000001dd30 BootMaintenanceManagerUiLib:BootOption.obj
+ 0002:00004310 ??_C@_0GC@EOFDPLMN@NewTerminalContext?9?$DOTerminalType@ 000000000001dd50 BootMaintenanceManagerUiLib:Variable.obj
+ 0002:00004380 ??_C@_0FN@HLHMMNEH@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001ddc0 BootMaintenanceManagerUiLib:Variable.obj
+ 0002:000043e0 ??_C@_0CD@EFLNJIJO@TerminalDevicePath?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?5@ 000000000001de20 BootMaintenanceManagerUiLib:Variable.obj
+ 0002:00004410 ??_C@_0IO@COBKBBMM@BootOptionMenu?4MenuNumber?5?$DM?$DN?5?$CIsi@ 000000000001de50 BootMaintenanceManagerUiLib:Variable.obj
+ 0002:000044a0 ??_C@_0JE@DLLMFIEP@DriverOptionMenu?4MenuNumber?5?$DM?$DN?5?$CI@ 000000000001dee0 BootMaintenanceManagerUiLib:Variable.obj
+ 0002:00004538 mFlowControlValue 000000000001df78 BootMaintenanceManagerUiLib:Data.obj
+ 0002:00004540 TerminalType 000000000001df80 BootMaintenanceManagerUiLib:Data.obj
+ 0002:00004554 mFlowControlType 000000000001df94 BootMaintenanceManagerUiLib:Data.obj
+ 0002:00004560 ??_C@_0GC@GNPNOACA@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001dfa0 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0002:000045c8 ??_C@_0CO@MDCBKLCA@NewConsoleContext?9?$DODevicePath?5?$CB?$DN@ 000000000001e008 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0002:00004600 ??_C@_0HO@FPDAKJLN@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001e040 BootMaintenanceManagerUiLib:BootMaintenanceManagerCustomizedUiSupport.obj
+ 0002:00004680 ??_C@_0FF@PKHNKPL@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001e0c0 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:000046d8 ??_C@_0DI@DAGDPLPG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 000000000001e118 BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0002:00004710 ??_C@_0FE@OAGIONNJ@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001e150 BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0002:00004770 ??_C@_0FG@BHBOFAHM@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001e1b0 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:000047c8 ??_C@_0CO@LECKNDNC@?$CI?$CI?$CIUINTN?$CJBuffer?$CJ?5?$CG?5?$CIsizeof?5?$CIValu@ 000000000001e208 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:000047f8 ??_C@_0CF@LEICOABD@?$CILength?5?$CG?5?$CIsizeof?5?$CIValue?$CJ?5?9?51?$CJ?$CJ?5@ 000000000001e238 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00004820 ??_C@_0CC@JOEHDGKB@DestinationBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 000000000001e260 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00004850 ??_C@_0FI@NCCCHAEB@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001e290 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:000048a8 ??_C@_0BN@MDMCNBCC@SourceBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001e2e8 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:000048c8 ??_C@_0CI@MNELLLEK@?$CB?$CIBuffer?5?$DN?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5Leng@ 000000000001e308 BaseMemoryLibRepStr:IsZeroBufferWrapper.obj
+ 0002:000048f0 ??_C@_0FK@BHBEFCFM@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001e330 BaseMemoryLibRepStr:IsZeroBufferWrapper.obj
+ 0002:00004950 ??_C@_0EN@EIGKPMFG@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001e390 BaseLib:DivU64x32Remainder.obj
+ 0002:000049a0 ??_C@_0BF@NJNGJMPC@List?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001e3e0 BaseLib:LinkedList.obj
+ 0002:000049c0 ??_C@_0EF@PHMLHICE@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001e400 BaseLib:LinkedList.obj
+ 0002:00004a08 ??_C@_0CC@KDLPLAED@List?9?$DOForwardLink?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 000000000001e448 BaseLib:LinkedList.obj
+ 0002:00004a30 ??_C@_0BP@IJJCCMAK@List?9?$DOBackLink?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001e470 BaseLib:LinkedList.obj
+ 0002:00004a50 ??_C@_0BJ@NJABNCDK@ListHead?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001e490 BaseLib:LinkedList.obj
+ 0002:00004a70 ??_C@_0CG@LGIALJFK@InternalBaseLibIsListValid?5?$CIList@ 000000000001e4b0 BaseLib:LinkedList.obj
+ 0002:00004a98 ??_C@_0CC@JLDICICM@InternalBaseLibIsListValid?5?$CIList@ 000000000001e4d8 BaseLib:LinkedList.obj
+ 0002:00004ac0 ??_C@_0BF@NMBJJECB@?$CBIsListEmpty?5?$CIEntry?$CJ?$AA@ 000000000001e500 BaseLib:LinkedList.obj
+ 0002:00004ae0 ??_C@_0EH@BHJPKNIJ@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001e520 UefiLib:UefiNotTiano.obj
+ 0002:00004b28 ??_C@_0CB@LNNMJOKK@ReadyToBootEvent?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ@ 000000000001e568 UefiLib:UefiNotTiano.obj
+ 0002:00004b50 ??_C@_0CH@LOBIJKLE@EFI1?41?5can?8t?5support?5ReadyToBoot@ 000000000001e590 UefiLib:UefiNotTiano.obj
+ 0002:00004b78 ??_C@_0CB@OKGFGBHJ@FvDevicePathNode?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ@ 000000000001e5b8 UefiLib:UefiNotTiano.obj
+ 0002:00004ba0 ??_C@_0EH@BHOPMLMJ@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001e5e0 UefiLib:UefiLibPrint.obj
+ 0002:00004be8 ??_C@_0CC@KPMNJIIF@?$CI?$CIUINTN?$CJFormat?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 000000000001e628 UefiLib:UefiLibPrint.obj
+ 0002:00004c10 ??_C@_0BI@DIKLKBJC@Console?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001e650 UefiLib:UefiLibPrint.obj
+ 0002:00004c28 ??_C@_0BO@DIMHDDCF@TotalSize?5?$DM?$DN?5?$CI?$CIUINT16?$CJ0xFFFF?$CJ?$AA@ 000000000001e668 VariablePolicyHelperLib:VariablePolicyHelperLib.obj
+ 0002:00004c50 ??_C@_0GI@MKMGNAHH@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001e690 VariablePolicyHelperLib:VariablePolicyHelperLib.obj
+ 0003:00000000 gEfiStatusCodeSpecificDataGuid 000000000001e8a0 UiApp:AutoGen.obj
+ 0003:00000010 gEfiDriverHealthProtocolGuid 000000000001e8b0 UiApp:AutoGen.obj
+ 0003:00000020 gEfiMemoryTypeInformationGuid 000000000001e8c0 UiApp:AutoGen.obj
+ 0003:00000030 gEfiGlobalVariableGuid 000000000001e8d0 UiApp:AutoGen.obj
+ 0003:00000040 gEfiStatusCodeRuntimeProtocolGuid 000000000001e8e0 UiApp:AutoGen.obj
+ 0003:00000050 gEfiDiskInfoProtocolGuid 000000000001e8f0 UiApp:AutoGen.obj
+ 0003:00000060 gEfiIfrTianoGuid 000000000001e900 UiApp:AutoGen.obj
+ 0003:00000070 gEfiRamDiskProtocolGuid 000000000001e910 UiApp:AutoGen.obj
+ 0003:00000080 gEfiEventReadyToBootGuid 000000000001e920 UiApp:AutoGen.obj
+ 0003:00000090 gEfiDiskInfoScsiInterfaceGuid 000000000001e930 UiApp:AutoGen.obj
+ 0003:000000a0 _gPcd_BinaryPatch_PcdSetupConOutColumn 000000000001e940 UiApp:AutoGen.obj
+ 0003:000000a8 gEfiComponentName2ProtocolGuid 000000000001e948 UiApp:AutoGen.obj
+ 0003:000000b8 gEfiDiskInfoIdeInterfaceGuid 000000000001e958 UiApp:AutoGen.obj
+ 0003:000000c8 gPcdProtocolGuid 000000000001e968 UiApp:AutoGen.obj
+ 0003:000000d8 gEfiSimpleTextOutProtocolGuid 000000000001e978 UiApp:AutoGen.obj
+ 0003:000000e8 gEfiLoadFileProtocolGuid 000000000001e988 UiApp:AutoGen.obj
+ 0003:000000f8 gEfiDiskInfoSdMmcInterfaceGuid 000000000001e998 UiApp:AutoGen.obj
+ 0003:00000108 gEfiHiiPlatformSetupFormsetGuid 000000000001e9a8 UiApp:AutoGen.obj
+ 0003:00000118 gEfiSerialIoProtocolGuid 000000000001e9b8 UiApp:AutoGen.obj
+ 0003:00000128 gEdkiiPlatformBootManagerProtocolGuid 000000000001e9c8 UiApp:AutoGen.obj
+ 0003:00000138 gEfiFileInfoGuid 000000000001e9d8 UiApp:AutoGen.obj
+ 0003:00000148 gEfiNvmExpressPassThruProtocolGuid 000000000001e9e8 UiApp:AutoGen.obj
+ 0003:00000158 gEfiDevicePathProtocolGuid 000000000001e9f8 UiApp:AutoGen.obj
+ 0003:00000168 gEfiPciIoProtocolGuid 000000000001ea08 UiApp:AutoGen.obj
+ 0003:00000178 gEfiLoadedImageProtocolGuid 000000000001ea18 UiApp:AutoGen.obj
+ 0003:00000188 gEfiFirmwareVolume2ProtocolGuid 000000000001ea28 UiApp:AutoGen.obj
+ 0003:00000198 gEfiSmbiosProtocolGuid 000000000001ea38 UiApp:AutoGen.obj
+ 0003:000001b0 UiAppStrings 000000000001ea50 UiApp:AutoGen.obj
+ 0003:000005d8 gEfiDevicePathToTextProtocolGuid 000000000001ee78 UiApp:AutoGen.obj
+ 0003:000005e8 gEfiHiiConfigRoutingProtocolGuid 000000000001ee88 UiApp:AutoGen.obj
+ 0003:000005f8 gEfiDiskInfoAhciInterfaceGuid 000000000001ee98 UiApp:AutoGen.obj
+ 0003:00000608 gEfiSimpleTextInputExProtocolGuid 000000000001eea8 UiApp:AutoGen.obj
+ 0003:00000618 gEfiSimpleTextInProtocolGuid 000000000001eeb8 UiApp:AutoGen.obj
+ 0003:00000628 gEfiUsbIoProtocolGuid 000000000001eec8 UiApp:AutoGen.obj
+ 0003:00000638 gEfiHiiImageProtocolGuid 000000000001eed8 UiApp:AutoGen.obj
+ 0003:00000648 gEfiDevicePathUtilitiesProtocolGuid 000000000001eee8 UiApp:AutoGen.obj
+ 0003:00000658 gEfiGraphicsOutputProtocolGuid 000000000001eef8 UiApp:AutoGen.obj
+ 0003:00000668 gEfiHiiDatabaseProtocolGuid 000000000001ef08 UiApp:AutoGen.obj
+ 0003:00000678 gEfiSimpleFileSystemProtocolGuid 000000000001ef18 UiApp:AutoGen.obj
+ 0003:00000688 gEfiHiiStringProtocolGuid 000000000001ef28 UiApp:AutoGen.obj
+ 0003:00000698 gEfiIfrFrontPageGuid 000000000001ef38 UiApp:AutoGen.obj
+ 0003:000006a8 gEfiHiiConfigAccessProtocolGuid 000000000001ef48 UiApp:AutoGen.obj
+ 0003:000006b8 gEfiHobListGuid 000000000001ef58 UiApp:AutoGen.obj
+ 0003:000006c8 gEfiFileSystemVolumeLabelInfoIdGuid 000000000001ef68 UiApp:AutoGen.obj
+ 0003:000006d8 gEdkiiStatusCodeDataTypeVariableGuid 000000000001ef78 UiApp:AutoGen.obj
+ 0003:000006e8 gEfiBootLogoProtocolGuid 000000000001ef88 UiApp:AutoGen.obj
+ 0003:000006f8 gEfiFormBrowser2ProtocolGuid 000000000001ef98 UiApp:AutoGen.obj
+ 0003:00000708 gEfiComponentNameProtocolGuid 000000000001efa8 UiApp:AutoGen.obj
+ 0003:00000718 gEfiBlockIoProtocolGuid 000000000001efb8 UiApp:AutoGen.obj
+ 0003:00000728 gEfiDxeServicesTableGuid 000000000001efc8 UiApp:AutoGen.obj
+ 0003:00000738 gEfiIfrBootMaintenanceGuid 000000000001efd8 UiApp:AutoGen.obj
+ 0003:00000748 gEdkiiFormBrowserEx2ProtocolGuid 000000000001efe8 UiApp:AutoGen.obj
+ 0003:00000758 gEfiCallerIdGuid 000000000001eff8 UiApp:AutoGen.obj
+ 0003:00000768 gEdkiiVariablePolicyProtocolGuid 000000000001f008 UiApp:AutoGen.obj
+ 0003:00000778 gEfiHiiFontProtocolGuid 000000000001f018 UiApp:AutoGen.obj
+ 0003:00000788 _gPcd_BinaryPatch_PcdSetupConOutRow 000000000001f028 UiApp:AutoGen.obj
+ 0003:00000790 gFrontPagePrivate 000000000001f030 UiApp:FrontPage.obj
+ 0003:000007c8 mFrontPageHiiVendorDevicePath 000000000001f068 UiApp:FrontPage.obj
+ 0003:000007e0 mFrontPageGuid 000000000001f080 UiApp:FrontPage.obj
+ 0003:000007f0 FrontPageVfrBin 000000000001f090 UiApp:FrontPageVfr.obj
+ 0003:00000940 mFontBin 000000000001f1e0 UiApp:String.obj
+ 0003:000016e0 mUiStringPackGuid 000000000001ff80 UiApp:String.obj
+ 0003:000016f0 mFontPackageGuid 000000000001ff90 UiApp:String.obj
+ 0003:00001700 mBmHardDriveBootVariableGuid 000000000001ffa0 UefiBootManagerLib:BmBoot.obj
+ 0003:00001710 mBmAutoCreateBootOptionGuid 000000000001ffb0 UefiBootManagerLib:BmBoot.obj
+ 0003:00001720 mPlatformBootDescriptionHandlers 000000000001ffc0 UefiBootManagerLib:BmBootDescription.obj
+ 0003:00001730 mBmUefiPrefix 000000000001ffd0 UefiBootManagerLib:BmBootDescription.obj
+ 0003:00001740 mBmHotkeyList 000000000001ffe0 UefiBootManagerLib:BmHotkey.obj
+ 0003:00001750 mBmHotkeyBootOption 000000000001fff0 UefiBootManagerLib:BmHotkey.obj
+ 0003:000017a8 mBmHotkeyLock 0000000000020048 UefiBootManagerLib:BmHotkey.obj
+ 0003:000017c0 FeHiiVendorDevicePath 0000000000020060 FileExplorerLib:FileExplorer.obj
+ 0003:000017d8 FileExplorerGuid 0000000000020078 FileExplorerLib:FileExplorer.obj
+ 0003:000017e8 mNewFolderQuestionId 0000000000020088 FileExplorerLib:FileExplorer.obj
+ 0003:000017f0 gFileExplorerPrivate 0000000000020090 FileExplorerLib:FileExplorer.obj
+ 0003:00001848 mNewFileQuestionId 00000000000200e8 FileExplorerLib:FileExplorer.obj
+ 0003:00001850 mFsOptionMenu 00000000000200f0 FileExplorerLib:FileExplorer.obj
+ 0003:00001880 FileExplorerVfrBin 0000000000020120 FileExplorerLib:FileExplorerVfr.obj
+ 0003:00001980 FileExplorerLibStrings 0000000000020220 FileExplorerLib:AutoGen.obj
+ 0003:000021a0 mDeviceManagerHiiVendorDevicePath 0000000000020a40 DeviceManagerUiLib:DeviceManager.obj
+ 0003:000021b8 mDeviceManagerGuid 0000000000020a58 DeviceManagerUiLib:DeviceManager.obj
+ 0003:000021c8 gDeviceManagerPrivate 0000000000020a68 DeviceManagerUiLib:DeviceManager.obj
+ 0003:00002200 DeviceManagerVfrBin 0000000000020aa0 DeviceManagerUiLib:DeviceManagerVfr.obj
+ 0003:00002330 DeviceManagerUiLibStrings 0000000000020bd0 DeviceManagerUiLib:AutoGen.obj
+ 0003:000027e8 mBootManagerGuid 0000000000021088 BootManagerUiLib:BootManager.obj
+ 0003:000027f8 gBootManagerPrivate 0000000000021098 BootManagerUiLib:BootManager.obj
+ 0003:00002828 mBootManagerHiiVendorDevicePath 00000000000210c8 BootManagerUiLib:BootManager.obj
+ 0003:00002840 BootManagerUiLibStrings 00000000000210e0 BootManagerUiLib:AutoGen.obj
+ 0003:00002c80 BootManagerVfrBin 0000000000021520 BootManagerUiLib:BootManagerVfr.obj
+ 0003:00002d40 mBootMaintGuid 00000000000215e0 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00002d50 gBootMaintenancePrivate 00000000000215f0 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:000049b0 mBmmCallbackInfo 0000000000023250 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:000049c0 mBootMaintStorageName 0000000000023260 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:000049d0 mBmmHiiVendorDevicePath 0000000000023270 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:000049f0 DriverMenu 0000000000023290 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004a10 ConsoleInpMenu 00000000000232b0 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004a30 BaudRateList 00000000000232d0 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004b60 ConsoleOutMenu 0000000000023400 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004b80 DriverOptionMenu 0000000000023420 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004ba0 StopBitsList 0000000000023440 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004bd0 ParityList 0000000000023470 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004c20 ConsoleErrMenu 00000000000234c0 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004c40 DataBitsList 00000000000234e0 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004c80 BootOptionMenu 0000000000023520 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004ca0 TerminalMenu 0000000000023540 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004cc0 TerminalTypeGuid 0000000000023560 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004d50 BootMaintenanceManagerBin 00000000000235f0 BootMaintenanceManagerUiLib:BootMaintenanceManager.obj
+ 0003:000052f0 BootMaintenanceManagerUiLibStrings 0000000000023b90 BootMaintenanceManagerUiLib:AutoGen.obj
+ 0003:00006ec0 mSetupTextModeRow 0000000000025760 UiApp:FrontPage.obj
+ 0003:00006ec4 mBootVerticalResolution 0000000000025764 UiApp:FrontPage.obj
+ 0003:00006ec8 mBootTextModeColumn 0000000000025768 UiApp:FrontPage.obj
+ 0003:00006ecc mSetupTextModeColumn 000000000002576c UiApp:FrontPage.obj
+ 0003:00006ed0 mBootTextModeRow 0000000000025770 UiApp:FrontPage.obj
+ 0003:00006ed4 mModeInitialized 0000000000025774 UiApp:FrontPage.obj
+ 0003:00006ed5 mResetRequired 0000000000025775 UiApp:FrontPage.obj
+ 0003:00006ed8 mSetupHorizontalResolution 0000000000025778 UiApp:FrontPage.obj
+ 0003:00006edc mBootHorizontalResolution 000000000002577c UiApp:FrontPage.obj
+ 0003:00006ee0 mSetupVerticalResolution 0000000000025780 UiApp:FrontPage.obj
+ 0003:00006ee8 mPcd 0000000000025788 DxePcdLib:DxePcdLib.obj
+ 0003:00006ef8 gST 0000000000025798 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00006f00 gImageHandle 00000000000257a0 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00006f08 gBS 00000000000257a8 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00006f10 gRT 00000000000257b0 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0003:00006f18 mDevicePathLibDevicePathToText 00000000000257b8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0003:00006f20 mDevicePathLibDevicePathUtilities 00000000000257c0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0003:00006f28 mHobList 00000000000257c8 DxeHobLib:HobLib.obj
+ 0003:00006f30 gHiiDatabase 00000000000257d0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00006f38 gHiiString 00000000000257d8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00006f40 gHiiFont 00000000000257e0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00006f48 gHiiConfigRouting 00000000000257e8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00006f50 gHiiImage 00000000000257f0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00006f58 gDS 00000000000257f8 DxeServicesTableLib:DxeServicesTableLib.obj
+ 0003:00006f60 mUefiFormBrowser2 0000000000025800 UefiHiiLib:HiiLib.obj
+ 0003:00006f68 mReportStatusCodeLibStatusCodeProtocol 0000000000025808 DxeReportStatusCodeLib:ReportStatusCodeLib.obj
+ 0003:00006f70 mBmLegacyBoot 0000000000025810 UefiBootManagerLib:BmBoot.obj
+ 0003:00006f78 mRamDisk 0000000000025818 UefiBootManagerLib:BmBoot.obj
+ 0003:00006f80 mBmRefreshLegacyBootOption 0000000000025820 UefiBootManagerLib:BmBoot.obj
+ 0003:00006f88 mBmHotkeyTriggered 0000000000025828 UefiBootManagerLib:BmHotkey.obj
+ 0003:00006f90 mLibEndOpCodeHandle 0000000000025830 FileExplorerLib:FileExplorer.obj
+ 0003:00006f98 mLibStartLabel 0000000000025838 FileExplorerLib:FileExplorer.obj
+ 0003:00006fa0 mLibStartOpCodeHandle 0000000000025840 FileExplorerLib:FileExplorer.obj
+ 0003:00006fa8 mLibEndLabel 0000000000025848 FileExplorerLib:FileExplorer.obj
+ 0003:00006fb0 mBmSetupTextModeRow 0000000000025850 BootManagerUiLib:BootManager.obj
+ 0003:00006fb4 mBmBootTextModeRow 0000000000025854 BootManagerUiLib:BootManager.obj
+ 0003:00006fb8 mBmModeInitialized 0000000000025858 BootManagerUiLib:BootManager.obj
+ 0003:00006fbc mBmBootHorizontalResolution 000000000002585c BootManagerUiLib:BootManager.obj
+ 0003:00006fc0 mBmSetupVerticalResolution 0000000000025860 BootManagerUiLib:BootManager.obj
+ 0003:00006fc4 mBmSetupHorizontalResolution 0000000000025864 BootManagerUiLib:BootManager.obj
+ 0003:00006fc8 mBmBootVerticalResolution 0000000000025868 BootManagerUiLib:BootManager.obj
+ 0003:00006fcc mBmBootTextModeColumn 000000000002586c BootManagerUiLib:BootManager.obj
+ 0003:00006fd0 mBmSetupTextModeColumn 0000000000025870 BootManagerUiLib:BootManager.obj
+ 0003:00006fd4 mBmmSetupVerticalResolution 0000000000025874 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00006fd8 mFirstEnterBMMForm 0000000000025878 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00006fdc mBmmBootHorizontalResolution 000000000002587c BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00006fe0 mBmmModeInitialized 0000000000025880 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00006fe4 mBmmSetupTextModeRow 0000000000025884 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00006fe8 mBmmBootTextModeRow 0000000000025888 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00006fec mBmmSetupHorizontalResolution 000000000002588c BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00006ff0 mAllMenuInit 0000000000025890 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00006ff4 mBmmBootVerticalResolution 0000000000025894 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00006ff8 mBmmSetupTextModeColumn 0000000000025898 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00006ffc mBmmBootTextModeColumn 000000000002589c BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00007000 mStartOpCodeHandle 00000000000258a0 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00007008 mEndOpCodeHandle 00000000000258a8 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00007010 mStartLabel 00000000000258b0 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00007018 mEndLabel 00000000000258b8 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00007028 mKeyInput 00000000000258c8 <common>
+ 0003:00007030 mSelectedMacAddrString 00000000000258d0 <common>
+ 0003:00007040 mMacDeviceList 00000000000258e0 <common>
+ 0003:00007058 mQuestionIdUpdate 00000000000258f8 <common>
+ 0003:00007060 mNewFolderName 0000000000025900 <common>
+ 0003:00007088 gHiiVendorDevicePath 0000000000025928 <common>
+ 0003:000070a0 mNewFileName 0000000000025940 <common>
+ 0003:000070c8 gLanguageToken 0000000000025968 <common>
+ 0003:000070d0 gLanguageString 0000000000025970 <common>
+ 0003:000070d8 gCurrentLanguageIndex 0000000000025978 <common>
+ 0003:000070e0 gHiiDriverList 0000000000025980 <common>
+ 0003:000070e8 gStringPackHandle 0000000000025988 <common>
+ 0003:000070f0 gFormBrowser2 0000000000025990 <common>
+ 0003:000070f8 mLanguageString 0000000000025998 <common>
+
+ entry point at 0001:00000348
+
+ Static symbols
+
+ 0001:0000001a InternalMemCopyMem.0 00000000000002da BaseMemoryLibRepStr:CopyMem.obj
+ 0001:0000002a @CopyBackward 00000000000002ea BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000033 @CopyBytes 00000000000002f3 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:000000e5 @ReturnFalse 00000000000003a5 BaseMemoryLibRepStr:IsZeroBuffer.obj
+ 0001:0000017a @UseRepIo 000000000000043a BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000017c @SevNoRepIo_Done 000000000000043c BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000194 @IoReadFifo8_NoRep 0000000000000454 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000196 @IoReadFifo8_Loop 0000000000000456 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000019e @IoReadFifo8_Done 000000000000045e BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001b7 @IoReadFifo16_NoRep 0000000000000477 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001b9 @IoReadFifo16_Loop 0000000000000479 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001c4 @IoReadFifo16_Done 0000000000000484 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001dc @IoReadFifo32_NoRep 000000000000049c BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001de @IoReadFifo32_Loop 000000000000049e BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001e7 @IoReadFifo32_Done 00000000000004a7 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001ff @IoWriteFifo8_NoRep 00000000000004bf BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000201 @IoWriteFifo8_Loop 00000000000004c1 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000209 @IoWriteFifo8_Done 00000000000004c9 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000222 @IoWriteFifo16_NoRep 00000000000004e2 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000224 @IoWriteFifo16_Loop 00000000000004e4 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000022f @IoWriteFifo16_Done 00000000000004ef BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000247 @IoWriteFifo32_NoRep 0000000000000507 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000249 @IoWriteFifo32_Loop 0000000000000509 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000252 @IoWriteFifo32_Done 0000000000000512 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000002be TdVmCall.no_return_data 000000000000057e BaseLib:TdVmcall.obj
+ 0001:0000033b TdCall.exit 00000000000005fb BaseLib:TdCall.obj
+ 0003:00006ef0 mDebugIoPortChecked 0000000000025790 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0003:00006ef1 mDebugIoPortFound 0000000000025791 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0003:00007020 gHiiDriverList 00000000000258c0 BootMaintenanceManagerUiLib:BootMaintenanceManagerCustomizedUiSupport.obj
+ 0004:00000000 $pdata$_ModuleEntryPoint 00000000000259a0 UefiApplicationEntryPoint:ApplicationEntryPoint.obj
+ 0004:0000000c $pdata$ProcessLibraryConstructorList 00000000000259ac UiApp:AutoGen.obj
+ 0004:00000018 $pdata$ProcessLibraryDestructorList 00000000000259b8 UiApp:AutoGen.obj
+ 0004:00000024 $pdata$FrontPageCallback 00000000000259c4 UiApp:FrontPage.obj
+ 0004:00000030 $pdata$UpdateFrontPageForm 00000000000259d0 UiApp:FrontPage.obj
+ 0004:0000003c $pdata$ConvertProcessorToString 00000000000259dc UiApp:FrontPage.obj
+ 0004:00000048 $pdata$GetOptionalStringByIndex 00000000000259e8 UiApp:FrontPage.obj
+ 0004:00000054 $pdata$UpdateFrontPageBannerStrings 00000000000259f4 UiApp:FrontPage.obj
+ 0004:00000060 $pdata$UiSetConsoleMode 0000000000025a00 UiApp:FrontPage.obj
+ 0004:0000006c $pdata$InitializeUserInterface 0000000000025a0c UiApp:FrontPage.obj
+ 0004:00000078 $pdata$UiEntry 0000000000025a18 UiApp:FrontPage.obj
+ 0004:00000084 $pdata$UiCustomizeFrontPageBanner 0000000000025a24 UiApp:FrontPageCustomizedUi.obj
+ 0004:00000090 $pdata$GetNextLanguage 0000000000025a30 UiApp:FrontPageCustomizedUiSupport.obj
+ 0004:0000009c $pdata$LanguageChangeHandler 0000000000025a3c UiApp:FrontPageCustomizedUiSupport.obj
+ 0004:000000a8 $pdata$UiCreateLanguageMenu 0000000000025a48 UiApp:FrontPageCustomizedUiSupport.obj
+ 0004:000000b4 $pdata$UiListThirdPartyDrivers 0000000000025a54 UiApp:FrontPageCustomizedUiSupport.obj
+ 0004:000000c0 $pdata$GetPcdProtocol 0000000000025a60 DxePcdLib:DxePcdLib.obj
+ 0004:000000cc $pdata$LibPcdSet32S 0000000000025a6c DxePcdLib:DxePcdLib.obj
+ 0004:000000d8 $pdata$CopyMem 0000000000025a78 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0004:000000e4 $pdata$CopyGuid 0000000000025a84 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0004:000000f0 $pdata$CompareGuid 0000000000025a90 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0004:000000fc $pdata$StrnLenS 0000000000025a9c BaseLib:SafeString.obj
+ 0004:00000108 $pdata$StrCpyS 0000000000025aa8 BaseLib:SafeString.obj
+ 0004:00000114 $pdata$StrnCpyS 0000000000025ab4 BaseLib:SafeString.obj
+ 0004:00000120 $pdata$StrCatS 0000000000025ac0 BaseLib:SafeString.obj
+ 0004:0000012c $pdata$StrnCatS 0000000000025acc BaseLib:SafeString.obj
+ 0004:00000138 $pdata$AsciiStrToUnicodeStrS 0000000000025ad8 BaseLib:SafeString.obj
+ 0004:00000144 $pdata$StrLen 0000000000025ae4 BaseLib:String.obj
+ 0004:00000150 $pdata$StrCmp 0000000000025af0 BaseLib:String.obj
+ 0004:0000015c $pdata$StrnCmp 0000000000025afc BaseLib:String.obj
+ 0004:00000168 $pdata$StrStr 0000000000025b08 BaseLib:String.obj
+ 0004:00000174 $pdata$AsciiStrLen 0000000000025b14 BaseLib:String.obj
+ 0004:00000180 $pdata$AsciiStrnCmp 0000000000025b20 BaseLib:String.obj
+ 0004:0000018c $pdata$ReadUnaligned16 0000000000025b2c BaseLib:Unaligned.obj
+ 0004:00000198 $pdata$ReadUnaligned32 0000000000025b38 BaseLib:Unaligned.obj
+ 0004:000001a4 $pdata$ReadUnaligned64 0000000000025b44 BaseLib:Unaligned.obj
+ 0004:000001b0 $pdata$UnicodeVSPrint 0000000000025b50 BasePrintLib:PrintLib.obj
+ 0004:000001bc $pdata$UnicodeSPrint 0000000000025b5c BasePrintLib:PrintLib.obj
+ 0004:000001c8 $pdata$UnicodeValueToStringS 0000000000025b68 BasePrintLib:PrintLib.obj
+ 0004:000001d4 $pdata$AsciiSPrint 0000000000025b74 BasePrintLib:PrintLib.obj
+ 0004:000001e0 $pdata$BasePrintLibValueToString 0000000000025b80 BasePrintLib:PrintLibInternal.obj
+ 0004:000001ec $pdata$BasePrintLibConvertValueToStringS 0000000000025b8c BasePrintLib:PrintLibInternal.obj
+ 0004:000001f8 $pdata$BasePrintLibSPrintMarker 0000000000025b98 BasePrintLib:PrintLibInternal.obj
+ 0004:00000204 $pdata$BasePrintLibSPrint 0000000000025ba4 BasePrintLib:PrintLibInternal.obj
+ 0004:00000210 $pdata$DebugPrint 0000000000025bb0 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:0000021c $pdata$DebugPrintMarker 0000000000025bbc PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000228 $pdata$DebugAssert 0000000000025bc8 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000234 $pdata$InternalAllocatePages 0000000000025bd4 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000240 $pdata$FreePages 0000000000025be0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:0000024c $pdata$InternalAllocatePool 0000000000025bec UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000258 $pdata$AllocateZeroPool 0000000000025bf8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000264 $pdata$InternalAllocateCopyPool 0000000000025c04 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000270 $pdata$InternalReallocatePool 0000000000025c10 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:0000027c $pdata$FreePool 0000000000025c1c UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000288 $pdata$IsDevicePathValid 0000000000025c28 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000294 $pdata$DevicePathType 0000000000025c34 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002a0 $pdata$DevicePathSubType 0000000000025c40 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002ac $pdata$DevicePathNodeLength 0000000000025c4c UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002b8 $pdata$NextDevicePathNode 0000000000025c58 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002c4 $pdata$IsDevicePathEndType 0000000000025c64 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002d0 $pdata$IsDevicePathEnd 0000000000025c70 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002dc $pdata$SetDevicePathNodeLength 0000000000025c7c UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002e8 $pdata$SetDevicePathEndNode 0000000000025c88 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002f4 $pdata$GetNextDevicePathInstance 0000000000025c94 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000300 $pdata$DevicePathFromHandle 0000000000025ca0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:0000030c $pdata$FileDevicePath 0000000000025cac UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000318 $pdata$UefiDevicePathLibLocateProtocol 0000000000025cb8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000324 $pdata$ConvertDevicePathToText 0000000000025cc4 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000330 $pdata$EfiGetSystemConfigurationTable 0000000000025cd0 UefiLib:UefiLib.obj
+ 0004:0000033c $pdata$EfiAcquireLock 0000000000025cdc UefiLib:UefiLib.obj
+ 0004:00000348 $pdata$EfiReleaseLock 0000000000025ce8 UefiLib:UefiLib.obj
+ 0004:00000354 $pdata$GetVariable2 0000000000025cf4 UefiLib:UefiLib.obj
+ 0004:00000360 $pdata$GetBestLanguage 0000000000025d00 UefiLib:UefiLib.obj
+ 0004:0000036c $pdata$UefiLibGetStringWidth 0000000000025d0c UefiLib:Console.obj
+ 0004:00000378 $pdata$CreatePopUp 0000000000025d18 UefiLib:Console.obj
+ 0004:00000384 $pdata$GetHobList 0000000000025d24 DxeHobLib:HobLib.obj
+ 0004:00000390 $pdata$GetNextHob 0000000000025d30 DxeHobLib:HobLib.obj
+ 0004:0000039c $pdata$HiiSetString 0000000000025d3c UefiHiiLib:HiiString.obj
+ 0004:000003a8 $pdata$HiiGetStringEx 0000000000025d48 UefiHiiLib:HiiString.obj
+ 0004:000003b4 $pdata$HiiAddPackages 0000000000025d54 UefiHiiLib:HiiLib.obj
+ 0004:000003c0 $pdata$HiiRemovePackages 0000000000025d60 UefiHiiLib:HiiLib.obj
+ 0004:000003cc $pdata$HiiGetHiiHandles 0000000000025d6c UefiHiiLib:HiiLib.obj
+ 0004:000003d8 $pdata$HiiGetFormSetFromHiiHandle 0000000000025d78 UefiHiiLib:HiiLib.obj
+ 0004:000003e4 $pdata$InternalHiiBrowserCallback 0000000000025d84 UefiHiiLib:HiiLib.obj
+ 0004:000003f0 $pdata$HiiConstructConfigHdr 0000000000025d90 UefiHiiLib:HiiLib.obj
+ 0004:000003fc $pdata$InternalHiiCompareSubString 0000000000025d9c UefiHiiLib:HiiLib.obj
+ 0004:00000408 $pdata$HiiIsConfigHdrMatch 0000000000025da8 UefiHiiLib:HiiLib.obj
+ 0004:00000414 $pdata$HiiGetBrowserData 0000000000025db4 UefiHiiLib:HiiLib.obj
+ 0004:00000420 $pdata$HiiSetBrowserData 0000000000025dc0 UefiHiiLib:HiiLib.obj
+ 0004:0000042c $pdata$HiiAllocateOpCodeHandle 0000000000025dcc UefiHiiLib:HiiLib.obj
+ 0004:00000438 $pdata$HiiFreeOpCodeHandle 0000000000025dd8 UefiHiiLib:HiiLib.obj
+ 0004:00000444 $pdata$InternalHiiGrowOpCodeHandle 0000000000025de4 UefiHiiLib:HiiLib.obj
+ 0004:00000450 $pdata$InternalHiiCreateOpCodeExtended 0000000000025df0 UefiHiiLib:HiiLib.obj
+ 0004:0000045c $pdata$InternalHiiAppendOpCodes 0000000000025dfc UefiHiiLib:HiiLib.obj
+ 0004:00000468 $pdata$HiiCreateEndOpCode 0000000000025e08 UefiHiiLib:HiiLib.obj
+ 0004:00000474 $pdata$HiiCreateOneOfOptionOpCode 0000000000025e14 UefiHiiLib:HiiLib.obj
+ 0004:00000480 $pdata$HiiCreateGuidOpCode 0000000000025e20 UefiHiiLib:HiiLib.obj
+ 0004:0000048c $pdata$HiiCreateActionOpCode 0000000000025e2c UefiHiiLib:HiiLib.obj
+ 0004:00000498 $pdata$HiiCreateSubTitleOpCode 0000000000025e38 UefiHiiLib:HiiLib.obj
+ 0004:000004a4 $pdata$HiiCreateGotoOpCode 0000000000025e44 UefiHiiLib:HiiLib.obj
+ 0004:000004b0 $pdata$HiiCreateGotoExOpCode 0000000000025e50 UefiHiiLib:HiiLib.obj
+ 0004:000004bc $pdata$HiiCreateCheckBoxOpCode 0000000000025e5c UefiHiiLib:HiiLib.obj
+ 0004:000004c8 $pdata$HiiCreateStringOpCode 0000000000025e68 UefiHiiLib:HiiLib.obj
+ 0004:000004d4 $pdata$HiiCreateOneOfOpCode 0000000000025e74 UefiHiiLib:HiiLib.obj
+ 0004:000004e0 $pdata$InternalHiiUpdateFormPackageData 0000000000025e80 UefiHiiLib:HiiLib.obj
+ 0004:000004ec $pdata$HiiUpdateForm 0000000000025e8c UefiHiiLib:HiiLib.obj
+ 0004:000004f8 $pdata$HiiGetSupportedLanguages 0000000000025e98 UefiHiiLib:HiiLanguage.obj
+ 0004:00000504 $pdata$InternalReportStatusCode 0000000000025ea4 DxeReportStatusCodeLib:ReportStatusCodeLib.obj
+ 0004:00000510 $pdata$ReportStatusCodeEx 0000000000025eb0 DxeReportStatusCodeLib:ReportStatusCodeLib.obj
+ 0004:0000051c $pdata$EfiBootManagerConnectAll 0000000000025ebc UefiBootManagerLib:BmConnect.obj
+ 0004:00000528 $pdata$EfiBootManagerConnectDevicePath 0000000000025ec8 UefiBootManagerLib:BmConnect.obj
+ 0004:00000534 $pdata$BmConnectUsbShortFormDevicePath 0000000000025ed4 UefiBootManagerLib:BmConnect.obj
+ 0004:00000540 $pdata$BmFindBootOptionInVariable 0000000000025ee0 UefiBootManagerLib:BmBoot.obj
+ 0004:0000054c $pdata$BmAdjustFvFilePath 0000000000025eec UefiBootManagerLib:BmBoot.obj
+ 0004:00000558 $pdata$BmMatchUsbClass 0000000000025ef8 UefiBootManagerLib:BmBoot.obj
+ 0004:00000564 $pdata$BmMatchUsbWwid 0000000000025f04 UefiBootManagerLib:BmBoot.obj
+ 0004:00000570 $pdata$BmExpandUsbDevicePath 0000000000025f10 UefiBootManagerLib:BmBoot.obj
+ 0004:0000057c $pdata$BmExpandFileDevicePath 0000000000025f1c UefiBootManagerLib:BmBoot.obj
+ 0004:00000588 $pdata$BmExpandUriDevicePath 0000000000025f28 UefiBootManagerLib:BmBoot.obj
+ 0004:00000594 $pdata$BmCachePartitionDevicePath 0000000000025f34 UefiBootManagerLib:BmBoot.obj
+ 0004:000005a0 $pdata$BmExpandPartitionDevicePath 0000000000025f40 UefiBootManagerLib:BmBoot.obj
+ 0004:000005ac $pdata$BmExpandMediaDevicePath 0000000000025f4c UefiBootManagerLib:BmBoot.obj
+ 0004:000005b8 $pdata$BmExpandNetworkFileSystem 0000000000025f58 UefiBootManagerLib:BmBoot.obj
+ 0004:000005c4 $pdata$BmGetRamDiskDevicePath 0000000000025f64 UefiBootManagerLib:BmBoot.obj
+ 0004:000005d0 $pdata$BmDestroyRamDisk 0000000000025f70 UefiBootManagerLib:BmBoot.obj
+ 0004:000005dc $pdata$BmExpandLoadFile 0000000000025f7c UefiBootManagerLib:BmBoot.obj
+ 0004:000005e8 $pdata$BmExpandLoadFiles 0000000000025f88 UefiBootManagerLib:BmBoot.obj
+ 0004:000005f4 $pdata$BmGetNextLoadOptionDevicePath 0000000000025f94 UefiBootManagerLib:BmBoot.obj
+ 0004:00000600 $pdata$BmIsBootManagerMenuFilePath 0000000000025fa0 UefiBootManagerLib:BmBoot.obj
+ 0004:0000060c $pdata$BmReportLoadFailure 0000000000025fac UefiBootManagerLib:BmBoot.obj
+ 0004:00000618 $pdata$EfiBootManagerBoot 0000000000025fb8 UefiBootManagerLib:BmBoot.obj
+ 0004:00000624 $pdata$BmMatchPartitionDevicePathNode 0000000000025fc4 UefiBootManagerLib:BmBoot.obj
+ 0004:00000630 $pdata$BmEnumerateBootOptions 0000000000025fd0 UefiBootManagerLib:BmBoot.obj
+ 0004:0000063c $pdata$EfiBootManagerRefreshAllBootOption 0000000000025fdc UefiBootManagerLib:BmBoot.obj
+ 0004:00000648 $pdata$BmUpdateSystemTableConsole 0000000000025fe8 UefiBootManagerLib:BmConsole.obj
+ 0004:00000654 $pdata$EfiBootManagerUpdateConsoleVariable 0000000000025ff4 UefiBootManagerLib:BmConsole.obj
+ 0004:00000660 $pdata$EfiBootManagerConnectConsoleVariable 0000000000026000 UefiBootManagerLib:BmConsole.obj
+ 0004:0000066c $pdata$EfiBootManagerConnectAllDefaultConsoles 000000000002600c UefiBootManagerLib:BmConsole.obj
+ 0004:00000678 $pdata$BmGetFreeOptionNumber 0000000000026018 UefiBootManagerLib:BmLoadOption.obj
+ 0004:00000684 $pdata$EfiBootManagerLoadOptionToVariable 0000000000026024 UefiBootManagerLib:BmLoadOption.obj
+ 0004:00000690 $pdata$BmAddOptionNumberToOrderVariable 0000000000026030 UefiBootManagerLib:BmLoadOption.obj
+ 0004:0000069c $pdata$EfiBootManagerAddLoadOptionVariable 000000000002603c UefiBootManagerLib:BmLoadOption.obj
+ 0004:000006a8 $pdata$EfiBootManagerInitializeLoadOption 0000000000026048 UefiBootManagerLib:BmLoadOption.obj
+ 0004:000006b4 $pdata$EfiBootManagerFindLoadOption 0000000000026054 UefiBootManagerLib:BmLoadOption.obj
+ 0004:000006c0 $pdata$EfiBootManagerDeleteLoadOptionVariable 0000000000026060 UefiBootManagerLib:BmLoadOption.obj
+ 0004:000006cc $pdata$BmValidateOption 000000000002606c UefiBootManagerLib:BmLoadOption.obj
+ 0004:000006d8 $pdata$EfiBootManagerIsValidLoadOptionVariableName 0000000000026078 UefiBootManagerLib:BmLoadOption.obj
+ 0004:000006e4 $pdata$EfiBootManagerVariableToLoadOptionEx 0000000000026084 UefiBootManagerLib:BmLoadOption.obj
+ 0004:000006f0 $pdata$EfiBootManagerGetLoadOptions 0000000000026090 UefiBootManagerLib:BmLoadOption.obj
+ 0004:000006fc $pdata$EfiBootManagerFreeLoadOption 000000000002609c UefiBootManagerLib:BmLoadOption.obj
+ 0004:00000708 $pdata$EfiBootManagerFreeLoadOptions 00000000000260a8 UefiBootManagerLib:BmLoadOption.obj
+ 0004:00000714 $pdata$BmGetNextLoadOptionBuffer 00000000000260b4 UefiBootManagerLib:BmLoadOption.obj
+ 0004:00000720 $pdata$BmGetDescriptionFromDiskInfo 00000000000260c0 UefiBootManagerLib:BmBootDescription.obj
+ 0004:0000072c $pdata$BmGetUsbDescription 00000000000260cc UefiBootManagerLib:BmBootDescription.obj
+ 0004:00000738 $pdata$BmGetNetworkDescription 00000000000260d8 UefiBootManagerLib:BmBootDescription.obj
+ 0004:00000744 $pdata$BmGetLoadFileDescription 00000000000260e4 UefiBootManagerLib:BmBootDescription.obj
+ 0004:00000750 $pdata$BmGetNvmeDescription 00000000000260f0 UefiBootManagerLib:BmBootDescription.obj
+ 0004:0000075c $pdata$BmGetMiscDescription 00000000000260fc UefiBootManagerLib:BmBootDescription.obj
+ 0004:00000768 $pdata$BmGetBootDescription 0000000000026108 UefiBootManagerLib:BmBootDescription.obj
+ 0004:00000774 $pdata$BmHotkeyCallback 0000000000026114 UefiBootManagerLib:BmHotkey.obj
+ 0004:00000780 $pdata$BmGetActiveConsoleIn 0000000000026120 UefiBootManagerLib:BmHotkey.obj
+ 0004:0000078c $pdata$BmStopHotkeyService 000000000002612c UefiBootManagerLib:BmHotkey.obj
+ 0004:00000798 $pdata$BmDelPartMatchInstance 0000000000026138 UefiBootManagerLib:BmMisc.obj
+ 0004:000007a4 $pdata$BmMatchDevicePaths 0000000000026144 UefiBootManagerLib:BmMisc.obj
+ 0004:000007a4 $pdata$MatchDevicePaths 0000000000026144 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0004:000007b0 $pdata$BmSetMemoryTypeInformationVariable 0000000000026150 UefiBootManagerLib:BmMisc.obj
+ 0004:000007bc $pdata$BmSetVariableAndReportStatusCodeOnError 000000000002615c UefiBootManagerLib:BmMisc.obj
+ 0004:000007c8 $pdata$BmGetControllerName 0000000000026168 UefiBootManagerLib:BmDriverHealth.obj
+ 0004:000007d4 $pdata$BmDisplayMessages 0000000000026174 UefiBootManagerLib:BmDriverHealth.obj
+ 0004:000007e0 $pdata$BmRepairNotify 0000000000026180 UefiBootManagerLib:BmDriverHealth.obj
+ 0004:000007ec $pdata$BmGetSingleControllerHealthStatus 000000000002618c UefiBootManagerLib:BmDriverHealth.obj
+ 0004:000007f8 $pdata$EfiBootManagerGetDriverHealthInfo 0000000000026198 UefiBootManagerLib:BmDriverHealth.obj
+ 0004:00000804 $pdata$EfiBootManagerFreeDriverHealthInfo 00000000000261a4 UefiBootManagerLib:BmDriverHealth.obj
+ 0004:00000810 $pdata$BmRepairAllControllers 00000000000261b0 UefiBootManagerLib:BmDriverHealth.obj
+ 0004:0000081c $pdata$LibCallback 00000000000261bc FileExplorerLib:FileExplorer.obj
+ 0004:00000828 $pdata$LibCreateMenuEntry 00000000000261c8 FileExplorerLib:FileExplorer.obj
+ 0004:00000834 $pdata$LibGetMenuEntry 00000000000261d4 FileExplorerLib:FileExplorer.obj
+ 0004:00000840 $pdata$LibDestroyMenuEntry 00000000000261e0 FileExplorerLib:FileExplorer.obj
+ 0004:0000084c $pdata$LibFreeMenu 00000000000261ec FileExplorerLib:FileExplorer.obj
+ 0004:00000858 $pdata$LibStrDuplicate 00000000000261f8 FileExplorerLib:FileExplorer.obj
+ 0004:00000864 $pdata$LibAppendFileName 0000000000026204 FileExplorerLib:FileExplorer.obj
+ 0004:00000870 $pdata$LibFindFileSystem 0000000000026210 FileExplorerLib:FileExplorer.obj
+ 0004:0000087c $pdata$LibGetFileHandleFromDevicePath 000000000002621c FileExplorerLib:FileExplorer.obj
+ 0004:00000888 $pdata$LibCreateNewFile 0000000000026228 FileExplorerLib:FileExplorer.obj
+ 0004:00000894 $pdata$LibFindFiles 0000000000026234 FileExplorerLib:FileExplorer.obj
+ 0004:000008a0 $pdata$LibUpdateFileExplorePage 0000000000026240 FileExplorerLib:FileExplorer.obj
+ 0004:000008ac $pdata$LibUpdateFileExplorer 000000000002624c FileExplorerLib:FileExplorer.obj
+ 0004:000008b8 $pdata$LibGetDevicePath 0000000000026258 FileExplorerLib:FileExplorer.obj
+ 0004:000008c4 $pdata$ChooseFile 0000000000026264 FileExplorerLib:FileExplorer.obj
+ 0004:000008d0 $pdata$DmExtractDevicePathFromHiiHandle 0000000000026270 DeviceManagerUiLib:DeviceManager.obj
+ 0004:000008dc $pdata$AddIdToMacDeviceList 000000000002627c DeviceManagerUiLib:DeviceManager.obj
+ 0004:000008e8 $pdata$IsMacAddressDevicePath 0000000000026288 DeviceManagerUiLib:DeviceManager.obj
+ 0004:000008f4 $pdata$IsNeedAddNetworkMenu 0000000000026294 DeviceManagerUiLib:DeviceManager.obj
+ 0004:00000900 $pdata$CreateDeviceManagerForm 00000000000262a0 DeviceManagerUiLib:DeviceManager.obj
+ 0004:0000090c $pdata$DeviceManagerCallback 00000000000262ac DeviceManagerUiLib:DeviceManager.obj
+ 0004:00000918 $pdata$BmSetConsoleMode 00000000000262b8 BootManagerUiLib:BootManager.obj
+ 0004:00000924 $pdata$BmSetupResetReminder 00000000000262c4 BootManagerUiLib:BootManager.obj
+ 0004:00000930 $pdata$GroupMultipleLegacyBootOption4SameType 00000000000262d0 BootManagerUiLib:BootManager.obj
+ 0004:0000093c $pdata$UpdateBootManager 00000000000262dc BootManagerUiLib:BootManager.obj
+ 0004:00000948 $pdata$BootManagerCallback 00000000000262e8 BootManagerUiLib:BootManager.obj
+ 0004:00000954 $pdata$BootManagerUiLibConstructor 00000000000262f4 BootManagerUiLib:BootManager.obj
+ 0004:00000960 $pdata$BmmSetConsoleMode 0000000000026300 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:0000096c $pdata$UiDevicePathToStr 000000000002630c BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:00000978 $pdata$ExtractFileNameFromDevicePath 0000000000026318 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:00000984 $pdata$UpdateProgress 0000000000026324 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:00000990 $pdata$UpdateTerminalContent 0000000000026330 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:0000099c $pdata$UpdateConsoleContent 000000000002633c BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:000009a8 $pdata$BootMaintExtractConfig 0000000000026348 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:000009b4 $pdata$BootMaintRouteConfig 0000000000026354 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:000009c0 $pdata$BootMaintCallback 0000000000026360 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:000009cc $pdata$DiscardChangeHandler 000000000002636c BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:000009d8 $pdata$CustomizeMenus 0000000000026378 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:000009e4 $pdata$InitializeBmmConfig 0000000000026384 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:000009f0 $pdata$InitAllMenu 0000000000026390 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:000009fc $pdata$BootMaintenanceManagerUiLibConstructor 000000000002639c BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:00000a08 $pdata$RefreshUpdateData 00000000000263a8 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a14 $pdata$UpdatePageStart 00000000000263b4 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a20 $pdata$UpdatePageEnd 00000000000263c0 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a2c $pdata$CleanUpPage 00000000000263cc BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a38 $pdata$UpdateBootDelPage 00000000000263d8 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a44 $pdata$UpdateDrvDelPage 00000000000263e4 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a50 $pdata$UpdateDriverAddHandleDescPage 00000000000263f0 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a5c $pdata$UpdateConsolePage 00000000000263fc BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a68 $pdata$UpdateOrderPage 0000000000026408 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a74 $pdata$UpdateConModePage 0000000000026414 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a80 $pdata$UpdateTerminalPage 0000000000026420 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a8c $pdata$UpdateOptionPage 000000000002642c BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a98 $pdata$UpdatePageBody 0000000000026438 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000aa4 $pdata$BmmSetupResetReminder 0000000000026444 BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000ab0 $pdata$BOpt_CreateMenuEntry 0000000000026450 BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000abc $pdata$BOpt_DestroyMenuEntry 000000000002645c BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000ac8 $pdata$BOpt_GetMenuEntry 0000000000026468 BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000ad4 $pdata$BOpt_FreeMenu 0000000000026474 BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000ae0 $pdata$BOpt_GetBootOptions 0000000000026480 BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000aec $pdata$BOpt_GetOptionNumber 000000000002648c BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000af8 $pdata$BOpt_GetDriverOptions 0000000000026498 BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000b04 $pdata$GetBootOrder 00000000000264a4 BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000b10 $pdata$GetDriverOrder 00000000000264b0 BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000b1c $pdata$BootFromFile 00000000000264bc BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000b28 $pdata$ReSendForm 00000000000264c8 BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000b34 $pdata$Var_DelBootOption 00000000000264d4 BootMaintenanceManagerUiLib:Variable.obj
+ 0004:00000b40 $pdata$Var_UpdateConsoleOption 00000000000264e0 BootMaintenanceManagerUiLib:Variable.obj
+ 0004:00000b4c $pdata$Var_UpdateDriverOption 00000000000264ec BootMaintenanceManagerUiLib:Variable.obj
+ 0004:00000b58 $pdata$Var_UpdateBootOption 00000000000264f8 BootMaintenanceManagerUiLib:Variable.obj
+ 0004:00000b64 $pdata$Var_UpdateBootNext 0000000000026504 BootMaintenanceManagerUiLib:Variable.obj
+ 0004:00000b70 $pdata$Var_UpdateBootOrder 0000000000026510 BootMaintenanceManagerUiLib:Variable.obj
+ 0004:00000b7c $pdata$Var_UpdateDriverOrder 000000000002651c BootMaintenanceManagerUiLib:Variable.obj
+ 0004:00000b88 $pdata$IsIsaSerialNode 0000000000026528 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0004:00000b94 $pdata$ChangeTerminalDevicePath 0000000000026534 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0004:00000ba0 $pdata$RetrieveUartUid 0000000000026540 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0004:00000bac $pdata$SortedUartHandle 000000000002654c BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0004:00000bb8 $pdata$LocateSerialIo 0000000000026558 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0004:00000bc4 $pdata$UpdateComAttributeFromVariable 0000000000026564 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0004:00000bd0 $pdata$GetConsoleMenu 0000000000026570 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0004:00000bdc $pdata$IsTerminalDevicePath 000000000002657c BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0004:00000be8 $pdata$GetConsoleOutMode 0000000000026588 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0004:00000bf4 $pdata$UiCustomizeBMMPage 0000000000026594 BootMaintenanceManagerUiLib:BootMaintenanceManagerCustomizedUi.obj
+ 0004:00000c00 $pdata$BmmListThirdPartyDrivers 00000000000265a0 BootMaintenanceManagerUiLib:BootMaintenanceManagerCustomizedUiSupport.obj
+ 0004:00000c0c $pdata$ZeroMem 00000000000265ac BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0004:00000c18 $pdata$SetMem 00000000000265b8 BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0004:00000c24 $pdata$SetMem16 00000000000265c4 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0004:00000c30 $pdata$CompareMem 00000000000265d0 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0004:00000c3c $pdata$IsZeroBuffer 00000000000265dc BaseMemoryLibRepStr:IsZeroBufferWrapper.obj
+ 0004:00000c48 $pdata$InternalBaseLibIsListValid 00000000000265e8 BaseLib:LinkedList.obj
+ 0004:00000c54 $pdata$InitializeListHead 00000000000265f4 BaseLib:LinkedList.obj
+ 0004:00000c60 $pdata$InsertTailList 0000000000026600 BaseLib:LinkedList.obj
+ 0004:00000c6c $pdata$GetFirstNode 000000000002660c BaseLib:LinkedList.obj
+ 0004:00000c78 $pdata$GetNextNode 0000000000026618 BaseLib:LinkedList.obj
+ 0004:00000c84 $pdata$IsListEmpty 0000000000026624 BaseLib:LinkedList.obj
+ 0004:00000c90 $pdata$IsNull 0000000000026630 BaseLib:LinkedList.obj
+ 0004:00000c9c $pdata$RemoveEntryList 000000000002663c BaseLib:LinkedList.obj
+ 0004:00000ca8 $pdata$EfiCreateEventReadyToBootEx 0000000000026648 UefiLib:UefiNotTiano.obj
+ 0004:00000cb4 $pdata$EfiGetNameGuidFromFwVolDevicePathNode 0000000000026654 UefiLib:UefiNotTiano.obj
+ 0004:00000cc0 $pdata$InternalPrint 0000000000026660 UefiLib:UefiLibPrint.obj
+ 0004:00000ccc $pdata$Print 000000000002666c UefiLib:UefiLibPrint.obj
+ 0004:00000cd8 $pdata$RegisterBasicVariablePolicy 0000000000026678 VariablePolicyHelperLib:VariablePolicyHelperLib.obj
+ 0004:00000ce4 $pdata$GetFileBufferByFilePath 0000000000026684 DxeServicesLib:DxeServicesLib.obj
+ 0005:00000000 $unwind$_ModuleEntryPoint 00000000000266a0 UefiApplicationEntryPoint:ApplicationEntryPoint.obj
+ 0005:00000000 $unwind$HiiFreeOpCodeHandle 00000000000266a0 UefiHiiLib:HiiLib.obj
+ 0005:00000000 $unwind$LibGetDevicePath 00000000000266a0 FileExplorerLib:FileExplorer.obj
+ 0005:00000000 $unwind$HiiRemovePackages 00000000000266a0 UefiHiiLib:HiiLib.obj
+ 0005:00000000 $unwind$DevicePathSubType 00000000000266a0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000000 $unwind$DevicePathNodeLength 00000000000266a0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000000 $unwind$LibCreateMenuEntry 00000000000266a0 FileExplorerLib:FileExplorer.obj
+ 0005:00000000 $unwind$ReadUnaligned16 00000000000266a0 BaseLib:Unaligned.obj
+ 0005:00000000 $unwind$ReadUnaligned64 00000000000266a0 BaseLib:Unaligned.obj
+ 0005:00000000 $unwind$IsZeroBuffer 00000000000266a0 BaseMemoryLibRepStr:IsZeroBufferWrapper.obj
+ 0005:00000000 $unwind$AllocateZeroPool 00000000000266a0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000000 $unwind$ReadUnaligned32 00000000000266a0 BaseLib:Unaligned.obj
+ 0005:00000000 $unwind$DevicePathType 00000000000266a0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000000 $unwind$NextDevicePathNode 00000000000266a0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000000 $unwind$InternalBaseLibIsListValid 00000000000266a0 BaseLib:LinkedList.obj
+ 0005:00000000 $unwind$RemoveEntryList 00000000000266a0 BaseLib:LinkedList.obj
+ 0005:00000000 $unwind$GetFirstNode 00000000000266a0 BaseLib:LinkedList.obj
+ 0005:00000000 $unwind$EfiBootManagerFreeLoadOption 00000000000266a0 UefiBootManagerLib:BmLoadOption.obj
+ 0005:00000000 $unwind$GetNextNode 00000000000266a0 BaseLib:LinkedList.obj
+ 0005:00000000 $unwind$HiiAllocateOpCodeHandle 00000000000266a0 UefiHiiLib:HiiLib.obj
+ 0005:00000000 $unwind$EfiGetNameGuidFromFwVolDevicePathNode 00000000000266a0 UefiLib:UefiNotTiano.obj
+ 0005:00000000 $unwind$DiscardChangeHandler 00000000000266a0 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:00000000 $unwind$SetDevicePathEndNode 00000000000266a0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000000 $unwind$InternalAllocatePages 00000000000266a0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000000 $unwind$InitializeListHead 00000000000266a0 BaseLib:LinkedList.obj
+ 0005:00000000 $unwind$UiDevicePathToStr 00000000000266a0 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:00000000 $unwind$GetNextHob 00000000000266a0 DxeHobLib:HobLib.obj
+ 0005:00000000 $unwind$IsListEmpty 00000000000266a0 BaseLib:LinkedList.obj
+ 0005:00000000 $unwind$BmGetLoadFileDescription 00000000000266a0 UefiBootManagerLib:BmBootDescription.obj
+ 0005:00000000 $unwind$IsDevicePathEndType 00000000000266a0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000000 $unwind$ConvertDevicePathToText 00000000000266a0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000008 $unwind$ProcessLibraryConstructorList 00000000000266a8 UiApp:AutoGen.obj
+ 0005:00000020 $unwind$ProcessLibraryDestructorList 00000000000266c0 UiApp:AutoGen.obj
+ 0005:00000028 $unwind$EfiAcquireLock 00000000000266c8 UefiLib:UefiLib.obj
+ 0005:00000028 $unwind$DevicePathFromHandle 00000000000266c8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000028 $unwind$InternalAllocatePool 00000000000266c8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000028 $unwind$EfiReleaseLock 00000000000266c8 UefiLib:UefiLib.obj
+ 0005:00000028 $unwind$FreePool 00000000000266c8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000028 $unwind$GetHobList 00000000000266c8 DxeHobLib:HobLib.obj
+ 0005:00000028 $unwind$GetPcdProtocol 00000000000266c8 DxePcdLib:DxePcdLib.obj
+ 0005:00000028 $unwind$FrontPageCallback 00000000000266c8 UiApp:FrontPage.obj
+ 0005:00000028 $unwind$DmExtractDevicePathFromHiiHandle 00000000000266c8 DeviceManagerUiLib:DeviceManager.obj
+ 0005:00000028 $unwind$RefreshUpdateData 00000000000266c8 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:00000030 $unwind$UpdateFrontPageForm 00000000000266d0 UiApp:FrontPage.obj
+ 0005:00000044 $unwind$ConvertProcessorToString 00000000000266e4 UiApp:FrontPage.obj
+ 0005:00000060 $unwind$Var_UpdateConsoleOption 0000000000026700 BootMaintenanceManagerUiLib:Variable.obj
+ 0005:00000060 $unwind$GetOptionalStringByIndex 0000000000026700 UiApp:FrontPage.obj
+ 0005:00000074 $unwind$UpdateFrontPageBannerStrings 0000000000026714 UiApp:FrontPage.obj
+ 0005:0000008c $unwind$BmSetConsoleMode 000000000002672c BootManagerUiLib:BootManager.obj
+ 0005:0000008c $unwind$BmmSetConsoleMode 000000000002672c BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:0000008c $unwind$UiSetConsoleMode 000000000002672c UiApp:FrontPage.obj
+ 0005:000000a4 $unwind$InitializeUserInterface 0000000000026744 UiApp:FrontPage.obj
+ 0005:000000b0 $unwind$UiEntry 0000000000026750 UiApp:FrontPage.obj
+ 0005:000000c0 $unwind$UiCustomizeFrontPageBanner 0000000000026760 UiApp:FrontPageCustomizedUi.obj
+ 0005:000000d0 $unwind$CopyMem 0000000000026770 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0005:000000d0 $unwind$BmGetBootDescription 0000000000026770 UefiBootManagerLib:BmBootDescription.obj
+ 0005:000000d0 $unwind$InternalHiiCompareSubString 0000000000026770 UefiHiiLib:HiiLib.obj
+ 0005:000000d0 $unwind$CompareMem 0000000000026770 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0005:000000d0 $unwind$EfiBootManagerConnectAllDefaultConsoles 0000000000026770 UefiBootManagerLib:BmConsole.obj
+ 0005:000000d0 $unwind$CompareGuid 0000000000026770 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0005:000000d0 $unwind$BasePrintLibValueToString 0000000000026770 BasePrintLib:PrintLibInternal.obj
+ 0005:000000d0 $unwind$InternalReallocatePool 0000000000026770 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:000000d0 $unwind$GetNextLanguage 0000000000026770 UiApp:FrontPageCustomizedUiSupport.obj
+ 0005:000000d0 $unwind$BmDisplayMessages 0000000000026770 UefiBootManagerLib:BmDriverHealth.obj
+ 0005:000000d0 $unwind$EfiBootManagerFindLoadOption 0000000000026770 UefiBootManagerLib:BmLoadOption.obj
+ 0005:000000d0 $unwind$ExtractFileNameFromDevicePath 0000000000026770 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:000000d0 $unwind$StrnCmp 0000000000026770 BaseLib:String.obj
+ 0005:000000e4 $unwind$LanguageChangeHandler 0000000000026784 UiApp:FrontPageCustomizedUiSupport.obj
+ 0005:000000f8 $unwind$UiCreateLanguageMenu 0000000000026798 UiApp:FrontPageCustomizedUiSupport.obj
+ 0005:00000110 $unwind$UiListThirdPartyDrivers 00000000000267b0 UiApp:FrontPageCustomizedUiSupport.obj
+ 0005:00000110 $unwind$BmmListThirdPartyDrivers 00000000000267b0 BootMaintenanceManagerUiLib:BootMaintenanceManagerCustomizedUiSupport.obj
+ 0005:00000128 $unwind$ZeroMem 00000000000267c8 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0005:00000128 $unwind$DeviceManagerCallback 00000000000267c8 DeviceManagerUiLib:DeviceManager.obj
+ 0005:00000128 $unwind$SetMem 00000000000267c8 BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0005:00000128 $unwind$AsciiStrLen 00000000000267c8 BaseLib:String.obj
+ 0005:00000128 $unwind$BOpt_DestroyMenuEntry 00000000000267c8 BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:00000128 $unwind$InternalAllocateCopyPool 00000000000267c8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000128 $unwind$StrnLenS 00000000000267c8 BaseLib:SafeString.obj
+ 0005:00000128 $unwind$BOpt_GetMenuEntry 00000000000267c8 BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:00000128 $unwind$GetNextDevicePathInstance 00000000000267c8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000128 $unwind$UpdatePageBody 00000000000267c8 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:00000128 $unwind$LibPcdSet32S 00000000000267c8 DxePcdLib:DxePcdLib.obj
+ 0005:00000128 $unwind$LibDestroyMenuEntry 00000000000267c8 FileExplorerLib:FileExplorer.obj
+ 0005:00000128 $unwind$IsNull 00000000000267c8 BaseLib:LinkedList.obj
+ 0005:00000128 $unwind$SetDevicePathNodeLength 00000000000267c8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000128 $unwind$BmMatchPartitionDevicePathNode 00000000000267c8 UefiBootManagerLib:BmBoot.obj
+ 0005:00000128 $unwind$IsDevicePathEnd 00000000000267c8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000128 $unwind$FreePages 00000000000267c8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000128 $unwind$IsIsaSerialNode 00000000000267c8 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0005:00000128 $unwind$LibGetMenuEntry 00000000000267c8 FileExplorerLib:FileExplorer.obj
+ 0005:00000128 $unwind$BmRepairNotify 00000000000267c8 UefiBootManagerLib:BmDriverHealth.obj
+ 0005:00000128 $unwind$InsertTailList 00000000000267c8 BaseLib:LinkedList.obj
+ 0005:00000128 $unwind$HiiGetSupportedLanguages 00000000000267c8 UefiHiiLib:HiiLanguage.obj
+ 0005:00000134 $unwind$InternalHiiGrowOpCodeHandle 00000000000267d4 UefiHiiLib:HiiLib.obj
+ 0005:00000134 $unwind$InternalHiiAppendOpCodes 00000000000267d4 UefiHiiLib:HiiLib.obj
+ 0005:00000134 $unwind$HiiIsConfigHdrMatch 00000000000267d4 UefiHiiLib:HiiLib.obj
+ 0005:00000134 $unwind$AsciiStrnCmp 00000000000267d4 BaseLib:String.obj
+ 0005:00000134 $unwind$BOpt_CreateMenuEntry 00000000000267d4 BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:00000134 $unwind$CopyGuid 00000000000267d4 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0005:00000134 $unwind$StrStr 00000000000267d4 BaseLib:String.obj
+ 0005:00000134 $unwind$BOpt_FreeMenu 00000000000267d4 BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:00000134 $unwind$AddIdToMacDeviceList 00000000000267d4 DeviceManagerUiLib:DeviceManager.obj
+ 0005:00000134 $unwind$StrCmp 00000000000267d4 BaseLib:String.obj
+ 0005:00000134 $unwind$EfiBootManagerFreeLoadOptions 00000000000267d4 UefiBootManagerLib:BmLoadOption.obj
+ 0005:00000134 $unwind$StrLen 00000000000267d4 BaseLib:String.obj
+ 0005:00000134 $unwind$LibStrDuplicate 00000000000267d4 FileExplorerLib:FileExplorer.obj
+ 0005:00000134 $unwind$SetMem16 00000000000267d4 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0005:00000134 $unwind$BmCachePartitionDevicePath 00000000000267d4 UefiBootManagerLib:BmBoot.obj
+ 0005:00000134 $unwind$RetrieveUartUid 00000000000267d4 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0005:00000134 $unwind$LibFreeMenu 00000000000267d4 FileExplorerLib:FileExplorer.obj
+ 0005:00000134 $unwind$EfiBootManagerFreeDriverHealthInfo 00000000000267d4 UefiBootManagerLib:BmDriverHealth.obj
+ 0005:00000144 $unwind$HiiCreateGotoOpCode 00000000000267e4 UefiHiiLib:HiiLib.obj
+ 0005:00000144 $unwind$StrCpyS 00000000000267e4 BaseLib:SafeString.obj
+ 0005:0000015c $unwind$StrnCpyS 00000000000267fc BaseLib:SafeString.obj
+ 0005:00000174 $unwind$StrnCatS 0000000000026814 BaseLib:SafeString.obj
+ 0005:00000174 $unwind$LibGetFileHandleFromDevicePath 0000000000026814 FileExplorerLib:FileExplorer.obj
+ 0005:00000174 $unwind$StrCatS 0000000000026814 BaseLib:SafeString.obj
+ 0005:00000190 $unwind$HiiCreateCheckBoxOpCode 0000000000026830 UefiHiiLib:HiiLib.obj
+ 0005:00000190 $unwind$BmGetControllerName 0000000000026830 UefiBootManagerLib:BmDriverHealth.obj
+ 0005:00000190 $unwind$AsciiStrToUnicodeStrS 0000000000026830 BaseLib:SafeString.obj
+ 0005:00000190 $unwind$HiiCreateActionOpCode 0000000000026830 UefiHiiLib:HiiLib.obj
+ 0005:000001a4 $unwind$Var_DelBootOption 0000000000026844 BootMaintenanceManagerUiLib:Variable.obj
+ 0005:000001a4 $unwind$Var_UpdateBootNext 0000000000026844 BootMaintenanceManagerUiLib:Variable.obj
+ 0005:000001a4 $unwind$InternalReportStatusCode 0000000000026844 DxeReportStatusCodeLib:ReportStatusCodeLib.obj
+ 0005:000001a4 $unwind$UnicodeVSPrint 0000000000026844 BasePrintLib:PrintLib.obj
+ 0005:000001a4 $unwind$UnicodeValueToStringS 0000000000026844 BasePrintLib:PrintLib.obj
+ 0005:000001b8 $unwind$UnicodeSPrint 0000000000026858 BasePrintLib:PrintLib.obj
+ 0005:000001c0 $unwind$AsciiSPrint 0000000000026860 BasePrintLib:PrintLib.obj
+ 0005:000001c8 $unwind$BasePrintLibConvertValueToStringS 0000000000026868 BasePrintLib:PrintLibInternal.obj
+ 0005:000001e4 $unwind$BasePrintLibSPrintMarker 0000000000026884 BasePrintLib:PrintLibInternal.obj
+ 0005:00000200 $unwind$BasePrintLibSPrint 00000000000268a0 BasePrintLib:PrintLibInternal.obj
+ 0005:00000208 $unwind$DebugPrint 00000000000268a8 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:00000210 $unwind$DebugPrintMarker 00000000000268b0 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:00000224 $unwind$DebugAssert 00000000000268c4 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:0000022c $unwind$UpdateProgress 00000000000268cc BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:0000022c $unwind$IsDevicePathValid 00000000000268cc UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:0000022c $unwind$InternalHiiCreateOpCodeExtended 00000000000268cc UefiHiiLib:HiiLib.obj
+ 0005:0000022c $unwind$EfiGetSystemConfigurationTable 00000000000268cc UefiLib:UefiLib.obj
+ 0005:0000022c $unwind$InternalPrint 00000000000268cc UefiLib:UefiLibPrint.obj
+ 0005:0000022c $unwind$FileDevicePath 00000000000268cc UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000244 $unwind$BmIsBootManagerMenuFilePath 00000000000268e4 UefiBootManagerLib:BmBoot.obj
+ 0005:00000244 $unwind$UefiDevicePathLibLocateProtocol 00000000000268e4 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:0000024c $unwind$GetVariable2 00000000000268ec UefiLib:UefiLib.obj
+ 0005:00000260 $unwind$GetBestLanguage 0000000000026900 UefiLib:UefiLib.obj
+ 0005:00000274 $unwind$UefiLibGetStringWidth 0000000000026914 UefiLib:Console.obj
+ 0005:00000288 $unwind$CreatePopUp 0000000000026928 UefiLib:Console.obj
+ 0005:000002a0 $unwind$HiiSetString 0000000000026940 UefiHiiLib:HiiString.obj
+ 0005:000002b8 $unwind$HiiGetStringEx 0000000000026958 UefiHiiLib:HiiString.obj
+ 0005:000002cc $unwind$HiiAddPackages 000000000002696c UefiHiiLib:HiiLib.obj
+ 0005:000002e0 $unwind$HiiGetHiiHandles 0000000000026980 UefiHiiLib:HiiLib.obj
+ 0005:000002e8 $unwind$HiiGetFormSetFromHiiHandle 0000000000026988 UefiHiiLib:HiiLib.obj
+ 0005:00000300 $unwind$InternalHiiBrowserCallback 00000000000269a0 UefiHiiLib:HiiLib.obj
+ 0005:00000314 $unwind$HiiConstructConfigHdr 00000000000269b4 UefiHiiLib:HiiLib.obj
+ 0005:00000314 $unwind$BootMaintExtractConfig 00000000000269b4 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:00000330 $unwind$HiiGetBrowserData 00000000000269d0 UefiHiiLib:HiiLib.obj
+ 0005:00000344 $unwind$HiiSetBrowserData 00000000000269e4 UefiHiiLib:HiiLib.obj
+ 0005:00000354 $unwind$HiiCreateEndOpCode 00000000000269f4 UefiHiiLib:HiiLib.obj
+ 0005:0000035c $unwind$HiiCreateOneOfOptionOpCode 00000000000269fc UefiHiiLib:HiiLib.obj
+ 0005:00000370 $unwind$HiiCreateGuidOpCode 0000000000026a10 UefiHiiLib:HiiLib.obj
+ 0005:00000378 $unwind$HiiCreateSubTitleOpCode 0000000000026a18 UefiHiiLib:HiiLib.obj
+ 0005:00000384 $unwind$HiiCreateGotoExOpCode 0000000000026a24 UefiHiiLib:HiiLib.obj
+ 0005:0000039c $unwind$ChooseFile 0000000000026a3c FileExplorerLib:FileExplorer.obj
+ 0005:0000039c $unwind$HiiCreateStringOpCode 0000000000026a3c UefiHiiLib:HiiLib.obj
+ 0005:000003ac $unwind$HiiCreateOneOfOpCode 0000000000026a4c UefiHiiLib:HiiLib.obj
+ 0005:000003c4 $unwind$InternalHiiUpdateFormPackageData 0000000000026a64 UefiHiiLib:HiiLib.obj
+ 0005:000003dc $unwind$HiiUpdateForm 0000000000026a7c UefiHiiLib:HiiLib.obj
+ 0005:000003f4 $unwind$ReportStatusCodeEx 0000000000026a94 DxeReportStatusCodeLib:ReportStatusCodeLib.obj
+ 0005:00000410 $unwind$EfiBootManagerConnectAll 0000000000026ab0 UefiBootManagerLib:BmConnect.obj
+ 0005:00000410 $unwind$EfiCreateEventReadyToBootEx 0000000000026ab0 UefiLib:UefiNotTiano.obj
+ 0005:00000410 $unwind$UpdatePageStart 0000000000026ab0 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:00000410 $unwind$BmGetActiveConsoleIn 0000000000026ab0 UefiBootManagerLib:BmHotkey.obj
+ 0005:00000410 $unwind$UpdatePageEnd 0000000000026ab0 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:00000418 $unwind$EfiBootManagerConnectDevicePath 0000000000026ab8 UefiBootManagerLib:BmConnect.obj
+ 0005:00000430 $unwind$BmExpandLoadFiles 0000000000026ad0 UefiBootManagerLib:BmBoot.obj
+ 0005:00000430 $unwind$BmConnectUsbShortFormDevicePath 0000000000026ad0 UefiBootManagerLib:BmConnect.obj
+ 0005:00000440 $unwind$BmFindBootOptionInVariable 0000000000026ae0 UefiBootManagerLib:BmBoot.obj
+ 0005:00000458 $unwind$BmAdjustFvFilePath 0000000000026af8 UefiBootManagerLib:BmBoot.obj
+ 0005:00000468 $unwind$BmMatchUsbClass 0000000000026b08 UefiBootManagerLib:BmBoot.obj
+ 0005:00000474 $unwind$BmMatchUsbWwid 0000000000026b14 UefiBootManagerLib:BmBoot.obj
+ 0005:00000488 $unwind$BmExpandUsbDevicePath 0000000000026b28 UefiBootManagerLib:BmBoot.obj
+ 0005:00000488 $unwind$GetConsoleMenu 0000000000026b28 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0005:000004a0 $unwind$BmExpandFileDevicePath 0000000000026b40 UefiBootManagerLib:BmBoot.obj
+ 0005:000004b8 $unwind$BmExpandUriDevicePath 0000000000026b58 UefiBootManagerLib:BmBoot.obj
+ 0005:000004cc $unwind$BmExpandPartitionDevicePath 0000000000026b6c UefiBootManagerLib:BmBoot.obj
+ 0005:000004e0 $unwind$LibFindFileSystem 0000000000026b80 FileExplorerLib:FileExplorer.obj
+ 0005:000004e0 $unwind$BmExpandMediaDevicePath 0000000000026b80 UefiBootManagerLib:BmBoot.obj
+ 0005:000004f4 $unwind$BmExpandNetworkFileSystem 0000000000026b94 UefiBootManagerLib:BmBoot.obj
+ 0005:00000504 $unwind$BmGetRamDiskDevicePath 0000000000026ba4 UefiBootManagerLib:BmBoot.obj
+ 0005:00000510 $unwind$BmDestroyRamDisk 0000000000026bb0 UefiBootManagerLib:BmBoot.obj
+ 0005:00000524 $unwind$BmExpandLoadFile 0000000000026bc4 UefiBootManagerLib:BmBoot.obj
+ 0005:00000538 $unwind$BmGetNextLoadOptionDevicePath 0000000000026bd8 UefiBootManagerLib:BmBoot.obj
+ 0005:00000544 $unwind$UpdateDriverAddHandleDescPage 0000000000026be4 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:00000544 $unwind$BmReportLoadFailure 0000000000026be4 UefiBootManagerLib:BmBoot.obj
+ 0005:00000550 $unwind$EfiBootManagerBoot 0000000000026bf0 UefiBootManagerLib:BmBoot.obj
+ 0005:00000564 $unwind$BmEnumerateBootOptions 0000000000026c04 UefiBootManagerLib:BmBoot.obj
+ 0005:0000057c $unwind$EfiBootManagerRefreshAllBootOption 0000000000026c1c UefiBootManagerLib:BmBoot.obj
+ 0005:00000590 $unwind$BmUpdateSystemTableConsole 0000000000026c30 UefiBootManagerLib:BmConsole.obj
+ 0005:000005a8 $unwind$EfiBootManagerUpdateConsoleVariable 0000000000026c48 UefiBootManagerLib:BmConsole.obj
+ 0005:000005c0 $unwind$EfiBootManagerConnectConsoleVariable 0000000000026c60 UefiBootManagerLib:BmConsole.obj
+ 0005:000005d0 $unwind$BmGetFreeOptionNumber 0000000000026c70 UefiBootManagerLib:BmLoadOption.obj
+ 0005:000005e4 $unwind$EfiBootManagerLoadOptionToVariable 0000000000026c84 UefiBootManagerLib:BmLoadOption.obj
+ 0005:000005fc $unwind$BmAddOptionNumberToOrderVariable 0000000000026c9c UefiBootManagerLib:BmLoadOption.obj
+ 0005:00000614 $unwind$EfiBootManagerAddLoadOptionVariable 0000000000026cb4 UefiBootManagerLib:BmLoadOption.obj
+ 0005:00000620 $unwind$EfiBootManagerInitializeLoadOption 0000000000026cc0 UefiBootManagerLib:BmLoadOption.obj
+ 0005:00000638 $unwind$EfiBootManagerDeleteLoadOptionVariable 0000000000026cd8 UefiBootManagerLib:BmLoadOption.obj
+ 0005:0000064c $unwind$GetBootOrder 0000000000026cec BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:0000064c $unwind$GetDriverOrder 0000000000026cec BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:0000064c $unwind$BmValidateOption 0000000000026cec UefiBootManagerLib:BmLoadOption.obj
+ 0005:00000664 $unwind$IsTerminalDevicePath 0000000000026d04 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0005:00000664 $unwind$EfiBootManagerIsValidLoadOptionVariableName 0000000000026d04 UefiBootManagerLib:BmLoadOption.obj
+ 0005:00000680 $unwind$EfiBootManagerVariableToLoadOptionEx 0000000000026d20 UefiBootManagerLib:BmLoadOption.obj
+ 0005:00000698 $unwind$EfiBootManagerGetLoadOptions 0000000000026d38 UefiBootManagerLib:BmLoadOption.obj
+ 0005:000006b0 $unwind$BmGetNextLoadOptionBuffer 0000000000026d50 UefiBootManagerLib:BmLoadOption.obj
+ 0005:000006c8 $unwind$BmGetDescriptionFromDiskInfo 0000000000026d68 UefiBootManagerLib:BmBootDescription.obj
+ 0005:000006dc $unwind$LibCreateNewFile 0000000000026d7c FileExplorerLib:FileExplorer.obj
+ 0005:000006dc $unwind$BmGetUsbDescription 0000000000026d7c UefiBootManagerLib:BmBootDescription.obj
+ 0005:000006ec $unwind$BmGetNetworkDescription 0000000000026d8c UefiBootManagerLib:BmBootDescription.obj
+ 0005:00000708 $unwind$BmGetNvmeDescription 0000000000026da8 UefiBootManagerLib:BmBootDescription.obj
+ 0005:00000718 $unwind$BmGetMiscDescription 0000000000026db8 UefiBootManagerLib:BmBootDescription.obj
+ 0005:00000728 $unwind$BmHotkeyCallback 0000000000026dc8 UefiBootManagerLib:BmHotkey.obj
+ 0005:0000073c $unwind$BmStopHotkeyService 0000000000026ddc UefiBootManagerLib:BmHotkey.obj
+ 0005:00000750 $unwind$BmDelPartMatchInstance 0000000000026df0 UefiBootManagerLib:BmMisc.obj
+ 0005:00000764 $unwind$MatchDevicePaths 0000000000026e04 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0005:00000764 $unwind$BmMatchDevicePaths 0000000000026e04 UefiBootManagerLib:BmMisc.obj
+ 0005:00000770 $unwind$BmSetMemoryTypeInformationVariable 0000000000026e10 UefiBootManagerLib:BmMisc.obj
+ 0005:00000770 $unwind$SortedUartHandle 0000000000026e10 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0005:00000788 $unwind$BmSetVariableAndReportStatusCodeOnError 0000000000026e28 UefiBootManagerLib:BmMisc.obj
+ 0005:000007a4 $unwind$BmGetSingleControllerHealthStatus 0000000000026e44 UefiBootManagerLib:BmDriverHealth.obj
+ 0005:000007bc $unwind$EfiBootManagerGetDriverHealthInfo 0000000000026e5c UefiBootManagerLib:BmDriverHealth.obj
+ 0005:000007d0 $unwind$BmRepairAllControllers 0000000000026e70 UefiBootManagerLib:BmDriverHealth.obj
+ 0005:000007e0 $unwind$UpdateConsoleContent 0000000000026e80 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:000007e0 $unwind$LibCallback 0000000000026e80 FileExplorerLib:FileExplorer.obj
+ 0005:000007e0 $unwind$UpdateTerminalContent 0000000000026e80 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:000007e0 $unwind$LibAppendFileName 0000000000026e80 FileExplorerLib:FileExplorer.obj
+ 0005:000007fc $unwind$LibFindFiles 0000000000026e9c FileExplorerLib:FileExplorer.obj
+ 0005:00000814 $unwind$LibUpdateFileExplorePage 0000000000026eb4 FileExplorerLib:FileExplorer.obj
+ 0005:00000830 $unwind$LibUpdateFileExplorer 0000000000026ed0 FileExplorerLib:FileExplorer.obj
+ 0005:00000844 $unwind$IsMacAddressDevicePath 0000000000026ee4 DeviceManagerUiLib:DeviceManager.obj
+ 0005:0000085c $unwind$IsNeedAddNetworkMenu 0000000000026efc DeviceManagerUiLib:DeviceManager.obj
+ 0005:00000870 $unwind$CreateDeviceManagerForm 0000000000026f10 DeviceManagerUiLib:DeviceManager.obj
+ 0005:00000888 $unwind$BmSetupResetReminder 0000000000026f28 BootManagerUiLib:BootManager.obj
+ 0005:00000888 $unwind$BmmSetupResetReminder 0000000000026f28 BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:00000894 $unwind$GroupMultipleLegacyBootOption4SameType 0000000000026f34 BootManagerUiLib:BootManager.obj
+ 0005:000008b0 $unwind$UpdateBootManager 0000000000026f50 BootManagerUiLib:BootManager.obj
+ 0005:000008c8 $unwind$BootManagerCallback 0000000000026f68 BootManagerUiLib:BootManager.obj
+ 0005:000008dc $unwind$BootManagerUiLibConstructor 0000000000026f7c BootManagerUiLib:BootManager.obj
+ 0005:000008e4 $unwind$BootMaintRouteConfig 0000000000026f84 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:000008fc $unwind$BootMaintCallback 0000000000026f9c BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:00000918 $unwind$CustomizeMenus 0000000000026fb8 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:00000918 $unwind$CleanUpPage 0000000000026fb8 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:00000924 $unwind$InitializeBmmConfig 0000000000026fc4 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:0000093c $unwind$InitAllMenu 0000000000026fdc BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:0000094c $unwind$BootMaintenanceManagerUiLibConstructor 0000000000026fec BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:00000958 $unwind$UpdateDrvDelPage 0000000000026ff8 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:00000958 $unwind$UpdateBootDelPage 0000000000026ff8 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:0000096c $unwind$UpdateConsolePage 000000000002700c BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:00000984 $unwind$UpdateOrderPage 0000000000027024 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:0000099c $unwind$UpdateConModePage 000000000002703c BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:000009b8 $unwind$UpdateTerminalPage 0000000000027058 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:000009d0 $unwind$UpdateOptionPage 0000000000027070 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:000009e4 $unwind$BOpt_GetBootOptions 0000000000027084 BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:000009fc $unwind$BOpt_GetOptionNumber 000000000002709c BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:00000a14 $unwind$BOpt_GetDriverOptions 00000000000270b4 BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:00000a2c $unwind$BootFromFile 00000000000270cc BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:00000a3c $unwind$ReSendForm 00000000000270dc BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:00000a44 $unwind$Var_UpdateDriverOption 00000000000270e4 BootMaintenanceManagerUiLib:Variable.obj
+ 0005:00000a60 $unwind$Var_UpdateBootOption 0000000000027100 BootMaintenanceManagerUiLib:Variable.obj
+ 0005:00000a80 $unwind$Var_UpdateBootOrder 0000000000027120 BootMaintenanceManagerUiLib:Variable.obj
+ 0005:00000a98 $unwind$Var_UpdateDriverOrder 0000000000027138 BootMaintenanceManagerUiLib:Variable.obj
+ 0005:00000aa8 $unwind$ChangeTerminalDevicePath 0000000000027148 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0005:00000abc $unwind$LocateSerialIo 000000000002715c BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0005:00000ad0 $unwind$UpdateComAttributeFromVariable 0000000000027170 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0005:00000aec $unwind$GetConsoleOutMode 000000000002718c BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0005:00000b00 $unwind$UiCustomizeBMMPage 00000000000271a0 BootMaintenanceManagerUiLib:BootMaintenanceManagerCustomizedUi.obj
+ 0005:00000b1c $unwind$Print 00000000000271bc UefiLib:UefiLibPrint.obj
+ 0005:00000b24 $unwind$RegisterBasicVariablePolicy 00000000000271c4 VariablePolicyHelperLib:VariablePolicyHelperLib.obj
+ 0005:00000b3c $unwind$GetFileBufferByFilePath 00000000000271dc DxeServicesLib:DxeServicesLib.obj
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/Makefile b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/Makefile
new file mode 100644
index 000000000000..2951013dfd4b
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/Makefile
@@ -0,0 +1,478 @@
+#
+# DO NOT EDIT
+# This file is auto-generated by build utility
+#
+# Module Name:
+#
+# Makefile
+#
+# Abstract:
+#
+# Auto-generated makefile for building modules, libraries or platform
+#
+
+
+#
+# Platform Macro Definition
+#
+PLATFORM_NAME = Ovmf
+PLATFORM_GUID = 5a9e7754-d81b-49ea-85ad-69eaa7b1539b
+PLATFORM_VERSION = 0.1
+PLATFORM_RELATIVE_DIR = OvmfPkg
+PLATFORM_DIR = c:\users\mliang2x\workspace\edk2\OvmfPkg
+PLATFORM_OUTPUT_DIR = Build\Ovmf3264
+
+#
+# Module Macro Definition
+#
+MODULE_NAME = UiApp
+MODULE_GUID = 462CAA21-7614-4503-836E-8AB6F4662331
+MODULE_NAME_GUID = UiApp
+MODULE_VERSION = 1.0
+MODULE_TYPE = UEFI_APPLICATION
+MODULE_FILE = UiApp.inf
+MODULE_FILE_BASE_NAME = UiApp
+BASE_NAME = $(MODULE_NAME)
+MODULE_RELATIVE_DIR = MdeModulePkg\Application\UiApp
+PACKAGE_RELATIVE_DIR = Application\UiApp
+MODULE_DIR = c:\users\mliang2x\workspace\edk2\MdeModulePkg\Application\UiApp
+FFS_OUTPUT_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\FV\Ffs\462CAA21-7614-4503-836E-8AB6F4662331UiApp
+
+MODULE_ENTRY_POINT = InitializeUserInterface
+ARCH_ENTRY_POINT = InitializeUserInterface
+IMAGE_ENTRY_POINT = _ModuleEntryPoint
+
+INF_VERSION = 0x00010005
+BASE_NAME = UiApp
+MODULE_UNI_FILE = UiApp.uni
+FILE_GUID = 462CAA21-7614-4503-836E-8AB6F4662331
+MODULE_TYPE = UEFI_APPLICATION
+VERSION_STRING = 1.0
+
+#
+# Build Configuration Macro Definition
+#
+ARCH = X64
+TOOLCHAIN = VS2015x86
+TOOLCHAIN_TAG = VS2015x86
+TARGET = DEBUG
+
+#
+# Build Directory Macro Definition
+#
+# PLATFORM_BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86
+BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86
+BIN_DIR = $(BUILD_DIR)\X64
+LIB_DIR = $(BIN_DIR)
+MODULE_BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp
+OUTPUT_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT
+DEBUG_DIR = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\DEBUG
+DEST_DIR_OUTPUT = $(OUTPUT_DIR)
+DEST_DIR_DEBUG = $(DEBUG_DIR)
+
+#
+# Shell Command Macro
+#
+CP = copy /y
+MV = move /y
+RM = del /f /q
+MD = mkdir
+RD = rmdir /s /q
+
+
+#
+# Tools definitions specific to this module
+#
+APP_FLAGS = /nologo /E /TC
+APP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASL_FLAGS =
+ASL_OUTFLAGS = -p
+ASL = C:\ASL\iasl.exe
+
+ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable
+ASLCC = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE
+ASLDLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\link.exe
+
+ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h
+ASLPP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+ASM = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\ml64.exe
+
+ASM16 = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\ml.exe
+
+ASMLINK_FLAGS = /nologo /tiny
+ASMLINK = C:\WINDDK\3790.1830\bin\bin16\link16.exe
+
+BROTLI_GUID = 3D532050-5CDA-4FD0-879E-0F7F630D5AFB
+BROTLI = BrotliCompress
+
+CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /D DISABLE_NEW_DEPRECATED_INTERFACES /D ENABLE_MD5_DEPRECATED_INTERFACES
+CC = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+CRC32_GUID = FC1BCDB0-7D31-49AA-936A-A4600D9DD083
+CRC32 = GenCrc32
+
+DEPS_FLAGS = /showIncludes
+
+DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+DLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\link.exe
+
+DLINK2_FLAGS =
+
+DTC_FLAGS = -H epapr
+DTC = dtc
+
+DTCPP = cpp
+
+GENFW_FLAGS =
+GENFW = GenFw
+
+LZMA_GUID = EE4E5898-3914-4259-9D6E-DC7BD79403CF
+LZMA = LzmaCompress
+
+LZMAF86_GUID = D42AE6BD-1352-4bfb-909A-CA72A6EAE889
+LZMAF86 = LzmaF86Compress
+
+MAKE = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\nmake.exe
+
+NASM_FLAGS = -Ox -f win64 -g
+NASM = C:\nasm\nasm
+
+NASMB_FLAGS = -f bin
+
+OBJCOPY_ADDDEBUGFLAG = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_NAME).debug
+OBJCOPY_FLAGS = objcopy not needed for
+OBJCOPY = echo
+OBJCOPY_STRIPFLAG = --strip-unneeded -R .eh_frame
+
+OPTROM_FLAGS = -e
+OPTROM = EfiRom
+
+PKCS7SIGN_GUID = 4AAFD29D-68DF-49EE-8AA9-347D375665A7
+PKCS7SIGN = Pkcs7Sign
+
+PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+PP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+PYVFR = PyVfrCompile
+
+RC = c:\Program Files (x86)\Windows Kits\8.1\bin\x64\rc.exe
+
+RSA2048SHA256SIGN_GUID = A7717414-C616-4977-9420-844712A735BF
+RSA2048SHA256SIGN = Rsa2048Sha256Sign
+
+SLINK_FLAGS = /NOLOGO /LTCG
+SLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\lib.exe
+
+SYMRENAME_FLAGS = Symbol renaming not needed for
+SYMRENAME = echo
+
+TIANO_GUID = A31280AD-481E-41B6-95E8-127F4C984779
+TIANO = TianoCompress
+
+VFR_FLAGS = -l -n
+VFR = VfrCompile
+
+VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+VFRPP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+VPDTOOL_GUID = 8C3D856A-9BE6-468E-850A-24F7A8D38E08
+VPDTOOL = BPDG
+
+cc_resp_5 = @c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\cc_resp_5.txt
+
+MAKE_FILE = $(MODULE_BUILD_DIR)\Makefile
+
+#
+# Build Macro
+#
+OBJECT_FILES = \
+ $(OUTPUT_DIR)\AutoGen.obj \
+ $(OUTPUT_DIR)\FrontPage.obj \
+ $(OUTPUT_DIR)\FrontPageCustomizedUi.obj \
+ $(OUTPUT_DIR)\FrontPageCustomizedUiSupport.obj \
+ $(OUTPUT_DIR)\FrontPageVfr.obj \
+ $(OUTPUT_DIR)\String.obj
+
+STATIC_LIBRARY_FILES = \
+ $(BIN_DIR)\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\OUTPUT\BootMaintenanceManagerUiLib.lib \
+ $(BIN_DIR)\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\OUTPUT\BootManagerUiLib.lib \
+ $(BIN_DIR)\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\OUTPUT\DeviceManagerUiLib.lib \
+ $(BIN_DIR)\MdeModulePkg\Library\DxeReportStatusCodeLib\DxeReportStatusCodeLib\OUTPUT\DxeReportStatusCodeLib.lib \
+ $(BIN_DIR)\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\OUTPUT\FileExplorerLib.lib \
+ $(BIN_DIR)\MdeModulePkg\Library\UefiBootManagerLib\UefiBootManagerLib\OUTPUT\UefiBootManagerLib.lib \
+ $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\OUTPUT\UefiHiiLib.lib \
+ $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\OUTPUT\UefiHiiServicesLib.lib \
+ $(BIN_DIR)\MdeModulePkg\Library\UefiSortLib\UefiSortLib\OUTPUT\UefiSortLib.lib \
+ $(BIN_DIR)\MdeModulePkg\Library\VariablePolicyHelperLib\VariablePolicyHelperLib\OUTPUT\VariablePolicyHelperLib.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\OUTPUT\BaseDebugPrintErrorLevelLib.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\OUTPUT\BaseIoLibIntrinsicSev.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\OUTPUT\BaseLib.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\OUTPUT\BaseMemoryLibRepStr.lib \
+ $(BIN_DIR)\MdePkg\Library\BasePeCoffGetEntryPointLib\BasePeCoffGetEntryPointLib\OUTPUT\BasePeCoffGetEntryPointLib.lib \
+ $(BIN_DIR)\MdePkg\Library\BasePerformanceLibNull\BasePerformanceLibNull\OUTPUT\BasePerformanceLibNull.lib \
+ $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\OUTPUT\BasePrintLib.lib \
+ $(BIN_DIR)\MdePkg\Library\CcProbeLibNull\CcProbeLibNull\OUTPUT\CcProbeLibNull.lib \
+ $(BIN_DIR)\MdePkg\Library\DxeHobLib\DxeHobLib\OUTPUT\DxeHobLib.lib \
+ $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\OUTPUT\DxePcdLib.lib \
+ $(BIN_DIR)\MdePkg\Library\DxeServicesLib\DxeServicesLib\OUTPUT\DxeServicesLib.lib \
+ $(BIN_DIR)\MdePkg\Library\DxeServicesTableLib\DxeServicesTableLib\OUTPUT\DxeServicesTableLib.lib \
+ $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\OUTPUT\FilterLibNull.lib \
+ $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\OUTPUT\TdxLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiApplicationEntryPoint\UefiApplicationEntryPoint\OUTPUT\UefiApplicationEntryPoint.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\OUTPUT\UefiBootServicesTableLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\OUTPUT\UefiDevicePathLibDevicePathProtocol.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\OUTPUT\UefiLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\OUTPUT\UefiMemoryAllocationLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\OUTPUT\UefiRuntimeServicesTableLib.lib \
+ $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\OUTPUT\PlatformDebugLibIoPort.lib \
+ $(OUTPUT_DIR)\UiApp.lib
+
+INC = \
+ /I$(WORKSPACE)\MdeModulePkg\Application\UiApp \
+ /I$(DEBUG_DIR) \
+ /I$(WORKSPACE)\MdePkg \
+ /I$(WORKSPACE)\MdePkg\Include \
+ /I$(WORKSPACE)\MdePkg\Test\UnitTest\Include \
+ /I$(WORKSPACE)\MdePkg\Include\X64 \
+ /I$(WORKSPACE)\MdeModulePkg \
+ /I$(WORKSPACE)\MdeModulePkg\Include \
+ /I$(WORKSPACE)\MdeModulePkg\Library\BrotliCustomDecompressLib\brotli\c\include
+
+OBJECT_FILES_LIST = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\object_files.lst
+STATIC_LIBRARY_FILES_LIST = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\static_library_files.lst
+OBJLIST_0 = $(OUTPUT_DIR)\AutoGen.obj $(OUTPUT_DIR)\FrontPageCustomizedUi.obj $(OUTPUT_DIR)\String.obj $(OUTPUT_DIR)\FrontPageCustomizedUiSupport.obj $(OUTPUT_DIR)\FrontPageVfr.obj $(OUTPUT_DIR)\FrontPage.obj
+
+
+#
+# Overridable Target Macro Definitions
+#
+FORCE_REBUILD = force_build
+INIT_TARGET = init
+PCH_TARGET =
+BC_TARGET =
+CODA_TARGET = c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\UiApp.efi \
+ $(FFS_OUTPUT_DIR)\$(MODULE_GUID).map \
+ $(FFS_OUTPUT_DIR)\$(MODULE_GUID).ffs \
+
+
+#
+# Default target, which will build dependent libraries in addition to source files
+#
+
+all: mbuild
+
+
+#
+# Target used when called from platform makefile, which will bypass the build of dependent libraries
+#
+
+pbuild: $(INIT_TARGET) $(BC_TARGET) $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# ModuleTarget
+#
+
+mbuild: $(INIT_TARGET) $(BC_TARGET) gen_libs $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# Build Target used in multi-thread build mode, which will bypass the init and gen_libs targets
+#
+
+tbuild: $(BC_TARGET) $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# Phony target which is used to force executing commands for a target
+#
+force_build:
+ -@
+
+#
+# Target to update the FD
+#
+
+fds: mbuild gen_fds
+
+#
+# Initialization target: print build information and create necessary directories
+#
+init: info dirs
+
+info:
+ -@echo Building ... $(MODULE_DIR)\$(MODULE_FILE) [$(ARCH)]
+
+dirs:
+ -@if not exist $(DEBUG_DIR) $(MD) $(DEBUG_DIR)
+ -@if not exist $(OUTPUT_DIR) $(MD) $(OUTPUT_DIR)
+
+
+strdefs:
+ -@$(CP) $(DEBUG_DIR)\AutoGen.h $(DEBUG_DIR)\$(MODULE_NAME)StrDefs.h
+
+#
+# GenLibsTarget
+#
+gen_libs:
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\CcProbeLibNull\CcProbeLibNull\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxeHobLib\DxeHobLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\VariablePolicyHelperLib\VariablePolicyHelperLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiSortLib\UefiSortLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxeServicesLib\DxeServicesLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxeServicesTableLib\DxeServicesTableLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BasePeCoffGetEntryPointLib\BasePeCoffGetEntryPointLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BasePerformanceLibNull\BasePerformanceLibNull\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\DxeReportStatusCodeLib\DxeReportStatusCodeLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiBootManagerLib\UefiBootManagerLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiApplicationEntryPoint\UefiApplicationEntryPoint\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\Makefile
+ @cd $(MODULE_BUILD_DIR)
+
+#
+# Build Flash Device Image
+#
+gen_fds:
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BUILD_DIR)\Makefile fds
+ @cd $(MODULE_BUILD_DIR)
+
+!INCLUDE $(MODULE_BUILD_DIR)\dependency
+!INCLUDE $(MODULE_BUILD_DIR)\deps_target
+
+#
+# Individual Object Build Targets
+#
+$(DEBUG_DIR)\FrontPageVfr.c : $(MAKE_FILE)
+$(DEBUG_DIR)\FrontPageVfr.c : $(DEBUG_DIR)\AutoGen.h
+$(DEBUG_DIR)\FrontPageVfr.c : $(DEBUG_DIR)\UiAppStrDefs.h
+$(DEBUG_DIR)\FrontPageVfr.c : $(WORKSPACE)\MdeModulePkg\Application\UiApp\FrontPageVfr.Vfr
+ "$(VFRPP)" $(DEPS_FLAGS) $(VFRPP_FLAGS) $(INC) c:\users\mliang2x\workspace\edk2\MdeModulePkg\Application\UiApp\FrontPageVfr.Vfr > $(OUTPUT_DIR)\FrontPageVfr.i
+ "$(VFR)" $(VFR_FLAGS) --string-db $(OUTPUT_DIR)\$(MODULE_NAME)StrDefs.hpk --output-directory c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\DEBUG\. $(OUTPUT_DIR)\FrontPageVfr.i
+ "$(PYVFR)" c:\users\mliang2x\workspace\edk2\MdeModulePkg\Application\UiApp\FrontPageVfr.Vfr -i $(INC) -m $(MODULE_NAME) -o $(OUTPUT_DIR) --vfr
+
+$(OBJLIST_0): \
+ $(MAKE_FILE) \
+ $(WORKSPACE)\MdeModulePkg\Application\UiApp\String.c \
+ $(DEBUG_DIR)\AutoGen.h \
+ $(DEBUG_DIR)\UiAppStrDefs.h \
+ $(DEBUG_DIR)\FrontPageVfr.c \
+ $(WORKSPACE)\MdeModulePkg\Application\UiApp\FrontPageCustomizedUi.c \
+ $(WORKSPACE)\MdeModulePkg\Application\UiApp\FrontPage.c \
+ $(DEBUG_DIR)\AutoGen.c \
+ $(WORKSPACE)\MdeModulePkg\Application\UiApp\FrontPageCustomizedUiSupport.c
+ "$(CC)" /Foc:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\.\ $(DEPS_FLAGS) $(CC_FLAGS) $(INC) $(cc_resp_5)
+
+$(OUTPUT_DIR)\UiApp.lib : $(OBJECT_FILES)
+$(OUTPUT_DIR)\UiApp.lib : $(OBJECT_FILES_LIST)
+ "$(SLINK)" $(SLINK_FLAGS) /OUT:c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\UiApp.lib @$(OBJECT_FILES_LIST)
+
+$(DEBUG_DIR)\UiApp.dll : $(MAKE_FILE)
+$(DEBUG_DIR)\UiApp.dll : $(STATIC_LIBRARY_FILES)
+$(DEBUG_DIR)\UiApp.dll : $(STATIC_LIBRARY_FILES_LIST)
+ "$(DLINK)" /OUT:c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\DEBUG\UiApp.dll $(DLINK_FLAGS) $(DLINK2_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST)
+ "$(DLINK)" /OUT:c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\DEBUG\UiApp.dll $(DLINK_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST)
+
+$(OUTPUT_DIR)\UiApp.efi : $(DEBUG_DIR)\UiApp.dll
+ "$(GENFW)" -e $(MODULE_TYPE) -o c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\UiApp.efi c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\DEBUG\UiApp.dll $(GENFW_FLAGS)
+ $(CP) c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\UiApp.efi $(DEBUG_DIR)
+ $(CP) c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\UiApp.efi $(BIN_DIR)\$(MODULE_NAME_GUID).efi
+ -$(CP) $(DEBUG_DIR)\*.map $(OUTPUT_DIR)
+ -$(CP) $(DEBUG_DIR)\*.pdb $(OUTPUT_DIR)
+
+$(DEBUG_DIR)\UiApp.efi : $(OUTPUT_DIR)\UiApp.efi
+
+
+$(OUTPUT_DIR)\UiApp.map : $(OUTPUT_DIR)\UiApp.efi
+
+
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID).map : $(OUTPUT_DIR)\UiApp.map
+ if exist $(OUTPUT_DIR)\UiApp.map $(CP) $(OUTPUT_DIR)\UiApp.map $(FFS_OUTPUT_DIR)\$(MODULE_GUID).map
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID).ffs : $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC1.1.pe32 $(FFS_OUTPUT_DIR)\UiAppOffset.raw $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.ui $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ver
+ GenFfs -t EFI_FV_FILETYPE_APPLICATION -g $(MODULE_GUID) -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID).ffs -oi $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC1.1.pe32 -oi $(FFS_OUTPUT_DIR)\UiAppOffset.raw -oi $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.ui -oi $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ver
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC1.1.pe32 : $(OUTPUT_DIR)\UiApp.efi
+ if exist $(OUTPUT_DIR)\UiApp.efi GenSec -s EFI_SECTION_PE32 -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC1.1.pe32 $(OUTPUT_DIR)\UiApp.efi
+$(FFS_OUTPUT_DIR)\UiAppOffset.raw : $(FFS_OUTPUT_DIR)\UiApp.offset
+ if exist $(FFS_OUTPUT_DIR)\UiApp.offset GenSec -s EFI_SECTION_RAW -o $(FFS_OUTPUT_DIR)\UiAppOffset.raw $(FFS_OUTPUT_DIR)\UiApp.offset
+$(FFS_OUTPUT_DIR)\UiApp.offset : $(DEBUG_DIR)\UiApp.efi
+ Trim --Vfr-Uni-Offset -o $(FFS_OUTPUT_DIR)\UiApp.offset --ModuleName=UiApp --DebugDir=c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\DEBUG
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.ui : $(MODULE_DIR)\$(MODULE_FILE)
+ GenSec -s EFI_SECTION_USER_INTERFACE -n $(MODULE_NAME) -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.ui
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ver : $(MODULE_DIR)\$(MODULE_FILE)
+ GenSec -s EFI_SECTION_VERSION -n 1.0 -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ver
+
+
+#
+# clean all intermediate files
+#
+clean:
+ if exist $(OUTPUT_DIR) $(RD) $(OUTPUT_DIR)
+ $(RM) AutoGenTimeStamp
+
+#
+# clean all generated files
+#
+cleanall:
+ if exist $(DEBUG_DIR) $(RD) $(DEBUG_DIR)
+ if exist $(OUTPUT_DIR) $(RD) $(OUTPUT_DIR)
+ $(RM) *.pdb *.idb > NUL 2>&1
+ $(RM) $(BIN_DIR)\$(MODULE_NAME).efi
+ $(RM) AutoGenTimeStamp
+
+#
+# clean all dependent libraries built
+#
+cleanlib:
+ -@if exist $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\CcProbeLibNull\CcProbeLibNull\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\CcProbeLibNull\CcProbeLibNull\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\DxeHobLib\DxeHobLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxeHobLib\DxeHobLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdeModulePkg\Library\VariablePolicyHelperLib\VariablePolicyHelperLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\VariablePolicyHelperLib\VariablePolicyHelperLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdeModulePkg\Library\UefiSortLib\UefiSortLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiSortLib\UefiSortLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\DxeServicesLib\DxeServicesLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxeServicesLib\DxeServicesLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\DxeServicesTableLib\DxeServicesTableLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxeServicesTableLib\DxeServicesTableLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BasePeCoffGetEntryPointLib\BasePeCoffGetEntryPointLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BasePeCoffGetEntryPointLib\BasePeCoffGetEntryPointLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BasePerformanceLibNull\BasePerformanceLibNull\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BasePerformanceLibNull\BasePerformanceLibNull\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdeModulePkg\Library\DxeReportStatusCodeLib\DxeReportStatusCodeLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\DxeReportStatusCodeLib\DxeReportStatusCodeLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdeModulePkg\Library\UefiBootManagerLib\UefiBootManagerLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiBootManagerLib\UefiBootManagerLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\FileExplorerLib\FileExplorerLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiApplicationEntryPoint\UefiApplicationEntryPoint\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiApplicationEntryPoint\UefiApplicationEntryPoint\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\DeviceManagerUiLib\DeviceManagerUiLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\BootManagerUiLib\BootManagerUiLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\BootMaintenanceManagerUiLib\BootMaintenanceManagerUiLib\Makefile cleanall
+ @cd $(MODULE_BUILD_DIR)
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/AutoGen.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/AutoGen.c.deps
new file mode 100644
index 000000000000..fb2d95b11ef0
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/AutoGen.c.deps
@@ -0,0 +1,33 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\AutoGen.c: \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\application\uiapp\uiapp\debug\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\application\uiapp\uiapp\debug\UiAppStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiApplicationEntryPoint.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/FrontPage.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/FrontPage.c.deps
new file mode 100644
index 000000000000..0632b594f2b2
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/FrontPage.c.deps
@@ -0,0 +1,87 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\FrontPage.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\application\uiapp\uiapp\debug\UiAppStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\application\uiapp\FrontPage.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\application\uiapp\String.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\application\uiapp\Ui.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/SmBios.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/StatusCodeDataTypeId.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Smbios.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/ReportStatusCodeLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiBootManagerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverHealth.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/SortLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/BootLogo.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\application\uiapp\FrontPageCustomizedUi.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/FrontPageCustomizedUi.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/FrontPageCustomizedUi.c.deps
new file mode 100644
index 000000000000..4666b54ea136
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/FrontPageCustomizedUi.c.deps
@@ -0,0 +1,87 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\FrontPageCustomizedUi.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\application\uiapp\uiapp\debug\UiAppStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\application\uiapp\FrontPage.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\application\uiapp\String.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\application\uiapp\Ui.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/SmBios.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/StatusCodeDataTypeId.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Smbios.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/ReportStatusCodeLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiBootManagerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverHealth.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/SortLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/BootLogo.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\application\uiapp\FrontPageCustomizedUiSupport.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/FrontPageCustomizedUiSupport.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/FrontPageCustomizedUiSupport.c.deps
new file mode 100644
index 000000000000..35e616cd1ce4
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/FrontPageCustomizedUiSupport.c.deps
@@ -0,0 +1,64 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\FrontPageCustomizedUiSupport.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\application\uiapp\uiapp\debug\UiAppStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/GlobalVariable.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\application\uiapp\FrontPageCustomizedUiSupport.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/FrontPageVfr.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/FrontPageVfr.c.deps
new file mode 100644
index 000000000000..b404fee6d8c3
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/FrontPageVfr.c.deps
@@ -0,0 +1,29 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\FrontPageVfr.obj: \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\application\uiapp\uiapp\debug\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\application\uiapp\uiapp\debug\UiAppStrDefs.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/FrontPageVfr.i b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/FrontPageVfr.i
new file mode 100644
index 000000000000..e1b8e29a7f47
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/FrontPageVfr.i
@@ -0,0 +1,169 @@
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Application\\UiApp\\FrontPageVfr.Vfr"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Application\\UiApp\\UiApp\\DEBUG\\UiAppStrDefs.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern unsigned char UiAppStrings[];
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 85 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Application\\UiApp\\UiApp\\DEBUG\\UiAppStrDefs.h"
+
+#line 87 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\Ovmf3264\\DEBUG_VS2015x86\\X64\\MdeModulePkg\\Application\\UiApp\\UiApp\\DEBUG\\UiAppStrDefs.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdeModulePkg\\Application\\UiApp\\FrontPageVfr.Vfr"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+formset
+ guid = { 0x9e0c30bc, 0x3f06, 0x4ba6, 0x82, 0x88, 0x9, 0x17, 0x9b, 0x85, 0x5d, 0xbe },
+ title = STRING_TOKEN(0x0002),
+ help = STRING_TOKEN(0x000C ),
+ classguid = { 0x9e0c30bc, 0x3f06, 0x4ba6, 0x82, 0x88, 0x9, 0x17, 0x9b, 0x85, 0x5d, 0xbe },
+
+ form formid = 0x1000,
+ title = STRING_TOKEN(0x0002);
+
+ banner
+ title = STRING_TOKEN(0x0003),
+ line 1,
+ align left;
+
+ banner
+ title = STRING_TOKEN(0x0004),
+ line 2,
+ align left;
+
+ banner
+ title = STRING_TOKEN(0x0005),
+ line 2,
+ align right;
+
+ banner
+ title = STRING_TOKEN(0x0007),
+ line 3,
+ align left;
+
+ banner
+ title = STRING_TOKEN(0x0006),
+ line 3,
+ align right;
+
+ banner
+ title = STRING_TOKEN(0x000E),
+ line 4,
+ align left;
+
+ banner
+ title = STRING_TOKEN(0x000F),
+ line 4,
+ align right;
+
+ banner
+ title = STRING_TOKEN(0x0010),
+ line 5,
+ align left;
+
+ banner
+ title = STRING_TOKEN(0x0011),
+ line 5,
+ align right;
+
+ label 0x1000;
+
+
+
+
+ label 0xffff;
+
+ endform;
+
+endformset;
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/String.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/String.c.deps
new file mode 100644
index 000000000000..b5e6a0cf7019
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/String.c.deps
@@ -0,0 +1,86 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\String.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\application\uiapp\uiapp\debug\UiAppStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\application\uiapp\Ui.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/SmBios.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/StatusCodeDataTypeId.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Smbios.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/ReportStatusCodeLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiBootManagerLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverHealth.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/SortLib.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\application\uiapp\FrontPage.h" \
+"c:\users\mliang2x\workspace\edk2\mdemodulepkg\application\uiapp\String.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/BootLogo.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiApp.efi b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiApp.efi
new file mode 100644
index 0000000000000000000000000000000000000000..514517d4ad983060d79b41ce4f1681760019169f
GIT binary patch
literal 160448
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∾{(8@9H>KYg=t}&Xmz%T6(D@-2@Ap(hKb-!
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�nomwMj|<`*W>E&&qBoXod;_M>+|Rm_{rV=_D1+
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
WnY_sN@|StEzl(%l=uYwPiO+AdnKP&W
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiApp.lib b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiApp.lib
new file mode 100644
index 0000000000000000000000000000000000000000..da745e4b45a1b0c3603bc2a93221374081d95634
GIT binary patch
literal 223494
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Ȍ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
SaJ~tSXF`uNN!}luBmWOg7n`{N
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiApp.map b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiApp.map
new file mode 100644
index 000000000000..dab4327ebc4d
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiApp.map
@@ -0,0 +1,1519 @@
+ UiApp
+
+ Timestamp is 64881a45 (Tue Jun 13 15:27:01 2023)
+
+ Preferred load address is 0000000000000000
+
+ Start Length Name Class
+ 0001:00000000 00000348H .text CODE
+ 0001:00000348 00019425H .text$mn CODE
+ 0002:00000000 00004d14H .rdata DATA
+ 0002:00004d14 00000138H .rdata$zzzdbg DATA
+ 0003:00000000 00006ec0H .data DATA
+ 0003:00006ec0 00000240H .bss DATA
+ 0004:00000000 00000cf0H .pdata DATA
+ 0005:00000000 00000b58H .xdata DATA
+
+ Address Publics by Value Rva+Base Lib:Object
+
+ 0000:00000000 __guard_iat_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_flags 0000000000000000 <absolute>
+ 0000:00000000 __guard_longjmp_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_longjmp_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_iat_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_table 0000000000000000 <absolute>
+ 0000:00000000 __dynamic_value_reloc_table 0000000000000000 <absolute>
+ 0000:00000000 __ImageBase 0000000000000000 <linker-defined>
+ 0001:00000000 InternalMemCopyMem 00000000000002c0 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000040 InternalMemZeroMem 0000000000000300 BaseMemoryLibRepStr:ZeroMem.obj
+ 0001:00000060 InternalMemSetMem 0000000000000320 BaseMemoryLibRepStr:SetMem.obj
+ 0001:00000080 InternalMemSetMem16 0000000000000340 BaseMemoryLibRepStr:SetMem16.obj
+ 0001:000000a0 InternalMemCompareMem 0000000000000360 BaseMemoryLibRepStr:CompareMem.obj
+ 0001:000000c0 InternalMemIsZeroBuffer 0000000000000380 BaseMemoryLibRepStr:IsZeroBuffer.obj
+ 0001:000000f0 InternalMemSetMem64 00000000000003b0 BaseMemoryLibRepStr:SetMem64.obj
+ 0001:00000110 InternalMemSetMem32 00000000000003d0 BaseMemoryLibRepStr:SetMem32.obj
+ 0001:00000130 CpuPause 00000000000003f0 BaseLib:CpuPause.obj
+ 0001:00000140 SevNoRepIo 0000000000000400 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000180 SevIoReadFifo8 0000000000000440 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001a2 SevIoReadFifo16 0000000000000462 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001c8 SevIoReadFifo32 0000000000000488 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001eb SevIoWriteFifo8 00000000000004ab BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000020d SevIoWriteFifo16 00000000000004cd BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000233 SevIoWriteFifo32 00000000000004f3 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000260 TdVmCall 0000000000000520 BaseLib:TdVmcall.obj
+ 0001:000002f0 TdCall 00000000000005b0 BaseLib:TdCall.obj
+ 0001:00000348 _ModuleEntryPoint 0000000000000608 f UefiApplicationEntryPoint:ApplicationEntryPoint.obj
+ 0001:0000036c ProcessLibraryConstructorList 000000000000062c f UiApp:AutoGen.obj
+ 0001:000008dc ProcessLibraryDestructorList 0000000000000b9c f UiApp:AutoGen.obj
+ 0001:00000b80 DeviceManagerExtractConfig 0000000000000e40 f DeviceManagerUiLib:DeviceManager.obj
+ 0001:00000b80 BootManagerExtractConfig 0000000000000e40 f BootManagerUiLib:BootManager.obj
+ 0001:00000b80 FakeExtractConfig 0000000000000e40 f UiApp:FrontPage.obj
+ 0001:00000b80 LibExtractConfig 0000000000000e40 f FileExplorerLib:FileExplorer.obj
+ 0001:00000ba4 LibRouteConfig 0000000000000e64 f FileExplorerLib:FileExplorer.obj
+ 0001:00000ba4 BootManagerRouteConfig 0000000000000e64 f BootManagerUiLib:BootManager.obj
+ 0001:00000ba4 FakeRouteConfig 0000000000000e64 f UiApp:FrontPage.obj
+ 0001:00000ba4 DeviceManagerRouteConfig 0000000000000e64 f DeviceManagerUiLib:DeviceManager.obj
+ 0001:00000bc8 FrontPageCallback 0000000000000e88 f UiApp:FrontPage.obj
+ 0001:00000c94 UpdateFrontPageForm 0000000000000f54 f UiApp:FrontPage.obj
+ 0001:00000dcc ConvertProcessorToString 000000000000108c f UiApp:FrontPage.obj
+ 0001:00000ed8 GetOptionalStringByIndex 0000000000001198 f UiApp:FrontPage.obj
+ 0001:000010cc UpdateFrontPageBannerStrings 000000000000138c f UiApp:FrontPage.obj
+ 0001:00001f7c UiSetConsoleMode 000000000000223c f UiApp:FrontPage.obj
+ 0001:00002468 InitializeUserInterface 0000000000002728 f UiApp:FrontPage.obj
+ 0001:00002664 UiEntry 0000000000002924 f UiApp:FrontPage.obj
+ 0001:0000299c UiCustomizeFrontPageBanner 0000000000002c5c f UiApp:FrontPageCustomizedUi.obj
+ 0001:00002b4c GetNextLanguage 0000000000002e0c f UiApp:FrontPageCustomizedUiSupport.obj
+ 0001:00002c08 LanguageChangeHandler 0000000000002ec8 f UiApp:FrontPageCustomizedUiSupport.obj
+ 0001:00002d18 UiCreateLanguageMenu 0000000000002fd8 f UiApp:FrontPageCustomizedUiSupport.obj
+ 0001:00003218 UiListThirdPartyDrivers 00000000000034d8 f UiApp:FrontPageCustomizedUiSupport.obj
+ 0001:000038bc GetPcdProtocol 0000000000003b7c f DxePcdLib:DxePcdLib.obj
+ 0001:00003948 LibPcdSet32S 0000000000003c08 f DxePcdLib:DxePcdLib.obj
+ 0001:00003974 CopyMem 0000000000003c34 f BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0001:00003a10 CopyGuid 0000000000003cd0 f BaseMemoryLibRepStr:MemLibGuid.obj
+ 0001:00003a94 CompareGuid 0000000000003d54 f BaseMemoryLibRepStr:MemLibGuid.obj
+ 0001:00003afc StrnLenS 0000000000003dbc f BaseLib:SafeString.obj
+ 0001:00003b64 StrCpyS 0000000000003e24 f BaseLib:SafeString.obj
+ 0001:00003d08 StrnCpyS 0000000000003fc8 f BaseLib:SafeString.obj
+ 0001:00003ee0 StrCatS 00000000000041a0 f BaseLib:SafeString.obj
+ 0001:000040c8 StrnCatS 0000000000004388 f BaseLib:SafeString.obj
+ 0001:000042b0 AsciiStrnLenS 0000000000004570 f BaseLib:SafeString.obj
+ 0001:000042dc AsciiStrToUnicodeStrS 000000000000459c f BaseLib:SafeString.obj
+ 0001:00004454 StrLen 0000000000004714 f BaseLib:String.obj
+ 0001:000044e8 StrCmp 00000000000047a8 f BaseLib:String.obj
+ 0001:00004584 StrnCmp 0000000000004844 f BaseLib:String.obj
+ 0001:0000466c StrStr 000000000000492c f BaseLib:String.obj
+ 0001:00004734 AsciiStrLen 00000000000049f4 f BaseLib:String.obj
+ 0001:000047a0 AsciiStrnCmp 0000000000004a60 f BaseLib:String.obj
+ 0001:0000486c ReadUnaligned16 0000000000004b2c f BaseLib:Unaligned.obj
+ 0001:0000489c ReadUnaligned32 0000000000004b5c f BaseLib:Unaligned.obj
+ 0001:000048cc ReadUnaligned64 0000000000004b8c f BaseLib:Unaligned.obj
+ 0001:000048fc UnicodeVSPrint 0000000000004bbc f BasePrintLib:PrintLib.obj
+ 0001:00004988 UnicodeSPrint 0000000000004c48 f BasePrintLib:PrintLib.obj
+ 0001:000049a8 UnicodeValueToStringS 0000000000004c68 f BasePrintLib:PrintLib.obj
+ 0001:00004a18 AsciiSPrint 0000000000004cd8 f BasePrintLib:PrintLib.obj
+ 0001:00004a40 BasePrintLibFillBuffer 0000000000004d00 f BasePrintLib:PrintLibInternal.obj
+ 0001:00004a74 BasePrintLibValueToString 0000000000004d34 f BasePrintLib:PrintLibInternal.obj
+ 0001:00004aec BasePrintLibConvertValueToStringS 0000000000004dac f BasePrintLib:PrintLibInternal.obj
+ 0001:00004dfc BasePrintLibSPrintMarker 00000000000050bc f BasePrintLib:PrintLibInternal.obj
+ 0001:00005c30 BasePrintLibSPrint 0000000000005ef0 f BasePrintLib:PrintLibInternal.obj
+ 0001:00005c54 DebugPrint 0000000000005f14 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:00005c78 DebugPrintMarker 0000000000005f38 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:00005d28 DebugAssert 0000000000005fe8 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:00005dc0 InternalAllocatePages 0000000000006080 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00005dfc FreePages 00000000000060bc f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00005e78 InternalAllocatePool 0000000000006138 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00005ea8 AllocateZeroPool 0000000000006168 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00005ed4 InternalAllocateCopyPool 0000000000006194 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00005f4c InternalReallocatePool 000000000000620c f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00005fcc FreePool 000000000000628c f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00006010 IsDevicePathValid 00000000000062d0 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:000060f0 DevicePathType 00000000000063b0 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00006120 DevicePathSubType 00000000000063e0 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00006150 DevicePathNodeLength 0000000000006410 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00006188 NextDevicePathNode 0000000000006448 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:000061c0 IsDevicePathEndType 0000000000006480 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:000061fc IsDevicePathEnd 00000000000064bc f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00006250 SetDevicePathNodeLength 0000000000006510 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:000062d0 SetDevicePathEndNode 0000000000006590 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00006310 GetNextDevicePathInstance 00000000000065d0 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00006358 DevicePathFromHandle 0000000000006618 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:0000638c FileDevicePath 000000000000664c f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00006448 UefiDevicePathLibLocateProtocol 0000000000006708 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00006484 ConvertDevicePathToText 0000000000006744 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:000064c4 EfiGetSystemConfigurationTable 0000000000006784 f UefiLib:UefiLib.obj
+ 0001:00006588 EfiEventEmptyFunction 0000000000006848 f UefiLib:UefiLib.obj
+ 0001:0000658c EfiAcquireLock 000000000000684c f UefiLib:UefiLib.obj
+ 0001:000065d8 EfiReleaseLock 0000000000006898 f UefiLib:UefiLib.obj
+ 0001:00006620 GetVariable2 00000000000068e0 f UefiLib:UefiLib.obj
+ 0001:00006740 GetBestLanguage 0000000000006a00 f UefiLib:UefiLib.obj
+ 0001:00006884 UefiLibGetStringWidth 0000000000006b44 f UefiLib:Console.obj
+ 0001:0000692c CreatePopUp 0000000000006bec f UefiLib:Console.obj
+ 0001:00006cf0 GetHobList 0000000000006fb0 f DxeHobLib:HobLib.obj
+ 0001:00006d74 GetNextHob 0000000000007034 f DxeHobLib:HobLib.obj
+ 0001:00006dc4 HiiSetString 0000000000007084 f UefiHiiLib:HiiString.obj
+ 0001:00006f14 HiiGetStringEx 00000000000071d4 f UefiHiiLib:HiiString.obj
+ 0001:000070c4 HiiAddPackages 0000000000007384 f UefiHiiLib:HiiLib.obj
+ 0001:00007200 HiiRemovePackages 00000000000074c0 f UefiHiiLib:HiiLib.obj
+ 0001:00007270 HiiGetHiiHandles 0000000000007530 f UefiHiiLib:HiiLib.obj
+ 0001:000072fc HiiGetFormSetFromHiiHandle 00000000000075bc f UefiHiiLib:HiiLib.obj
+ 0001:000074ec InternalHiiBrowserCallback 00000000000077ac f UefiHiiLib:HiiLib.obj
+ 0001:000075fc HiiConstructConfigHdr 00000000000078bc f UefiHiiLib:HiiLib.obj
+ 0001:0000785c InternalHiiCompareSubString 0000000000007b1c f UefiHiiLib:HiiLib.obj
+ 0001:00007978 HiiIsConfigHdrMatch 0000000000007c38 f UefiHiiLib:HiiLib.obj
+ 0001:00007a10 HiiGetBrowserData 0000000000007cd0 f UefiHiiLib:HiiLib.obj
+ 0001:00007ae8 HiiSetBrowserData 0000000000007da8 f UefiHiiLib:HiiLib.obj
+ 0001:00007c08 HiiAllocateOpCodeHandle 0000000000007ec8 f UefiHiiLib:HiiLib.obj
+ 0001:00007c58 HiiFreeOpCodeHandle 0000000000007f18 f UefiHiiLib:HiiLib.obj
+ 0001:00007c98 InternalHiiGrowOpCodeHandle 0000000000007f58 f UefiHiiLib:HiiLib.obj
+ 0001:00007d3c InternalHiiCreateOpCodeExtended 0000000000007ffc f UefiHiiLib:HiiLib.obj
+ 0001:00007df0 InternalHiiAppendOpCodes 00000000000080b0 f UefiHiiLib:HiiLib.obj
+ 0001:00007e70 HiiCreateEndOpCode 0000000000008130 f UefiHiiLib:HiiLib.obj
+ 0001:00007e98 HiiCreateOneOfOptionOpCode 0000000000008158 f UefiHiiLib:HiiLib.obj
+ 0001:00007f54 HiiCreateGuidOpCode 0000000000008214 f UefiHiiLib:HiiLib.obj
+ 0001:00007fa8 HiiCreateActionOpCode 0000000000008268 f UefiHiiLib:HiiLib.obj
+ 0001:00008028 HiiCreateSubTitleOpCode 00000000000082e8 f UefiHiiLib:HiiLib.obj
+ 0001:00008084 HiiCreateGotoOpCode 0000000000008344 f UefiHiiLib:HiiLib.obj
+ 0001:00008134 HiiCreateGotoExOpCode 00000000000083f4 f UefiHiiLib:HiiLib.obj
+ 0001:00008204 HiiCreateCheckBoxOpCode 00000000000084c4 f UefiHiiLib:HiiLib.obj
+ 0001:000082c8 HiiCreateStringOpCode 0000000000008588 f UefiHiiLib:HiiLib.obj
+ 0001:00008354 HiiCreateOneOfOpCode 0000000000008614 f UefiHiiLib:HiiLib.obj
+ 0001:00008478 InternalHiiUpdateFormPackageData 0000000000008738 f UefiHiiLib:HiiLib.obj
+ 0001:000086cc HiiUpdateForm 000000000000898c f UefiHiiLib:HiiLib.obj
+ 0001:00008944 HiiGetSupportedLanguages 0000000000008c04 f UefiHiiLib:HiiLanguage.obj
+ 0001:000089e8 InternalReportStatusCode 0000000000008ca8 f DxeReportStatusCodeLib:ReportStatusCodeLib.obj
+ 0001:00008a98 ReportStatusCodeEx 0000000000008d58 f DxeReportStatusCodeLib:ReportStatusCodeLib.obj
+ 0001:00008c60 EfiBootManagerConnectAll 0000000000008f20 f UefiBootManagerLib:BmConnect.obj
+ 0001:00008cec EfiBootManagerConnectDevicePath 0000000000008fac f UefiBootManagerLib:BmConnect.obj
+ 0001:00008e38 BmConnectUsbShortFormDevicePath 00000000000090f8 f UefiBootManagerLib:BmConnect.obj
+ 0001:00008f84 BmFindBootOptionInVariable 0000000000009244 f UefiBootManagerLib:BmBoot.obj
+ 0001:000090d8 BmAdjustFvFilePath 0000000000009398 f UefiBootManagerLib:BmBoot.obj
+ 0001:0000925c BmMatchUsbClass 000000000000951c f UefiBootManagerLib:BmBoot.obj
+ 0001:00009324 BmMatchUsbWwid 00000000000095e4 f UefiBootManagerLib:BmBoot.obj
+ 0001:000094b4 BmExpandUsbDevicePath 0000000000009774 f UefiBootManagerLib:BmBoot.obj
+ 0001:0000967c BmExpandFileDevicePath 000000000000993c f UefiBootManagerLib:BmBoot.obj
+ 0001:000097ec BmExpandUriDevicePath 0000000000009aac f UefiBootManagerLib:BmBoot.obj
+ 0001:000098f8 BmCachePartitionDevicePath 0000000000009bb8 f UefiBootManagerLib:BmBoot.obj
+ 0001:000099b0 BmExpandPartitionDevicePath 0000000000009c70 f UefiBootManagerLib:BmBoot.obj
+ 0001:00009c58 BmExpandMediaDevicePath 0000000000009f18 f UefiBootManagerLib:BmBoot.obj
+ 0001:00009ed4 BmExpandNetworkFileSystem 000000000000a194 f UefiBootManagerLib:BmBoot.obj
+ 0001:00009fe0 BmGetRamDiskDevicePath 000000000000a2a0 f UefiBootManagerLib:BmBoot.obj
+ 0001:0000a090 BmDestroyRamDisk 000000000000a350 f UefiBootManagerLib:BmBoot.obj
+ 0001:0000a24c BmExpandLoadFile 000000000000a50c f UefiBootManagerLib:BmBoot.obj
+ 0001:0000a454 BmExpandLoadFiles 000000000000a714 f UefiBootManagerLib:BmBoot.obj
+ 0001:0000a658 BmGetNextLoadOptionDevicePath 000000000000a918 f UefiBootManagerLib:BmBoot.obj
+ 0001:0000a8dc BmIsBootManagerMenuFilePath 000000000000ab9c f UefiBootManagerLib:BmBoot.obj
+ 0001:0000a930 BmReportLoadFailure 000000000000abf0 f UefiBootManagerLib:BmBoot.obj
+ 0001:0000a9ac EfiBootManagerBoot 000000000000ac6c f UefiBootManagerLib:BmBoot.obj
+ 0001:0000ae60 BmMatchPartitionDevicePathNode 000000000000b120 f UefiBootManagerLib:BmBoot.obj
+ 0001:0000aeec BmEnumerateBootOptions 000000000000b1ac f UefiBootManagerLib:BmBoot.obj
+ 0001:0000b480 EfiBootManagerRefreshAllBootOption 000000000000b740 f UefiBootManagerLib:BmBoot.obj
+ 0001:0000b63c BmUpdateSystemTableConsole 000000000000b8fc f UefiBootManagerLib:BmConsole.obj
+ 0001:0000b804 EfiBootManagerUpdateConsoleVariable 000000000000bac4 f UefiBootManagerLib:BmConsole.obj
+ 0001:0000b908 EfiBootManagerConnectConsoleVariable 000000000000bbc8 f UefiBootManagerLib:BmConsole.obj
+ 0001:0000bb10 EfiBootManagerConnectAllDefaultConsoles 000000000000bdd0 f UefiBootManagerLib:BmConsole.obj
+ 0001:0000bc24 BmGetFreeOptionNumber 000000000000bee4 f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000bda0 EfiBootManagerLoadOptionToVariable 000000000000c060 f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000c004 BmAddOptionNumberToOrderVariable 000000000000c2c4 f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000c14c EfiBootManagerAddLoadOptionVariable 000000000000c40c f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000c1ec EfiBootManagerInitializeLoadOption 000000000000c4ac f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000c2d0 EfiBootManagerFindLoadOption 000000000000c590 f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000c380 EfiBootManagerDeleteLoadOptionVariable 000000000000c640 f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000c4e0 BmValidateOption 000000000000c7a0 f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000c624 EfiBootManagerIsValidLoadOptionVariableName 000000000000c8e4 f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000c734 EfiBootManagerVariableToLoadOptionEx 000000000000c9f4 f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000c89c EfiBootManagerGetLoadOptions 000000000000cb5c f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000ca28 EfiBootManagerFreeLoadOption 000000000000cce8 f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000ca64 EfiBootManagerFreeLoadOptions 000000000000cd24 f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000cac4 BmGetNextLoadOptionBuffer 000000000000cd84 f UefiBootManagerLib:BmLoadOption.obj
+ 0001:0000cc6c BmEliminateExtraSpaces 000000000000cf2c f UefiBootManagerLib:BmBootDescription.obj
+ 0001:0000ccb4 BmGetDescriptionFromDiskInfo 000000000000cf74 f UefiBootManagerLib:BmBootDescription.obj
+ 0001:0000cfa8 BmGetUsbDescription 000000000000d268 f UefiBootManagerLib:BmBootDescription.obj
+ 0001:0000d184 BmGetNetworkDescription 000000000000d444 f UefiBootManagerLib:BmBootDescription.obj
+ 0001:0000d464 BmGetLoadFileDescription 000000000000d724 f UefiBootManagerLib:BmBootDescription.obj
+ 0001:0000d500 BmGetNvmeDescription 000000000000d7c0 f UefiBootManagerLib:BmBootDescription.obj
+ 0001:0000d718 BmGetMiscDescription 000000000000d9d8 f UefiBootManagerLib:BmBootDescription.obj
+ 0001:0000d93c BmGetBootDescription 000000000000dbfc f UefiBootManagerLib:BmBootDescription.obj
+ 0001:0000daa8 BmHotkeyCallback 000000000000dd68 f UefiBootManagerLib:BmHotkey.obj
+ 0001:0000dcb0 BmGetActiveConsoleIn 000000000000df70 f UefiBootManagerLib:BmHotkey.obj
+ 0001:0000dd50 BmStopHotkeyService 000000000000e010 f UefiBootManagerLib:BmHotkey.obj
+ 0001:0000df08 BmDelPartMatchInstance 000000000000e1c8 f UefiBootManagerLib:BmMisc.obj
+ 0001:0000dfec MatchDevicePaths 000000000000e2ac f BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0001:0000dfec BmMatchDevicePaths 000000000000e2ac f UefiBootManagerLib:BmMisc.obj
+ 0001:0000e054 BmSetMemoryTypeInformationVariable 000000000000e314 f UefiBootManagerLib:BmMisc.obj
+ 0001:0000e2a8 BmSetVariableAndReportStatusCodeOnError 000000000000e568 f UefiBootManagerLib:BmMisc.obj
+ 0001:0000e3a8 BmGetControllerName 000000000000e668 f UefiBootManagerLib:BmDriverHealth.obj
+ 0001:0000e4f8 BmDisplayMessages 000000000000e7b8 f UefiBootManagerLib:BmDriverHealth.obj
+ 0001:0000e5ec BmRepairNotify 000000000000e8ac f UefiBootManagerLib:BmDriverHealth.obj
+ 0001:0000e634 BmGetSingleControllerHealthStatus 000000000000e8f4 f UefiBootManagerLib:BmDriverHealth.obj
+ 0001:0000e820 EfiBootManagerGetDriverHealthInfo 000000000000eae0 f UefiBootManagerLib:BmDriverHealth.obj
+ 0001:0000ea2c EfiBootManagerFreeDriverHealthInfo 000000000000ecec f UefiBootManagerLib:BmDriverHealth.obj
+ 0001:0000ea80 BmRepairAllControllers 000000000000ed40 f UefiBootManagerLib:BmDriverHealth.obj
+ 0001:0000ee34 LibCallback 000000000000f0f4 f FileExplorerLib:FileExplorer.obj
+ 0001:0000f024 LibCreateMenuEntry 000000000000f2e4 f FileExplorerLib:FileExplorer.obj
+ 0001:0000f070 LibGetMenuEntry 000000000000f330 f FileExplorerLib:FileExplorer.obj
+ 0001:0000f0e8 LibDestroyMenuEntry 000000000000f3a8 f FileExplorerLib:FileExplorer.obj
+ 0001:0000f164 LibFreeMenu 000000000000f424 f FileExplorerLib:FileExplorer.obj
+ 0001:0000f1dc LibStrDuplicate 000000000000f49c f FileExplorerLib:FileExplorer.obj
+ 0001:0000f248 LibAppendFileName 000000000000f508 f FileExplorerLib:FileExplorer.obj
+ 0001:0000f3fc LibFindFileSystem 000000000000f6bc f FileExplorerLib:FileExplorer.obj
+ 0001:0000f6e4 LibGetFileHandleFromDevicePath 000000000000f9a4 f FileExplorerLib:FileExplorer.obj
+ 0001:0000f8f0 LibCreateNewFile 000000000000fbb0 f FileExplorerLib:FileExplorer.obj
+ 0001:0000f9e8 LibFindFiles 000000000000fca8 f FileExplorerLib:FileExplorer.obj
+ 0001:0000fc90 LibUpdateFileExplorePage 000000000000ff50 f FileExplorerLib:FileExplorer.obj
+ 0001:0000fee0 LibUpdateFileExplorer 00000000000101a0 f FileExplorerLib:FileExplorer.obj
+ 0001:0000ffc0 LibGetDevicePath 0000000000010280 f FileExplorerLib:FileExplorer.obj
+ 0001:00010014 ChooseFile 00000000000102d4 f FileExplorerLib:FileExplorer.obj
+ 0001:0001015c DmExtractDevicePathFromHiiHandle 000000000001041c f DeviceManagerUiLib:DeviceManager.obj
+ 0001:000101b0 AddIdToMacDeviceList 0000000000010470 f DeviceManagerUiLib:DeviceManager.obj
+ 0001:000102c0 IsMacAddressDevicePath 0000000000010580 f DeviceManagerUiLib:DeviceManager.obj
+ 0001:00010564 IsNeedAddNetworkMenu 0000000000010824 f DeviceManagerUiLib:DeviceManager.obj
+ 0001:0001071c CreateDeviceManagerForm 00000000000109dc f DeviceManagerUiLib:DeviceManager.obj
+ 0001:00010f80 DeviceManagerCallback 0000000000011240 f DeviceManagerUiLib:DeviceManager.obj
+ 0001:0001103c BmSetConsoleMode 00000000000112fc f BootManagerUiLib:BootManager.obj
+ 0001:00011528 BmSetupResetReminder 00000000000117e8 f BootManagerUiLib:BootManager.obj
+ 0001:00011634 GroupMultipleLegacyBootOption4SameType 00000000000118f4 f BootManagerUiLib:BootManager.obj
+ 0001:00011824 UpdateBootManager 0000000000011ae4 f BootManagerUiLib:BootManager.obj
+ 0001:00011bb8 BootManagerCallback 0000000000011e78 f BootManagerUiLib:BootManager.obj
+ 0001:00011e34 BootManagerUiLibConstructor 00000000000120f4 f BootManagerUiLib:BootManager.obj
+ 0001:0001201c BmmSetConsoleMode 00000000000122dc f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:00012508 UiDevicePathToStr 00000000000127c8 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:000125a0 ExtractFileNameFromDevicePath 0000000000012860 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:00012648 UpdateProgress 0000000000012908 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:00012734 UpdateTerminalContent 00000000000129f4 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:000128f4 UpdateConsoleContent 0000000000012bb4 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:00012be8 BootMaintExtractConfig 0000000000012ea8 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:00012d88 BootMaintRouteConfig 0000000000013048 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:000136b4 BootMaintCallback 0000000000013974 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:00013d9c DiscardChangeHandler 000000000001405c f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:00013ef8 CleanUselessBeforeSubmit 00000000000141b8 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:00013fa8 CustomizeMenus 0000000000014268 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:00014078 InitializeBmmConfig 0000000000014338 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:000144c4 InitAllMenu 0000000000014784 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:000146b0 BootMaintenanceManagerUiLibConstructor 0000000000014970 f BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0001:000149d0 RefreshUpdateData 0000000000014c90 f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:00014a0c UpdatePageStart 0000000000014ccc f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:00014a5c UpdatePageEnd 0000000000014d1c f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:00014ae8 CleanUpPage 0000000000014da8 f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:00014b3c UpdateBootDelPage 0000000000014dfc f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:00014c4c UpdateDrvDelPage 0000000000014f0c f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:00014d54 UpdateDriverAddHandleDescPage 0000000000015014 f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:00014df8 UpdateConsolePage 00000000000150b8 f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:00015070 UpdateOrderPage 0000000000015330 f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:000152d4 UpdateConModePage 0000000000015594 f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:000154e0 UpdateTerminalPage 00000000000157a0 f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:00015948 UpdateOptionPage 0000000000015c08 f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:00015c0c UpdatePageBody 0000000000015ecc f BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0001:00015c94 BmmSetupResetReminder 0000000000015f54 f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:00015d9c BOpt_CreateMenuEntry 000000000001605c f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:00015e38 BOpt_DestroyMenuEntry 00000000000160f8 f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:00015efc BOpt_GetMenuEntry 00000000000161bc f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:00015f74 BOpt_FreeMenu 0000000000016234 f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:00015fec BOpt_GetBootOptions 00000000000162ac f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:00016394 BOpt_GetOptionNumber 0000000000016654 f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:00016498 BOpt_GetDriverOptions 0000000000016758 f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:00016710 GetBootOrder 00000000000169d0 f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:000167e0 GetDriverOrder 0000000000016aa0 f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:000168b0 BootFromFile 0000000000016b70 f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:0001694c ReSendForm 0000000000016c0c f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:000169ac CreateBootOptionFromFile 0000000000016c6c f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:000169b8 CreateDriverOptionFromFile 0000000000016c78 f BootMaintenanceManagerUiLib:BootOption.obj
+ 0001:000169c4 Var_DelBootOption 0000000000016c84 f BootMaintenanceManagerUiLib:Variable.obj
+ 0001:00016aa8 Var_UpdateConsoleOption 0000000000016d68 f BootMaintenanceManagerUiLib:Variable.obj
+ 0001:00016ca4 Var_UpdateDriverOption 0000000000016f64 f BootMaintenanceManagerUiLib:Variable.obj
+ 0001:00016f34 Var_UpdateBootOption 00000000000171f4 f BootMaintenanceManagerUiLib:Variable.obj
+ 0001:000171cc Var_UpdateBootNext 000000000001748c f BootMaintenanceManagerUiLib:Variable.obj
+ 0001:000172e8 Var_UpdateBootOrder 00000000000175a8 f BootMaintenanceManagerUiLib:Variable.obj
+ 0001:00017454 Var_UpdateDriverOrder 0000000000017714 f BootMaintenanceManagerUiLib:Variable.obj
+ 0001:00017590 IsIsaSerialNode 0000000000017850 f BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0001:000175d4 ChangeTerminalDevicePath 0000000000017894 f BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0001:0001774c RetrieveUartUid 0000000000017a0c f BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0001:000177e0 SortedUartHandle 0000000000017aa0 f BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0001:000178e0 LocateSerialIo 0000000000017ba0 f BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0001:00017cd8 UpdateComAttributeFromVariable 0000000000017f98 f BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0001:00017e8c GetConsoleMenu 000000000001814c f BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0001:000180cc IsTerminalDevicePath 000000000001838c f BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0001:000181f4 GetConsoleOutMode 00000000000184b4 f BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0001:00018278 UiCustomizeBMMPage 0000000000018538 f BootMaintenanceManagerUiLib:BootMaintenanceManagerCustomizedUi.obj
+ 0001:000184b8 BmmListThirdPartyDrivers 0000000000018778 f BootMaintenanceManagerUiLib:BootMaintenanceManagerCustomizedUiSupport.obj
+ 0001:00018b48 ZeroMem 0000000000018e08 f BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0001:00018bac SetMem 0000000000018e6c f BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0001:00018bfc SetMem16 0000000000018ebc f BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0001:00018cc4 CompareMem 0000000000018f84 f BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0001:00018d9c IsZeroBuffer 000000000001905c f BaseMemoryLibRepStr:IsZeroBufferWrapper.obj
+ 0001:00018df8 InternalBaseLibIsListValid 00000000000190b8 f BaseLib:LinkedList.obj
+ 0001:00018e64 InitializeListHead 0000000000019124 f BaseLib:LinkedList.obj
+ 0001:00018e9c InsertTailList 000000000001915c f BaseLib:LinkedList.obj
+ 0001:00018ef0 GetFirstNode 00000000000191b0 f BaseLib:LinkedList.obj
+ 0001:00018f24 GetNextNode 00000000000191e4 f BaseLib:LinkedList.obj
+ 0001:00018f58 IsListEmpty 0000000000019218 f BaseLib:LinkedList.obj
+ 0001:00018f90 IsNull 0000000000019250 f BaseLib:LinkedList.obj
+ 0001:00018fd4 RemoveEntryList 0000000000019294 f BaseLib:LinkedList.obj
+ 0001:0001901c EfiCreateEventReadyToBootEx 00000000000192dc f UefiLib:UefiNotTiano.obj
+ 0001:000190c0 EfiGetNameGuidFromFwVolDevicePathNode 0000000000019380 f UefiLib:UefiNotTiano.obj
+ 0001:0001910c InternalPrint 00000000000193cc f UefiLib:UefiLibPrint.obj
+ 0001:00019204 Print 00000000000194c4 f UefiLib:UefiLibPrint.obj
+ 0001:00019234 RegisterBasicVariablePolicy 00000000000194f4 f VariablePolicyHelperLib:VariablePolicyHelperLib.obj
+ 0001:00019338 GetFileBufferByFilePath 00000000000195f8 f DxeServicesLib:DxeServicesLib.obj
+ 0002:00000000 ??_C@_05NODKPMNK@UiApp?$AA@ 0000000000019a40 UiApp:AutoGen.obj
+ 0002:00000008 ??_C@_0CH@BBNBJKHK@?$CB?$CI?$CI?$CIINTN?$CJ?$CIRETURN_STATUS?$CJ?$CIStatus?$CJ@ 0000000000019a48 UiApp:AutoGen.obj
+ 0002:00000030 ??_C@_0HJ@FELIMHPN@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000019a70 UiApp:AutoGen.obj
+ 0002:000000b0 ??_C@_0CB@DMEJJJHA@?6ASSERT_EFI_ERROR?5?$CIStatus?5?$DN?5?$CFr?$CJ?6@ 0000000000019af0 UiApp:AutoGen.obj
+ 0002:000000d8 _gPcd_FixedAtBuild_PcdDriverHealthConfigureForm 0000000000019b18 UiApp:AutoGen.obj
+ 0002:000000e8 _gPcd_FixedAtBuild_PcdBootManagerMenuFile 0000000000019b28 UiApp:AutoGen.obj
+ 0002:000000f8 _gPcd_FixedAtBuild_PcdUefiVariableDefaultPlatformLangCodes 0000000000019b38 UiApp:AutoGen.obj
+ 0002:00000110 ??_C@_0CC@PIBHJFDN@StartOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 0000000000019b50 UiApp:FrontPage.obj
+ 0002:00000140 ??_C@_0EM@IBAPGNPH@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000019b80 UiApp:FrontPage.obj
+ 0002:00000190 ??_C@_0CA@FMKGPAPI@EndOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019bd0 UiApp:FrontPage.obj
+ 0002:000001b0 ??_C@_0CM@HGKGDJCC@gFrontPagePrivate?4HiiHandle?5?$CB?$DN?5?$CI@ 0000000000019bf0 UiApp:FrontPage.obj
+ 0002:000001e0 ??_C@_0BN@KDBDLHMK@StringBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019c20 UiApp:FrontPage.obj
+ 0002:00000200 ??_C@_13JOFGPIOO@?$AA?4?$AA?$AA@ 0000000000019c40 UiApp:FrontPage.obj
+ 0002:00000208 ??_C@_19JHPJJHFE@?$AA?5?$AAG?$AAH?$AAz?$AA?$AA@ 0000000000019c48 UiApp:FrontPage.obj
+ 0002:00000218 ??_C@_1BA@NLEEMPFA@?$AA?5?$AAM?$AAB?$AA?5?$AAR?$AAA?$AAM?$AA?$AA@ 0000000000019c58 UiApp:FrontPage.obj
+ 0002:00000228 ??_C@_0BK@KLJHMMPJ@HiiHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019c68 UiApp:FrontPage.obj
+ 0002:00000248 ??_C@_0BO@IOFODAMB@StringBuffer1?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019c88 UiApp:FrontPage.obj
+ 0002:00000268 ??_C@_0BO@GENIONKD@StringBuffer2?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019ca8 UiApp:FrontPage.obj
+ 0002:00000290 ??_C@_1FM@DPJPLHJF@?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AAu?$AAr?$AAa?$AAt?$AAi?$AAo?$AAn?$AA?5?$AAc?$AAh?$AAa?$AAn?$AAg?$AAe?$AAd?$AA?4?$AA?5?$AAR?$AAe?$AAs?$AAe?$AAt?$AA?5?$AAt?$AAo?$AA?5@ 0000000000019cd0 UiApp:FrontPage.obj
+ 0002:000002f0 ??_C@_1CK@LOFHOMO@?$AAP?$AAr?$AAe?$AAs?$AAs?$AA?5?$AAE?$AAN?$AAT?$AAE?$AAR?$AA?5?$AAt?$AAo?$AA?5?$AAr?$AAe?$AAs?$AAe?$AAt?$AA?$AA@ 0000000000019d30 UiApp:FrontPage.obj
+ 0002:00000320 ??_C@_0CC@HFEIDHIP@gStringPackHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 0000000000019d60 UiApp:String.obj
+ 0002:00000350 ??_C@_0EJ@OHOOMBDB@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000019d90 UiApp:String.obj
+ 0002:000003a0 ??_C@_0BJ@NJEGJHFI@LangCode?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019de0 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:000003c0 ??_C@_0FP@ICKLIPAL@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000019e00 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:00000420 ??_C@_0BK@FANDPBIH@?$CKLangCode?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019e60 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:00000440 ??_C@_0BF@KEEBGAAP@Lang?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019e80 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:00000458 ??_C@_1BK@GGGENMOA@?$AAP?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AAL?$AAa?$AAn?$AAg?$AA?$AA@ 0000000000019e98 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:00000478 ??_C@_0BC@FEDIJHFF@?$CI?$CIBOOLEAN?$CJ?$CI0?$DN?$DN1?$CJ?$CJ?$AA@ 0000000000019eb8 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:00000490 ??_C@_0CE@KJODLANI@OptionsOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ@ 0000000000019ed0 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:000004b8 ??_C@_1CE@GLBFGNOF@?$AAP?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AAL?$AAa?$AAn?$AAg?$AAC?$AAo?$AAd?$AAe?$AAs?$AA?$AA@ 0000000000019ef8 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:000004e0 ??_C@_0CA@MJALGHG@gLanguageString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019f20 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:00000500 ??_C@_0BP@CAHLJC@gLanguageToken?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019f40 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:00000520 ??_C@_0BH@OOIJJHNK@Handle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019f60 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:00000538 ??_C@_0BL@IONPMOEP@HiiHandles?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019f78 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:00000558 ??_C@_0BP@DAEDPINL@gHiiDriverList?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019f98 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:00000578 ??_C@_0BH@MAAHKCPC@String?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019fb8 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:00000590 ??_C@_0BO@BDDNGENM@DriverListPtr?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000019fd0 UiApp:FrontPageCustomizedUiSupport.obj
+ 0002:000005b0 ??_C@_0EG@MAJBHDFF@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000019ff0 DxePcdLib:DxePcdLib.obj
+ 0002:000005f8 ??_C@_0BF@OOKDELHM@mPcd?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001a038 DxePcdLib:DxePcdLib.obj
+ 0002:00000610 ??_C@_0BH@IACGKAP@Buffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001a050 DxePcdLib:DxePcdLib.obj
+ 0002:00000630 ??_C@_0ED@MKGCMJG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 000000000001a070 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00000680 ??_C@_0FF@LLAFLLDM@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001a0c0 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:000006d8 ??_C@_0DO@MAOBOFEG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 000000000001a118 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00000718 ??_C@_0DG@EEENIGGL@Length?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFFFFFULL@ 000000000001a158 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0002:00000750 ??_C@_0CC@GFNLNIOC@?$CI?$CIUINTN?$CJString?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 000000000001a190 BaseLib:SafeString.obj
+ 0002:00000780 ??_C@_0EF@MFKKFBPN@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001a1c0 BaseLib:SafeString.obj
+ 0002:000007c8 ??_C@_0CH@LALFPBMC@?$CI?$CIUINTN?$CJDestination?5?$CG?50x00000001@ 000000000001a208 BaseLib:SafeString.obj
+ 0002:000007f0 ??_C@_0CC@HEBCMBPF@?$CI?$CIUINTN?$CJSource?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 000000000001a230 BaseLib:SafeString.obj
+ 0002:00000818 ??_C@_0BO@ECNIOIHG@?$CIDestination?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 000000000001a258 BaseLib:SafeString.obj
+ 0002:00000838 ??_C@_07KBGDFDAM@StrCpyS?$AA@ 000000000001a278 BaseLib:SafeString.obj
+ 0002:00000840 ??_C@_0EA@PDPDJJNN@?$CFa?$CI?$CFd?$CJ?5?$CFa?3?5SAFE_STRING_CONSTRAIN@ 000000000001a280 BaseLib:SafeString.obj
+ 0002:00000880 ??_C@_0BJ@EAEEJIP@?$CISource?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 000000000001a2c0 BaseLib:SafeString.obj
+ 0002:000008a0 ??_C@_0EA@BBALOHPI@?$CIDestMax?5?$DM?$DN?5?$CI_gPcd_FixedAtBuild_@ 000000000001a2e0 BaseLib:SafeString.obj
+ 0002:000008e0 ??_C@_0P@PMIMLIHM@?$CIDestMax?5?$CB?$DN?50?$CJ?$AA@ 000000000001a320 BaseLib:SafeString.obj
+ 0002:000008f0 ??_C@_0BG@EEGIIOKH@?$CIDestMax?5?$DO?5SourceLen?$CJ?$AA@ 000000000001a330 BaseLib:SafeString.obj
+ 0002:00000910 ??_C@_0FH@PPBLBDBJ@InternalSafeStringNoStrOverlap?5?$CI@ 000000000001a350 BaseLib:SafeString.obj
+ 0002:00000968 ??_C@_08INOAHJON@StrnCpyS?$AA@ 000000000001a3a8 BaseLib:SafeString.obj
+ 0002:00000978 ??_C@_0DP@PBOJGJC@?$CILength?5?$DM?$DN?5?$CI_gPcd_FixedAtBuild_P@ 000000000001a3b8 BaseLib:SafeString.obj
+ 0002:000009b8 ??_C@_07EBBOPAKF@StrCatS?$AA@ 000000000001a3f8 BaseLib:SafeString.obj
+ 0002:000009c0 ??_C@_0P@BHOOOJPD@?$CICopyLen?5?$CB?$DN?50?$CJ?$AA@ 000000000001a400 BaseLib:SafeString.obj
+ 0002:000009d0 ??_C@_0BG@BPGICNPK@?$CICopyLen?5?$DO?5SourceLen?$CJ?$AA@ 000000000001a410 BaseLib:SafeString.obj
+ 0002:000009e8 ??_C@_08GNJNNKEE@StrnCatS?$AA@ 000000000001a428 BaseLib:SafeString.obj
+ 0002:000009f8 ??_C@_0BJ@CNKJJNE@?$CIBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 000000000001a438 BaseLib:SafeString.obj
+ 0002:00000a18 ??_C@_0BG@MFINJFHO@AsciiStrToUnicodeStrS?$AA@ 000000000001a458 BaseLib:SafeString.obj
+ 0002:00000a30 ??_C@_0GF@GCLJAOAI@?$CBInternalSafeStringIsOverlap?5?$CIDe@ 000000000001a470 BaseLib:SafeString.obj
+ 0002:00000aa0 ??_C@_0EB@OHCINBMP@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001a4e0 BaseLib:String.obj
+ 0002:00000ae8 ??_C@_0DK@EOJCOAME@Length?5?$DM?5_gPcd_FixedAtBuild_PcdM@ 000000000001a528 BaseLib:String.obj
+ 0002:00000b28 ??_C@_0BL@JAAMOCAJ@StrSize?5?$CIFirstString?$CJ?5?$CB?$DN?50?$AA@ 000000000001a568 BaseLib:String.obj
+ 0002:00000b48 ??_C@_0BM@DALBOILC@StrSize?5?$CISecondString?$CJ?5?$CB?$DN?50?$AA@ 000000000001a588 BaseLib:String.obj
+ 0002:00000b68 ??_C@_0DL@LFIMEMJP@Length?5?$DM?$DN?5_gPcd_FixedAtBuild_Pcd@ 000000000001a5a8 BaseLib:String.obj
+ 0002:00000ba8 ??_C@_0BG@KBNOLIGE@StrSize?5?$CIString?$CJ?5?$CB?$DN?50?$AA@ 000000000001a5e8 BaseLib:String.obj
+ 0002:00000bc0 ??_C@_0BM@NNBLOHJD@StrSize?5?$CISearchString?$CJ?5?$CB?$DN?50?$AA@ 000000000001a600 BaseLib:String.obj
+ 0002:00000be0 ??_C@_0DI@MDIKFADO@Length?5?$DM?5_gPcd_FixedAtBuild_PcdM@ 000000000001a620 BaseLib:String.obj
+ 0002:00000c18 ??_C@_0BL@IKFBNFIL@AsciiStrSize?5?$CIFirstString?$CJ?$AA@ 000000000001a658 BaseLib:String.obj
+ 0002:00000c38 ??_C@_0BM@EDNOKLLE@AsciiStrSize?5?$CISecondString?$CJ?$AA@ 000000000001a678 BaseLib:String.obj
+ 0002:00000c58 ??_C@_0DJ@JJHGIFMP@Length?5?$DM?$DN?5_gPcd_FixedAtBuild_Pcd@ 000000000001a698 BaseLib:String.obj
+ 0002:00000ca0 ??_C@_0EE@FAJFAODK@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001a6e0 BaseLib:Unaligned.obj
+ 0002:00000ce8 ??_C@_0N@KGHEHMDL@Divisor?5?$CB?$DN?50?$AA@ 000000000001a728 BaseLib:DivU64x32.obj
+ 0002:00000cf8 ??_C@_0CI@BGLNHBLM@?$CI?$CI?$CIUINTN?$CJ?5?$CIStartOfBuffer?$CJ?$CJ?5?$CG?50x0@ 000000000001a738 BasePrintLib:PrintLib.obj
+ 0002:00000d20 ??_C@_0EI@PHEOPKNG@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001a760 BasePrintLib:PrintLib.obj
+ 0002:00000d68 ??_C@_0CH@KJLBGOBB@?$CI?$CI?$CIUINTN?$CJ?5?$CIFormatString?$CJ?$CJ?5?$CG?50x01@ 000000000001a7a8 BasePrintLib:PrintLib.obj
+ 0002:00000d90 ??_C@_0CB@LDBAOPMG@?$CI?$CI?$CIUINTN?$CJ?5?$CIBuffer?$CJ?$CJ?5?$CG?50x01?$CJ?5?$DN?$DN?50@ 000000000001a7d0 BasePrintLib:PrintLib.obj
+ 0002:00000dc0 ??_C@_0FA@JGMHCDLA@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001a800 BasePrintLib:PrintLibInternal.obj
+ 0002:00000e10 ??_C@_0EB@HDGIDCIO@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 000000000001a850 BasePrintLib:PrintLibInternal.obj
+ 0002:00000e60 ??_C@_0FJ@HAEMOBLP@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 000000000001a8a0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000ec0 ??_C@_0CO@OJNGHNJG@?$CI?$CIFlags?5?$CG?5?$HO?$CI0x01?5?$HM?50x08?5?$HM?50x20?5?$HM@ 000000000001a900 BasePrintLib:PrintLibInternal.obj
+ 0002:00000ef0 ??_C@_0DB@HIDPIAGP@?$CI?$CI?$CIFlags?5?$CG?50x08?$CJ?5?$DN?$DN?50?$CJ?5?$HM?$HM?5?$CI?$CIFlag@ 000000000001a930 BasePrintLib:PrintLibInternal.obj
+ 0002:00000f28 ??_C@_0N@PNKFBKME@?$CIWidth?5?$DM?538?$CJ?$AA@ 000000000001a968 BasePrintLib:PrintLibInternal.obj
+ 0002:00000f38 ??_C@_0CI@HPJOGFNE@?$CIBufferSize?5?$DO?$DN?5?$CIWidth?5?$CL?51?$CJ?5?$CK?5Inc@ 000000000001a978 BasePrintLib:PrintLibInternal.obj
+ 0002:00000f60 ??_C@_0BJ@PPAKKDJG@?$CIFormat?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 000000000001a9a0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000f80 ??_C@_0ED@LPDDCECB@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 000000000001a9c0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000fd0 ??_C@_0IM@BFJJFLGB@?$CIStrnLenS?5?$CI?$CICHAR16?5?$CK?$CJFormat?0?5?$CI_g@ 000000000001aa10 BasePrintLib:PrintLibInternal.obj
+ 0002:00001060 ??_C@_0ID@PLGJGION@?$CIAsciiStrnLenS?5?$CIFormat?0?5?$CI_gPcd_F@ 000000000001aaa0 BasePrintLib:PrintLibInternal.obj
+ 0002:000010e8 ??_C@_0O@MLOLIMFM@?$DMnull?5string?$DO?$AA@ 000000000001ab28 BasePrintLib:PrintLibInternal.obj
+ 0002:000010f8 ??_C@_0M@BJJDNPHK@?$DMnull?5guid?$DO?$AA@ 000000000001ab38 BasePrintLib:PrintLibInternal.obj
+ 0002:00001108 ??_C@_0DB@PMLHLBMO@?$CF08x?9?$CF04x?9?$CF04x?9?$CF02x?$CF02x?9?$CF02x?$CF02x@ 000000000001ab48 BasePrintLib:PrintLibInternal.obj
+ 0002:00001140 ??_C@_0M@LHGBCIKM@?$DMnull?5time?$DO?$AA@ 000000000001ab80 BasePrintLib:PrintLibInternal.obj
+ 0002:00001150 ??_C@_0BK@FCPKCIDD@?$CF02d?1?$CF02d?1?$CF04d?5?5?$CF02d?3?$CF02d?$AA@ 000000000001ab90 BasePrintLib:PrintLibInternal.obj
+ 0002:0000116c ??_C@_04JIMNDDED@?$CF08X?$AA@ 000000000001abac BasePrintLib:PrintLibInternal.obj
+ 0002:00001174 ??_C@_02PCIJFNDE@?$AN?6?$AA@ 000000000001abb4 BasePrintLib:PrintLibInternal.obj
+ 0002:00001178 ??_C@_01LIIJDEN@?$AN?$AA@ 000000000001abb8 BasePrintLib:PrintLibInternal.obj
+ 0002:00001180 mWarningString 000000000001abc0 BasePrintLib:PrintLibInternal.obj
+ 0002:00001220 mErrorString 000000000001ac60 BasePrintLib:PrintLibInternal.obj
+ 0002:000014e0 mHexStr 000000000001af20 BasePrintLib:PrintLibInternal.obj
+ 0002:000014f0 ??_C@_0BH@LKMBFCBF@Format?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001af30 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00001510 ??_C@_0FD@OABGLBHF@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001af50 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00001568 ??_C@_0BE@ECBJLCDE@ASSERT?5?$CFa?$CI?$CFLu?$CJ?3?5?$CFa?6?$AA@ 000000000001afa8 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00001580 ??_C@_0BN@COECPDCC@gImageHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001afc0 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:000015a0 ??_C@_0GE@FKBNDHHB@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001afe0 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00001608 ??_C@_0BE@DGNHAHIL@gST?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b048 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00001620 ??_C@_0BE@BDFJLGLN@gBS?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b060 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00001638 ??_C@_0L@LBCNCHJA@Pages?5?$CB?$DN?50?$AA@ 000000000001b078 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:00001650 ??_C@_0FO@BEMDJMPM@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b090 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:000016b0 ??_C@_0DO@GEEICOOO@AllocationSize?5?$DM?$DN?5?$CI0xFFFFFFFFFFF@ 000000000001b0f0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:000016f0 ??_C@_0BE@OBDFIHND@gRT?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b130 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:00001710 ??_C@_0GK@FJIMGEPP@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b150 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:00001780 ??_C@_0GI@KEFAHLGJ@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b1c0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:000017e8 ??_C@_0DC@CNNBPJA@mDevicePathLibDevicePathUtilitie@ 000000000001b228 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00001820 ??_C@_0BL@JFODOCGB@DevicePath?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b260 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00001840 ??_C@_0BF@CBLMFKOC@Node?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b280 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00001860 ??_C@_0EH@ENCEEKKL@?$CILength?5?$DO?$DN?5sizeof?5?$CIEFI_DEVICE_PA@ 000000000001b2a0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:000018a8 ??_C@_0BF@MBJFHGBE@Size?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b2e8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:000018c0 mUefiDevicePathLibEndDevicePath 000000000001b300 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:000018c8 ??_C@_0BK@PPOBBAMB@TableGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b308 UefiLib:UefiLib.obj
+ 0002:000018f0 ??_C@_0EC@DCGCAOKF@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b330 UefiLib:UefiLib.obj
+ 0002:00001938 ??_C@_0BG@JDKEGFNB@Table?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b378 UefiLib:UefiLib.obj
+ 0002:00001950 ??_C@_0BO@IJOPPPFL@Lock?9?$DOLock?5?$DN?$DN?5EfiLockReleased?$AA@ 000000000001b390 UefiLib:UefiLib.obj
+ 0002:00001970 ??_C@_0BO@FHNOFLFJ@Lock?9?$DOLock?5?$DN?$DN?5EfiLockAcquired?$AA@ 000000000001b3b0 UefiLib:UefiLib.obj
+ 0002:00001990 ??_C@_0EG@GOBFPEEP@Name?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5Guid?5?$CB?$DN?5@ 000000000001b3d0 UefiLib:UefiLib.obj
+ 0002:000019d8 ??_C@_0BH@FMEOEIBC@?$CKValue?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b418 UefiLib:UefiLib.obj
+ 0002:000019f0 ??_C@_0CD@OLFKAJF@SupportedLanguages?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?5@ 000000000001b430 UefiLib:UefiLib.obj
+ 0002:00001a18 ??_C@_0BD@BHENKNKP@NumberOfLines?5?$CB?$DN?50?$AA@ 000000000001b458 UefiLib:Console.obj
+ 0002:00001a30 ??_C@_0EC@EJLIGNPA@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b470 UefiLib:Console.obj
+ 0002:00001a78 ??_C@_0P@ICDOOCHP@MaxLength?5?$CB?$DN?50?$AA@ 000000000001b4b8 UefiLib:Console.obj
+ 0002:00001a88 ??_C@_0BF@DMEONNDO@Line?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b4c8 UefiLib:Console.obj
+ 0002:00001aa0 ??_C@_0BK@IHAIHFJE@TmpString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b4e0 UefiLib:Console.obj
+ 0002:00001ac0 ??_C@_17LGKOMLJ@?$AA?4?$AA?4?$AA?4?$AA?$AA@ 000000000001b500 UefiLib:Console.obj
+ 0002:00001ad0 ??_C@_0ED@HPBEEAH@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b510 DxeHobLib:HobLib.obj
+ 0002:00001b18 ??_C@_0BJ@OBFMLLDO@mHobList?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b558 DxeHobLib:HobLib.obj
+ 0002:00001b38 ??_C@_0BJ@NOLLDKJB@HobStart?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b578 DxeHobLib:HobLib.obj
+ 0002:00001b60 ??_C@_0FO@HNLMMFDN@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b5a0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0002:00001bc0 ??_C@_0FK@MDDBGHAH@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b600 DxeServicesTableLib:DxeServicesTableLib.obj
+ 0002:00001c20 ??_C@_0BE@IOIFLNKO@gDS?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b660 DxeServicesTableLib:DxeServicesTableLib.obj
+ 0002:00001c40 ??_C@_0EN@DDBLCGFI@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b680 UefiHiiLib:HiiString.obj
+ 0002:00001c90 ??_C@_06PLDEFKP@x?9UEFI?$AA@ 000000000001b6d0 UefiHiiLib:HiiString.obj
+ 0002:00001c98 ??_C@_0CA@OEKIMLLB@PackageListGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b6d8 UefiHiiLib:HiiString.obj
+ 0002:00001cb8 ??_C@_0O@EMMLPDMJ@StringId?5?$CB?$DN?50?$AA@ 000000000001b6f8 UefiHiiLib:HiiString.obj
+ 0002:00001cc6 ??_C@_00CNPNBAHC@?$AA@ 000000000001b706 UefiHiiLib:HiiString.obj
+ 0002:00001cd0 ??_C@_0EK@CCOCGB@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001b710 UefiHiiLib:HiiLib.obj
+ 0002:00001d20 ??_C@_0BN@EHPNHAIF@ConfigString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b760 UefiHiiLib:HiiLib.obj
+ 0002:00001d40 ??_C@_0BO@KAEFIFMO@ConfigRequest?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b780 UefiHiiLib:HiiLib.obj
+ 0002:00001d60 ??_C@_0BG@MJAHJKJ@Block?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b7a0 UefiHiiLib:HiiLib.obj
+ 0002:00001d78 ??_C@_1M@DPLGJLCD@?$AAG?$AAU?$AAI?$AAD?$AA?$DN?$AA?$AA@ 000000000001b7b8 UefiHiiLib:HiiLib.obj
+ 0002:00001d88 ??_C@_1O@FMIENBLJ@?$AA?$CG?$AAN?$AAA?$AAM?$AAE?$AA?$DN?$AA?$AA@ 000000000001b7c8 UefiHiiLib:HiiLib.obj
+ 0002:00001d98 ??_C@_1O@GGMHNGIF@?$AA?$CG?$AAP?$AAA?$AAT?$AAH?$AA?$DN?$AA?$AA@ 000000000001b7d8 UefiHiiLib:HiiLib.obj
+ 0002:00001da8 ??_C@_1BC@KLGPJAMP@?$AA?$CG?$AAO?$AAF?$AAF?$AAS?$AAE?$AAT?$AA?$DN?$AA?$AA@ 000000000001b7e8 UefiHiiLib:HiiLib.obj
+ 0002:00001dc0 ??_C@_0BM@LENJOOBF@FirstString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b800 UefiHiiLib:HiiLib.obj
+ 0002:00001de0 ??_C@_0BN@CGMEJHHH@SecondString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b820 UefiHiiLib:HiiLib.obj
+ 0002:00001e00 ??_C@_0CC@BCKDEPBB@StartSearchString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 000000000001b840 UefiHiiLib:HiiLib.obj
+ 0002:00001e28 ??_C@_0CB@NPMPBLHL@StopSearchString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ@ 000000000001b868 UefiHiiLib:HiiLib.obj
+ 0002:00001e50 ??_C@_0BK@LFDBOAFJ@ConfigHdr?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b890 UefiHiiLib:HiiLib.obj
+ 0002:00001e70 ??_C@_1M@IDEFLMF@?$AA?$CF?$AAs?$AA?$CG?$AA?$CF?$AAs?$AA?$AA@ 000000000001b8b0 UefiHiiLib:HiiLib.obj
+ 0002:00001e80 ??_C@_1DC@EPJEBJEB@?$AA?$CF?$AAs?$AA?$CG?$AAO?$AAF?$AAF?$AAS?$AAE?$AAT?$AA?$DN?$AA0?$AA?$CG?$AAW?$AAI?$AAD?$AAT?$AAH?$AA?$DN?$AA?$CF?$AA0?$AA1?$AA6?$AAL?$AAX?$AA?$AA@ 000000000001b8c0 UefiHiiLib:HiiLib.obj
+ 0002:00001eb8 ??_C@_0BN@OKKMNGPH@OpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b8f8 UefiHiiLib:HiiLib.obj
+ 0002:00001ed8 ??_C@_0BP@IOABAFLF@OpCodeTemplate?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b918 UefiHiiLib:HiiLib.obj
+ 0002:00001ef8 ??_C@_0CF@DPHCOLMP@?$CIOpCodeSize?5?$CL?5ExtensionSize?$CJ?5?$DM?$DN?5@ 000000000001b938 UefiHiiLib:HiiLib.obj
+ 0002:00001f20 ??_C@_0BK@JGHNIOOD@RawBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b960 UefiHiiLib:HiiLib.obj
+ 0002:00001f40 ??_C@_0CA@JCKPEJCB@RawOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001b980 UefiHiiLib:HiiLib.obj
+ 0002:00001f60 ??_C@_0M@HDMCLEDO@Type?5?$DM?50x08?$AA@ 000000000001b9a0 UefiHiiLib:HiiLib.obj
+ 0002:00001f70 ??_C@_0CP@JCOCHGHI@?$CIQuestionFlags?5?$CG?5?$CI?$HO?$CI0x01?5?$HM?50x04?5@ 000000000001b9b0 UefiHiiLib:HiiLib.obj
+ 0002:00001fa0 ??_C@_0DG@CGCLKNEF@?$CIQuestionFlags?5?$CG?5?$CI?$HO?$CI0x01?5?$HM?50x04?5@ 000000000001b9e0 UefiHiiLib:HiiLib.obj
+ 0002:00001fd8 ??_C@_0DN@DNMIONI@?$CIQuestionFlags?5?$CG?5?$CI?$HO?$CI0x01?5?$HM?50x04?5@ 000000000001ba18 UefiHiiLib:HiiLib.obj
+ 0002:00002020 mConfigHdrTemplate 000000000001ba60 UefiHiiLib:HiiLib.obj
+ 0002:00002090 mHiiDefaultTypeToWidth 000000000001bad0 UefiHiiLib:HiiLib.obj
+ 0002:00002098 mEndOfPakageList 000000000001bad8 UefiHiiLib:HiiLib.obj
+ 0002:000020a0 ??_C@_0EP@LMJDKFAP@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001bae0 UefiHiiLib:HiiLanguage.obj
+ 0002:000020f0 ??_C@_0GD@PGPLJJNH@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001bb30 DxeReportStatusCodeLib:ReportStatusCodeLib.obj
+ 0002:00002158 ??_C@_0BM@HAIDGOCB@Description?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001bb98 DxeReportStatusCodeLib:ReportStatusCodeLib.obj
+ 0002:00002178 ??_C@_0DN@HHIHPHHB@?$CB?$CI?$CIExtendedData?5?$DN?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ@ 000000000001bbb8 DxeReportStatusCodeLib:ReportStatusCodeLib.obj
+ 0002:000021b8 ??_C@_0DN@BBBIFINB@?$CB?$CI?$CIExtendedData?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ@ 000000000001bbf8 DxeReportStatusCodeLib:ReportStatusCodeLib.obj
+ 0002:00002200 ??_C@_0EP@CPFHHOMB@?$CI?$CI?$CIINTN?$CJ?$CIRETURN_STATUS?$CJ?$CIStatus?$CJ?$CJ@ 000000000001bc40 UefiBootManagerLib:BmConnect.obj
+ 0002:00002250 ??_C@_0FF@EONLEJNC@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001bc90 UefiBootManagerLib:BmConnect.obj
+ 0002:000022a8 ??_C@_1O@CJIOJFKI@?$AA?$CF?$AAs?$AA?$CF?$AA0?$AA4?$AAx?$AA?$AA@ 000000000001bce8 UefiBootManagerLib:BmBoot.obj
+ 0002:000022b8 ??_C@_0DG@JBPPOHBO@OptionToFind?9?$DOOptionNumber?5?$DN?$DN?5Bo@ 000000000001bcf8 UefiBootManagerLib:BmBoot.obj
+ 0002:000022f0 ??_C@_0FC@OMHJNCLL@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001bd30 UefiBootManagerLib:BmBoot.obj
+ 0002:00002348 ??_C@_19GDALFLBC@?$AAH?$AAD?$AAD?$AAP?$AA?$AA@ 000000000001bd88 UefiBootManagerLib:BmBoot.obj
+ 0002:00002358 ??_C@_0CB@HNPPGGEL@IsDevicePathEnd?5?$CITempDevicePath?$CJ@ 000000000001bd98 UefiBootManagerLib:BmBoot.obj
+ 0002:00002380 ??_C@_1CM@POLGBFKG@?$AA?2?$AAE?$AAF?$AAI?$AA?2?$AAB?$AAO?$AAO?$AAT?$AA?2?$AAB?$AAO?$AAO?$AAT?$AAX?$AA6?$AA4?$AA?4?$AAE?$AAF?$AAI?$AA?$AA@ 000000000001bdc0 UefiBootManagerLib:BmBoot.obj
+ 0002:000023b0 ??_C@_0CC@IJGCPIJN@RamDiskDevicePath?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 000000000001bdf0 UefiBootManagerLib:BmBoot.obj
+ 0002:000023e0 ??_C@_0GA@KMAJBBHE@?$CIDevicePathType?5?$CIRamDiskDevicePa@ 000000000001be20 UefiBootManagerLib:BmBoot.obj
+ 0002:00002440 ??_C@_0BB@DLJFOJCC@BmExpandLoadFile?$AA@ 000000000001be80 UefiBootManagerLib:BmBoot.obj
+ 0002:00002460 ??_C@_0FG@OIHFMLDO@?$CFa?3?$CFa?3?5failed?5to?5allocate?5reserv@ 000000000001bea0 UefiBootManagerLib:BmBoot.obj
+ 0002:000024b8 ??_C@_0BJ@LNALCLOM@FilePath?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001bef8 UefiBootManagerLib:BmBoot.obj
+ 0002:000024e0 ??_C@_0EN@JHMJNHPF@?$CIErrorCode?5?$DN?$DN?5?$CI0x1000?5?$HM?50x000000@ 000000000001bf20 UefiBootManagerLib:BmBoot.obj
+ 0002:00002530 ??_C@_0DM@POBOKFGH@?$FLBds?$FN?5Failed?5to?5create?5Boot?$CD?$CD?$CD?$CD?5@ 000000000001bf70 UefiBootManagerLib:BmBoot.obj
+ 0002:00002570 ??_C@_1BI@LBNGELID@?$AAB?$AAo?$AAo?$AAt?$AAC?$AAu?$AAr?$AAr?$AAe?$AAn?$AAt?$AA?$AA@ 000000000001bfb0 UefiBootManagerLib:BmBoot.obj
+ 0002:00002588 ??_C@_0CC@HMPNCCAJ@?$FLBds?$FN?5Booting?5Boot?5Manager?5Menu?4@ 000000000001bfc8 UefiBootManagerLib:BmBoot.obj
+ 0002:000025b0 ??_C@_0CH@MAENAIDI@?$FLBds?$FNBooting?5from?5unknown?5device@ 000000000001bff0 UefiBootManagerLib:BmBoot.obj
+ 0002:000025d8 ??_C@_0BB@BJMHKPKN@?$FLBds?$FNBooting?5?$CFs?6?$AA@ 000000000001c018 UefiBootManagerLib:BmBoot.obj
+ 0002:000025f0 ??_C@_0BK@CCNIJCHI@Image?5Return?5Status?5?$DN?5?$CFr?6?$AA@ 000000000001c030 UefiBootManagerLib:BmBoot.obj
+ 0002:00002610 ??_C@_0EJ@CKFLEIKF@Status?5?$DN?$DN?50?5?$HM?$HM?5Status?5?$DN?$DN?5?$CI?$CIRETUR@ 000000000001c050 UefiBootManagerLib:BmBoot.obj
+ 0002:00002660 ??_C@_0CA@CKEJEPEJ@BootOptionCount?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c0a0 UefiBootManagerLib:BmBoot.obj
+ 0002:00002680 ??_C@_0BM@DJHLFDEF@BootOptions?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c0c0 UefiBootManagerLib:BmBoot.obj
+ 0002:000026a0 ??_C@_1M@NFPEGKHA@?$AAC?$AAo?$AAn?$AAI?$AAn?$AA?$AA@ 000000000001c0e0 UefiBootManagerLib:BmConsole.obj
+ 0002:000026b0 ??_C@_1O@MJHLOIFA@?$AAC?$AAo?$AAn?$AAO?$AAu?$AAt?$AA?$AA@ 000000000001c0f0 UefiBootManagerLib:BmConsole.obj
+ 0002:000026c0 ??_C@_1O@JOJMCOJC@?$AAE?$AAr?$AAr?$AAO?$AAu?$AAt?$AA?$AA@ 000000000001c100 UefiBootManagerLib:BmConsole.obj
+ 0002:000026d0 ??_C@_1BC@OBFMLJLI@?$AAC?$AAo?$AAn?$AAI?$AAn?$AAD?$AAe?$AAv?$AA?$AA@ 000000000001c110 UefiBootManagerLib:BmConsole.obj
+ 0002:000026e8 ??_C@_1BE@INNAKDAF@?$AAC?$AAo?$AAn?$AAO?$AAu?$AAt?$AAD?$AAe?$AAv?$AA?$AA@ 000000000001c128 UefiBootManagerLib:BmConsole.obj
+ 0002:00002700 ??_C@_1BE@JFPOEAHF@?$AAE?$AAr?$AAr?$AAO?$AAu?$AAt?$AAD?$AAe?$AAv?$AA?$AA@ 000000000001c140 UefiBootManagerLib:BmConsole.obj
+ 0002:00002720 ??_C@_0FF@IDLMDAJB@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c160 UefiBootManagerLib:BmConsole.obj
+ 0002:00002778 ??_C@_0BI@LEGCJJJC@VarName?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c1b8 UefiBootManagerLib:BmConsole.obj
+ 0002:00002790 ??_C@_0BO@LGKGLLEA@ConsoleHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c1d0 UefiBootManagerLib:BmConsole.obj
+ 0002:000027b0 ??_C@_0BM@CGHKLPCB@ConsoleGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c1f0 UefiBootManagerLib:BmConsole.obj
+ 0002:000027d0 ??_C@_0CC@IEKIILIB@ProtocolInterface?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 000000000001c210 UefiBootManagerLib:BmConsole.obj
+ 0002:000027f8 ??_C@_0DC@IFPPFOCH@?$FLBds?$FN?5No?5valid?5console?5instance?5@ 000000000001c238 UefiBootManagerLib:BmConsole.obj
+ 0002:00002830 mConVarName 000000000001c270 UefiBootManagerLib:BmConsole.obj
+ 0002:00002860 mBmLoadOptionName 000000000001c2a0 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002880 ??_C@_1O@GAOCKAOK@?$AAD?$AAr?$AAi?$AAv?$AAe?$AAr?$AA?$AA@ 000000000001c2c0 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002890 ??_C@_1BA@IBFPPJON@?$AAS?$AAy?$AAs?$AAP?$AAr?$AAe?$AAp?$AA?$AA@ 000000000001c2d0 UefiBootManagerLib:BmLoadOption.obj
+ 0002:000028a0 ??_C@_19JCAOHIEH@?$AAB?$AAo?$AAo?$AAt?$AA?$AA@ 000000000001c2e0 UefiBootManagerLib:BmLoadOption.obj
+ 0002:000028b0 ??_C@_1CC@LGMJPJO@?$AAP?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AAR?$AAe?$AAc?$AAo?$AAv?$AAe?$AAr?$AAy?$AA?$AA@ 000000000001c2f0 UefiBootManagerLib:BmLoadOption.obj
+ 0002:000028d8 ??_C@_1BI@PDMCFEDG@?$AAD?$AAr?$AAi?$AAv?$AAe?$AAr?$AAO?$AAr?$AAd?$AAe?$AAr?$AA?$AA@ 000000000001c318 UefiBootManagerLib:BmLoadOption.obj
+ 0002:000028f0 ??_C@_1BK@CHMLNGLH@?$AAS?$AAy?$AAs?$AAP?$AAr?$AAe?$AAp?$AAO?$AAr?$AAd?$AAe?$AAr?$AA?$AA@ 000000000001c330 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002910 ??_C@_1BE@CHCFCNKI@?$AAB?$AAo?$AAo?$AAt?$AAO?$AAr?$AAd?$AAe?$AAr?$AA?$AA@ 000000000001c350 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002930 ??_C@_0FI@IIKBJFKE@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c370 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002988 ??_C@_0CB@PFDEGLPD@FreeOptionNumber?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ@ 000000000001c3c8 UefiBootManagerLib:BmLoadOption.obj
+ 0002:000029b0 ??_C@_0HK@DHJNPELJ@LoadOptionType?5?$DN?$DN?5LoadOptionType@ 000000000001c3f0 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002a30 ??_C@_0GP@HFLIMAAP@?$CIOptionOrder?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5@ 000000000001c470 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002aa0 ??_C@_1BC@HGEHGBBD@?$AAB?$AAo?$AAo?$AAt?$AAN?$AAe?$AAx?$AAt?$AA?$AA@ 000000000001c4e0 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002ab8 ??_C@_0BI@HMGPIBBB@OptionNumber?5?$DM?$DN?50x10000?$AA@ 000000000001c4f8 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002ad0 ??_C@_0BJ@DLOFCCCI@Variable?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c510 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002af0 ??_C@_0BP@NMMDNJFN@NewOptionOrder?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c530 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002b10 ??_C@_0BM@ILMIEJOJ@OptionOrder?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c550 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002b30 ??_C@_0CM@MAOCOHA@String?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5MaxStr@ 000000000001c570 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002b60 ??_C@_0BI@BEIPAHPN@Options?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c5a0 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002b80 ??_C@_0EN@EEPBAEH@?$FLBds?$FN?5?$CFs?5doesn?8t?5exist?5?9?5Update?5@ 000000000001c5c0 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002bd0 ??_C@_0DC@GPHPCJCG@Options?$FLOptionIndex?$FN?4OptionNumbe@ 000000000001c610 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002c08 ??_C@_0O@JAAHIOB@?$FLBds?$FN?5Expand?5?$AA@ 000000000001c648 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002c18 ??_C@_04BBDFLMDN@?5?9?$DO?5?$AA@ 000000000001c658 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002c20 ??_C@_01EEMJAFIK@?6?$AA@ 000000000001c660 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002c28 mBmLoadOptionOrderName 000000000001c668 UefiBootManagerLib:BmLoadOption.obj
+ 0002:00002c50 ??_C@_0FN@OOLEKAAD@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c690 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002cb0 ??_C@_0DD@MBGDIJCD@Length?5?$DN?$DN?5ModelNameLength?5?$CL?5Seri@ 000000000001c6f0 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002ce8 ??_C@_1BE@HCCIKJOI@?$AAS?$AAD?$AA?5?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@ 000000000001c728 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002d00 ??_C@_1BI@MOIBBPND@?$AAe?$AAM?$AAM?$AAC?$AA?5?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@ 000000000001c740 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002d18 ??_C@_13HOIJIPNN@?$AA?5?$AA?$AA@ 000000000001c758 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002d20 ??_C@_17IDOMPBMF@?$AAP?$AAX?$AAE?$AA?$AA@ 000000000001c760 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002d28 ??_C@_19BMGGGIKC@?$AAH?$AAT?$AAT?$AAP?$AA?$AA@ 000000000001c768 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002d40 ??_C@_1EK@KDADHDDD@?$AA?$CF?$AAs?$AAv?$AA?$CF?$AAd?$AA?5?$AA?$CI?$AAM?$AAA?$AAC?$AA?3?$AA?$CF?$AA0?$AA2?$AAx?$AA?$CF?$AA0?$AA2?$AAx?$AA?$CF?$AA0?$AA2?$AAx?$AA?$CF?$AA0?$AA2?$AAx?$AA?$CF?$AA0?$AA2?$AAx?$AA?$CF@ 000000000001c780 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002d90 ??_C@_1FI@BDHDKNGL@?$AA?$CF?$AAs?$AAv?$AA?$CF?$AAd?$AA?5?$AA?$CI?$AAM?$AAA?$AAC?$AA?3?$AA?$CF?$AA0?$AA2?$AAx?$AA?$CF?$AA0?$AA2?$AAx?$AA?$CF?$AA0?$AA2?$AAx?$AA?$CF?$AA0?$AA2?$AAx?$AA?$CF?$AA0?$AA2?$AAx?$AA?$CF@ 000000000001c7d0 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002de8 ??_C@_1O@CLMODHEM@?$AAF?$AAl?$AAo?$AAp?$AAp?$AAy?$AA?$AA@ 000000000001c828 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002df8 ??_C@_1BE@CAANMHKL@?$AAD?$AAV?$AAD?$AA?1?$AAC?$AAD?$AAR?$AAO?$AAM?$AA?$AA@ 000000000001c838 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002e10 ??_C@_1BG@FNOOENMH@?$AAH?$AAa?$AAr?$AAd?$AA?5?$AAD?$AAr?$AAi?$AAv?$AAe?$AA?$AA@ 000000000001c850 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002e28 ??_C@_1BG@PDJIKBEG@?$AAU?$AAS?$AAB?$AA?5?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@ 000000000001c868 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002e40 ??_C@_1BI@NPAIJFIJ@?$AAS?$AAC?$AAS?$AAI?$AA?5?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@ 000000000001c880 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002e58 ??_C@_1BO@NNOGFLGA@?$AAR?$AAe?$AAm?$AAo?$AAv?$AAa?$AAb?$AAl?$AAe?$AA?5?$AAD?$AAi?$AAs?$AAk?$AA?$AA@ 000000000001c898 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002e78 ??_C@_1BI@IIOANEKN@?$AAM?$AAi?$AAs?$AAc?$AA?5?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@ 000000000001c8b8 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002e90 ??_C@_1CM@CCDJEPCI@?$AAN?$AAo?$AAn?$AA?9?$AAB?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAB?$AAo?$AAo?$AAt?$AA?5?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@ 000000000001c8d0 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002ec0 ??_C@_0BF@NDBIKIKC@CR?5has?5Bad?5Signature?$AA@ 000000000001c900 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002ed8 ??_C@_0BF@OIGBEABJ@Temp?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c918 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002ef0 ??_C@_0CD@NNLEHLIP@DefaultDescription?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?5@ 000000000001c930 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002f18 ??_C@_0BI@HAGDMNKK@Visited?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001c958 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002f30 ??_C@_1M@DJFDNGE@?$AA?$CF?$AAs?$AA?5?$AA?$CF?$AAd?$AA?$AA@ 000000000001c970 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002f40 mBmBootDescriptionHandlers 000000000001c980 UefiBootManagerLib:BmBootDescription.obj
+ 0002:00002f70 ??_C@_0FE@BBPFHDL@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001c9b0 UefiBootManagerLib:BmHotkey.obj
+ 0002:00002fc8 ??_C@_0CC@JHGOKCAM@?$FLBds?$FNBmHotkeyCallback?3?5?$CF04x?3?$CF04x@ 000000000001ca08 UefiBootManagerLib:BmHotkey.obj
+ 0002:00002ff0 ??_C@_0EO@PGCGMAA@Hotkey?9?$DOWaitingKey?5?$DM?5?$CIsizeof?5?$CIHo@ 000000000001ca30 UefiBootManagerLib:BmHotkey.obj
+ 0002:00003040 ??_C@_0CB@PFLHPPPA@?$FLBds?$FNHotkey?5for?5?$CFs?5pressed?5?9?5?$CFr?6@ 000000000001ca80 UefiBootManagerLib:BmHotkey.obj
+ 0002:00003068 ??_C@_0BM@PIEMCHHP@?$FLBds?$FNContinue?5key?5pressed?$CB?6?$AA@ 000000000001caa8 UefiBootManagerLib:BmHotkey.obj
+ 0002:00003088 ??_C@_0CI@IEECCPEN@?$FLBds?$FNUnregisterKeyNotify?3?5?$CF04x?1?$CF@ 000000000001cac8 UefiBootManagerLib:BmHotkey.obj
+ 0002:000030b0 ??_C@_0BL@ELKNAPIO@?$FLBds?$FNStop?5Hotkey?5Service?$CB?6?$AA@ 000000000001caf0 UefiBootManagerLib:BmHotkey.obj
+ 0002:000030d0 ??_C@_1CM@OLBNONPD@?$AAM?$AAe?$AAm?$AAo?$AAr?$AAy?$AAT?$AAy?$AAp?$AAe?$AAI?$AAn?$AAf?$AAo?$AAr?$AAm?$AAa?$AAt?$AAi?$AAo?$AAn?$AA?$AA@ 000000000001cb10 UefiBootManagerLib:BmMisc.obj
+ 0002:00003100 ??_C@_0CG@JANCEMEA@Memory?5?5Previous?5?5Current?5?5?5?5Nex@ 000000000001cb40 UefiBootManagerLib:BmMisc.obj
+ 0002:00003128 ??_C@_0CG@GIAKKOHH@?5Type?5?5?5?5Pages?5?5?5?5?5Pages?5?5?5?5?5Pag@ 000000000001cb68 UefiBootManagerLib:BmMisc.obj
+ 0002:00003150 ??_C@_0CG@DHPBOGIK@?$DN?$DN?$DN?$DN?$DN?$DN?5?5?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?5?5?$DN?$DN?$DN?$DN?$DN?$DN?$DN?$DN?5?5?$DN?$DN?$DN?$DN@ 000000000001cb90 UefiBootManagerLib:BmMisc.obj
+ 0002:00003178 ??_C@_0BM@FKMFCHDC@?5?5?$CF02x?5?5?5?5?$CF08x?5?5?$CF08x?5?5?$CF08x?6?$AA@ 000000000001cbb8 UefiBootManagerLib:BmMisc.obj
+ 0002:00003198 ??_C@_0CK@JOALLLAO@Memory?5Type?5Information?5settings@ 000000000001cbd8 UefiBootManagerLib:BmMisc.obj
+ 0002:000031d0 ??_C@_0ED@IFKDJDAE@Memory?5Type?5Information?5settings@ 000000000001cc10 UefiBootManagerLib:BmMisc.obj
+ 0002:00003214 ??_C@_02DKCKIIND@?$CFs?$AA@ 000000000001cc54 UefiBootManagerLib:BmMisc.obj
+ 0002:00003218 ??_C@_1BA@OEPBAFIJ@?$AAH?$AAe?$AAa?$AAl?$AAt?$AAh?$AAy?$AA?$AA@ 000000000001cc58 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003228 ??_C@_1CA@MECBMJF@?$AAR?$AAe?$AAp?$AAa?$AAi?$AAr?$AA?5?$AAR?$AAe?$AAq?$AAu?$AAi?$AAr?$AAe?$AAd?$AA?$AA@ 000000000001cc68 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003248 ??_C@_1CO@FBBOCFDH@?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AAu?$AAr?$AAa?$AAt?$AAi?$AAo?$AAn?$AA?5?$AAR?$AAe?$AAq?$AAu?$AAi?$AAr?$AAe?$AAd?$AA?$AA@ 000000000001cc88 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003278 ??_C@_1O@GCADHOOL@?$AAF?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?$AA@ 000000000001ccb8 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003288 ??_C@_1CG@MFKNOOC@?$AAR?$AAe?$AAc?$AAo?$AAn?$AAn?$AAe?$AAc?$AAt?$AA?5?$AAR?$AAe?$AAq?$AAu?$AAi?$AAr?$AAe?$AAd?$AA?$AA@ 000000000001ccc8 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:000032b0 ??_C@_1CA@LMENMPKC@?$AAR?$AAe?$AAb?$AAo?$AAo?$AAt?$AA?5?$AAR?$AAe?$AAq?$AAu?$AAi?$AAr?$AAe?$AAd?$AA?$AA@ 000000000001ccf0 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:000032d0 ??_C@_19BALNHBBC@?$AAL?$AAa?$AAn?$AAg?$AA?$AA@ 000000000001cd10 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:000032dc ??_C@_03LKLGDMJI@eng?$AA@ 000000000001cd1c UefiBootManagerLib:BmDriverHealth.obj
+ 0002:000032e0 ??_C@_05JJLPJMLG@en?9US?$AA@ 000000000001cd20 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:000032e8 ??_C@_0BA@PJPGFCCB@Controller?3?5?$CFs?6?$AA@ 000000000001cd28 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:000032f8 ??_C@_1CA@PLAOFDKP@?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAl?$AAe?$AAr?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?6?$AA?$AA@ 000000000001cd38 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003318 ??_C@_1M@IANLBCIB@?$AA?5?$AA?5?$AA?$CF?$AAs?$AA?6?$AA?$AA@ 000000000001cd58 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003324 ??_C@_05LDOEBFOB@?5?5?$CFs?6?$AA@ 000000000001cd64 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003330 ??_C@_0BK@NGFIGLGA@?$FLBDS?$FNRepairNotify?3?5?$CFd?1?$CFd?6?$AA@ 000000000001cd70 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003350 ??_C@_1DE@KPAEMAID@?$AA?$FL?$AAB?$AAD?$AAS?$AA?$FN?$AAR?$AAe?$AAp?$AAa?$AAi?$AAr?$AAN?$AAo?$AAt?$AAi?$AAf?$AAy?$AA?3?$AA?5?$AA?$CF?$AAd?$AA?1?$AA?$CF?$AAd?$AA?6?$AA?$AA@ 000000000001cd90 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003388 ??_C@_0CD@BOOHEENM@DriverHealthHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?5@ 000000000001cdc8 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:000033b0 ??_C@_0FK@NFNFEOGN@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001cdf0 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003410 ??_C@_0CC@KGLGCPCA@?$CKDriverHealthInfo?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 000000000001ce50 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003438 ??_C@_0CE@MFGOGKIA@DriverHealthHandles?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ@ 000000000001ce78 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003460 ??_C@_0P@JFBCBHIC@?$CF02d?3?5?$CFs?5?9?5?$CFs?6?$AA@ 000000000001cea0 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003470 ??_C@_0BH@PIKEIHIM@BmRepairAllControllers?$AA@ 000000000001ceb0 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003488 ??_C@_0CJ@OPCGBII@?$FL?$CFa?3?$CFd?$FN?5Repair?5failed?5after?5?$CFd?5r@ 000000000001cec8 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:000034b8 ??_C@_0DO@HEBFPBBH@?$FLBDS?$FN?5One?5of?5the?5Driver?5Health?5i@ 000000000001cef8 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003500 mBmHealthStatusText 000000000001cf40 UefiBootManagerLib:BmDriverHealth.obj
+ 0002:00003530 ??_C@_0CE@MDBJFLCA@MenuNumber?5?$DM?5MenuOption?9?$DOMenuNum@ 000000000001cf70 FileExplorerLib:FileExplorer.obj
+ 0002:00003560 ??_C@_0FF@NGAEBIMK@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001cfa0 FileExplorerLib:FileExplorer.obj
+ 0002:000035b8 ??_C@_0BH@GHAKFHML@ToText?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001cff8 FileExplorerLib:FileExplorer.obj
+ 0002:000035d0 ??_C@_0BF@CPBCKIGP@Dest?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d010 FileExplorerLib:FileExplorer.obj
+ 0002:000035e8 ??_C@_0BH@FMMHHFDB@TmpStr?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d028 FileExplorerLib:FileExplorer.obj
+ 0002:00003600 ??_C@_0BE@LNIAOOBG@Str?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d040 FileExplorerLib:FileExplorer.obj
+ 0002:00003614 ??_C@_13FPGAJAPJ@?$AA?2?$AA?$AA@ 000000000001d054 FileExplorerLib:FileExplorer.obj
+ 0002:00003618 ??_C@_1CI@JGIGCDAN@?$AAN?$AAO?$AA?5?$AAF?$AAI?$AAL?$AAE?$AA?5?$AAS?$AAY?$AAS?$AAT?$AAE?$AAM?$AA?5?$AAI?$AAN?$AAF?$AAO?$AA?$AA@ 000000000001d058 FileExplorerLib:FileExplorer.obj
+ 0002:00003640 ??_C@_1CA@KOPNEOKK@?$AAN?$AAO?$AA?5?$AAV?$AAO?$AAL?$AAU?$AAM?$AAE?$AA?5?$AAL?$AAA?$AAB?$AAE?$AAL?$AA?$AA@ 000000000001d080 FileExplorerLib:FileExplorer.obj
+ 0002:00003660 ??_C@_0CJ@CDKCBEKC@MenuEntry?9?$DODisplayString?5?$CB?$DN?5?$CI?$CIvo@ 000000000001d0a0 FileExplorerLib:FileExplorer.obj
+ 0002:00003690 ??_C@_1BC@GMOFGFBO@?$AA?$CF?$AAs?$AA?0?$AA?5?$AA?$FL?$AA?$CF?$AAs?$AA?$FN?$AA?$AA@ 000000000001d0d0 FileExplorerLib:FileExplorer.obj
+ 0002:000036a8 ??_C@_19ECGOGJPA@?$AA?$DM?$AA?$CF?$AAs?$AA?$DO?$AA?$AA@ 000000000001d0e8 FileExplorerLib:FileExplorer.obj
+ 0002:000036b8 ??_C@_0CO@BKJCELCP@gFileExplorerPrivate?4FileType?5?$CB?$DN@ 000000000001d0f8 FileExplorerLib:FileExplorer.obj
+ 0002:000036e8 ??_C@_0CF@KMPENEEM@gHiiVendorDevicePath?5?$CB?$DN?5?$CI?$CIvoid?5?$CK@ 000000000001d128 FileExplorerLib:FileExplorer.obj
+ 0002:00003710 ??_C@_0DB@BODFOPAI@gFileExplorerPrivate?4FeHiiHandle@ 000000000001d150 FileExplorerLib:FileExplorer.obj
+ 0002:00003750 ??_C@_0FJ@KJONMDOF@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d190 DeviceManagerUiLib:DeviceManager.obj
+ 0002:000037b0 ??_C@_0BP@KHCJJICF@MacAddressNode?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d1f0 DeviceManagerUiLib:DeviceManager.obj
+ 0002:000037d0 ??_C@_19IEFMLJON@?$AAM?$AAA?$AAC?$AA?3?$AA?$AA@ 000000000001d210 DeviceManagerUiLib:DeviceManager.obj
+ 0002:000037e0 ??_C@_1M@MOFLFCEC@?$AA?$CF?$AAs?$AA?5?$AA?$CF?$AAs?$AA?$AA@ 000000000001d220 DeviceManagerUiLib:DeviceManager.obj
+ 0002:000037f0 ??_C@_0DA@BBLDGEIM@gDeviceManagerPrivate?4HiiHandle?5@ 000000000001d230 DeviceManagerUiLib:DeviceManager.obj
+ 0002:00003820 ??_C@_1BG@DBHBDKIO@?$AAL?$AAe?$AAg?$AAa?$AAc?$AAy?$AA?5?$AAB?$AAE?$AAV?$AA?$AA@ 000000000001d260 BootManagerUiLib:BootManager.obj
+ 0002:00003838 ??_C@_1BM@IAJGCJBG@?$AAL?$AAe?$AAg?$AAa?$AAc?$AAy?$AA?5?$AAF?$AAl?$AAo?$AAp?$AAp?$AAy?$AA?$AA@ 000000000001d278 BootManagerUiLib:BootManager.obj
+ 0002:00003858 ??_C@_1CE@EJMDGBEH@?$AAL?$AAe?$AAg?$AAa?$AAc?$AAy?$AA?5?$AAH?$AAa?$AAr?$AAd?$AA?5?$AAD?$AAr?$AAi?$AAv?$AAe?$AA?$AA@ 000000000001d298 BootManagerUiLib:BootManager.obj
+ 0002:00003880 ??_C@_1BM@EEIPAJPF@?$AAL?$AAe?$AAg?$AAa?$AAc?$AAy?$AA?5?$AAC?$AAD?$AA?5?$AAR?$AAO?$AAM?$AA?$AA@ 000000000001d2c0 BootManagerUiLib:BootManager.obj
+ 0002:000038a0 ??_C@_1BM@CCEDBLBN@?$AAL?$AAe?$AAg?$AAa?$AAc?$AAy?$AA?5?$AAP?$AAC?$AAM?$AAC?$AAI?$AAA?$AA?$AA@ 000000000001d2e0 BootManagerUiLib:BootManager.obj
+ 0002:000038c0 ??_C@_1BG@ENPLCDPC@?$AAL?$AAe?$AAg?$AAa?$AAc?$AAy?$AA?5?$AAU?$AAS?$AAB?$AA?$AA@ 000000000001d300 BootManagerUiLib:BootManager.obj
+ 0002:000038d8 ??_C@_1DA@LLMHHEOA@?$AAL?$AAe?$AAg?$AAa?$AAc?$AAy?$AA?5?$AAE?$AAm?$AAb?$AAe?$AAd?$AAd?$AAe?$AAd?$AA?5?$AAN?$AAe?$AAt?$AAw?$AAo?$AAr?$AAk?$AA?$AA@ 000000000001d318 BootManagerUiLib:BootManager.obj
+ 0002:00003908 ??_C@_1CM@CNECEIDD@?$AAL?$AAe?$AAg?$AAa?$AAc?$AAy?$AA?5?$AAU?$AAn?$AAk?$AAn?$AAo?$AAw?$AAn?$AA?5?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@ 000000000001d348 BootManagerUiLib:BootManager.obj
+ 0002:00003940 ??_C@_0FF@JPPADOAG@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d380 BootManagerUiLib:BootManager.obj
+ 0002:00003998 ??_C@_1BC@HAMKBGJJ@?$AAB?$AAo?$AAo?$AAt?$AA?$CF?$AA0?$AA4?$AAx?$AA?$AA@ 000000000001d3d8 BootManagerUiLib:BootManager.obj
+ 0002:000039b0 ??_C@_0DM@KMLPJPAC@?$FLBootManagerDxe?$FN?5?$DN?$DN?$DN?$DN?5Find?5Legac@ 000000000001d3f0 BootManagerUiLib:BootManager.obj
+ 0002:000039f0 ??_C@_0HO@LAFBCGAG@?$CI?$CI?$CIBBS_BBS_DEVICE_PATH?5?$CK?$CJBootOpt@ 000000000001d430 BootManagerUiLib:BootManager.obj
+ 0002:00003a70 ??_C@_0CO@EBBHKDJM@BootOption?$FLIndex?$FN?4Description?5?$CB?$DN@ 000000000001d4b0 BootManagerUiLib:BootManager.obj
+ 0002:00003aa0 ??_C@_1BO@PNIJGPEG@?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?5?$AAP?$AAa?$AAt?$AAh?$AA?5?$AA?3?$AA?5?$AA?$AA@ 000000000001d4e0 BootManagerUiLib:BootManager.obj
+ 0002:00003ac0 ??_C@_0BL@DFKODJNK@HelpString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d500 BootManagerUiLib:BootManager.obj
+ 0002:00003ae0 ??_C@_0CO@JHOJDCNH@gBootManagerPrivate?4HiiHandle?5?$CB?$DN@ 000000000001d520 BootManagerUiLib:BootManager.obj
+ 0002:00003b10 mDeviceTypeStr 000000000001d550 BootManagerUiLib:BootManager.obj
+ 0002:00003b50 ??_C@_0GE@NHCKFGHG@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001d590 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003bb8 ??_C@_1BK@KPMCGGIO@?$AA?$CG?$AAO?$AAF?$AAF?$AAS?$AAE?$AAT?$AA?$DN?$AA?$CF?$AA0?$AA4?$AAx?$AA?$AA@ 000000000001d5f8 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003bd8 ??_C@_0BN@LKNBJPEL@NewMenuEntry?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d618 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003c00 ??_C@_0FF@OCGNDIFH@BmmData?9?$DOCOMBaudRate?$FLIndex?$FN?5?$DM?5?$CI?$CI@ 000000000001d640 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003c60 ??_C@_0FF@FOFLGLHI@BmmData?9?$DOCOMDataRate?$FLIndex?$FN?5?$DM?5?$CI?$CI@ 000000000001d6a0 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003cc0 ??_C@_0FF@LOCDEPJ@BmmData?9?$DOCOMStopBits?$FLIndex?$FN?5?$DM?5?$CI?$CI@ 000000000001d700 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003d20 ??_C@_0EP@DFIGDHMP@BmmData?9?$DOCOMParity?$FLIndex?$FN?5?$DM?5?$CI?$CIsi@ 000000000001d760 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003d70 ??_C@_0M@FEHBHOOC@Index?5?$DM?5100?$AA@ 000000000001d7b0 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003d80 ??_C@_0CI@LNNDKNDP@Index?5?$CL?5ConsoleInpMenu?4MenuNumbe@ 000000000001d7c0 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003da8 ??_C@_0CI@CDCMIKKB@Index?5?$CL?5ConsoleOutMenu?4MenuNumbe@ 000000000001d7e8 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003dd0 ??_C@_0CI@EDJDHKEG@Index?5?$CL?5ConsoleErrMenu?4MenuNumbe@ 000000000001d810 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003df8 ??_C@_1O@LFMAFHMH@?$AAO?$AAF?$AAF?$AAS?$AAE?$AAT?$AA?$AA@ 000000000001d838 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003e08 ??_C@_1BA@BKONPLFM@?$AAT?$AAi?$AAm?$AAe?$AAo?$AAu?$AAt?$AA?$AA@ 000000000001d848 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003e18 ??_C@_19ENGJFOPL@?$AA?4?$AAe?$AAf?$AAi?$AA?$AA@ 000000000001d858 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003e30 ??_C@_0HG@OENJEKEB@BootOptionMenu?4MenuNumber?5?$DM?$DN?5?$CIsi@ 000000000001d870 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003eb0 ??_C@_0HM@DOJIJBLN@DriverOptionMenu?4MenuNumber?5?$DM?$DN?5?$CI@ 000000000001d8f0 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003f30 ??_C@_0BN@NKFFBBKI@CallbackData?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d970 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003f50 ??_C@_0CP@EGBHBAE@mBmmCallbackInfo?9?$DOBmmHiiHandle?5?$CB@ 000000000001d990 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003f80 ??_C@_0BE@BCCJKDNM@Ptr?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001d9c0 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0002:00003f98 ??_C@_0CD@EGLDNELE@mStartOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?5@ 000000000001d9d8 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0002:00003fc0 ??_C@_0FP@DBEFCKOP@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001da00 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0002:00004020 ??_C@_0CB@HCEMOFB@mEndOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ@ 000000000001da60 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0002:00004050 ??_C@_0IK@BBJPIDBO@BootOptionMenu?4MenuNumber?5?$DM?$DN?5?$CIsi@ 000000000001da90 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0002:000040e0 ??_C@_0JA@BIOKCMOO@DriverOptionMenu?4MenuNumber?5?$DM?$DN?5?$CI@ 000000000001db20 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0002:00004170 ??_C@_0BN@BJDEDCNB@ConsoleCheck?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001dbb0 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0002:00004190 ??_C@_0BK@EKIGBGH@ModeToken?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001dbd0 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0002:000041b0 ??_C@_17CEOIGCFC@?$AA?5?$AAx?$AA?5?$AA?$AA@ 000000000001dbf0 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0002:000041c0 ??_C@_0FP@MMPEAHGK@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001dc00 BootMaintenanceManagerUiLib:BootOption.obj
+ 0002:00004220 ??_C@_0BN@HMAFKBFF@?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CB?$DN?5NewMenuEntry?$AA@ 000000000001dc60 BootMaintenanceManagerUiLib:BootOption.obj
+ 0002:00004240 ??_C@_0CM@FNOIGNAK@NewLoadContext?9?$DODescription?5?$CB?$DN?5?$CI@ 000000000001dc80 BootMaintenanceManagerUiLib:BootOption.obj
+ 0002:00004270 ??_C@_0CN@PDJEMOOA@NewLoadContext?9?$DOFilePathList?5?$CB?$DN?5@ 000000000001dcb0 BootMaintenanceManagerUiLib:BootOption.obj
+ 0002:000042a0 ??_C@_0CN@NNIEOKOB@NewLoadContext?9?$DOOptionalData?5?$CB?$DN?5@ 000000000001dce0 BootMaintenanceManagerUiLib:BootOption.obj
+ 0002:000042d0 ??_C@_1BA@JFMJKBME@?$AA?$CF?$AAs?$AAO?$AAr?$AAd?$AAe?$AAr?$AA?$AA@ 000000000001dd10 BootMaintenanceManagerUiLib:BootOption.obj
+ 0002:000042e0 ??_C@_0N@OGKCONEE@Option?5?$DN?5?$CFs?6?$AA@ 000000000001dd20 BootMaintenanceManagerUiLib:BootOption.obj
+ 0002:000042f0 ??_C@_1BG@IKNMHBCC@?$AAD?$AAr?$AAi?$AAv?$AAe?$AAr?$AA?$CF?$AA0?$AA4?$AAx?$AA?$AA@ 000000000001dd30 BootMaintenanceManagerUiLib:BootOption.obj
+ 0002:00004310 ??_C@_0GC@EOFDPLMN@NewTerminalContext?9?$DOTerminalType@ 000000000001dd50 BootMaintenanceManagerUiLib:Variable.obj
+ 0002:00004380 ??_C@_0FN@HLHMMNEH@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001ddc0 BootMaintenanceManagerUiLib:Variable.obj
+ 0002:000043e0 ??_C@_0CD@EFLNJIJO@TerminalDevicePath?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?5@ 000000000001de20 BootMaintenanceManagerUiLib:Variable.obj
+ 0002:00004410 ??_C@_0IO@COBKBBMM@BootOptionMenu?4MenuNumber?5?$DM?$DN?5?$CIsi@ 000000000001de50 BootMaintenanceManagerUiLib:Variable.obj
+ 0002:000044a0 ??_C@_0JE@DLLMFIEP@DriverOptionMenu?4MenuNumber?5?$DM?$DN?5?$CI@ 000000000001dee0 BootMaintenanceManagerUiLib:Variable.obj
+ 0002:00004538 mFlowControlValue 000000000001df78 BootMaintenanceManagerUiLib:Data.obj
+ 0002:00004540 TerminalType 000000000001df80 BootMaintenanceManagerUiLib:Data.obj
+ 0002:00004554 mFlowControlType 000000000001df94 BootMaintenanceManagerUiLib:Data.obj
+ 0002:00004560 ??_C@_0GC@GNPNOACA@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001dfa0 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0002:000045c8 ??_C@_0CO@MDCBKLCA@NewConsoleContext?9?$DODevicePath?5?$CB?$DN@ 000000000001e008 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0002:00004600 ??_C@_0HO@FPDAKJLN@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001e040 BootMaintenanceManagerUiLib:BootMaintenanceManagerCustomizedUiSupport.obj
+ 0002:00004680 ??_C@_0FF@PKHNKPL@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001e0c0 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:000046d8 ??_C@_0DI@DAGDPLPG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 000000000001e118 BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0002:00004710 ??_C@_0FE@OAGIONNJ@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001e150 BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0002:00004770 ??_C@_0FG@BHBOFAHM@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001e1b0 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:000047c8 ??_C@_0CO@LECKNDNC@?$CI?$CI?$CIUINTN?$CJBuffer?$CJ?5?$CG?5?$CIsizeof?5?$CIValu@ 000000000001e208 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:000047f8 ??_C@_0CF@LEICOABD@?$CILength?5?$CG?5?$CIsizeof?5?$CIValue?$CJ?5?9?51?$CJ?$CJ?5@ 000000000001e238 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00004820 ??_C@_0CC@JOEHDGKB@DestinationBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 000000000001e260 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00004850 ??_C@_0FI@NCCCHAEB@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001e290 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:000048a8 ??_C@_0BN@MDMCNBCC@SourceBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001e2e8 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:000048c8 ??_C@_0CI@MNELLLEK@?$CB?$CIBuffer?5?$DN?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?5?$CG?$CG?5Leng@ 000000000001e308 BaseMemoryLibRepStr:IsZeroBufferWrapper.obj
+ 0002:000048f0 ??_C@_0FK@BHBEFCFM@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001e330 BaseMemoryLibRepStr:IsZeroBufferWrapper.obj
+ 0002:00004950 ??_C@_0EN@EIGKPMFG@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001e390 BaseLib:DivU64x32Remainder.obj
+ 0002:000049a0 ??_C@_0BF@NJNGJMPC@List?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001e3e0 BaseLib:LinkedList.obj
+ 0002:000049c0 ??_C@_0EF@PHMLHICE@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001e400 BaseLib:LinkedList.obj
+ 0002:00004a08 ??_C@_0CC@KDLPLAED@List?9?$DOForwardLink?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 000000000001e448 BaseLib:LinkedList.obj
+ 0002:00004a30 ??_C@_0BP@IJJCCMAK@List?9?$DOBackLink?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001e470 BaseLib:LinkedList.obj
+ 0002:00004a50 ??_C@_0BJ@NJABNCDK@ListHead?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001e490 BaseLib:LinkedList.obj
+ 0002:00004a70 ??_C@_0CG@LGIALJFK@InternalBaseLibIsListValid?5?$CIList@ 000000000001e4b0 BaseLib:LinkedList.obj
+ 0002:00004a98 ??_C@_0CC@JLDICICM@InternalBaseLibIsListValid?5?$CIList@ 000000000001e4d8 BaseLib:LinkedList.obj
+ 0002:00004ac0 ??_C@_0BF@NMBJJECB@?$CBIsListEmpty?5?$CIEntry?$CJ?$AA@ 000000000001e500 BaseLib:LinkedList.obj
+ 0002:00004ae0 ??_C@_0EH@BHJPKNIJ@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001e520 UefiLib:UefiNotTiano.obj
+ 0002:00004b28 ??_C@_0CB@LNNMJOKK@ReadyToBootEvent?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ@ 000000000001e568 UefiLib:UefiNotTiano.obj
+ 0002:00004b50 ??_C@_0CH@LOBIJKLE@EFI1?41?5can?8t?5support?5ReadyToBoot@ 000000000001e590 UefiLib:UefiNotTiano.obj
+ 0002:00004b78 ??_C@_0CB@OKGFGBHJ@FvDevicePathNode?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ@ 000000000001e5b8 UefiLib:UefiNotTiano.obj
+ 0002:00004ba0 ??_C@_0EH@BHOPMLMJ@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001e5e0 UefiLib:UefiLibPrint.obj
+ 0002:00004be8 ??_C@_0CC@KPMNJIIF@?$CI?$CIUINTN?$CJFormat?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 000000000001e628 UefiLib:UefiLibPrint.obj
+ 0002:00004c10 ??_C@_0BI@DIKLKBJC@Console?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 000000000001e650 UefiLib:UefiLibPrint.obj
+ 0002:00004c28 ??_C@_0BO@DIMHDDCF@TotalSize?5?$DM?$DN?5?$CI?$CIUINT16?$CJ0xFFFF?$CJ?$AA@ 000000000001e668 VariablePolicyHelperLib:VariablePolicyHelperLib.obj
+ 0002:00004c50 ??_C@_0GI@MKMGNAHH@c?3?2users?2mliang2x?2workspace?2edk2@ 000000000001e690 VariablePolicyHelperLib:VariablePolicyHelperLib.obj
+ 0003:00000000 gEfiStatusCodeSpecificDataGuid 000000000001e8a0 UiApp:AutoGen.obj
+ 0003:00000010 gEfiDriverHealthProtocolGuid 000000000001e8b0 UiApp:AutoGen.obj
+ 0003:00000020 gEfiMemoryTypeInformationGuid 000000000001e8c0 UiApp:AutoGen.obj
+ 0003:00000030 gEfiGlobalVariableGuid 000000000001e8d0 UiApp:AutoGen.obj
+ 0003:00000040 gEfiStatusCodeRuntimeProtocolGuid 000000000001e8e0 UiApp:AutoGen.obj
+ 0003:00000050 gEfiDiskInfoProtocolGuid 000000000001e8f0 UiApp:AutoGen.obj
+ 0003:00000060 gEfiIfrTianoGuid 000000000001e900 UiApp:AutoGen.obj
+ 0003:00000070 gEfiRamDiskProtocolGuid 000000000001e910 UiApp:AutoGen.obj
+ 0003:00000080 gEfiEventReadyToBootGuid 000000000001e920 UiApp:AutoGen.obj
+ 0003:00000090 gEfiDiskInfoScsiInterfaceGuid 000000000001e930 UiApp:AutoGen.obj
+ 0003:000000a0 _gPcd_BinaryPatch_PcdSetupConOutColumn 000000000001e940 UiApp:AutoGen.obj
+ 0003:000000a8 gEfiComponentName2ProtocolGuid 000000000001e948 UiApp:AutoGen.obj
+ 0003:000000b8 gEfiDiskInfoIdeInterfaceGuid 000000000001e958 UiApp:AutoGen.obj
+ 0003:000000c8 gPcdProtocolGuid 000000000001e968 UiApp:AutoGen.obj
+ 0003:000000d8 gEfiSimpleTextOutProtocolGuid 000000000001e978 UiApp:AutoGen.obj
+ 0003:000000e8 gEfiLoadFileProtocolGuid 000000000001e988 UiApp:AutoGen.obj
+ 0003:000000f8 gEfiDiskInfoSdMmcInterfaceGuid 000000000001e998 UiApp:AutoGen.obj
+ 0003:00000108 gEfiHiiPlatformSetupFormsetGuid 000000000001e9a8 UiApp:AutoGen.obj
+ 0003:00000118 gEfiSerialIoProtocolGuid 000000000001e9b8 UiApp:AutoGen.obj
+ 0003:00000128 gEdkiiPlatformBootManagerProtocolGuid 000000000001e9c8 UiApp:AutoGen.obj
+ 0003:00000138 gEfiFileInfoGuid 000000000001e9d8 UiApp:AutoGen.obj
+ 0003:00000148 gEfiNvmExpressPassThruProtocolGuid 000000000001e9e8 UiApp:AutoGen.obj
+ 0003:00000158 gEfiDevicePathProtocolGuid 000000000001e9f8 UiApp:AutoGen.obj
+ 0003:00000168 gEfiPciIoProtocolGuid 000000000001ea08 UiApp:AutoGen.obj
+ 0003:00000178 gEfiLoadedImageProtocolGuid 000000000001ea18 UiApp:AutoGen.obj
+ 0003:00000188 gEfiFirmwareVolume2ProtocolGuid 000000000001ea28 UiApp:AutoGen.obj
+ 0003:00000198 gEfiSmbiosProtocolGuid 000000000001ea38 UiApp:AutoGen.obj
+ 0003:000001b0 UiAppStrings 000000000001ea50 UiApp:AutoGen.obj
+ 0003:000005d8 gEfiDevicePathToTextProtocolGuid 000000000001ee78 UiApp:AutoGen.obj
+ 0003:000005e8 gEfiHiiConfigRoutingProtocolGuid 000000000001ee88 UiApp:AutoGen.obj
+ 0003:000005f8 gEfiDiskInfoAhciInterfaceGuid 000000000001ee98 UiApp:AutoGen.obj
+ 0003:00000608 gEfiSimpleTextInputExProtocolGuid 000000000001eea8 UiApp:AutoGen.obj
+ 0003:00000618 gEfiSimpleTextInProtocolGuid 000000000001eeb8 UiApp:AutoGen.obj
+ 0003:00000628 gEfiUsbIoProtocolGuid 000000000001eec8 UiApp:AutoGen.obj
+ 0003:00000638 gEfiHiiImageProtocolGuid 000000000001eed8 UiApp:AutoGen.obj
+ 0003:00000648 gEfiDevicePathUtilitiesProtocolGuid 000000000001eee8 UiApp:AutoGen.obj
+ 0003:00000658 gEfiGraphicsOutputProtocolGuid 000000000001eef8 UiApp:AutoGen.obj
+ 0003:00000668 gEfiHiiDatabaseProtocolGuid 000000000001ef08 UiApp:AutoGen.obj
+ 0003:00000678 gEfiSimpleFileSystemProtocolGuid 000000000001ef18 UiApp:AutoGen.obj
+ 0003:00000688 gEfiHiiStringProtocolGuid 000000000001ef28 UiApp:AutoGen.obj
+ 0003:00000698 gEfiIfrFrontPageGuid 000000000001ef38 UiApp:AutoGen.obj
+ 0003:000006a8 gEfiHiiConfigAccessProtocolGuid 000000000001ef48 UiApp:AutoGen.obj
+ 0003:000006b8 gEfiHobListGuid 000000000001ef58 UiApp:AutoGen.obj
+ 0003:000006c8 gEfiFileSystemVolumeLabelInfoIdGuid 000000000001ef68 UiApp:AutoGen.obj
+ 0003:000006d8 gEdkiiStatusCodeDataTypeVariableGuid 000000000001ef78 UiApp:AutoGen.obj
+ 0003:000006e8 gEfiBootLogoProtocolGuid 000000000001ef88 UiApp:AutoGen.obj
+ 0003:000006f8 gEfiFormBrowser2ProtocolGuid 000000000001ef98 UiApp:AutoGen.obj
+ 0003:00000708 gEfiComponentNameProtocolGuid 000000000001efa8 UiApp:AutoGen.obj
+ 0003:00000718 gEfiBlockIoProtocolGuid 000000000001efb8 UiApp:AutoGen.obj
+ 0003:00000728 gEfiDxeServicesTableGuid 000000000001efc8 UiApp:AutoGen.obj
+ 0003:00000738 gEfiIfrBootMaintenanceGuid 000000000001efd8 UiApp:AutoGen.obj
+ 0003:00000748 gEdkiiFormBrowserEx2ProtocolGuid 000000000001efe8 UiApp:AutoGen.obj
+ 0003:00000758 gEfiCallerIdGuid 000000000001eff8 UiApp:AutoGen.obj
+ 0003:00000768 gEdkiiVariablePolicyProtocolGuid 000000000001f008 UiApp:AutoGen.obj
+ 0003:00000778 gEfiHiiFontProtocolGuid 000000000001f018 UiApp:AutoGen.obj
+ 0003:00000788 _gPcd_BinaryPatch_PcdSetupConOutRow 000000000001f028 UiApp:AutoGen.obj
+ 0003:00000790 gFrontPagePrivate 000000000001f030 UiApp:FrontPage.obj
+ 0003:000007c8 mFrontPageHiiVendorDevicePath 000000000001f068 UiApp:FrontPage.obj
+ 0003:000007e0 mFrontPageGuid 000000000001f080 UiApp:FrontPage.obj
+ 0003:000007f0 FrontPageVfrBin 000000000001f090 UiApp:FrontPageVfr.obj
+ 0003:00000940 mFontBin 000000000001f1e0 UiApp:String.obj
+ 0003:000016e0 mUiStringPackGuid 000000000001ff80 UiApp:String.obj
+ 0003:000016f0 mFontPackageGuid 000000000001ff90 UiApp:String.obj
+ 0003:00001700 mBmHardDriveBootVariableGuid 000000000001ffa0 UefiBootManagerLib:BmBoot.obj
+ 0003:00001710 mBmAutoCreateBootOptionGuid 000000000001ffb0 UefiBootManagerLib:BmBoot.obj
+ 0003:00001720 mPlatformBootDescriptionHandlers 000000000001ffc0 UefiBootManagerLib:BmBootDescription.obj
+ 0003:00001730 mBmUefiPrefix 000000000001ffd0 UefiBootManagerLib:BmBootDescription.obj
+ 0003:00001740 mBmHotkeyList 000000000001ffe0 UefiBootManagerLib:BmHotkey.obj
+ 0003:00001750 mBmHotkeyBootOption 000000000001fff0 UefiBootManagerLib:BmHotkey.obj
+ 0003:000017a8 mBmHotkeyLock 0000000000020048 UefiBootManagerLib:BmHotkey.obj
+ 0003:000017c0 FeHiiVendorDevicePath 0000000000020060 FileExplorerLib:FileExplorer.obj
+ 0003:000017d8 FileExplorerGuid 0000000000020078 FileExplorerLib:FileExplorer.obj
+ 0003:000017e8 mNewFolderQuestionId 0000000000020088 FileExplorerLib:FileExplorer.obj
+ 0003:000017f0 gFileExplorerPrivate 0000000000020090 FileExplorerLib:FileExplorer.obj
+ 0003:00001848 mNewFileQuestionId 00000000000200e8 FileExplorerLib:FileExplorer.obj
+ 0003:00001850 mFsOptionMenu 00000000000200f0 FileExplorerLib:FileExplorer.obj
+ 0003:00001880 FileExplorerVfrBin 0000000000020120 FileExplorerLib:FileExplorerVfr.obj
+ 0003:00001980 FileExplorerLibStrings 0000000000020220 FileExplorerLib:AutoGen.obj
+ 0003:000021a0 mDeviceManagerHiiVendorDevicePath 0000000000020a40 DeviceManagerUiLib:DeviceManager.obj
+ 0003:000021b8 mDeviceManagerGuid 0000000000020a58 DeviceManagerUiLib:DeviceManager.obj
+ 0003:000021c8 gDeviceManagerPrivate 0000000000020a68 DeviceManagerUiLib:DeviceManager.obj
+ 0003:00002200 DeviceManagerVfrBin 0000000000020aa0 DeviceManagerUiLib:DeviceManagerVfr.obj
+ 0003:00002330 DeviceManagerUiLibStrings 0000000000020bd0 DeviceManagerUiLib:AutoGen.obj
+ 0003:000027e8 mBootManagerGuid 0000000000021088 BootManagerUiLib:BootManager.obj
+ 0003:000027f8 gBootManagerPrivate 0000000000021098 BootManagerUiLib:BootManager.obj
+ 0003:00002828 mBootManagerHiiVendorDevicePath 00000000000210c8 BootManagerUiLib:BootManager.obj
+ 0003:00002840 BootManagerUiLibStrings 00000000000210e0 BootManagerUiLib:AutoGen.obj
+ 0003:00002c80 BootManagerVfrBin 0000000000021520 BootManagerUiLib:BootManagerVfr.obj
+ 0003:00002d40 mBootMaintGuid 00000000000215e0 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00002d50 gBootMaintenancePrivate 00000000000215f0 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:000049b0 mBmmCallbackInfo 0000000000023250 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:000049c0 mBootMaintStorageName 0000000000023260 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:000049d0 mBmmHiiVendorDevicePath 0000000000023270 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:000049f0 DriverMenu 0000000000023290 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004a10 ConsoleInpMenu 00000000000232b0 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004a30 BaudRateList 00000000000232d0 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004b60 ConsoleOutMenu 0000000000023400 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004b80 DriverOptionMenu 0000000000023420 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004ba0 StopBitsList 0000000000023440 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004bd0 ParityList 0000000000023470 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004c20 ConsoleErrMenu 00000000000234c0 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004c40 DataBitsList 00000000000234e0 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004c80 BootOptionMenu 0000000000023520 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004ca0 TerminalMenu 0000000000023540 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004cc0 TerminalTypeGuid 0000000000023560 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00004d50 BootMaintenanceManagerBin 00000000000235f0 BootMaintenanceManagerUiLib:BootMaintenanceManager.obj
+ 0003:000052f0 BootMaintenanceManagerUiLibStrings 0000000000023b90 BootMaintenanceManagerUiLib:AutoGen.obj
+ 0003:00006ec0 mSetupTextModeRow 0000000000025760 UiApp:FrontPage.obj
+ 0003:00006ec4 mBootVerticalResolution 0000000000025764 UiApp:FrontPage.obj
+ 0003:00006ec8 mBootTextModeColumn 0000000000025768 UiApp:FrontPage.obj
+ 0003:00006ecc mSetupTextModeColumn 000000000002576c UiApp:FrontPage.obj
+ 0003:00006ed0 mBootTextModeRow 0000000000025770 UiApp:FrontPage.obj
+ 0003:00006ed4 mModeInitialized 0000000000025774 UiApp:FrontPage.obj
+ 0003:00006ed5 mResetRequired 0000000000025775 UiApp:FrontPage.obj
+ 0003:00006ed8 mSetupHorizontalResolution 0000000000025778 UiApp:FrontPage.obj
+ 0003:00006edc mBootHorizontalResolution 000000000002577c UiApp:FrontPage.obj
+ 0003:00006ee0 mSetupVerticalResolution 0000000000025780 UiApp:FrontPage.obj
+ 0003:00006ee8 mPcd 0000000000025788 DxePcdLib:DxePcdLib.obj
+ 0003:00006ef8 gST 0000000000025798 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00006f00 gImageHandle 00000000000257a0 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00006f08 gBS 00000000000257a8 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00006f10 gRT 00000000000257b0 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0003:00006f18 mDevicePathLibDevicePathToText 00000000000257b8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0003:00006f20 mDevicePathLibDevicePathUtilities 00000000000257c0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0003:00006f28 mHobList 00000000000257c8 DxeHobLib:HobLib.obj
+ 0003:00006f30 gHiiDatabase 00000000000257d0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00006f38 gHiiString 00000000000257d8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00006f40 gHiiFont 00000000000257e0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00006f48 gHiiConfigRouting 00000000000257e8 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00006f50 gHiiImage 00000000000257f0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00006f58 gDS 00000000000257f8 DxeServicesTableLib:DxeServicesTableLib.obj
+ 0003:00006f60 mUefiFormBrowser2 0000000000025800 UefiHiiLib:HiiLib.obj
+ 0003:00006f68 mReportStatusCodeLibStatusCodeProtocol 0000000000025808 DxeReportStatusCodeLib:ReportStatusCodeLib.obj
+ 0003:00006f70 mBmLegacyBoot 0000000000025810 UefiBootManagerLib:BmBoot.obj
+ 0003:00006f78 mRamDisk 0000000000025818 UefiBootManagerLib:BmBoot.obj
+ 0003:00006f80 mBmRefreshLegacyBootOption 0000000000025820 UefiBootManagerLib:BmBoot.obj
+ 0003:00006f88 mBmHotkeyTriggered 0000000000025828 UefiBootManagerLib:BmHotkey.obj
+ 0003:00006f90 mLibEndOpCodeHandle 0000000000025830 FileExplorerLib:FileExplorer.obj
+ 0003:00006f98 mLibStartLabel 0000000000025838 FileExplorerLib:FileExplorer.obj
+ 0003:00006fa0 mLibStartOpCodeHandle 0000000000025840 FileExplorerLib:FileExplorer.obj
+ 0003:00006fa8 mLibEndLabel 0000000000025848 FileExplorerLib:FileExplorer.obj
+ 0003:00006fb0 mBmSetupTextModeRow 0000000000025850 BootManagerUiLib:BootManager.obj
+ 0003:00006fb4 mBmBootTextModeRow 0000000000025854 BootManagerUiLib:BootManager.obj
+ 0003:00006fb8 mBmModeInitialized 0000000000025858 BootManagerUiLib:BootManager.obj
+ 0003:00006fbc mBmBootHorizontalResolution 000000000002585c BootManagerUiLib:BootManager.obj
+ 0003:00006fc0 mBmSetupVerticalResolution 0000000000025860 BootManagerUiLib:BootManager.obj
+ 0003:00006fc4 mBmSetupHorizontalResolution 0000000000025864 BootManagerUiLib:BootManager.obj
+ 0003:00006fc8 mBmBootVerticalResolution 0000000000025868 BootManagerUiLib:BootManager.obj
+ 0003:00006fcc mBmBootTextModeColumn 000000000002586c BootManagerUiLib:BootManager.obj
+ 0003:00006fd0 mBmSetupTextModeColumn 0000000000025870 BootManagerUiLib:BootManager.obj
+ 0003:00006fd4 mBmmSetupVerticalResolution 0000000000025874 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00006fd8 mFirstEnterBMMForm 0000000000025878 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00006fdc mBmmBootHorizontalResolution 000000000002587c BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00006fe0 mBmmModeInitialized 0000000000025880 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00006fe4 mBmmSetupTextModeRow 0000000000025884 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00006fe8 mBmmBootTextModeRow 0000000000025888 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00006fec mBmmSetupHorizontalResolution 000000000002588c BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00006ff0 mAllMenuInit 0000000000025890 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00006ff4 mBmmBootVerticalResolution 0000000000025894 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00006ff8 mBmmSetupTextModeColumn 0000000000025898 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00006ffc mBmmBootTextModeColumn 000000000002589c BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0003:00007000 mStartOpCodeHandle 00000000000258a0 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00007008 mEndOpCodeHandle 00000000000258a8 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00007010 mStartLabel 00000000000258b0 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00007018 mEndLabel 00000000000258b8 BootMaintenanceManagerUiLib:Data.obj
+ 0003:00007028 mKeyInput 00000000000258c8 <common>
+ 0003:00007030 mSelectedMacAddrString 00000000000258d0 <common>
+ 0003:00007040 mMacDeviceList 00000000000258e0 <common>
+ 0003:00007058 mQuestionIdUpdate 00000000000258f8 <common>
+ 0003:00007060 mNewFolderName 0000000000025900 <common>
+ 0003:00007088 gHiiVendorDevicePath 0000000000025928 <common>
+ 0003:000070a0 mNewFileName 0000000000025940 <common>
+ 0003:000070c8 gLanguageToken 0000000000025968 <common>
+ 0003:000070d0 gLanguageString 0000000000025970 <common>
+ 0003:000070d8 gCurrentLanguageIndex 0000000000025978 <common>
+ 0003:000070e0 gHiiDriverList 0000000000025980 <common>
+ 0003:000070e8 gStringPackHandle 0000000000025988 <common>
+ 0003:000070f0 gFormBrowser2 0000000000025990 <common>
+ 0003:000070f8 mLanguageString 0000000000025998 <common>
+
+ entry point at 0001:00000348
+
+ Static symbols
+
+ 0001:0000001a InternalMemCopyMem.0 00000000000002da BaseMemoryLibRepStr:CopyMem.obj
+ 0001:0000002a @CopyBackward 00000000000002ea BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000033 @CopyBytes 00000000000002f3 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:000000e5 @ReturnFalse 00000000000003a5 BaseMemoryLibRepStr:IsZeroBuffer.obj
+ 0001:0000017a @UseRepIo 000000000000043a BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000017c @SevNoRepIo_Done 000000000000043c BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000194 @IoReadFifo8_NoRep 0000000000000454 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000196 @IoReadFifo8_Loop 0000000000000456 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000019e @IoReadFifo8_Done 000000000000045e BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001b7 @IoReadFifo16_NoRep 0000000000000477 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001b9 @IoReadFifo16_Loop 0000000000000479 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001c4 @IoReadFifo16_Done 0000000000000484 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001dc @IoReadFifo32_NoRep 000000000000049c BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001de @IoReadFifo32_Loop 000000000000049e BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001e7 @IoReadFifo32_Done 00000000000004a7 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001ff @IoWriteFifo8_NoRep 00000000000004bf BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000201 @IoWriteFifo8_Loop 00000000000004c1 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000209 @IoWriteFifo8_Done 00000000000004c9 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000222 @IoWriteFifo16_NoRep 00000000000004e2 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000224 @IoWriteFifo16_Loop 00000000000004e4 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000022f @IoWriteFifo16_Done 00000000000004ef BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000247 @IoWriteFifo32_NoRep 0000000000000507 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000249 @IoWriteFifo32_Loop 0000000000000509 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000252 @IoWriteFifo32_Done 0000000000000512 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000002be TdVmCall.no_return_data 000000000000057e BaseLib:TdVmcall.obj
+ 0001:0000033b TdCall.exit 00000000000005fb BaseLib:TdCall.obj
+ 0003:00006ef0 mDebugIoPortChecked 0000000000025790 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0003:00006ef1 mDebugIoPortFound 0000000000025791 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0003:00007020 gHiiDriverList 00000000000258c0 BootMaintenanceManagerUiLib:BootMaintenanceManagerCustomizedUiSupport.obj
+ 0004:00000000 $pdata$_ModuleEntryPoint 00000000000259a0 UefiApplicationEntryPoint:ApplicationEntryPoint.obj
+ 0004:0000000c $pdata$ProcessLibraryConstructorList 00000000000259ac UiApp:AutoGen.obj
+ 0004:00000018 $pdata$ProcessLibraryDestructorList 00000000000259b8 UiApp:AutoGen.obj
+ 0004:00000024 $pdata$FrontPageCallback 00000000000259c4 UiApp:FrontPage.obj
+ 0004:00000030 $pdata$UpdateFrontPageForm 00000000000259d0 UiApp:FrontPage.obj
+ 0004:0000003c $pdata$ConvertProcessorToString 00000000000259dc UiApp:FrontPage.obj
+ 0004:00000048 $pdata$GetOptionalStringByIndex 00000000000259e8 UiApp:FrontPage.obj
+ 0004:00000054 $pdata$UpdateFrontPageBannerStrings 00000000000259f4 UiApp:FrontPage.obj
+ 0004:00000060 $pdata$UiSetConsoleMode 0000000000025a00 UiApp:FrontPage.obj
+ 0004:0000006c $pdata$InitializeUserInterface 0000000000025a0c UiApp:FrontPage.obj
+ 0004:00000078 $pdata$UiEntry 0000000000025a18 UiApp:FrontPage.obj
+ 0004:00000084 $pdata$UiCustomizeFrontPageBanner 0000000000025a24 UiApp:FrontPageCustomizedUi.obj
+ 0004:00000090 $pdata$GetNextLanguage 0000000000025a30 UiApp:FrontPageCustomizedUiSupport.obj
+ 0004:0000009c $pdata$LanguageChangeHandler 0000000000025a3c UiApp:FrontPageCustomizedUiSupport.obj
+ 0004:000000a8 $pdata$UiCreateLanguageMenu 0000000000025a48 UiApp:FrontPageCustomizedUiSupport.obj
+ 0004:000000b4 $pdata$UiListThirdPartyDrivers 0000000000025a54 UiApp:FrontPageCustomizedUiSupport.obj
+ 0004:000000c0 $pdata$GetPcdProtocol 0000000000025a60 DxePcdLib:DxePcdLib.obj
+ 0004:000000cc $pdata$LibPcdSet32S 0000000000025a6c DxePcdLib:DxePcdLib.obj
+ 0004:000000d8 $pdata$CopyMem 0000000000025a78 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0004:000000e4 $pdata$CopyGuid 0000000000025a84 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0004:000000f0 $pdata$CompareGuid 0000000000025a90 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0004:000000fc $pdata$StrnLenS 0000000000025a9c BaseLib:SafeString.obj
+ 0004:00000108 $pdata$StrCpyS 0000000000025aa8 BaseLib:SafeString.obj
+ 0004:00000114 $pdata$StrnCpyS 0000000000025ab4 BaseLib:SafeString.obj
+ 0004:00000120 $pdata$StrCatS 0000000000025ac0 BaseLib:SafeString.obj
+ 0004:0000012c $pdata$StrnCatS 0000000000025acc BaseLib:SafeString.obj
+ 0004:00000138 $pdata$AsciiStrToUnicodeStrS 0000000000025ad8 BaseLib:SafeString.obj
+ 0004:00000144 $pdata$StrLen 0000000000025ae4 BaseLib:String.obj
+ 0004:00000150 $pdata$StrCmp 0000000000025af0 BaseLib:String.obj
+ 0004:0000015c $pdata$StrnCmp 0000000000025afc BaseLib:String.obj
+ 0004:00000168 $pdata$StrStr 0000000000025b08 BaseLib:String.obj
+ 0004:00000174 $pdata$AsciiStrLen 0000000000025b14 BaseLib:String.obj
+ 0004:00000180 $pdata$AsciiStrnCmp 0000000000025b20 BaseLib:String.obj
+ 0004:0000018c $pdata$ReadUnaligned16 0000000000025b2c BaseLib:Unaligned.obj
+ 0004:00000198 $pdata$ReadUnaligned32 0000000000025b38 BaseLib:Unaligned.obj
+ 0004:000001a4 $pdata$ReadUnaligned64 0000000000025b44 BaseLib:Unaligned.obj
+ 0004:000001b0 $pdata$UnicodeVSPrint 0000000000025b50 BasePrintLib:PrintLib.obj
+ 0004:000001bc $pdata$UnicodeSPrint 0000000000025b5c BasePrintLib:PrintLib.obj
+ 0004:000001c8 $pdata$UnicodeValueToStringS 0000000000025b68 BasePrintLib:PrintLib.obj
+ 0004:000001d4 $pdata$AsciiSPrint 0000000000025b74 BasePrintLib:PrintLib.obj
+ 0004:000001e0 $pdata$BasePrintLibValueToString 0000000000025b80 BasePrintLib:PrintLibInternal.obj
+ 0004:000001ec $pdata$BasePrintLibConvertValueToStringS 0000000000025b8c BasePrintLib:PrintLibInternal.obj
+ 0004:000001f8 $pdata$BasePrintLibSPrintMarker 0000000000025b98 BasePrintLib:PrintLibInternal.obj
+ 0004:00000204 $pdata$BasePrintLibSPrint 0000000000025ba4 BasePrintLib:PrintLibInternal.obj
+ 0004:00000210 $pdata$DebugPrint 0000000000025bb0 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:0000021c $pdata$DebugPrintMarker 0000000000025bbc PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000228 $pdata$DebugAssert 0000000000025bc8 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000234 $pdata$InternalAllocatePages 0000000000025bd4 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000240 $pdata$FreePages 0000000000025be0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:0000024c $pdata$InternalAllocatePool 0000000000025bec UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000258 $pdata$AllocateZeroPool 0000000000025bf8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000264 $pdata$InternalAllocateCopyPool 0000000000025c04 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000270 $pdata$InternalReallocatePool 0000000000025c10 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:0000027c $pdata$FreePool 0000000000025c1c UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000288 $pdata$IsDevicePathValid 0000000000025c28 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000294 $pdata$DevicePathType 0000000000025c34 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002a0 $pdata$DevicePathSubType 0000000000025c40 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002ac $pdata$DevicePathNodeLength 0000000000025c4c UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002b8 $pdata$NextDevicePathNode 0000000000025c58 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002c4 $pdata$IsDevicePathEndType 0000000000025c64 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002d0 $pdata$IsDevicePathEnd 0000000000025c70 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002dc $pdata$SetDevicePathNodeLength 0000000000025c7c UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002e8 $pdata$SetDevicePathEndNode 0000000000025c88 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000002f4 $pdata$GetNextDevicePathInstance 0000000000025c94 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000300 $pdata$DevicePathFromHandle 0000000000025ca0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:0000030c $pdata$FileDevicePath 0000000000025cac UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000318 $pdata$UefiDevicePathLibLocateProtocol 0000000000025cb8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000324 $pdata$ConvertDevicePathToText 0000000000025cc4 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000330 $pdata$EfiGetSystemConfigurationTable 0000000000025cd0 UefiLib:UefiLib.obj
+ 0004:0000033c $pdata$EfiAcquireLock 0000000000025cdc UefiLib:UefiLib.obj
+ 0004:00000348 $pdata$EfiReleaseLock 0000000000025ce8 UefiLib:UefiLib.obj
+ 0004:00000354 $pdata$GetVariable2 0000000000025cf4 UefiLib:UefiLib.obj
+ 0004:00000360 $pdata$GetBestLanguage 0000000000025d00 UefiLib:UefiLib.obj
+ 0004:0000036c $pdata$UefiLibGetStringWidth 0000000000025d0c UefiLib:Console.obj
+ 0004:00000378 $pdata$CreatePopUp 0000000000025d18 UefiLib:Console.obj
+ 0004:00000384 $pdata$GetHobList 0000000000025d24 DxeHobLib:HobLib.obj
+ 0004:00000390 $pdata$GetNextHob 0000000000025d30 DxeHobLib:HobLib.obj
+ 0004:0000039c $pdata$HiiSetString 0000000000025d3c UefiHiiLib:HiiString.obj
+ 0004:000003a8 $pdata$HiiGetStringEx 0000000000025d48 UefiHiiLib:HiiString.obj
+ 0004:000003b4 $pdata$HiiAddPackages 0000000000025d54 UefiHiiLib:HiiLib.obj
+ 0004:000003c0 $pdata$HiiRemovePackages 0000000000025d60 UefiHiiLib:HiiLib.obj
+ 0004:000003cc $pdata$HiiGetHiiHandles 0000000000025d6c UefiHiiLib:HiiLib.obj
+ 0004:000003d8 $pdata$HiiGetFormSetFromHiiHandle 0000000000025d78 UefiHiiLib:HiiLib.obj
+ 0004:000003e4 $pdata$InternalHiiBrowserCallback 0000000000025d84 UefiHiiLib:HiiLib.obj
+ 0004:000003f0 $pdata$HiiConstructConfigHdr 0000000000025d90 UefiHiiLib:HiiLib.obj
+ 0004:000003fc $pdata$InternalHiiCompareSubString 0000000000025d9c UefiHiiLib:HiiLib.obj
+ 0004:00000408 $pdata$HiiIsConfigHdrMatch 0000000000025da8 UefiHiiLib:HiiLib.obj
+ 0004:00000414 $pdata$HiiGetBrowserData 0000000000025db4 UefiHiiLib:HiiLib.obj
+ 0004:00000420 $pdata$HiiSetBrowserData 0000000000025dc0 UefiHiiLib:HiiLib.obj
+ 0004:0000042c $pdata$HiiAllocateOpCodeHandle 0000000000025dcc UefiHiiLib:HiiLib.obj
+ 0004:00000438 $pdata$HiiFreeOpCodeHandle 0000000000025dd8 UefiHiiLib:HiiLib.obj
+ 0004:00000444 $pdata$InternalHiiGrowOpCodeHandle 0000000000025de4 UefiHiiLib:HiiLib.obj
+ 0004:00000450 $pdata$InternalHiiCreateOpCodeExtended 0000000000025df0 UefiHiiLib:HiiLib.obj
+ 0004:0000045c $pdata$InternalHiiAppendOpCodes 0000000000025dfc UefiHiiLib:HiiLib.obj
+ 0004:00000468 $pdata$HiiCreateEndOpCode 0000000000025e08 UefiHiiLib:HiiLib.obj
+ 0004:00000474 $pdata$HiiCreateOneOfOptionOpCode 0000000000025e14 UefiHiiLib:HiiLib.obj
+ 0004:00000480 $pdata$HiiCreateGuidOpCode 0000000000025e20 UefiHiiLib:HiiLib.obj
+ 0004:0000048c $pdata$HiiCreateActionOpCode 0000000000025e2c UefiHiiLib:HiiLib.obj
+ 0004:00000498 $pdata$HiiCreateSubTitleOpCode 0000000000025e38 UefiHiiLib:HiiLib.obj
+ 0004:000004a4 $pdata$HiiCreateGotoOpCode 0000000000025e44 UefiHiiLib:HiiLib.obj
+ 0004:000004b0 $pdata$HiiCreateGotoExOpCode 0000000000025e50 UefiHiiLib:HiiLib.obj
+ 0004:000004bc $pdata$HiiCreateCheckBoxOpCode 0000000000025e5c UefiHiiLib:HiiLib.obj
+ 0004:000004c8 $pdata$HiiCreateStringOpCode 0000000000025e68 UefiHiiLib:HiiLib.obj
+ 0004:000004d4 $pdata$HiiCreateOneOfOpCode 0000000000025e74 UefiHiiLib:HiiLib.obj
+ 0004:000004e0 $pdata$InternalHiiUpdateFormPackageData 0000000000025e80 UefiHiiLib:HiiLib.obj
+ 0004:000004ec $pdata$HiiUpdateForm 0000000000025e8c UefiHiiLib:HiiLib.obj
+ 0004:000004f8 $pdata$HiiGetSupportedLanguages 0000000000025e98 UefiHiiLib:HiiLanguage.obj
+ 0004:00000504 $pdata$InternalReportStatusCode 0000000000025ea4 DxeReportStatusCodeLib:ReportStatusCodeLib.obj
+ 0004:00000510 $pdata$ReportStatusCodeEx 0000000000025eb0 DxeReportStatusCodeLib:ReportStatusCodeLib.obj
+ 0004:0000051c $pdata$EfiBootManagerConnectAll 0000000000025ebc UefiBootManagerLib:BmConnect.obj
+ 0004:00000528 $pdata$EfiBootManagerConnectDevicePath 0000000000025ec8 UefiBootManagerLib:BmConnect.obj
+ 0004:00000534 $pdata$BmConnectUsbShortFormDevicePath 0000000000025ed4 UefiBootManagerLib:BmConnect.obj
+ 0004:00000540 $pdata$BmFindBootOptionInVariable 0000000000025ee0 UefiBootManagerLib:BmBoot.obj
+ 0004:0000054c $pdata$BmAdjustFvFilePath 0000000000025eec UefiBootManagerLib:BmBoot.obj
+ 0004:00000558 $pdata$BmMatchUsbClass 0000000000025ef8 UefiBootManagerLib:BmBoot.obj
+ 0004:00000564 $pdata$BmMatchUsbWwid 0000000000025f04 UefiBootManagerLib:BmBoot.obj
+ 0004:00000570 $pdata$BmExpandUsbDevicePath 0000000000025f10 UefiBootManagerLib:BmBoot.obj
+ 0004:0000057c $pdata$BmExpandFileDevicePath 0000000000025f1c UefiBootManagerLib:BmBoot.obj
+ 0004:00000588 $pdata$BmExpandUriDevicePath 0000000000025f28 UefiBootManagerLib:BmBoot.obj
+ 0004:00000594 $pdata$BmCachePartitionDevicePath 0000000000025f34 UefiBootManagerLib:BmBoot.obj
+ 0004:000005a0 $pdata$BmExpandPartitionDevicePath 0000000000025f40 UefiBootManagerLib:BmBoot.obj
+ 0004:000005ac $pdata$BmExpandMediaDevicePath 0000000000025f4c UefiBootManagerLib:BmBoot.obj
+ 0004:000005b8 $pdata$BmExpandNetworkFileSystem 0000000000025f58 UefiBootManagerLib:BmBoot.obj
+ 0004:000005c4 $pdata$BmGetRamDiskDevicePath 0000000000025f64 UefiBootManagerLib:BmBoot.obj
+ 0004:000005d0 $pdata$BmDestroyRamDisk 0000000000025f70 UefiBootManagerLib:BmBoot.obj
+ 0004:000005dc $pdata$BmExpandLoadFile 0000000000025f7c UefiBootManagerLib:BmBoot.obj
+ 0004:000005e8 $pdata$BmExpandLoadFiles 0000000000025f88 UefiBootManagerLib:BmBoot.obj
+ 0004:000005f4 $pdata$BmGetNextLoadOptionDevicePath 0000000000025f94 UefiBootManagerLib:BmBoot.obj
+ 0004:00000600 $pdata$BmIsBootManagerMenuFilePath 0000000000025fa0 UefiBootManagerLib:BmBoot.obj
+ 0004:0000060c $pdata$BmReportLoadFailure 0000000000025fac UefiBootManagerLib:BmBoot.obj
+ 0004:00000618 $pdata$EfiBootManagerBoot 0000000000025fb8 UefiBootManagerLib:BmBoot.obj
+ 0004:00000624 $pdata$BmMatchPartitionDevicePathNode 0000000000025fc4 UefiBootManagerLib:BmBoot.obj
+ 0004:00000630 $pdata$BmEnumerateBootOptions 0000000000025fd0 UefiBootManagerLib:BmBoot.obj
+ 0004:0000063c $pdata$EfiBootManagerRefreshAllBootOption 0000000000025fdc UefiBootManagerLib:BmBoot.obj
+ 0004:00000648 $pdata$BmUpdateSystemTableConsole 0000000000025fe8 UefiBootManagerLib:BmConsole.obj
+ 0004:00000654 $pdata$EfiBootManagerUpdateConsoleVariable 0000000000025ff4 UefiBootManagerLib:BmConsole.obj
+ 0004:00000660 $pdata$EfiBootManagerConnectConsoleVariable 0000000000026000 UefiBootManagerLib:BmConsole.obj
+ 0004:0000066c $pdata$EfiBootManagerConnectAllDefaultConsoles 000000000002600c UefiBootManagerLib:BmConsole.obj
+ 0004:00000678 $pdata$BmGetFreeOptionNumber 0000000000026018 UefiBootManagerLib:BmLoadOption.obj
+ 0004:00000684 $pdata$EfiBootManagerLoadOptionToVariable 0000000000026024 UefiBootManagerLib:BmLoadOption.obj
+ 0004:00000690 $pdata$BmAddOptionNumberToOrderVariable 0000000000026030 UefiBootManagerLib:BmLoadOption.obj
+ 0004:0000069c $pdata$EfiBootManagerAddLoadOptionVariable 000000000002603c UefiBootManagerLib:BmLoadOption.obj
+ 0004:000006a8 $pdata$EfiBootManagerInitializeLoadOption 0000000000026048 UefiBootManagerLib:BmLoadOption.obj
+ 0004:000006b4 $pdata$EfiBootManagerFindLoadOption 0000000000026054 UefiBootManagerLib:BmLoadOption.obj
+ 0004:000006c0 $pdata$EfiBootManagerDeleteLoadOptionVariable 0000000000026060 UefiBootManagerLib:BmLoadOption.obj
+ 0004:000006cc $pdata$BmValidateOption 000000000002606c UefiBootManagerLib:BmLoadOption.obj
+ 0004:000006d8 $pdata$EfiBootManagerIsValidLoadOptionVariableName 0000000000026078 UefiBootManagerLib:BmLoadOption.obj
+ 0004:000006e4 $pdata$EfiBootManagerVariableToLoadOptionEx 0000000000026084 UefiBootManagerLib:BmLoadOption.obj
+ 0004:000006f0 $pdata$EfiBootManagerGetLoadOptions 0000000000026090 UefiBootManagerLib:BmLoadOption.obj
+ 0004:000006fc $pdata$EfiBootManagerFreeLoadOption 000000000002609c UefiBootManagerLib:BmLoadOption.obj
+ 0004:00000708 $pdata$EfiBootManagerFreeLoadOptions 00000000000260a8 UefiBootManagerLib:BmLoadOption.obj
+ 0004:00000714 $pdata$BmGetNextLoadOptionBuffer 00000000000260b4 UefiBootManagerLib:BmLoadOption.obj
+ 0004:00000720 $pdata$BmGetDescriptionFromDiskInfo 00000000000260c0 UefiBootManagerLib:BmBootDescription.obj
+ 0004:0000072c $pdata$BmGetUsbDescription 00000000000260cc UefiBootManagerLib:BmBootDescription.obj
+ 0004:00000738 $pdata$BmGetNetworkDescription 00000000000260d8 UefiBootManagerLib:BmBootDescription.obj
+ 0004:00000744 $pdata$BmGetLoadFileDescription 00000000000260e4 UefiBootManagerLib:BmBootDescription.obj
+ 0004:00000750 $pdata$BmGetNvmeDescription 00000000000260f0 UefiBootManagerLib:BmBootDescription.obj
+ 0004:0000075c $pdata$BmGetMiscDescription 00000000000260fc UefiBootManagerLib:BmBootDescription.obj
+ 0004:00000768 $pdata$BmGetBootDescription 0000000000026108 UefiBootManagerLib:BmBootDescription.obj
+ 0004:00000774 $pdata$BmHotkeyCallback 0000000000026114 UefiBootManagerLib:BmHotkey.obj
+ 0004:00000780 $pdata$BmGetActiveConsoleIn 0000000000026120 UefiBootManagerLib:BmHotkey.obj
+ 0004:0000078c $pdata$BmStopHotkeyService 000000000002612c UefiBootManagerLib:BmHotkey.obj
+ 0004:00000798 $pdata$BmDelPartMatchInstance 0000000000026138 UefiBootManagerLib:BmMisc.obj
+ 0004:000007a4 $pdata$BmMatchDevicePaths 0000000000026144 UefiBootManagerLib:BmMisc.obj
+ 0004:000007a4 $pdata$MatchDevicePaths 0000000000026144 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0004:000007b0 $pdata$BmSetMemoryTypeInformationVariable 0000000000026150 UefiBootManagerLib:BmMisc.obj
+ 0004:000007bc $pdata$BmSetVariableAndReportStatusCodeOnError 000000000002615c UefiBootManagerLib:BmMisc.obj
+ 0004:000007c8 $pdata$BmGetControllerName 0000000000026168 UefiBootManagerLib:BmDriverHealth.obj
+ 0004:000007d4 $pdata$BmDisplayMessages 0000000000026174 UefiBootManagerLib:BmDriverHealth.obj
+ 0004:000007e0 $pdata$BmRepairNotify 0000000000026180 UefiBootManagerLib:BmDriverHealth.obj
+ 0004:000007ec $pdata$BmGetSingleControllerHealthStatus 000000000002618c UefiBootManagerLib:BmDriverHealth.obj
+ 0004:000007f8 $pdata$EfiBootManagerGetDriverHealthInfo 0000000000026198 UefiBootManagerLib:BmDriverHealth.obj
+ 0004:00000804 $pdata$EfiBootManagerFreeDriverHealthInfo 00000000000261a4 UefiBootManagerLib:BmDriverHealth.obj
+ 0004:00000810 $pdata$BmRepairAllControllers 00000000000261b0 UefiBootManagerLib:BmDriverHealth.obj
+ 0004:0000081c $pdata$LibCallback 00000000000261bc FileExplorerLib:FileExplorer.obj
+ 0004:00000828 $pdata$LibCreateMenuEntry 00000000000261c8 FileExplorerLib:FileExplorer.obj
+ 0004:00000834 $pdata$LibGetMenuEntry 00000000000261d4 FileExplorerLib:FileExplorer.obj
+ 0004:00000840 $pdata$LibDestroyMenuEntry 00000000000261e0 FileExplorerLib:FileExplorer.obj
+ 0004:0000084c $pdata$LibFreeMenu 00000000000261ec FileExplorerLib:FileExplorer.obj
+ 0004:00000858 $pdata$LibStrDuplicate 00000000000261f8 FileExplorerLib:FileExplorer.obj
+ 0004:00000864 $pdata$LibAppendFileName 0000000000026204 FileExplorerLib:FileExplorer.obj
+ 0004:00000870 $pdata$LibFindFileSystem 0000000000026210 FileExplorerLib:FileExplorer.obj
+ 0004:0000087c $pdata$LibGetFileHandleFromDevicePath 000000000002621c FileExplorerLib:FileExplorer.obj
+ 0004:00000888 $pdata$LibCreateNewFile 0000000000026228 FileExplorerLib:FileExplorer.obj
+ 0004:00000894 $pdata$LibFindFiles 0000000000026234 FileExplorerLib:FileExplorer.obj
+ 0004:000008a0 $pdata$LibUpdateFileExplorePage 0000000000026240 FileExplorerLib:FileExplorer.obj
+ 0004:000008ac $pdata$LibUpdateFileExplorer 000000000002624c FileExplorerLib:FileExplorer.obj
+ 0004:000008b8 $pdata$LibGetDevicePath 0000000000026258 FileExplorerLib:FileExplorer.obj
+ 0004:000008c4 $pdata$ChooseFile 0000000000026264 FileExplorerLib:FileExplorer.obj
+ 0004:000008d0 $pdata$DmExtractDevicePathFromHiiHandle 0000000000026270 DeviceManagerUiLib:DeviceManager.obj
+ 0004:000008dc $pdata$AddIdToMacDeviceList 000000000002627c DeviceManagerUiLib:DeviceManager.obj
+ 0004:000008e8 $pdata$IsMacAddressDevicePath 0000000000026288 DeviceManagerUiLib:DeviceManager.obj
+ 0004:000008f4 $pdata$IsNeedAddNetworkMenu 0000000000026294 DeviceManagerUiLib:DeviceManager.obj
+ 0004:00000900 $pdata$CreateDeviceManagerForm 00000000000262a0 DeviceManagerUiLib:DeviceManager.obj
+ 0004:0000090c $pdata$DeviceManagerCallback 00000000000262ac DeviceManagerUiLib:DeviceManager.obj
+ 0004:00000918 $pdata$BmSetConsoleMode 00000000000262b8 BootManagerUiLib:BootManager.obj
+ 0004:00000924 $pdata$BmSetupResetReminder 00000000000262c4 BootManagerUiLib:BootManager.obj
+ 0004:00000930 $pdata$GroupMultipleLegacyBootOption4SameType 00000000000262d0 BootManagerUiLib:BootManager.obj
+ 0004:0000093c $pdata$UpdateBootManager 00000000000262dc BootManagerUiLib:BootManager.obj
+ 0004:00000948 $pdata$BootManagerCallback 00000000000262e8 BootManagerUiLib:BootManager.obj
+ 0004:00000954 $pdata$BootManagerUiLibConstructor 00000000000262f4 BootManagerUiLib:BootManager.obj
+ 0004:00000960 $pdata$BmmSetConsoleMode 0000000000026300 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:0000096c $pdata$UiDevicePathToStr 000000000002630c BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:00000978 $pdata$ExtractFileNameFromDevicePath 0000000000026318 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:00000984 $pdata$UpdateProgress 0000000000026324 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:00000990 $pdata$UpdateTerminalContent 0000000000026330 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:0000099c $pdata$UpdateConsoleContent 000000000002633c BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:000009a8 $pdata$BootMaintExtractConfig 0000000000026348 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:000009b4 $pdata$BootMaintRouteConfig 0000000000026354 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:000009c0 $pdata$BootMaintCallback 0000000000026360 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:000009cc $pdata$DiscardChangeHandler 000000000002636c BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:000009d8 $pdata$CustomizeMenus 0000000000026378 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:000009e4 $pdata$InitializeBmmConfig 0000000000026384 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:000009f0 $pdata$InitAllMenu 0000000000026390 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:000009fc $pdata$BootMaintenanceManagerUiLibConstructor 000000000002639c BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0004:00000a08 $pdata$RefreshUpdateData 00000000000263a8 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a14 $pdata$UpdatePageStart 00000000000263b4 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a20 $pdata$UpdatePageEnd 00000000000263c0 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a2c $pdata$CleanUpPage 00000000000263cc BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a38 $pdata$UpdateBootDelPage 00000000000263d8 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a44 $pdata$UpdateDrvDelPage 00000000000263e4 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a50 $pdata$UpdateDriverAddHandleDescPage 00000000000263f0 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a5c $pdata$UpdateConsolePage 00000000000263fc BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a68 $pdata$UpdateOrderPage 0000000000026408 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a74 $pdata$UpdateConModePage 0000000000026414 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a80 $pdata$UpdateTerminalPage 0000000000026420 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a8c $pdata$UpdateOptionPage 000000000002642c BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000a98 $pdata$UpdatePageBody 0000000000026438 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0004:00000aa4 $pdata$BmmSetupResetReminder 0000000000026444 BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000ab0 $pdata$BOpt_CreateMenuEntry 0000000000026450 BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000abc $pdata$BOpt_DestroyMenuEntry 000000000002645c BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000ac8 $pdata$BOpt_GetMenuEntry 0000000000026468 BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000ad4 $pdata$BOpt_FreeMenu 0000000000026474 BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000ae0 $pdata$BOpt_GetBootOptions 0000000000026480 BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000aec $pdata$BOpt_GetOptionNumber 000000000002648c BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000af8 $pdata$BOpt_GetDriverOptions 0000000000026498 BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000b04 $pdata$GetBootOrder 00000000000264a4 BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000b10 $pdata$GetDriverOrder 00000000000264b0 BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000b1c $pdata$BootFromFile 00000000000264bc BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000b28 $pdata$ReSendForm 00000000000264c8 BootMaintenanceManagerUiLib:BootOption.obj
+ 0004:00000b34 $pdata$Var_DelBootOption 00000000000264d4 BootMaintenanceManagerUiLib:Variable.obj
+ 0004:00000b40 $pdata$Var_UpdateConsoleOption 00000000000264e0 BootMaintenanceManagerUiLib:Variable.obj
+ 0004:00000b4c $pdata$Var_UpdateDriverOption 00000000000264ec BootMaintenanceManagerUiLib:Variable.obj
+ 0004:00000b58 $pdata$Var_UpdateBootOption 00000000000264f8 BootMaintenanceManagerUiLib:Variable.obj
+ 0004:00000b64 $pdata$Var_UpdateBootNext 0000000000026504 BootMaintenanceManagerUiLib:Variable.obj
+ 0004:00000b70 $pdata$Var_UpdateBootOrder 0000000000026510 BootMaintenanceManagerUiLib:Variable.obj
+ 0004:00000b7c $pdata$Var_UpdateDriverOrder 000000000002651c BootMaintenanceManagerUiLib:Variable.obj
+ 0004:00000b88 $pdata$IsIsaSerialNode 0000000000026528 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0004:00000b94 $pdata$ChangeTerminalDevicePath 0000000000026534 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0004:00000ba0 $pdata$RetrieveUartUid 0000000000026540 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0004:00000bac $pdata$SortedUartHandle 000000000002654c BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0004:00000bb8 $pdata$LocateSerialIo 0000000000026558 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0004:00000bc4 $pdata$UpdateComAttributeFromVariable 0000000000026564 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0004:00000bd0 $pdata$GetConsoleMenu 0000000000026570 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0004:00000bdc $pdata$IsTerminalDevicePath 000000000002657c BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0004:00000be8 $pdata$GetConsoleOutMode 0000000000026588 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0004:00000bf4 $pdata$UiCustomizeBMMPage 0000000000026594 BootMaintenanceManagerUiLib:BootMaintenanceManagerCustomizedUi.obj
+ 0004:00000c00 $pdata$BmmListThirdPartyDrivers 00000000000265a0 BootMaintenanceManagerUiLib:BootMaintenanceManagerCustomizedUiSupport.obj
+ 0004:00000c0c $pdata$ZeroMem 00000000000265ac BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0004:00000c18 $pdata$SetMem 00000000000265b8 BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0004:00000c24 $pdata$SetMem16 00000000000265c4 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0004:00000c30 $pdata$CompareMem 00000000000265d0 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0004:00000c3c $pdata$IsZeroBuffer 00000000000265dc BaseMemoryLibRepStr:IsZeroBufferWrapper.obj
+ 0004:00000c48 $pdata$InternalBaseLibIsListValid 00000000000265e8 BaseLib:LinkedList.obj
+ 0004:00000c54 $pdata$InitializeListHead 00000000000265f4 BaseLib:LinkedList.obj
+ 0004:00000c60 $pdata$InsertTailList 0000000000026600 BaseLib:LinkedList.obj
+ 0004:00000c6c $pdata$GetFirstNode 000000000002660c BaseLib:LinkedList.obj
+ 0004:00000c78 $pdata$GetNextNode 0000000000026618 BaseLib:LinkedList.obj
+ 0004:00000c84 $pdata$IsListEmpty 0000000000026624 BaseLib:LinkedList.obj
+ 0004:00000c90 $pdata$IsNull 0000000000026630 BaseLib:LinkedList.obj
+ 0004:00000c9c $pdata$RemoveEntryList 000000000002663c BaseLib:LinkedList.obj
+ 0004:00000ca8 $pdata$EfiCreateEventReadyToBootEx 0000000000026648 UefiLib:UefiNotTiano.obj
+ 0004:00000cb4 $pdata$EfiGetNameGuidFromFwVolDevicePathNode 0000000000026654 UefiLib:UefiNotTiano.obj
+ 0004:00000cc0 $pdata$InternalPrint 0000000000026660 UefiLib:UefiLibPrint.obj
+ 0004:00000ccc $pdata$Print 000000000002666c UefiLib:UefiLibPrint.obj
+ 0004:00000cd8 $pdata$RegisterBasicVariablePolicy 0000000000026678 VariablePolicyHelperLib:VariablePolicyHelperLib.obj
+ 0004:00000ce4 $pdata$GetFileBufferByFilePath 0000000000026684 DxeServicesLib:DxeServicesLib.obj
+ 0005:00000000 $unwind$_ModuleEntryPoint 00000000000266a0 UefiApplicationEntryPoint:ApplicationEntryPoint.obj
+ 0005:00000000 $unwind$HiiFreeOpCodeHandle 00000000000266a0 UefiHiiLib:HiiLib.obj
+ 0005:00000000 $unwind$LibGetDevicePath 00000000000266a0 FileExplorerLib:FileExplorer.obj
+ 0005:00000000 $unwind$HiiRemovePackages 00000000000266a0 UefiHiiLib:HiiLib.obj
+ 0005:00000000 $unwind$DevicePathSubType 00000000000266a0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000000 $unwind$DevicePathNodeLength 00000000000266a0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000000 $unwind$LibCreateMenuEntry 00000000000266a0 FileExplorerLib:FileExplorer.obj
+ 0005:00000000 $unwind$ReadUnaligned16 00000000000266a0 BaseLib:Unaligned.obj
+ 0005:00000000 $unwind$ReadUnaligned64 00000000000266a0 BaseLib:Unaligned.obj
+ 0005:00000000 $unwind$IsZeroBuffer 00000000000266a0 BaseMemoryLibRepStr:IsZeroBufferWrapper.obj
+ 0005:00000000 $unwind$AllocateZeroPool 00000000000266a0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000000 $unwind$ReadUnaligned32 00000000000266a0 BaseLib:Unaligned.obj
+ 0005:00000000 $unwind$DevicePathType 00000000000266a0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000000 $unwind$NextDevicePathNode 00000000000266a0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000000 $unwind$InternalBaseLibIsListValid 00000000000266a0 BaseLib:LinkedList.obj
+ 0005:00000000 $unwind$RemoveEntryList 00000000000266a0 BaseLib:LinkedList.obj
+ 0005:00000000 $unwind$GetFirstNode 00000000000266a0 BaseLib:LinkedList.obj
+ 0005:00000000 $unwind$EfiBootManagerFreeLoadOption 00000000000266a0 UefiBootManagerLib:BmLoadOption.obj
+ 0005:00000000 $unwind$GetNextNode 00000000000266a0 BaseLib:LinkedList.obj
+ 0005:00000000 $unwind$HiiAllocateOpCodeHandle 00000000000266a0 UefiHiiLib:HiiLib.obj
+ 0005:00000000 $unwind$EfiGetNameGuidFromFwVolDevicePathNode 00000000000266a0 UefiLib:UefiNotTiano.obj
+ 0005:00000000 $unwind$DiscardChangeHandler 00000000000266a0 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:00000000 $unwind$SetDevicePathEndNode 00000000000266a0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000000 $unwind$InternalAllocatePages 00000000000266a0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000000 $unwind$InitializeListHead 00000000000266a0 BaseLib:LinkedList.obj
+ 0005:00000000 $unwind$UiDevicePathToStr 00000000000266a0 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:00000000 $unwind$GetNextHob 00000000000266a0 DxeHobLib:HobLib.obj
+ 0005:00000000 $unwind$IsListEmpty 00000000000266a0 BaseLib:LinkedList.obj
+ 0005:00000000 $unwind$BmGetLoadFileDescription 00000000000266a0 UefiBootManagerLib:BmBootDescription.obj
+ 0005:00000000 $unwind$IsDevicePathEndType 00000000000266a0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000000 $unwind$ConvertDevicePathToText 00000000000266a0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000008 $unwind$ProcessLibraryConstructorList 00000000000266a8 UiApp:AutoGen.obj
+ 0005:00000020 $unwind$ProcessLibraryDestructorList 00000000000266c0 UiApp:AutoGen.obj
+ 0005:00000028 $unwind$EfiAcquireLock 00000000000266c8 UefiLib:UefiLib.obj
+ 0005:00000028 $unwind$DevicePathFromHandle 00000000000266c8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000028 $unwind$InternalAllocatePool 00000000000266c8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000028 $unwind$EfiReleaseLock 00000000000266c8 UefiLib:UefiLib.obj
+ 0005:00000028 $unwind$FreePool 00000000000266c8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000028 $unwind$GetHobList 00000000000266c8 DxeHobLib:HobLib.obj
+ 0005:00000028 $unwind$GetPcdProtocol 00000000000266c8 DxePcdLib:DxePcdLib.obj
+ 0005:00000028 $unwind$FrontPageCallback 00000000000266c8 UiApp:FrontPage.obj
+ 0005:00000028 $unwind$DmExtractDevicePathFromHiiHandle 00000000000266c8 DeviceManagerUiLib:DeviceManager.obj
+ 0005:00000028 $unwind$RefreshUpdateData 00000000000266c8 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:00000030 $unwind$UpdateFrontPageForm 00000000000266d0 UiApp:FrontPage.obj
+ 0005:00000044 $unwind$ConvertProcessorToString 00000000000266e4 UiApp:FrontPage.obj
+ 0005:00000060 $unwind$Var_UpdateConsoleOption 0000000000026700 BootMaintenanceManagerUiLib:Variable.obj
+ 0005:00000060 $unwind$GetOptionalStringByIndex 0000000000026700 UiApp:FrontPage.obj
+ 0005:00000074 $unwind$UpdateFrontPageBannerStrings 0000000000026714 UiApp:FrontPage.obj
+ 0005:0000008c $unwind$BmSetConsoleMode 000000000002672c BootManagerUiLib:BootManager.obj
+ 0005:0000008c $unwind$BmmSetConsoleMode 000000000002672c BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:0000008c $unwind$UiSetConsoleMode 000000000002672c UiApp:FrontPage.obj
+ 0005:000000a4 $unwind$InitializeUserInterface 0000000000026744 UiApp:FrontPage.obj
+ 0005:000000b0 $unwind$UiEntry 0000000000026750 UiApp:FrontPage.obj
+ 0005:000000c0 $unwind$UiCustomizeFrontPageBanner 0000000000026760 UiApp:FrontPageCustomizedUi.obj
+ 0005:000000d0 $unwind$CopyMem 0000000000026770 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0005:000000d0 $unwind$BmGetBootDescription 0000000000026770 UefiBootManagerLib:BmBootDescription.obj
+ 0005:000000d0 $unwind$InternalHiiCompareSubString 0000000000026770 UefiHiiLib:HiiLib.obj
+ 0005:000000d0 $unwind$CompareMem 0000000000026770 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0005:000000d0 $unwind$EfiBootManagerConnectAllDefaultConsoles 0000000000026770 UefiBootManagerLib:BmConsole.obj
+ 0005:000000d0 $unwind$CompareGuid 0000000000026770 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0005:000000d0 $unwind$BasePrintLibValueToString 0000000000026770 BasePrintLib:PrintLibInternal.obj
+ 0005:000000d0 $unwind$InternalReallocatePool 0000000000026770 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:000000d0 $unwind$GetNextLanguage 0000000000026770 UiApp:FrontPageCustomizedUiSupport.obj
+ 0005:000000d0 $unwind$BmDisplayMessages 0000000000026770 UefiBootManagerLib:BmDriverHealth.obj
+ 0005:000000d0 $unwind$EfiBootManagerFindLoadOption 0000000000026770 UefiBootManagerLib:BmLoadOption.obj
+ 0005:000000d0 $unwind$ExtractFileNameFromDevicePath 0000000000026770 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:000000d0 $unwind$StrnCmp 0000000000026770 BaseLib:String.obj
+ 0005:000000e4 $unwind$LanguageChangeHandler 0000000000026784 UiApp:FrontPageCustomizedUiSupport.obj
+ 0005:000000f8 $unwind$UiCreateLanguageMenu 0000000000026798 UiApp:FrontPageCustomizedUiSupport.obj
+ 0005:00000110 $unwind$UiListThirdPartyDrivers 00000000000267b0 UiApp:FrontPageCustomizedUiSupport.obj
+ 0005:00000110 $unwind$BmmListThirdPartyDrivers 00000000000267b0 BootMaintenanceManagerUiLib:BootMaintenanceManagerCustomizedUiSupport.obj
+ 0005:00000128 $unwind$ZeroMem 00000000000267c8 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0005:00000128 $unwind$DeviceManagerCallback 00000000000267c8 DeviceManagerUiLib:DeviceManager.obj
+ 0005:00000128 $unwind$SetMem 00000000000267c8 BaseMemoryLibRepStr:SetMemWrapper.obj
+ 0005:00000128 $unwind$AsciiStrLen 00000000000267c8 BaseLib:String.obj
+ 0005:00000128 $unwind$BOpt_DestroyMenuEntry 00000000000267c8 BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:00000128 $unwind$InternalAllocateCopyPool 00000000000267c8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000128 $unwind$StrnLenS 00000000000267c8 BaseLib:SafeString.obj
+ 0005:00000128 $unwind$BOpt_GetMenuEntry 00000000000267c8 BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:00000128 $unwind$GetNextDevicePathInstance 00000000000267c8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000128 $unwind$UpdatePageBody 00000000000267c8 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:00000128 $unwind$LibPcdSet32S 00000000000267c8 DxePcdLib:DxePcdLib.obj
+ 0005:00000128 $unwind$LibDestroyMenuEntry 00000000000267c8 FileExplorerLib:FileExplorer.obj
+ 0005:00000128 $unwind$IsNull 00000000000267c8 BaseLib:LinkedList.obj
+ 0005:00000128 $unwind$SetDevicePathNodeLength 00000000000267c8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000128 $unwind$BmMatchPartitionDevicePathNode 00000000000267c8 UefiBootManagerLib:BmBoot.obj
+ 0005:00000128 $unwind$IsDevicePathEnd 00000000000267c8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000128 $unwind$FreePages 00000000000267c8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000128 $unwind$IsIsaSerialNode 00000000000267c8 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0005:00000128 $unwind$LibGetMenuEntry 00000000000267c8 FileExplorerLib:FileExplorer.obj
+ 0005:00000128 $unwind$BmRepairNotify 00000000000267c8 UefiBootManagerLib:BmDriverHealth.obj
+ 0005:00000128 $unwind$InsertTailList 00000000000267c8 BaseLib:LinkedList.obj
+ 0005:00000128 $unwind$HiiGetSupportedLanguages 00000000000267c8 UefiHiiLib:HiiLanguage.obj
+ 0005:00000134 $unwind$InternalHiiGrowOpCodeHandle 00000000000267d4 UefiHiiLib:HiiLib.obj
+ 0005:00000134 $unwind$InternalHiiAppendOpCodes 00000000000267d4 UefiHiiLib:HiiLib.obj
+ 0005:00000134 $unwind$HiiIsConfigHdrMatch 00000000000267d4 UefiHiiLib:HiiLib.obj
+ 0005:00000134 $unwind$AsciiStrnCmp 00000000000267d4 BaseLib:String.obj
+ 0005:00000134 $unwind$BOpt_CreateMenuEntry 00000000000267d4 BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:00000134 $unwind$CopyGuid 00000000000267d4 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0005:00000134 $unwind$StrStr 00000000000267d4 BaseLib:String.obj
+ 0005:00000134 $unwind$BOpt_FreeMenu 00000000000267d4 BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:00000134 $unwind$AddIdToMacDeviceList 00000000000267d4 DeviceManagerUiLib:DeviceManager.obj
+ 0005:00000134 $unwind$StrCmp 00000000000267d4 BaseLib:String.obj
+ 0005:00000134 $unwind$EfiBootManagerFreeLoadOptions 00000000000267d4 UefiBootManagerLib:BmLoadOption.obj
+ 0005:00000134 $unwind$StrLen 00000000000267d4 BaseLib:String.obj
+ 0005:00000134 $unwind$LibStrDuplicate 00000000000267d4 FileExplorerLib:FileExplorer.obj
+ 0005:00000134 $unwind$SetMem16 00000000000267d4 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0005:00000134 $unwind$BmCachePartitionDevicePath 00000000000267d4 UefiBootManagerLib:BmBoot.obj
+ 0005:00000134 $unwind$RetrieveUartUid 00000000000267d4 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0005:00000134 $unwind$LibFreeMenu 00000000000267d4 FileExplorerLib:FileExplorer.obj
+ 0005:00000134 $unwind$EfiBootManagerFreeDriverHealthInfo 00000000000267d4 UefiBootManagerLib:BmDriverHealth.obj
+ 0005:00000144 $unwind$HiiCreateGotoOpCode 00000000000267e4 UefiHiiLib:HiiLib.obj
+ 0005:00000144 $unwind$StrCpyS 00000000000267e4 BaseLib:SafeString.obj
+ 0005:0000015c $unwind$StrnCpyS 00000000000267fc BaseLib:SafeString.obj
+ 0005:00000174 $unwind$StrnCatS 0000000000026814 BaseLib:SafeString.obj
+ 0005:00000174 $unwind$LibGetFileHandleFromDevicePath 0000000000026814 FileExplorerLib:FileExplorer.obj
+ 0005:00000174 $unwind$StrCatS 0000000000026814 BaseLib:SafeString.obj
+ 0005:00000190 $unwind$HiiCreateCheckBoxOpCode 0000000000026830 UefiHiiLib:HiiLib.obj
+ 0005:00000190 $unwind$BmGetControllerName 0000000000026830 UefiBootManagerLib:BmDriverHealth.obj
+ 0005:00000190 $unwind$AsciiStrToUnicodeStrS 0000000000026830 BaseLib:SafeString.obj
+ 0005:00000190 $unwind$HiiCreateActionOpCode 0000000000026830 UefiHiiLib:HiiLib.obj
+ 0005:000001a4 $unwind$Var_DelBootOption 0000000000026844 BootMaintenanceManagerUiLib:Variable.obj
+ 0005:000001a4 $unwind$Var_UpdateBootNext 0000000000026844 BootMaintenanceManagerUiLib:Variable.obj
+ 0005:000001a4 $unwind$InternalReportStatusCode 0000000000026844 DxeReportStatusCodeLib:ReportStatusCodeLib.obj
+ 0005:000001a4 $unwind$UnicodeVSPrint 0000000000026844 BasePrintLib:PrintLib.obj
+ 0005:000001a4 $unwind$UnicodeValueToStringS 0000000000026844 BasePrintLib:PrintLib.obj
+ 0005:000001b8 $unwind$UnicodeSPrint 0000000000026858 BasePrintLib:PrintLib.obj
+ 0005:000001c0 $unwind$AsciiSPrint 0000000000026860 BasePrintLib:PrintLib.obj
+ 0005:000001c8 $unwind$BasePrintLibConvertValueToStringS 0000000000026868 BasePrintLib:PrintLibInternal.obj
+ 0005:000001e4 $unwind$BasePrintLibSPrintMarker 0000000000026884 BasePrintLib:PrintLibInternal.obj
+ 0005:00000200 $unwind$BasePrintLibSPrint 00000000000268a0 BasePrintLib:PrintLibInternal.obj
+ 0005:00000208 $unwind$DebugPrint 00000000000268a8 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:00000210 $unwind$DebugPrintMarker 00000000000268b0 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:00000224 $unwind$DebugAssert 00000000000268c4 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:0000022c $unwind$UpdateProgress 00000000000268cc BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:0000022c $unwind$IsDevicePathValid 00000000000268cc UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:0000022c $unwind$InternalHiiCreateOpCodeExtended 00000000000268cc UefiHiiLib:HiiLib.obj
+ 0005:0000022c $unwind$EfiGetSystemConfigurationTable 00000000000268cc UefiLib:UefiLib.obj
+ 0005:0000022c $unwind$InternalPrint 00000000000268cc UefiLib:UefiLibPrint.obj
+ 0005:0000022c $unwind$FileDevicePath 00000000000268cc UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000244 $unwind$BmIsBootManagerMenuFilePath 00000000000268e4 UefiBootManagerLib:BmBoot.obj
+ 0005:00000244 $unwind$UefiDevicePathLibLocateProtocol 00000000000268e4 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:0000024c $unwind$GetVariable2 00000000000268ec UefiLib:UefiLib.obj
+ 0005:00000260 $unwind$GetBestLanguage 0000000000026900 UefiLib:UefiLib.obj
+ 0005:00000274 $unwind$UefiLibGetStringWidth 0000000000026914 UefiLib:Console.obj
+ 0005:00000288 $unwind$CreatePopUp 0000000000026928 UefiLib:Console.obj
+ 0005:000002a0 $unwind$HiiSetString 0000000000026940 UefiHiiLib:HiiString.obj
+ 0005:000002b8 $unwind$HiiGetStringEx 0000000000026958 UefiHiiLib:HiiString.obj
+ 0005:000002cc $unwind$HiiAddPackages 000000000002696c UefiHiiLib:HiiLib.obj
+ 0005:000002e0 $unwind$HiiGetHiiHandles 0000000000026980 UefiHiiLib:HiiLib.obj
+ 0005:000002e8 $unwind$HiiGetFormSetFromHiiHandle 0000000000026988 UefiHiiLib:HiiLib.obj
+ 0005:00000300 $unwind$InternalHiiBrowserCallback 00000000000269a0 UefiHiiLib:HiiLib.obj
+ 0005:00000314 $unwind$HiiConstructConfigHdr 00000000000269b4 UefiHiiLib:HiiLib.obj
+ 0005:00000314 $unwind$BootMaintExtractConfig 00000000000269b4 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:00000330 $unwind$HiiGetBrowserData 00000000000269d0 UefiHiiLib:HiiLib.obj
+ 0005:00000344 $unwind$HiiSetBrowserData 00000000000269e4 UefiHiiLib:HiiLib.obj
+ 0005:00000354 $unwind$HiiCreateEndOpCode 00000000000269f4 UefiHiiLib:HiiLib.obj
+ 0005:0000035c $unwind$HiiCreateOneOfOptionOpCode 00000000000269fc UefiHiiLib:HiiLib.obj
+ 0005:00000370 $unwind$HiiCreateGuidOpCode 0000000000026a10 UefiHiiLib:HiiLib.obj
+ 0005:00000378 $unwind$HiiCreateSubTitleOpCode 0000000000026a18 UefiHiiLib:HiiLib.obj
+ 0005:00000384 $unwind$HiiCreateGotoExOpCode 0000000000026a24 UefiHiiLib:HiiLib.obj
+ 0005:0000039c $unwind$ChooseFile 0000000000026a3c FileExplorerLib:FileExplorer.obj
+ 0005:0000039c $unwind$HiiCreateStringOpCode 0000000000026a3c UefiHiiLib:HiiLib.obj
+ 0005:000003ac $unwind$HiiCreateOneOfOpCode 0000000000026a4c UefiHiiLib:HiiLib.obj
+ 0005:000003c4 $unwind$InternalHiiUpdateFormPackageData 0000000000026a64 UefiHiiLib:HiiLib.obj
+ 0005:000003dc $unwind$HiiUpdateForm 0000000000026a7c UefiHiiLib:HiiLib.obj
+ 0005:000003f4 $unwind$ReportStatusCodeEx 0000000000026a94 DxeReportStatusCodeLib:ReportStatusCodeLib.obj
+ 0005:00000410 $unwind$EfiBootManagerConnectAll 0000000000026ab0 UefiBootManagerLib:BmConnect.obj
+ 0005:00000410 $unwind$EfiCreateEventReadyToBootEx 0000000000026ab0 UefiLib:UefiNotTiano.obj
+ 0005:00000410 $unwind$UpdatePageStart 0000000000026ab0 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:00000410 $unwind$BmGetActiveConsoleIn 0000000000026ab0 UefiBootManagerLib:BmHotkey.obj
+ 0005:00000410 $unwind$UpdatePageEnd 0000000000026ab0 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:00000418 $unwind$EfiBootManagerConnectDevicePath 0000000000026ab8 UefiBootManagerLib:BmConnect.obj
+ 0005:00000430 $unwind$BmExpandLoadFiles 0000000000026ad0 UefiBootManagerLib:BmBoot.obj
+ 0005:00000430 $unwind$BmConnectUsbShortFormDevicePath 0000000000026ad0 UefiBootManagerLib:BmConnect.obj
+ 0005:00000440 $unwind$BmFindBootOptionInVariable 0000000000026ae0 UefiBootManagerLib:BmBoot.obj
+ 0005:00000458 $unwind$BmAdjustFvFilePath 0000000000026af8 UefiBootManagerLib:BmBoot.obj
+ 0005:00000468 $unwind$BmMatchUsbClass 0000000000026b08 UefiBootManagerLib:BmBoot.obj
+ 0005:00000474 $unwind$BmMatchUsbWwid 0000000000026b14 UefiBootManagerLib:BmBoot.obj
+ 0005:00000488 $unwind$BmExpandUsbDevicePath 0000000000026b28 UefiBootManagerLib:BmBoot.obj
+ 0005:00000488 $unwind$GetConsoleMenu 0000000000026b28 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0005:000004a0 $unwind$BmExpandFileDevicePath 0000000000026b40 UefiBootManagerLib:BmBoot.obj
+ 0005:000004b8 $unwind$BmExpandUriDevicePath 0000000000026b58 UefiBootManagerLib:BmBoot.obj
+ 0005:000004cc $unwind$BmExpandPartitionDevicePath 0000000000026b6c UefiBootManagerLib:BmBoot.obj
+ 0005:000004e0 $unwind$LibFindFileSystem 0000000000026b80 FileExplorerLib:FileExplorer.obj
+ 0005:000004e0 $unwind$BmExpandMediaDevicePath 0000000000026b80 UefiBootManagerLib:BmBoot.obj
+ 0005:000004f4 $unwind$BmExpandNetworkFileSystem 0000000000026b94 UefiBootManagerLib:BmBoot.obj
+ 0005:00000504 $unwind$BmGetRamDiskDevicePath 0000000000026ba4 UefiBootManagerLib:BmBoot.obj
+ 0005:00000510 $unwind$BmDestroyRamDisk 0000000000026bb0 UefiBootManagerLib:BmBoot.obj
+ 0005:00000524 $unwind$BmExpandLoadFile 0000000000026bc4 UefiBootManagerLib:BmBoot.obj
+ 0005:00000538 $unwind$BmGetNextLoadOptionDevicePath 0000000000026bd8 UefiBootManagerLib:BmBoot.obj
+ 0005:00000544 $unwind$UpdateDriverAddHandleDescPage 0000000000026be4 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:00000544 $unwind$BmReportLoadFailure 0000000000026be4 UefiBootManagerLib:BmBoot.obj
+ 0005:00000550 $unwind$EfiBootManagerBoot 0000000000026bf0 UefiBootManagerLib:BmBoot.obj
+ 0005:00000564 $unwind$BmEnumerateBootOptions 0000000000026c04 UefiBootManagerLib:BmBoot.obj
+ 0005:0000057c $unwind$EfiBootManagerRefreshAllBootOption 0000000000026c1c UefiBootManagerLib:BmBoot.obj
+ 0005:00000590 $unwind$BmUpdateSystemTableConsole 0000000000026c30 UefiBootManagerLib:BmConsole.obj
+ 0005:000005a8 $unwind$EfiBootManagerUpdateConsoleVariable 0000000000026c48 UefiBootManagerLib:BmConsole.obj
+ 0005:000005c0 $unwind$EfiBootManagerConnectConsoleVariable 0000000000026c60 UefiBootManagerLib:BmConsole.obj
+ 0005:000005d0 $unwind$BmGetFreeOptionNumber 0000000000026c70 UefiBootManagerLib:BmLoadOption.obj
+ 0005:000005e4 $unwind$EfiBootManagerLoadOptionToVariable 0000000000026c84 UefiBootManagerLib:BmLoadOption.obj
+ 0005:000005fc $unwind$BmAddOptionNumberToOrderVariable 0000000000026c9c UefiBootManagerLib:BmLoadOption.obj
+ 0005:00000614 $unwind$EfiBootManagerAddLoadOptionVariable 0000000000026cb4 UefiBootManagerLib:BmLoadOption.obj
+ 0005:00000620 $unwind$EfiBootManagerInitializeLoadOption 0000000000026cc0 UefiBootManagerLib:BmLoadOption.obj
+ 0005:00000638 $unwind$EfiBootManagerDeleteLoadOptionVariable 0000000000026cd8 UefiBootManagerLib:BmLoadOption.obj
+ 0005:0000064c $unwind$GetBootOrder 0000000000026cec BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:0000064c $unwind$GetDriverOrder 0000000000026cec BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:0000064c $unwind$BmValidateOption 0000000000026cec UefiBootManagerLib:BmLoadOption.obj
+ 0005:00000664 $unwind$IsTerminalDevicePath 0000000000026d04 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0005:00000664 $unwind$EfiBootManagerIsValidLoadOptionVariableName 0000000000026d04 UefiBootManagerLib:BmLoadOption.obj
+ 0005:00000680 $unwind$EfiBootManagerVariableToLoadOptionEx 0000000000026d20 UefiBootManagerLib:BmLoadOption.obj
+ 0005:00000698 $unwind$EfiBootManagerGetLoadOptions 0000000000026d38 UefiBootManagerLib:BmLoadOption.obj
+ 0005:000006b0 $unwind$BmGetNextLoadOptionBuffer 0000000000026d50 UefiBootManagerLib:BmLoadOption.obj
+ 0005:000006c8 $unwind$BmGetDescriptionFromDiskInfo 0000000000026d68 UefiBootManagerLib:BmBootDescription.obj
+ 0005:000006dc $unwind$LibCreateNewFile 0000000000026d7c FileExplorerLib:FileExplorer.obj
+ 0005:000006dc $unwind$BmGetUsbDescription 0000000000026d7c UefiBootManagerLib:BmBootDescription.obj
+ 0005:000006ec $unwind$BmGetNetworkDescription 0000000000026d8c UefiBootManagerLib:BmBootDescription.obj
+ 0005:00000708 $unwind$BmGetNvmeDescription 0000000000026da8 UefiBootManagerLib:BmBootDescription.obj
+ 0005:00000718 $unwind$BmGetMiscDescription 0000000000026db8 UefiBootManagerLib:BmBootDescription.obj
+ 0005:00000728 $unwind$BmHotkeyCallback 0000000000026dc8 UefiBootManagerLib:BmHotkey.obj
+ 0005:0000073c $unwind$BmStopHotkeyService 0000000000026ddc UefiBootManagerLib:BmHotkey.obj
+ 0005:00000750 $unwind$BmDelPartMatchInstance 0000000000026df0 UefiBootManagerLib:BmMisc.obj
+ 0005:00000764 $unwind$MatchDevicePaths 0000000000026e04 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0005:00000764 $unwind$BmMatchDevicePaths 0000000000026e04 UefiBootManagerLib:BmMisc.obj
+ 0005:00000770 $unwind$BmSetMemoryTypeInformationVariable 0000000000026e10 UefiBootManagerLib:BmMisc.obj
+ 0005:00000770 $unwind$SortedUartHandle 0000000000026e10 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0005:00000788 $unwind$BmSetVariableAndReportStatusCodeOnError 0000000000026e28 UefiBootManagerLib:BmMisc.obj
+ 0005:000007a4 $unwind$BmGetSingleControllerHealthStatus 0000000000026e44 UefiBootManagerLib:BmDriverHealth.obj
+ 0005:000007bc $unwind$EfiBootManagerGetDriverHealthInfo 0000000000026e5c UefiBootManagerLib:BmDriverHealth.obj
+ 0005:000007d0 $unwind$BmRepairAllControllers 0000000000026e70 UefiBootManagerLib:BmDriverHealth.obj
+ 0005:000007e0 $unwind$UpdateConsoleContent 0000000000026e80 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:000007e0 $unwind$LibCallback 0000000000026e80 FileExplorerLib:FileExplorer.obj
+ 0005:000007e0 $unwind$UpdateTerminalContent 0000000000026e80 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:000007e0 $unwind$LibAppendFileName 0000000000026e80 FileExplorerLib:FileExplorer.obj
+ 0005:000007fc $unwind$LibFindFiles 0000000000026e9c FileExplorerLib:FileExplorer.obj
+ 0005:00000814 $unwind$LibUpdateFileExplorePage 0000000000026eb4 FileExplorerLib:FileExplorer.obj
+ 0005:00000830 $unwind$LibUpdateFileExplorer 0000000000026ed0 FileExplorerLib:FileExplorer.obj
+ 0005:00000844 $unwind$IsMacAddressDevicePath 0000000000026ee4 DeviceManagerUiLib:DeviceManager.obj
+ 0005:0000085c $unwind$IsNeedAddNetworkMenu 0000000000026efc DeviceManagerUiLib:DeviceManager.obj
+ 0005:00000870 $unwind$CreateDeviceManagerForm 0000000000026f10 DeviceManagerUiLib:DeviceManager.obj
+ 0005:00000888 $unwind$BmSetupResetReminder 0000000000026f28 BootManagerUiLib:BootManager.obj
+ 0005:00000888 $unwind$BmmSetupResetReminder 0000000000026f28 BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:00000894 $unwind$GroupMultipleLegacyBootOption4SameType 0000000000026f34 BootManagerUiLib:BootManager.obj
+ 0005:000008b0 $unwind$UpdateBootManager 0000000000026f50 BootManagerUiLib:BootManager.obj
+ 0005:000008c8 $unwind$BootManagerCallback 0000000000026f68 BootManagerUiLib:BootManager.obj
+ 0005:000008dc $unwind$BootManagerUiLibConstructor 0000000000026f7c BootManagerUiLib:BootManager.obj
+ 0005:000008e4 $unwind$BootMaintRouteConfig 0000000000026f84 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:000008fc $unwind$BootMaintCallback 0000000000026f9c BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:00000918 $unwind$CustomizeMenus 0000000000026fb8 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:00000918 $unwind$CleanUpPage 0000000000026fb8 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:00000924 $unwind$InitializeBmmConfig 0000000000026fc4 BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:0000093c $unwind$InitAllMenu 0000000000026fdc BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:0000094c $unwind$BootMaintenanceManagerUiLibConstructor 0000000000026fec BootMaintenanceManagerUiLib:BootMaintenance.obj
+ 0005:00000958 $unwind$UpdateDrvDelPage 0000000000026ff8 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:00000958 $unwind$UpdateBootDelPage 0000000000026ff8 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:0000096c $unwind$UpdateConsolePage 000000000002700c BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:00000984 $unwind$UpdateOrderPage 0000000000027024 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:0000099c $unwind$UpdateConModePage 000000000002703c BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:000009b8 $unwind$UpdateTerminalPage 0000000000027058 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:000009d0 $unwind$UpdateOptionPage 0000000000027070 BootMaintenanceManagerUiLib:UpdatePage.obj
+ 0005:000009e4 $unwind$BOpt_GetBootOptions 0000000000027084 BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:000009fc $unwind$BOpt_GetOptionNumber 000000000002709c BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:00000a14 $unwind$BOpt_GetDriverOptions 00000000000270b4 BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:00000a2c $unwind$BootFromFile 00000000000270cc BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:00000a3c $unwind$ReSendForm 00000000000270dc BootMaintenanceManagerUiLib:BootOption.obj
+ 0005:00000a44 $unwind$Var_UpdateDriverOption 00000000000270e4 BootMaintenanceManagerUiLib:Variable.obj
+ 0005:00000a60 $unwind$Var_UpdateBootOption 0000000000027100 BootMaintenanceManagerUiLib:Variable.obj
+ 0005:00000a80 $unwind$Var_UpdateBootOrder 0000000000027120 BootMaintenanceManagerUiLib:Variable.obj
+ 0005:00000a98 $unwind$Var_UpdateDriverOrder 0000000000027138 BootMaintenanceManagerUiLib:Variable.obj
+ 0005:00000aa8 $unwind$ChangeTerminalDevicePath 0000000000027148 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0005:00000abc $unwind$LocateSerialIo 000000000002715c BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0005:00000ad0 $unwind$UpdateComAttributeFromVariable 0000000000027170 BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0005:00000aec $unwind$GetConsoleOutMode 000000000002718c BootMaintenanceManagerUiLib:ConsoleOption.obj
+ 0005:00000b00 $unwind$UiCustomizeBMMPage 00000000000271a0 BootMaintenanceManagerUiLib:BootMaintenanceManagerCustomizedUi.obj
+ 0005:00000b1c $unwind$Print 00000000000271bc UefiLib:UefiLibPrint.obj
+ 0005:00000b24 $unwind$RegisterBasicVariablePolicy 00000000000271c4 VariablePolicyHelperLib:VariablePolicyHelperLib.obj
+ 0005:00000b3c $unwind$GetFileBufferByFilePath 00000000000271dc DxeServicesLib:DxeServicesLib.obj
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiApp.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiApp.txt
new file mode 100644
index 000000000000..6e8cd8ae96a8
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiApp.txt
@@ -0,0 +1,2 @@
+MODULE_SIZE = 160448
+TIME_STAMP = 0
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiApp.uni b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiApp.uni
new file mode 100644
index 000000000000..a8e72841b992
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiApp.uni
@@ -0,0 +1,17 @@
+// /** @file
+// UiApp module is driver for BDS phase.
+//
+// Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
+//
+// SPDX-License-Identifier: BSD-2-Clause-Patent
+//
+// **/
+
+#string STR_MODULE_ABSTRACT
+#language en-US
+"UiApp module is driver for BDS phase."
+
+#string STR_MODULE_DESCRIPTION
+#language en-US
+"UiApp module is driver for BDS phase."
+
--git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiAppExtra.uni b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiAppExtra.uni
new file mode 100644
index 000000000000..1171135b2543
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiAppExtra.uni
@@ -0,0 +1,12 @@
+// /** @file
+// UiApp Localized Strings and Content
+//
+// Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
+//
+// SPDX-License-Identifier: BSD-2-Clause-Patent
+//
+// **/
+
+#string STR_PROPERTIES_MODULE_NAME #language en-US "UiApp module"
+
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiAppStrDefs.hpk b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiAppStrDefs.hpk
new file mode 100644
index 0000000000000000000000000000000000000000..670fa1076459a21f10b18ee6a079f189520a99a7
GIT binary patch
literal 1058
zcmc&z%T9wp6g^G)1%?k8SFUPe;>w*Ntuaw!XpP1l;bBpPI?zS`%ccLLpW!(JmX??_
zbt5nX_s%_M=H7F8A7FS2Kx5Z6KvInErtron@Pr&0D$I%UCa@^!tYL7Akc)}jy~l53
zGDa?&h$&w=N93Sago=6DQOvl3wlVEo(@toWSP+sqMp=dPhKTV@c*QkgYOWZP&s$<4
ze;D%KW(Fyv?M6gICd)f%Gpn$2%n4qV-L*SX#aU-In3CGIR+D)^XvI<Yi*b*01h~N^
z#|6#^p1Dxf?}cA0zGDY$N|Vq!7K!16kG(WY?PwA-5~;eMOj`vd+22&Ng8D3J>3A|%
zG8NOH)6dE8GlPghW}RD(Bf>V7dt;5|D;O27wUbT@dR6~z{bV<rb^2{btDOuJY_$5K
zR<c9aV(PkF=l?hD9)RHqPoS~u(*FieZ6)Di&X%)5|MxpQ03P?^P3>>I>WA$X5%V|9
Ct&_$8
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiAppUni.json b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiAppUni.json
new file mode 100644
index 000000000000..b36c90eee4c0
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/UiAppUni.json
@@ -0,0 +1,64 @@
+{
+ "LanguageDef": [
+ [
+ "en-US",
+ "English"
+ ],
+ [
+ "fr-FR",
+ "Fran\u00e7ais"
+ ],
+ [
+ "en",
+ "Standard English"
+ ],
+ [
+ "fr",
+ "Standard Fran\u00e7ais"
+ ]
+ ],
+ "UniString": {
+ "en-US": {
+ "$LANGUAGE_NAME": "en-US",
+ "$PRINTABLE_LANGUAGE_NAME": "English",
+ "STR_FRONT_PAGE_TITLE": "Front Page",
+ "STR_FRONT_PAGE_COMPUTER_MODEL": "",
+ "STR_FRONT_PAGE_CPU_MODEL": "",
+ "STR_FRONT_PAGE_CPU_SPEED": "",
+ "STR_FRONT_PAGE_MEMORY_SIZE": "",
+ "STR_FRONT_PAGE_BIOS_VERSION": "",
+ "STR_FRONT_PAGE_BANNER_0_LEFT": "Wonder Computer Model 1000Z Manufactured by Intel\u00ae",
+ "STR_FRONT_PAGE_BANNER_0_RIGHT": "OK",
+ "STR_FRONT_PAGE_BANNER_1_LEFT": "2 Pentium\u00ae X Xeon processors running at 800Thz",
+ "STR_FRONT_PAGE_BANNER_1_RIGHT": "24 TB System RAM",
+ "STR_FRONT_PAGE_BANNER_2_LEFT": "ACME\u00ae EFI BIOS Version 13.5 Release 1039.92",
+ "STR_FRONT_PAGE_BANNER_3_LEFT": "Serial Number: 1Z123456789MARMAR (Need SMBIOS entries)",
+ "STR_CONTINUE_PROMPT": "Continue",
+ "STR_CONTINUE_HELP": "This selection will direct the system to continue to booting process",
+ "STR_LANGUAGE_SELECT": "Select Language",
+ "STR_LANGUAGE_SELECT_HELP": "This is the option one adjusts to change the language for the current system",
+ "STR_MISSING_STRING": "Missing String",
+ "STR_EMPTY_STRING": "",
+ "STR_RESET_STRING": "Reset",
+ "STR_RESET_STRING_HELP": "Reset the current setting.",
+ "STR_CUSTOMIZE_BANNER_LINE4_LEFT": "",
+ "STR_CUSTOMIZE_BANNER_LINE4_RIGHT": "",
+ "STR_CUSTOMIZE_BANNER_LINE5_LEFT": "",
+ "STR_CUSTOMIZE_BANNER_LINE5_RIGHT": "",
+ "STR_TEST_KEY_USED": "WARNING: Test key detected.",
+ "STR_NULL_STRING": " "
+ },
+ "fr-FR": {
+ "$LANGUAGE_NAME": "fr-FR",
+ "$PRINTABLE_LANGUAGE_NAME": "Fran\u00e7ais"
+ },
+ "en": {
+ "$LANGUAGE_NAME": "en",
+ "$PRINTABLE_LANGUAGE_NAME": "Standard English"
+ },
+ "fr": {
+ "$LANGUAGE_NAME": "fr",
+ "$PRINTABLE_LANGUAGE_NAME": "Standard Fran\u00e7ais"
+ }
+ }
+}
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/cc_resp_5.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/cc_resp_5.txt
new file mode 100644
index 000000000000..4ad753aef84c
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/cc_resp_5.txt
@@ -0,0 +1 @@
+ c:\users\mliang2x\workspace\edk2\MdeModulePkg\Application\UiApp\String.c c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\DEBUG\FrontPageVfr.c c:\users\mliang2x\workspace\edk2\MdeModulePkg\Application\UiApp\FrontPageCustomizedUi.c c:\users\mliang2x\workspace\edk2\MdeModulePkg\Application\UiApp\FrontPage.c c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\DEBUG\AutoGen.c c:\users\mliang2x\workspace\edk2\MdeModulePkg\Application\UiApp\FrontPageCustomizedUiSupport.c
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/object_files.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/object_files.lst
new file mode 100644
index 000000000000..b9cc51be3057
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/object_files.lst
@@ -0,0 +1,6 @@
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Application/UiApp/UiApp/OUTPUT/FrontPageVfr.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Application/UiApp/UiApp/OUTPUT/FrontPage.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Application/UiApp/UiApp/OUTPUT/String.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Application/UiApp/UiApp/OUTPUT/FrontPageCustomizedUi.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Application/UiApp/UiApp/OUTPUT/FrontPageCustomizedUiSupport.obj
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Application/UiApp/UiApp/OUTPUT/AutoGen.obj
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/static_library_files.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/static_library_files.lst
new file mode 100644
index 000000000000..b1a2adcac1af
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/OUTPUT/static_library_files.lst
@@ -0,0 +1,32 @@
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Application/UiApp/UiApp/OUTPUT/UiApp.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/RegisterFilterLibNull/RegisterFilterLibNull/OUTPUT/FilterLibNull.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/DxePcdLib/DxePcdLib/OUTPUT/DxePcdLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr/OUTPUT/BaseMemoryLibRepStr.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/BaseLib/BaseLib/OUTPUT/BaseLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/TdxLib/TdxLib/OUTPUT/TdxLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/CcProbeLibNull/CcProbeLibNull/OUTPUT/CcProbeLibNull.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib/OUTPUT/BaseDebugPrintErrorLevelLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsicSev/OUTPUT/BaseIoLibIntrinsicSev.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/BasePrintLib/BasePrintLib/OUTPUT/BasePrintLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort/OUTPUT/PlatformDebugLibIoPort.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib/OUTPUT/UefiBootServicesTableLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib/OUTPUT/UefiMemoryAllocationLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib/OUTPUT/UefiRuntimeServicesTableLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol/OUTPUT/UefiDevicePathLibDevicePathProtocol.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/UefiLib/UefiLib/OUTPUT/UefiLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/DxeHobLib/DxeHobLib/OUTPUT/DxeHobLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib/OUTPUT/UefiHiiServicesLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib/OUTPUT/VariablePolicyHelperLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/UefiSortLib/UefiSortLib/OUTPUT/UefiSortLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/DxeServicesLib/DxeServicesLib/OUTPUT/DxeServicesLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib/OUTPUT/DxeServicesTableLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib/OUTPUT/BasePeCoffGetEntryPointLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull/OUTPUT/BasePerformanceLibNull.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/UefiHiiLib/UefiHiiLib/OUTPUT/UefiHiiLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib/OUTPUT/DxeReportStatusCodeLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib/OUTPUT/UefiBootManagerLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/FileExplorerLib/FileExplorerLib/OUTPUT/FileExplorerLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint/OUTPUT/UefiApplicationEntryPoint.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib/OUTPUT/DeviceManagerUiLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib/OUTPUT/BootManagerUiLib.lib
+c:/users/mliang2x/workspace/edk2/Build/Ovmf3264/DEBUG_VS2015x86/X64/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib/OUTPUT/BootMaintenanceManagerUiLib.lib
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/UiApp.makefile b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/UiApp.makefile
new file mode 100644
index 000000000000..71a75f2cb16c
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/UiApp.makefile
@@ -0,0 +1 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\Makefile
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/dependency b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/dependency
new file mode 100644
index 000000000000..743893e95384
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/dependency
@@ -0,0 +1,31 @@
+
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\DEBUG\FrontPageVfr.Vfr.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\DEBUG\FrontPageVfr.Vfr.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\AutoGen.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\AutoGen.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\FrontPage.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\FrontPage.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\FrontPageCustomizedUi.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\FrontPageCustomizedUi.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\FrontPageCustomizedUiSupport.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\FrontPageCustomizedUiSupport.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\FrontPageVfr.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\FrontPageVfr.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\String.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\OUTPUT\String.c.deps
+!ENDIF
+
+
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/deps.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/deps.txt
new file mode 100644
index 000000000000..9d68c70f415c
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/deps.txt
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\DEBUG\AutoGen.h
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\DEBUG\UiAppStrDefs.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/SortLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiBootManagerLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/BootLogo.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/GlobalVariable.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/StatusCodeDataTypeId.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/SmBios.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/ReportStatusCodeLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiApplicationEntryPoint.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverHealth.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Smbios.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\application\uiapp\uiapp\debug\AutoGen.h
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\application\uiapp\uiapp\debug\UiAppStrDefs.h
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\application\uiapp\FrontPage.h
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\application\uiapp\FrontPageCustomizedUi.h
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\application\uiapp\FrontPageCustomizedUiSupport.h
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\application\uiapp\String.h
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\application\uiapp\Ui.h
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/deps_target b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/deps_target
new file mode 100644
index 000000000000..2765900d632a
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/UiApp/deps_target
@@ -0,0 +1,91 @@
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\DEBUG\AutoGen.h:
+c:\users\mliang2x\workspace\edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64\MdeModulePkg\Application\UiApp\UiApp\DEBUG\UiAppStrDefs.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/SortLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiBootManagerLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/UefiHiiServicesLib.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Protocol/BootLogo.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/GlobalVariable.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/StatusCodeDataTypeId.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/PeImage.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/SmBios.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PcdLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/ReportStatusCodeLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiApplicationEntryPoint.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiRuntimeServicesTableLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiBootMode.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDependency.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiDxeCis.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareFile.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiFirmwareVolume.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiHob.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiMultiPhase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiS3BootScript.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Pi/PiStatusCode.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\PiDxe.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DebugSupport.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverHealth.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiDatabase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiFont.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiImage.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiString.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Smbios.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h:
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\application\uiapp\uiapp\debug\AutoGen.h:
+c:\users\mliang2x\workspace\edk2\build\ovmf3264\debug_vs2015x86\x64\mdemodulepkg\application\uiapp\uiapp\debug\UiAppStrDefs.h:
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\application\uiapp\FrontPage.h:
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\application\uiapp\FrontPageCustomizedUi.h:
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\application\uiapp\FrontPageCustomizedUiSupport.h:
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\application\uiapp\String.h:
+c:\users\mliang2x\workspace\edk2\mdemodulepkg\application\uiapp\Ui.h:
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/AutoGenTimeStamp b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/AutoGenTimeStamp
new file mode 100644
index 000000000000..e6b51584c100
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/AutoGenTimeStamp
@@ -0,0 +1,29 @@
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BasePrintLib\BasePrintLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib.inf
+c:\users\mliang2x\workspace\edk2\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\DxePcdLib\DxePcdLib.inf
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\DEBUG\VlanConfigDxeStrDefs.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\VlanConfigDxe\ComponentName.c
+c:\users\mliang2x\workspace\edk2\NetworkPkg\VlanConfigDxe\VlanConfig.vfr
+c:\users\mliang2x\workspace\edk2\NetworkPkg\VlanConfigDxe\VlanConfigStrings.uni
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\VlanConfigDxe\VlanConfigImpl.c
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\VlanConfigDxe\VlanConfigImpl.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiLib\UefiLib.inf
+c:\users\mliang2x\workspace\edk2\OvmfPkg\Library\CcProbeLib\CcProbeLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\VlanConfigDxe\VlanConfigDxe.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\VlanConfigDxe\VlanConfigNvData.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseLib\BaseLib.inf
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\VlanConfigDxe\VlanConfigDriver.c
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\TdxLib\TdxLib.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol.inf
+c:\users\mliang2x\workspace\edk2\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr.inf
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Library\DxeNetLib\DxeNetLib.inf
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\DEBUG\AutoGen.h
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfig.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfig.lst
new file mode 100644
index 000000000000..175d33b2e785
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfig.lst
@@ -0,0 +1,360 @@
+//
+// VFR compiler version 2.01 (UEFI 2.4) Developer Build based on Revision: Unknown
+//
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\VlanConfigDxe\\VlanConfig.vfr"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\NetworkPkg\\VlanConfigDxe\\VlanConfigDxe\\DEBUG\\VlanConfigDxeStrDefs.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern unsigned char VlanConfigDxeStrings[];
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 60 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\NetworkPkg\\VlanConfigDxe\\VlanConfigDxe\\DEBUG\\VlanConfigDxeStrDefs.h"
+
+#line 62 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\NetworkPkg\\VlanConfigDxe\\VlanConfigDxe\\DEBUG\\VlanConfigDxeStrDefs.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\VlanConfigDxe\\VlanConfig.vfr"
+
+
+
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\networkpkg\\vlanconfigdxe\\VlanConfigNvData.h"
+
+
+
+
+
+
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Guid/HiiPlatformSetupFormset.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern EFI_GUID gEfiHiiPlatformSetupFormsetGuid;
+extern EFI_GUID gEfiHiiDriverHealthFormsetGuid;
+extern EFI_GUID gEfiHiiUserCredentialFormsetGuid;
+extern EFI_GUID gEfiHiiRestStyleFormsetGuid;
+
+#line 34 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Guid/HiiPlatformSetupFormset.h"
+#line 13 "c:\\users\\mliang2x\\workspace\\edk2\\networkpkg\\vlanconfigdxe\\VlanConfigNvData.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\Include\\Guid/VlanConfigHii.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern EFI_GUID { 0xd79df6b0, 0xef44, 0x43bd, { 0x97, 0x97, 0x43, 0xe9, 0x3b, 0xcf, 0x5f, 0xa8 }};
+
+#line 20 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\Include\\Guid/VlanConfigHii.h"
+#line 14 "c:\\users\\mliang2x\\workspace\\edk2\\networkpkg\\vlanconfigdxe\\VlanConfigNvData.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct {
+ UINT16 VlanId;
+ UINT8 Priority;
+ UINT8 VlanList[100];
+} VLAN_CONFIGURATION;
+
+#line 41 "c:\\users\\mliang2x\\workspace\\edk2\\networkpkg\\vlanconfigdxe\\VlanConfigNvData.h"
+#line 10 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\VlanConfigDxe\\VlanConfig.vfr"
+
+formset
+>00000000: 0E A7 B0 F6 9D D7 44 EF BD 43 97 97 43 E9 3B CF 5F A8 02 00 03 00 01 71 99 03 93 45 85 04 4B B4 5E 32 EB 83 26 04 0E
+>00000027: 5C 06 00 00 00 00
+>0000002D: 5C 06 00 00 01 00
+ guid = { 0xd79df6b0, 0xef44, 0x43bd, {0x97, 0x97, 0x43, 0xe9, 0x3b, 0xcf, 0x5f, 0xa8 } },
+ title = STRING_TOKEN(0x0002),
+ help = STRING_TOKEN(0x0003),
+ classguid = { 0x93039971, 0x8545, 0x4b04, { 0xb4, 0x5e, 0x32, 0xeb, 0x83, 0x26, 0x4, 0xe } },
+
+ varstore VLAN_CONFIGURATION,
+>00000033: 24 21 B0 F6 9D D7 44 EF BD 43 97 97 43 E9 3B CF 5F A8 01 00 68 00 56 6C 61 6E 4E 76 44 61 74 61 00
+ varid = 0x0001,
+ name = VlanNvData,
+ guid = { 0xd79df6b0, 0xef44, 0x43bd, {0x97, 0x97, 0x43, 0xe9, 0x3b, 0xcf, 0x5f, 0xa8 } };
+
+ form formid = 0x0002,
+>00000054: 01 86 02 00 04 00
+ title = STRING_TOKEN(0x0004);
+
+ goto 0x0001,
+>0000005A: 0F 0F 12 00 13 00 00 30 00 00 FF FF 04 01 00
+ prompt = STRING_TOKEN (0x0012),
+ help = STRING_TOKEN (0x0013),
+ flags = INTERACTIVE,
+ key = 0x3000;
+
+ endform;
+>00000069: 29 02
+
+ form formid = 0x0001,
+>0000006B: 01 86 01 00 04 00
+ title = STRING_TOKEN(0x0004);
+
+ subtitle text = STRING_TOKEN(0x0006);
+>00000071: 02 87 06 00 00 00 00
+>00000078: 29 02
+
+ numeric varid = VlanNvData.VlanId,
+>0000007A: 07 94 07 00 08 00 01 00 01 00 00 00 00 11 00 00 FE 0F 00 00
+ prompt = STRING_TOKEN(0x0007),
+ help = STRING_TOKEN(0x0008),
+ minimum = 0,
+ maximum = 4094,
+ endnumeric;
+>0000008E: 29 02
+
+ numeric varid = VlanNvData.Priority,
+>00000090: 07 91 09 00 0A 00 02 00 01 00 02 00 00 10 00 07 00
+ prompt = STRING_TOKEN(0x0009),
+ help = STRING_TOKEN(0x000A),
+ minimum = 0,
+ maximum = 7,
+ endnumeric;
+>000000A1: 29 02
+
+ text
+ help = STRING_TOKEN(0x000C),
+ text = STRING_TOKEN(0x000B),
+ flags = INTERACTIVE,
+>000000A3: 0C 8F 0B 00 0C 00 00 10 00 00 FF FF 04 00 00
+ key = 0x1000;
+>000000B2: 29 02
+
+ subtitle text = STRING_TOKEN(0x0011);
+>000000B4: 02 87 11 00 00 00 00
+>000000BB: 29 02
+ subtitle text = STRING_TOKEN(0x000D);
+>000000BD: 02 87 0D 00 00 00 00
+>000000C4: 29 02
+
+ label 0x0001;
+>000000C6: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 01 00
+ label 0xffff;
+>000000DB: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+
+ text
+ help = STRING_TOKEN(0x0010),
+ text = STRING_TOKEN(0x000F),
+ flags = INTERACTIVE,
+>000000F0: 0C 8F 0F 00 10 00 00 20 00 00 FF FF 04 00 00
+ key = 0x2000;
+>000000FF: 29 02
+
+ endform;
+>00000101: 29 02
+
+endformset;
+>00000103: 29 02
+
+//
+// All Opcode Record List
+//
+>00000000: 0E A7 B0 F6 9D D7 44 EF BD 43 97 97 43 E9 3B CF 5F A8 02 00 03 00 01 71 99 03 93 45 85 04 4B B4 5E 32 EB 83 26 04 0E
+>00000027: 5C 06 00 00 00 00
+>0000002D: 5C 06 00 00 01 00
+>00000033: 24 21 B0 F6 9D D7 44 EF BD 43 97 97 43 E9 3B CF 5F A8 01 00 68 00 56 6C 61 6E 4E 76 44 61 74 61 00
+>00000054: 01 86 02 00 04 00
+>0000005A: 0F 0F 12 00 13 00 00 30 00 00 FF FF 04 01 00
+>00000069: 29 02
+>0000006B: 01 86 01 00 04 00
+>00000071: 02 87 06 00 00 00 00
+>00000078: 29 02
+>0000007A: 07 94 07 00 08 00 01 00 01 00 00 00 00 11 00 00 FE 0F 00 00
+>0000008E: 29 02
+>00000090: 07 91 09 00 0A 00 02 00 01 00 02 00 00 10 00 07 00
+>000000A1: 29 02
+>000000A3: 0C 8F 0B 00 0C 00 00 10 00 00 FF FF 04 00 00
+>000000B2: 29 02
+>000000B4: 02 87 11 00 00 00 00
+>000000BB: 29 02
+>000000BD: 02 87 0D 00 00 00 00
+>000000C4: 29 02
+>000000C6: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 01 00
+>000000DB: 5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 00 FF FF
+>000000F0: 0C 8F 0F 00 10 00 00 20 00 00 FF FF 04 00 00
+>000000FF: 29 02
+>00000101: 29 02
+>00000103: 29 02
+
+Total Size of all record is 0x00000105
+
+
+***************************************************************
+ mPackAlign = 8
+ struct VLAN_CONFIGURATION : mAlign [2] mTotalSize [0x68]
+
+ struct VLAN_CONFIGURATION {
+ +00000000[00000000] VlanId <UINT16>
+ +00000002[00000002] Priority <UINT8>
+ +00000003[00000003] VlanList[100] <UINT8>
+ };
+---------------------------------------------------------------
+ struct EFI_HII_REF : mAlign [16] mTotalSize [0x16]
+
+ struct EFI_HII_REF {
+ +00000000[00000000] QuestionId <UINT16>
+ +00000002[00000002] FormId <UINT16>
+ +00000004[00000004] FormSetGuid <(null)>
+ +00000020[00000014] DevicePath <EFI_STRING_ID>
+ };
+---------------------------------------------------------------
+ struct EFI_HII_TIME : mAlign [1] mTotalSize [0x3]
+
+ struct EFI_HII_TIME {
+ +00000000[00000000] Hours <UINT8>
+ +00000001[00000001] Minutes <UINT8>
+ +00000002[00000002] Seconds <UINT8>
+ };
+---------------------------------------------------------------
+ struct EFI_STRING_ID : mAlign [2] mTotalSize [0x2]
+
+ struct EFI_STRING_ID {
+ };
+---------------------------------------------------------------
+ struct EFI_HII_DATE : mAlign [2] mTotalSize [0x4]
+
+ struct EFI_HII_DATE {
+ +00000000[00000000] Year <UINT16>
+ +00000002[00000002] Month <UINT8>
+ +00000003[00000003] Day <UINT8>
+ };
+---------------------------------------------------------------
+ struct BOOLEAN : mAlign [1] mTotalSize [0x1]
+
+ struct BOOLEAN {
+ };
+---------------------------------------------------------------
+ struct UINT8 : mAlign [1] mTotalSize [0x1]
+
+ struct UINT8 {
+ };
+---------------------------------------------------------------
+ struct UINT16 : mAlign [2] mTotalSize [0x2]
+
+ struct UINT16 {
+ };
+---------------------------------------------------------------
+ struct UINT32 : mAlign [4] mTotalSize [0x4]
+
+ struct UINT32 {
+ };
+---------------------------------------------------------------
+ struct UINT64 : mAlign [8] mTotalSize [0x8]
+
+ struct UINT64 {
+ };
+---------------------------------------------------------------
+***************************************************************
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfig.vfr.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfig.vfr.deps
new file mode 100644
index 000000000000..2bcb5a28aa53
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfig.vfr.deps
@@ -0,0 +1,5 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\DEBUG\VlanConfig.c: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\DEBUG\VlanConfigDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\vlanconfigdxe\VlanConfigNvData.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/VlanConfigHii.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfigCompiled.yml b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfigCompiled.yml
new file mode 100644
index 000000000000..bbff29bb2ffd
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfigCompiled.yml
@@ -0,0 +1,82 @@
+## DO NOT REMOVE -- YAML Mode
+include:
+- VlanConfigNvData.h
+
+formset:
+ guid: '{0xd79df6b0, 0xef44, 0x43bd, { 0x97, 0x97, 0x43, 0xe9, 0x3b, 0xcf, 0x5f, 0xa8 }}'
+ help: 'VLAN configuration for this network device'
+ title: 'VLAN Configuration'
+ classguid1: '{0x93039971, 0x8545, 0x4b04, { 0xb4, 0x5e, 0x32, 0xeb, 0x83, 0x26, 0x4, 0xe }}'
+ component:
+ - varstore:
+ guid: '{0xd79df6b0, 0xef44, 0x43bd, { 0x97, 0x97, 0x43, 0xe9, 0x3b, 0xcf, 0x5f, 0xa8 }}'
+ varid: 0x0001 # Optional Input
+ size: 104 # Need to Compute
+ name: VlanNvData
+ - form:
+ formid: 2
+ title: 'VLAN Configuration'
+ component:
+ - goto:
+ questionid: 12288
+ varstoreid: 0 # Optional Input
+ varname: 65535 # Question VarName
+ varoffset: 65535 # Question VarOffset
+ questionflags: 4 # Optional Input
+ prompt: 'Enter Configuration Menu'
+ help: 'Press ENTER to enter configuration menu for VLAN configuration.'
+ formid: 0x1
+ question: 0x3000 # Optional Input
+ - form:
+ formid: 1
+ title: 'VLAN Configuration'
+ component:
+ - subtitle:
+ prompt: 'Create new VLAN'
+ flags: 0 # Optional Input
+ - numeric:
+ position: 'VLAN_CONFIG_FORM_SET_GUID.VLAN_CONFIGURATION_FORM_ID.VlanNvData.VlanId' # for reference
+ questionid: 1
+ varstoreid: 1 # Optional Input
+ varname: 0 # Question VarName
+ varoffset: 0 # Question VarOffset
+ questionflags: 0 # Optional Input
+ prompt: ' VLAN ID'
+ help: 'VLAN ID of new VLAN or existing VLAN, valid value is 0~4094'
+ opcodeflags: 0x11 # optional input
+ maximum: 4094 # Optional Input
+ minimum: 0 # Optional Input
+ step: 0 # Optional Input
+ - numeric:
+ position: 'VLAN_CONFIG_FORM_SET_GUID.VLAN_CONFIGURATION_FORM_ID.VlanNvData.Priority' # for reference
+ questionid: 2
+ varstoreid: 1 # Optional Input
+ varname: 2 # Question VarName
+ varoffset: 2 # Question VarOffset
+ questionflags: 0 # Optional Input
+ prompt: ' Priority'
+ help: '802.1Q Priority, valid value is 0~7'
+ opcodeflags: 0x10 # optional input
+ maximum: 7 # Optional Input
+ minimum: 0 # Optional Input
+ step: 0 # Optional Input
+ - text:
+ help: 'Create a new VLAN or update existing VLAN'
+ prompt: 'Add VLAN'
+ flags: 4 # Optional Input, Question Flags
+ key: 0x1000 # Optional Input, Question QuestionId
+ - subtitle:
+ prompt: ''
+ flags: 0 # Optional Input
+ - subtitle:
+ prompt: 'Configured VLAN List'
+ flags: 0 # Optional Input
+ - label:
+ number: 0x1 # Number
+ - label:
+ number: 0xffff # Number
+ - text:
+ help: 'Remove selected VLANs'
+ prompt: 'Remove VLAN'
+ flags: 4 # Optional Input, Question Flags
+ key: 0x2000 # Optional Input, Question QuestionId
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfigDxe.dll b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfigDxe.dll
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfigDxe.efi b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfigDxe.efi
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfigDxe.map b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfigDxe.map
new file mode 100644
index 000000000000..f767d7992000
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfigDxe.map
@@ -0,0 +1,474 @@
+ VlanConfigDxe
+
+ Timestamp is 647848fe (Thu Jun 1 15:30:06 2023)
+
+ Preferred load address is 0000000000000000
+
+ Start Length Name Class
+ 0001:00000000 00000318H .text CODE
+ 0001:00000318 00004d7fH .text$mn CODE
+ 0002:00000000 00001c64H .rdata DATA
+ 0002:00001c64 00000140H .rdata$zzzdbg DATA
+ 0003:00000000 00000828H .data DATA
+ 0003:00000828 00000068H .bss DATA
+ 0004:00000000 0000036cH .pdata DATA
+ 0005:00000000 000002ecH .xdata DATA
+
+ Address Publics by Value Rva+Base Lib:Object
+
+ 0000:00000000 __dynamic_value_reloc_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_longjmp_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_longjmp_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_iat_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_iat_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_flags 0000000000000000 <absolute>
+ 0001:00000000 InternalMemZeroMem 00000000000002c0 BaseMemoryLibRepStr:ZeroMem.obj
+ 0001:00000020 InternalMemSetMem16 00000000000002e0 BaseMemoryLibRepStr:SetMem16.obj
+ 0001:00000040 InternalMemCopyMem 0000000000000300 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000080 InternalMemSetMem 0000000000000340 BaseMemoryLibRepStr:SetMem.obj
+ 0001:000000a0 InternalMemCompareMem 0000000000000360 BaseMemoryLibRepStr:CompareMem.obj
+ 0001:000000c0 InternalMemSetMem64 0000000000000380 BaseMemoryLibRepStr:SetMem64.obj
+ 0001:000000e0 InternalMemSetMem32 00000000000003a0 BaseMemoryLibRepStr:SetMem32.obj
+ 0001:00000100 CpuPause 00000000000003c0 BaseLib:CpuPause.obj
+ 0001:00000110 SevNoRepIo 00000000000003d0 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000150 SevIoReadFifo8 0000000000000410 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000172 SevIoReadFifo16 0000000000000432 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000198 SevIoReadFifo32 0000000000000458 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001bb SevIoWriteFifo8 000000000000047b BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001dd SevIoWriteFifo16 000000000000049d BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000203 SevIoWriteFifo32 00000000000004c3 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000230 TdVmCall 00000000000004f0 BaseLib:TdVmcall.obj
+ 0001:000002c0 TdCall 0000000000000580 BaseLib:TdCall.obj
+ 0001:00000318 _DriverUnloadHandler 00000000000005d8 f UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0001:0000049c _ModuleEntryPoint 000000000000075c f UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0001:000005b0 ProcessLibraryConstructorList 0000000000000870 f VlanConfigDxe:AutoGen.obj
+ 0001:00000814 VlanConfigDriverBindingSupported 0000000000000ad4 f VlanConfigDxe:VlanConfigDriver.obj
+ 0001:00000890 VlanConfigDriverBindingStart 0000000000000b50 f VlanConfigDxe:VlanConfigDriver.obj
+ 0001:00000a40 VlanConfigDriverBindingStop 0000000000000d00 f VlanConfigDxe:VlanConfigDriver.obj
+ 0001:00000b3c VlanConfigComponentNameGetDriverName 0000000000000dfc f VlanConfigDxe:ComponentName.obj
+ 0001:00000c4c VlanConfigComponentNameGetControllerName 0000000000000f0c f VlanConfigDxe:ComponentName.obj
+ 0001:00000c58 VlanExtractConfig 0000000000000f18 f VlanConfigDxe:VlanConfigImpl.obj
+ 0001:00000e58 VlanRouteConfig 0000000000001118 f VlanConfigDxe:VlanConfigImpl.obj
+ 0001:00000eb8 VlanCallback 0000000000001178 f VlanConfigDxe:VlanConfigImpl.obj
+ 0001:000010b4 VlanUpdateForm 0000000000001374 f VlanConfigDxe:VlanConfigImpl.obj
+ 0001:00001420 InstallVlanConfigForm 00000000000016e0 f VlanConfigDxe:VlanConfigImpl.obj
+ 0001:0000159c UninstallVlanConfigForm 000000000000185c f VlanConfigDxe:VlanConfigImpl.obj
+ 0001:000016d4 ZeroMem 0000000000001994 f BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0001:00001738 StrnLenS 00000000000019f8 f BaseLib:SafeString.obj
+ 0001:000017a0 StrCpyS 0000000000001a60 f BaseLib:SafeString.obj
+ 0001:00001944 StrCatS 0000000000001c04 f BaseLib:SafeString.obj
+ 0001:00001b2c AsciiStrnLenS 0000000000001dec f BaseLib:SafeString.obj
+ 0001:00001b50 StrLen 0000000000001e10 f BaseLib:String.obj
+ 0001:00001be4 StrnCmp 0000000000001ea4 f BaseLib:String.obj
+ 0001:00001ccc StrStr 0000000000001f8c f BaseLib:String.obj
+ 0001:00001d94 AsciiStrLen 0000000000002054 f BaseLib:String.obj
+ 0001:00001e00 AsciiStrnCmp 00000000000020c0 f BaseLib:String.obj
+ 0001:00001ecc UnicodeSPrint 000000000000218c f BasePrintLib:PrintLib.obj
+ 0001:00001f4c UnicodeValueToStringS 000000000000220c f BasePrintLib:PrintLib.obj
+ 0001:00001fbc AsciiSPrint 000000000000227c f BasePrintLib:PrintLib.obj
+ 0001:00001fe4 BasePrintLibFillBuffer 00000000000022a4 f BasePrintLib:PrintLibInternal.obj
+ 0001:00002018 BasePrintLibValueToString 00000000000022d8 f BasePrintLib:PrintLibInternal.obj
+ 0001:00002090 BasePrintLibConvertValueToStringS 0000000000002350 f BasePrintLib:PrintLibInternal.obj
+ 0001:000023a0 BasePrintLibSPrintMarker 0000000000002660 f BasePrintLib:PrintLibInternal.obj
+ 0001:00003224 BasePrintLibSPrint 00000000000034e4 f BasePrintLib:PrintLibInternal.obj
+ 0001:00003248 DebugPrint 0000000000003508 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:0000326c DebugPrintMarker 000000000000352c f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:000032f4 DebugAssert 00000000000035b4 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:00003364 PlatformDebugLibIoPortFound 0000000000003624 f PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0001:000033ac InternalAllocatePool 000000000000366c f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:000033dc AllocateZeroPool 000000000000369c f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00003408 InternalAllocateCopyPool 00000000000036c8 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00003480 InternalReallocatePool 0000000000003740 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00003500 FreePool 00000000000037c0 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00003544 DevicePathSubType 0000000000003804 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00003574 DevicePathNodeLength 0000000000003834 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:000035c0 NextDevicePathNode 0000000000003880 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:000035f8 IsDevicePathEndType 00000000000038b8 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00003644 IsDevicePathEnd 0000000000003904 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00003698 DevicePathFromHandle 0000000000003958 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:000036cc CompareIso639LanguageCode 000000000000398c f UefiLib:UefiLib.obj
+ 0001:00003734 IsLanguageSupported 00000000000039f4 f UefiLib:UefiLib.obj
+ 0001:000037b4 NetLibGetSnpHandle 0000000000003a74 f DxeNetLib:DxeNetLib.obj
+ 0001:0000387c NetLibGetVlanHandle 0000000000003b3c f DxeNetLib:DxeNetLib.obj
+ 0001:00003928 NetLibGetMacString 0000000000003be8 f DxeNetLib:DxeNetLib.obj
+ 0001:00003bb4 HiiSetString 0000000000003e74 f UefiHiiLib:HiiString.obj
+ 0001:00003d04 HiiAddPackages 0000000000003fc4 f UefiHiiLib:HiiLib.obj
+ 0001:00003e40 InternalHiiBrowserCallback 0000000000004100 f UefiHiiLib:HiiLib.obj
+ 0001:00003f50 HiiConstructConfigHdr 0000000000004210 f UefiHiiLib:HiiLib.obj
+ 0001:000041b0 InternalHiiCompareSubString 0000000000004470 f UefiHiiLib:HiiLib.obj
+ 0001:000042cc HiiIsConfigHdrMatch 000000000000458c f UefiHiiLib:HiiLib.obj
+ 0001:00004364 HiiGetBrowserData 0000000000004624 f UefiHiiLib:HiiLib.obj
+ 0001:0000443c HiiSetBrowserData 00000000000046fc f UefiHiiLib:HiiLib.obj
+ 0001:0000455c HiiAllocateOpCodeHandle 000000000000481c f UefiHiiLib:HiiLib.obj
+ 0001:000045ac InternalHiiGrowOpCodeHandle 000000000000486c f UefiHiiLib:HiiLib.obj
+ 0001:00004650 InternalHiiCreateOpCodeExtended 0000000000004910 f UefiHiiLib:HiiLib.obj
+ 0001:00004704 HiiCreateGuidOpCode 00000000000049c4 f UefiHiiLib:HiiLib.obj
+ 0001:00004758 InternalHiiUpdateFormPackageData 0000000000004a18 f UefiHiiLib:HiiLib.obj
+ 0001:000049d0 HiiUpdateForm 0000000000004c90 f UefiHiiLib:HiiLib.obj
+ 0001:00004c40 HiiGetSupportedLanguages 0000000000004f00 f UefiHiiLib:HiiLanguage.obj
+ 0001:00004ce4 CopyGuid 0000000000004fa4 f BaseMemoryLibRepStr:MemLibGuid.obj
+ 0001:00004d68 CompareGuid 0000000000005028 f BaseMemoryLibRepStr:MemLibGuid.obj
+ 0001:00004dcc CopyMem 000000000000508c f BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0001:00004e68 CompareMem 0000000000005128 f BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0001:00004f40 ReadUnaligned32 0000000000005200 f BaseLib:Unaligned.obj
+ 0001:00004f70 ReadUnaligned64 0000000000005230 f BaseLib:Unaligned.obj
+ 0001:00004fa0 IoWriteFifo8 0000000000005260 f BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0001:00004ff4 TdIoRead8 00000000000052b4 f BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0001:00005044 TdIoWrite8 0000000000005304 f BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0002:00000000 ??_C@_0CB@DMEJJJHA@?6ASSERT_EFI_ERROR?5?$CIStatus?5?$DN?5?$CFr?$CJ?6@ 0000000000005360 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:00000028 ??_C@_0CH@BBNBJKHK@?$CB?$CI?$CI?$CIINTN?$CJ?$CIRETURN_STATUS?$CJ?$CIStatus?$CJ@ 0000000000005388 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:00000050 ??_C@_0FI@PIDCFOGG@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000053b0 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:000000b0 ??_C@_0HK@PPNAGODA@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000005410 VlanConfigDxe:AutoGen.obj
+ 0002:00000130 ??_C@_0FA@CEOMGDNM@PrivateData?9?$DOSignature?5?$DN?$DN?5?$CI?$CI?$CI?8V?8@ 0000000000005490 VlanConfigDxe:VlanConfigDriver.obj
+ 0002:00000180 ??_C@_0EN@FIHOOBPI@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000054e0 VlanConfigDxe:VlanConfigDriver.obj
+ 0002:000001d0 ??_C@_03LKLGDMJI@eng?$AA@ 0000000000005530 VlanConfigDxe:ComponentName.obj
+ 0002:000001d4 ??_C@_02LFNMGJAP@en?$AA@ 0000000000005534 VlanConfigDxe:ComponentName.obj
+ 0002:000001d8 ??_C@_06DALJLGPG@eng?$DLen?$AA@ 0000000000005538 VlanConfigDxe:ComponentName.obj
+ 0002:000001e0 ??_C@_1DE@GEKDGKOO@?$AAV?$AAL?$AAA?$AAN?$AA?5?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AAu?$AAr?$AAa?$AAt?$AAi?$AAo?$AAn?$AA?5?$AAD?$AAr?$AAi?$AAv?$AAe?$AAr?$AA?$AA@ 0000000000005540 VlanConfigDxe:ComponentName.obj
+ 0002:00000218 ??_C@_0CC@PJDMNBJA@mHiiConfigRouting?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 0000000000005578 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:00000240 ??_C@_0EL@PDOFKHME@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000055a0 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:00000290 ??_C@_0BF@NDBIKIKC@CR?5has?5Bad?5Signature?$AA@ 00000000000055f0 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:000002a8 ??_C@_1O@LFMAFHMH@?$AAO?$AAF?$AAF?$AAS?$AAE?$AAT?$AA?$AA@ 0000000000005608 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:000002b8 ??_C@_0BO@KAEFIFMO@ConfigRequest?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000005618 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:000002d8 ??_C@_1DC@EPJEBJEB@?$AA?$CF?$AAs?$AA?$CG?$AAO?$AAF?$AAF?$AAS?$AAE?$AAT?$AA?$DN?$AA0?$AA?$CG?$AAW?$AAI?$AAD?$AAT?$AAH?$AA?$DN?$AA?$CF?$AA0?$AA1?$AA6?$AAL?$AAX?$AA?$AA@ 0000000000005638 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:00000310 ??_C@_0BO@DCPGBEOP@Configuration?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000005670 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:00000330 ??_C@_0CB@JHMGLMCO@PrivateData?9?$DONumberOfVlan?5?$DM?$DN?5100@ 0000000000005690 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:00000358 ??_C@_0CC@PIBHJFDN@StartOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 00000000000056b8 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:00000380 ??_C@_0CA@FMKGPAPI@EndOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000056e0 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:000003a0 ??_C@_1BG@KBIPMBNI@?$AA?5?$AA?5?$AAV?$AAL?$AAA?$AAN?$AA?5?$AAI?$AAD?$AA?3?$AA?$AA@ 0000000000005700 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:000003c0 ??_C@_1BI@MIKPFMIO@?$AA?0?$AA?5?$AAP?$AAr?$AAi?$AAo?$AAr?$AAi?$AAt?$AAy?$AA?3?$AA?$AA@ 0000000000005720 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:000003d8 ??_C@_0O@EMMLPDMJ@StringId?5?$CB?$DN?50?$AA@ 0000000000005738 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:000003f0 ??_C@_1DC@FBJMIKHD@?$AAV?$AAL?$AAA?$AAN?$AA?5?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AAu?$AAr?$AAa?$AAt?$AAi?$AAo?$AAn?$AA?5?$AA?$CI?$AAM?$AAA?$AAC?$AA?3?$AA?$AA@ 0000000000005750 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:00000424 ??_C@_13DIBMAFH@?$AA?$CJ?$AA?$AA@ 0000000000005784 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:00000428 ??_C@_0BH@IACGKAP@Buffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000005788 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:00000440 ??_C@_0FF@PKHNKPL@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000057a0 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:00000498 ??_C@_0DG@EEENIGGL@Length?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFFFFFULL@ 00000000000057f8 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:000004d0 ??_C@_0FG@BHBOFAHM@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000005830 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00000528 ??_C@_0DI@DAGDPLPG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 0000000000005888 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00000560 ??_C@_0CO@LECKNDNC@?$CI?$CI?$CIUINTN?$CJBuffer?$CJ?5?$CG?5?$CIsizeof?5?$CIValu@ 00000000000058c0 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00000590 ??_C@_0CF@LEICOABD@?$CILength?5?$CG?5?$CIsizeof?5?$CIValue?$CJ?5?9?51?$CJ?$CJ?5@ 00000000000058f0 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:000005b8 ??_C@_0CC@GFNLNIOC@?$CI?$CIUINTN?$CJString?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 0000000000005918 BaseLib:SafeString.obj
+ 0002:000005e0 ??_C@_0EF@MFKKFBPN@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000005940 BaseLib:SafeString.obj
+ 0002:00000628 ??_C@_0CH@LALFPBMC@?$CI?$CIUINTN?$CJDestination?5?$CG?50x00000001@ 0000000000005988 BaseLib:SafeString.obj
+ 0002:00000650 ??_C@_0CC@HEBCMBPF@?$CI?$CIUINTN?$CJSource?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 00000000000059b0 BaseLib:SafeString.obj
+ 0002:00000678 ??_C@_0BO@ECNIOIHG@?$CIDestination?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 00000000000059d8 BaseLib:SafeString.obj
+ 0002:00000698 ??_C@_07KBGDFDAM@StrCpyS?$AA@ 00000000000059f8 BaseLib:SafeString.obj
+ 0002:000006a0 ??_C@_0EA@PDPDJJNN@?$CFa?$CI?$CFd?$CJ?5?$CFa?3?5SAFE_STRING_CONSTRAIN@ 0000000000005a00 BaseLib:SafeString.obj
+ 0002:000006e0 ??_C@_0BJ@EAEEJIP@?$CISource?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 0000000000005a40 BaseLib:SafeString.obj
+ 0002:00000700 ??_C@_0EA@BBALOHPI@?$CIDestMax?5?$DM?$DN?5?$CI_gPcd_FixedAtBuild_@ 0000000000005a60 BaseLib:SafeString.obj
+ 0002:00000740 ??_C@_0P@PMIMLIHM@?$CIDestMax?5?$CB?$DN?50?$CJ?$AA@ 0000000000005aa0 BaseLib:SafeString.obj
+ 0002:00000750 ??_C@_0BG@EEGIIOKH@?$CIDestMax?5?$DO?5SourceLen?$CJ?$AA@ 0000000000005ab0 BaseLib:SafeString.obj
+ 0002:00000770 ??_C@_0FH@PPBLBDBJ@InternalSafeStringNoStrOverlap?5?$CI@ 0000000000005ad0 BaseLib:SafeString.obj
+ 0002:000007c8 ??_C@_07EBBOPAKF@StrCatS?$AA@ 0000000000005b28 BaseLib:SafeString.obj
+ 0002:000007d0 ??_C@_0P@BHOOOJPD@?$CICopyLen?5?$CB?$DN?50?$CJ?$AA@ 0000000000005b30 BaseLib:SafeString.obj
+ 0002:000007e0 ??_C@_0BG@BPGICNPK@?$CICopyLen?5?$DO?5SourceLen?$CJ?$AA@ 0000000000005b40 BaseLib:SafeString.obj
+ 0002:000007f8 ??_C@_0BJ@CNKJJNE@?$CIBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 0000000000005b58 BaseLib:SafeString.obj
+ 0002:00000818 ??_C@_0BH@MAAHKCPC@String?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000005b78 BaseLib:String.obj
+ 0002:00000830 ??_C@_0EB@OHCINBMP@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000005b90 BaseLib:String.obj
+ 0002:00000878 ??_C@_0DK@EOJCOAME@Length?5?$DM?5_gPcd_FixedAtBuild_PcdM@ 0000000000005bd8 BaseLib:String.obj
+ 0002:000008b8 ??_C@_0BL@JAAMOCAJ@StrSize?5?$CIFirstString?$CJ?5?$CB?$DN?50?$AA@ 0000000000005c18 BaseLib:String.obj
+ 0002:000008d8 ??_C@_0BM@DALBOILC@StrSize?5?$CISecondString?$CJ?5?$CB?$DN?50?$AA@ 0000000000005c38 BaseLib:String.obj
+ 0002:000008f8 ??_C@_0DL@LFIMEMJP@Length?5?$DM?$DN?5_gPcd_FixedAtBuild_Pcd@ 0000000000005c58 BaseLib:String.obj
+ 0002:00000938 ??_C@_0BG@KBNOLIGE@StrSize?5?$CIString?$CJ?5?$CB?$DN?50?$AA@ 0000000000005c98 BaseLib:String.obj
+ 0002:00000950 ??_C@_0BM@NNBLOHJD@StrSize?5?$CISearchString?$CJ?5?$CB?$DN?50?$AA@ 0000000000005cb0 BaseLib:String.obj
+ 0002:00000970 ??_C@_0DI@MDIKFADO@Length?5?$DM?5_gPcd_FixedAtBuild_PcdM@ 0000000000005cd0 BaseLib:String.obj
+ 0002:000009a8 ??_C@_0BL@IKFBNFIL@AsciiStrSize?5?$CIFirstString?$CJ?$AA@ 0000000000005d08 BaseLib:String.obj
+ 0002:000009c8 ??_C@_0BM@EDNOKLLE@AsciiStrSize?5?$CISecondString?$CJ?$AA@ 0000000000005d28 BaseLib:String.obj
+ 0002:000009e8 ??_C@_0DJ@JJHGIFMP@Length?5?$DM?$DN?5_gPcd_FixedAtBuild_Pcd@ 0000000000005d48 BaseLib:String.obj
+ 0002:00000a28 ??_C@_0N@KGHEHMDL@Divisor?5?$CB?$DN?50?$AA@ 0000000000005d88 BaseLib:DivU64x32.obj
+ 0002:00000a38 ??_C@_0CI@BGLNHBLM@?$CI?$CI?$CIUINTN?$CJ?5?$CIStartOfBuffer?$CJ?$CJ?5?$CG?50x0@ 0000000000005d98 BasePrintLib:PrintLib.obj
+ 0002:00000a60 ??_C@_0EI@PHEOPKNG@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000005dc0 BasePrintLib:PrintLib.obj
+ 0002:00000aa8 ??_C@_0CH@KJLBGOBB@?$CI?$CI?$CIUINTN?$CJ?5?$CIFormatString?$CJ?$CJ?5?$CG?50x01@ 0000000000005e08 BasePrintLib:PrintLib.obj
+ 0002:00000ad0 ??_C@_0CB@LDBAOPMG@?$CI?$CI?$CIUINTN?$CJ?5?$CIBuffer?$CJ?$CJ?5?$CG?50x01?$CJ?5?$DN?$DN?50@ 0000000000005e30 BasePrintLib:PrintLib.obj
+ 0002:00000b00 ??_C@_0FA@JGMHCDLA@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000005e60 BasePrintLib:PrintLibInternal.obj
+ 0002:00000b50 ??_C@_0EB@HDGIDCIO@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 0000000000005eb0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000ba0 ??_C@_0FJ@HAEMOBLP@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 0000000000005f00 BasePrintLib:PrintLibInternal.obj
+ 0002:00000c00 ??_C@_0CO@OJNGHNJG@?$CI?$CIFlags?5?$CG?5?$HO?$CI0x01?5?$HM?50x08?5?$HM?50x20?5?$HM@ 0000000000005f60 BasePrintLib:PrintLibInternal.obj
+ 0002:00000c30 ??_C@_0DB@HIDPIAGP@?$CI?$CI?$CIFlags?5?$CG?50x08?$CJ?5?$DN?$DN?50?$CJ?5?$HM?$HM?5?$CI?$CIFlag@ 0000000000005f90 BasePrintLib:PrintLibInternal.obj
+ 0002:00000c68 ??_C@_0N@PNKFBKME@?$CIWidth?5?$DM?538?$CJ?$AA@ 0000000000005fc8 BasePrintLib:PrintLibInternal.obj
+ 0002:00000c78 ??_C@_0CI@HPJOGFNE@?$CIBufferSize?5?$DO?$DN?5?$CIWidth?5?$CL?51?$CJ?5?$CK?5Inc@ 0000000000005fd8 BasePrintLib:PrintLibInternal.obj
+ 0002:00000ca0 ??_C@_0BJ@PPAKKDJG@?$CIFormat?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 0000000000006000 BasePrintLib:PrintLibInternal.obj
+ 0002:00000cc0 ??_C@_0ED@LPDDCECB@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 0000000000006020 BasePrintLib:PrintLibInternal.obj
+ 0002:00000d10 ??_C@_0IM@BFJJFLGB@?$CIStrnLenS?5?$CI?$CICHAR16?5?$CK?$CJFormat?0?5?$CI_g@ 0000000000006070 BasePrintLib:PrintLibInternal.obj
+ 0002:00000da0 ??_C@_0ID@PLGJGION@?$CIAsciiStrnLenS?5?$CIFormat?0?5?$CI_gPcd_F@ 0000000000006100 BasePrintLib:PrintLibInternal.obj
+ 0002:00000e28 ??_C@_0O@MLOLIMFM@?$DMnull?5string?$DO?$AA@ 0000000000006188 BasePrintLib:PrintLibInternal.obj
+ 0002:00000e38 ??_C@_0M@BJJDNPHK@?$DMnull?5guid?$DO?$AA@ 0000000000006198 BasePrintLib:PrintLibInternal.obj
+ 0002:00000e48 ??_C@_0DB@PMLHLBMO@?$CF08x?9?$CF04x?9?$CF04x?9?$CF02x?$CF02x?9?$CF02x?$CF02x@ 00000000000061a8 BasePrintLib:PrintLibInternal.obj
+ 0002:00000e80 ??_C@_0M@LHGBCIKM@?$DMnull?5time?$DO?$AA@ 00000000000061e0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000e90 ??_C@_0BK@FCPKCIDD@?$CF02d?1?$CF02d?1?$CF04d?5?5?$CF02d?3?$CF02d?$AA@ 00000000000061f0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000eac ??_C@_04JIMNDDED@?$CF08X?$AA@ 000000000000620c BasePrintLib:PrintLibInternal.obj
+ 0002:00000eb4 ??_C@_02PCIJFNDE@?$AN?6?$AA@ 0000000000006214 BasePrintLib:PrintLibInternal.obj
+ 0002:00000eb8 ??_C@_01LIIJDEN@?$AN?$AA@ 0000000000006218 BasePrintLib:PrintLibInternal.obj
+ 0002:00000ec0 mWarningString 0000000000006220 BasePrintLib:PrintLibInternal.obj
+ 0002:00000f60 mErrorString 00000000000062c0 BasePrintLib:PrintLibInternal.obj
+ 0002:00001220 mHexStr 0000000000006580 BasePrintLib:PrintLibInternal.obj
+ 0002:00001230 ??_C@_0BH@LKMBFCBF@Format?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006590 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00001250 ??_C@_0FD@OABGLBHF@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000065b0 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:000012a8 ??_C@_0BE@ECBJLCDE@ASSERT?5?$CFa?$CI?$CFLu?$CJ?3?5?$CFa?6?$AA@ 0000000000006608 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:000012c0 ??_C@_0BN@COECPDCC@gImageHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006620 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:000012e0 ??_C@_0GE@FKBNDHHB@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000006640 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00001348 ??_C@_0BE@DGNHAHIL@gST?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000066a8 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00001360 ??_C@_0BE@BDFJLGLN@gBS?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000066c0 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00001380 ??_C@_0FO@BEMDJMPM@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000066e0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:000013e0 ??_C@_0DO@GEEICOOO@AllocationSize?5?$DM?$DN?5?$CI0xFFFFFFFFFFF@ 0000000000006740 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:00001420 ??_C@_0BE@OBDFIHND@gRT?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006780 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:00001440 ??_C@_0GK@FJIMGEPP@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000067a0 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:000014b0 ??_C@_0GI@KEFAHLGJ@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000006810 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00001518 ??_C@_0DC@CNNBPJA@mDevicePathLibDevicePathUtilitie@ 0000000000006878 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00001550 ??_C@_0BF@CBLMFKOC@Node?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000068b0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00001570 ??_C@_0EK@CMFOJGEC@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000068d0 UefiLib:UefiDriverModel.obj
+ 0002:000015c0 ??_C@_0FO@HNLMMFDN@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000006920 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0002:00001620 ??_C@_0EK@GBBIEMHN@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000006980 DxeNetLib:DxeNetLib.obj
+ 0002:00001670 ??_C@_0BK@GPKNKKJO@MacString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000069d0 DxeNetLib:DxeNetLib.obj
+ 0002:00001690 ??_C@_0BK@KLJHMMPJ@HiiHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000069f0 UefiHiiLib:HiiString.obj
+ 0002:000016b0 ??_C@_0EN@DDBLCGFI@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000006a10 UefiHiiLib:HiiString.obj
+ 0002:00001700 ??_C@_06PLDEFKP@x?9UEFI?$AA@ 0000000000006a60 UefiHiiLib:HiiString.obj
+ 0002:00001708 ??_C@_0CA@OEKIMLLB@PackageListGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006a68 UefiHiiLib:HiiString.obj
+ 0002:00001730 ??_C@_0EK@CCOCGB@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000006a90 UefiHiiLib:HiiLib.obj
+ 0002:00001780 ??_C@_0BN@EHPNHAIF@ConfigString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006ae0 UefiHiiLib:HiiLib.obj
+ 0002:000017a0 ??_C@_0BG@MJAHJKJ@Block?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006b00 UefiHiiLib:HiiLib.obj
+ 0002:000017b8 ??_C@_1M@DPLGJLCD@?$AAG?$AAU?$AAI?$AAD?$AA?$DN?$AA?$AA@ 0000000000006b18 UefiHiiLib:HiiLib.obj
+ 0002:000017c8 ??_C@_1O@FMIENBLJ@?$AA?$CG?$AAN?$AAA?$AAM?$AAE?$AA?$DN?$AA?$AA@ 0000000000006b28 UefiHiiLib:HiiLib.obj
+ 0002:000017d8 ??_C@_1O@GGMHNGIF@?$AA?$CG?$AAP?$AAA?$AAT?$AAH?$AA?$DN?$AA?$AA@ 0000000000006b38 UefiHiiLib:HiiLib.obj
+ 0002:000017e8 ??_C@_0BM@LENJOOBF@FirstString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006b48 UefiHiiLib:HiiLib.obj
+ 0002:00001808 ??_C@_0BN@CGMEJHHH@SecondString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006b68 UefiHiiLib:HiiLib.obj
+ 0002:00001828 ??_C@_0CC@BCKDEPBB@StartSearchString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 0000000000006b88 UefiHiiLib:HiiLib.obj
+ 0002:00001850 ??_C@_0CB@NPMPBLHL@StopSearchString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ@ 0000000000006bb0 UefiHiiLib:HiiLib.obj
+ 0002:00001878 ??_C@_0BK@LFDBOAFJ@ConfigHdr?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006bd8 UefiHiiLib:HiiLib.obj
+ 0002:00001898 ??_C@_1M@IDEFLMF@?$AA?$CF?$AAs?$AA?$CG?$AA?$CF?$AAs?$AA?$AA@ 0000000000006bf8 UefiHiiLib:HiiLib.obj
+ 0002:000018a8 ??_C@_0BN@OKKMNGPH@OpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006c08 UefiHiiLib:HiiLib.obj
+ 0002:000018c8 ??_C@_0BP@IOABAFLF@OpCodeTemplate?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006c28 UefiHiiLib:HiiLib.obj
+ 0002:000018e8 ??_C@_0CF@DPHCOLMP@?$CIOpCodeSize?5?$CL?5ExtensionSize?$CJ?5?$DM?$DN?5@ 0000000000006c48 UefiHiiLib:HiiLib.obj
+ 0002:00001910 mConfigHdrTemplate 0000000000006c70 UefiHiiLib:HiiLib.obj
+ 0002:00001980 mEndOfPakageList 0000000000006ce0 UefiHiiLib:HiiLib.obj
+ 0002:00001990 ??_C@_0EP@LMJDKFAP@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000006cf0 UefiHiiLib:HiiLanguage.obj
+ 0002:000019e0 ??_C@_0ED@MKGCMJG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 0000000000006d40 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00001a30 ??_C@_0FF@LLAFLLDM@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000006d90 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00001a88 ??_C@_0DO@MAOBOFEG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 0000000000006de8 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00001ac8 ??_C@_0CC@JOEHDGKB@DestinationBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 0000000000006e28 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00001af0 ??_C@_0FI@NCCCHAEB@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000006e50 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00001b48 ??_C@_0BN@MDMCNBCC@SourceBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006ea8 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00001b70 ??_C@_0EE@FAJFAODK@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000006ed0 BaseLib:Unaligned.obj
+ 0002:00001bc0 ??_C@_0EN@EIGKPMFG@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000006f20 BaseLib:DivU64x32Remainder.obj
+ 0003:00000000 gEfiLoadedImageProtocolGuid 0000000000007120 VlanConfigDxe:AutoGen.obj
+ 0003:00000010 gEfiIfrTianoGuid 0000000000007130 VlanConfigDxe:AutoGen.obj
+ 0003:00000020 gEfiComponentName2ProtocolGuid 0000000000007140 VlanConfigDxe:AutoGen.obj
+ 0003:00000030 gEfiVlanConfigProtocolGuid 0000000000007150 VlanConfigDxe:AutoGen.obj
+ 0003:00000040 gEfiDevicePathProtocolGuid 0000000000007160 VlanConfigDxe:AutoGen.obj
+ 0003:00000050 VlanConfigDxeStrings 0000000000007170 VlanConfigDxe:AutoGen.obj
+ 0003:00000438 gEfiSimpleNetworkProtocolGuid 0000000000007558 VlanConfigDxe:AutoGen.obj
+ 0003:00000448 gEfiHiiConfigRoutingProtocolGuid 0000000000007568 VlanConfigDxe:AutoGen.obj
+ 0003:00000458 gEfiHiiImageProtocolGuid 0000000000007578 VlanConfigDxe:AutoGen.obj
+ 0003:00000468 gEfiDevicePathUtilitiesProtocolGuid 0000000000007588 VlanConfigDxe:AutoGen.obj
+ 0003:00000478 gEfiHiiDatabaseProtocolGuid 0000000000007598 VlanConfigDxe:AutoGen.obj
+ 0003:00000488 gEfiHiiStringProtocolGuid 00000000000075a8 VlanConfigDxe:AutoGen.obj
+ 0003:00000498 gEfiHiiConfigAccessProtocolGuid 00000000000075b8 VlanConfigDxe:AutoGen.obj
+ 0003:000004a8 gEfiManagedNetworkServiceBindingProtocolGuid 00000000000075c8 VlanConfigDxe:AutoGen.obj
+ 0003:000004b8 gEfiFormBrowser2ProtocolGuid 00000000000075d8 VlanConfigDxe:AutoGen.obj
+ 0003:000004c8 gEfiDriverBindingProtocolGuid 00000000000075e8 VlanConfigDxe:AutoGen.obj
+ 0003:000004d8 gEfiComponentNameProtocolGuid 00000000000075f8 VlanConfigDxe:AutoGen.obj
+ 0003:000004e8 gEfiCallerIdGuid 0000000000007608 VlanConfigDxe:AutoGen.obj
+ 0003:000004f8 gEfiManagedNetworkProtocolGuid 0000000000007618 VlanConfigDxe:AutoGen.obj
+ 0003:00000510 gVlanConfigFormSetGuid 0000000000007630 VlanConfigDxe:AutoGen.obj
+ 0003:00000520 gEfiHiiFontProtocolGuid 0000000000007640 VlanConfigDxe:AutoGen.obj
+ 0003:00000530 gVlanConfigDriverBinding 0000000000007650 VlanConfigDxe:VlanConfigDriver.obj
+ 0003:00000560 gVlanConfigComponentName2 0000000000007680 VlanConfigDxe:ComponentName.obj
+ 0003:00000578 gVlanConfigComponentName 0000000000007698 VlanConfigDxe:ComponentName.obj
+ 0003:00000590 mVlanConfigDriverNameTable 00000000000076b0 VlanConfigDxe:ComponentName.obj
+ 0003:000005b0 mVlanConfigPrivateDateTemplate 00000000000076d0 VlanConfigDxe:VlanConfigImpl.obj
+ 0003:000006e0 mVlanStorageName 0000000000007800 VlanConfigDxe:VlanConfigImpl.obj
+ 0003:000006f8 mHiiVendorDevicePathNode 0000000000007818 VlanConfigDxe:VlanConfigImpl.obj
+ 0003:00000710 VlanConfigBin 0000000000007830 VlanConfigDxe:VlanConfig.obj
+ 0003:00000820 mNetVlanDevicePathTemplate 0000000000007940 DxeNetLib:DxeNetLib.obj
+ 0003:00000828 mHiiConfigRouting 0000000000007948 VlanConfigDxe:VlanConfigImpl.obj
+ 0003:00000838 gST 0000000000007958 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00000840 gBS 0000000000007960 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00000848 gImageHandle 0000000000007968 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00000850 gRT 0000000000007970 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0003:00000858 mDevicePathLibDevicePathUtilities 0000000000007978 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0003:00000860 gHiiString 0000000000007980 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000868 gHiiFont 0000000000007988 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000870 gHiiConfigRouting 0000000000007990 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000878 gHiiImage 0000000000007998 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000880 gHiiDatabase 00000000000079a0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000888 mUefiFormBrowser2 00000000000079a8 UefiHiiLib:HiiLib.obj
+
+ entry point at 0001:0000049c
+
+ Static symbols
+
+ 0001:0000005a InternalMemCopyMem.0 000000000000031a BaseMemoryLibRepStr:CopyMem.obj
+ 0001:0000006a @CopyBackward 000000000000032a BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000073 @CopyBytes 0000000000000333 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:0000014a @UseRepIo 000000000000040a BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000014c @SevNoRepIo_Done 000000000000040c BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000164 @IoReadFifo8_NoRep 0000000000000424 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000166 @IoReadFifo8_Loop 0000000000000426 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000016e @IoReadFifo8_Done 000000000000042e BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000187 @IoReadFifo16_NoRep 0000000000000447 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000189 @IoReadFifo16_Loop 0000000000000449 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000194 @IoReadFifo16_Done 0000000000000454 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001ac @IoReadFifo32_NoRep 000000000000046c BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001ae @IoReadFifo32_Loop 000000000000046e BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001b7 @IoReadFifo32_Done 0000000000000477 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001cf @IoWriteFifo8_NoRep 000000000000048f BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001d1 @IoWriteFifo8_Loop 0000000000000491 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001d9 @IoWriteFifo8_Done 0000000000000499 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001f2 @IoWriteFifo16_NoRep 00000000000004b2 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001f4 @IoWriteFifo16_Loop 00000000000004b4 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001ff @IoWriteFifo16_Done 00000000000004bf BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000217 @IoWriteFifo32_NoRep 00000000000004d7 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000219 @IoWriteFifo32_Loop 00000000000004d9 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000222 @IoWriteFifo32_Done 00000000000004e2 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000028e TdVmCall.no_return_data 000000000000054e BaseLib:TdVmcall.obj
+ 0001:0000030b TdCall.exit 00000000000005cb BaseLib:TdCall.obj
+ 0003:00000830 mDebugIoPortChecked 0000000000007950 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0003:00000831 mDebugIoPortFound 0000000000007951 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0004:00000000 $pdata$_DriverUnloadHandler 00000000000079c0 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0004:0000000c $pdata$_ModuleEntryPoint 00000000000079cc UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0004:00000018 $pdata$ProcessLibraryConstructorList 00000000000079d8 VlanConfigDxe:AutoGen.obj
+ 0004:00000024 $pdata$VlanConfigDriverBindingSupported 00000000000079e4 VlanConfigDxe:VlanConfigDriver.obj
+ 0004:00000030 $pdata$VlanConfigDriverBindingStart 00000000000079f0 VlanConfigDxe:VlanConfigDriver.obj
+ 0004:0000003c $pdata$VlanConfigDriverBindingStop 00000000000079fc VlanConfigDxe:VlanConfigDriver.obj
+ 0004:00000048 $pdata$VlanConfigComponentNameGetDriverName 0000000000007a08 VlanConfigDxe:ComponentName.obj
+ 0004:00000054 $pdata$VlanExtractConfig 0000000000007a14 VlanConfigDxe:VlanConfigImpl.obj
+ 0004:00000060 $pdata$VlanRouteConfig 0000000000007a20 VlanConfigDxe:VlanConfigImpl.obj
+ 0004:0000006c $pdata$VlanCallback 0000000000007a2c VlanConfigDxe:VlanConfigImpl.obj
+ 0004:00000078 $pdata$VlanUpdateForm 0000000000007a38 VlanConfigDxe:VlanConfigImpl.obj
+ 0004:00000084 $pdata$InstallVlanConfigForm 0000000000007a44 VlanConfigDxe:VlanConfigImpl.obj
+ 0004:00000090 $pdata$UninstallVlanConfigForm 0000000000007a50 VlanConfigDxe:VlanConfigImpl.obj
+ 0004:0000009c $pdata$ZeroMem 0000000000007a5c BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0004:000000a8 $pdata$StrnLenS 0000000000007a68 BaseLib:SafeString.obj
+ 0004:000000b4 $pdata$StrCpyS 0000000000007a74 BaseLib:SafeString.obj
+ 0004:000000c0 $pdata$StrCatS 0000000000007a80 BaseLib:SafeString.obj
+ 0004:000000cc $pdata$StrLen 0000000000007a8c BaseLib:String.obj
+ 0004:000000d8 $pdata$StrnCmp 0000000000007a98 BaseLib:String.obj
+ 0004:000000e4 $pdata$StrStr 0000000000007aa4 BaseLib:String.obj
+ 0004:000000f0 $pdata$AsciiStrLen 0000000000007ab0 BaseLib:String.obj
+ 0004:000000fc $pdata$AsciiStrnCmp 0000000000007abc BaseLib:String.obj
+ 0004:00000108 $pdata$UnicodeSPrint 0000000000007ac8 BasePrintLib:PrintLib.obj
+ 0004:00000114 $pdata$UnicodeValueToStringS 0000000000007ad4 BasePrintLib:PrintLib.obj
+ 0004:00000120 $pdata$AsciiSPrint 0000000000007ae0 BasePrintLib:PrintLib.obj
+ 0004:0000012c $pdata$BasePrintLibValueToString 0000000000007aec BasePrintLib:PrintLibInternal.obj
+ 0004:00000138 $pdata$BasePrintLibConvertValueToStringS 0000000000007af8 BasePrintLib:PrintLibInternal.obj
+ 0004:00000144 $pdata$BasePrintLibSPrintMarker 0000000000007b04 BasePrintLib:PrintLibInternal.obj
+ 0004:00000150 $pdata$BasePrintLibSPrint 0000000000007b10 BasePrintLib:PrintLibInternal.obj
+ 0004:0000015c $pdata$DebugPrint 0000000000007b1c PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000168 $pdata$DebugPrintMarker 0000000000007b28 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000174 $pdata$DebugAssert 0000000000007b34 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000180 $pdata$PlatformDebugLibIoPortFound 0000000000007b40 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0004:0000018c $pdata$InternalAllocatePool 0000000000007b4c UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000198 $pdata$AllocateZeroPool 0000000000007b58 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:000001a4 $pdata$InternalAllocateCopyPool 0000000000007b64 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:000001b0 $pdata$InternalReallocatePool 0000000000007b70 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:000001bc $pdata$FreePool 0000000000007b7c UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:000001c8 $pdata$DevicePathSubType 0000000000007b88 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000001d4 $pdata$DevicePathNodeLength 0000000000007b94 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000001e0 $pdata$NextDevicePathNode 0000000000007ba0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000001ec $pdata$IsDevicePathEndType 0000000000007bac UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000001f8 $pdata$IsDevicePathEnd 0000000000007bb8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000204 $pdata$DevicePathFromHandle 0000000000007bc4 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000210 $pdata$CompareIso639LanguageCode 0000000000007bd0 UefiLib:UefiLib.obj
+ 0004:0000021c $pdata$IsLanguageSupported 0000000000007bdc UefiLib:UefiLib.obj
+ 0004:00000228 $pdata$NetLibGetSnpHandle 0000000000007be8 DxeNetLib:DxeNetLib.obj
+ 0004:00000234 $pdata$NetLibGetVlanHandle 0000000000007bf4 DxeNetLib:DxeNetLib.obj
+ 0004:00000240 $pdata$NetLibGetMacString 0000000000007c00 DxeNetLib:DxeNetLib.obj
+ 0004:0000024c $pdata$HiiSetString 0000000000007c0c UefiHiiLib:HiiString.obj
+ 0004:00000258 $pdata$HiiAddPackages 0000000000007c18 UefiHiiLib:HiiLib.obj
+ 0004:00000264 $pdata$InternalHiiBrowserCallback 0000000000007c24 UefiHiiLib:HiiLib.obj
+ 0004:00000270 $pdata$HiiConstructConfigHdr 0000000000007c30 UefiHiiLib:HiiLib.obj
+ 0004:0000027c $pdata$InternalHiiCompareSubString 0000000000007c3c UefiHiiLib:HiiLib.obj
+ 0004:00000288 $pdata$HiiIsConfigHdrMatch 0000000000007c48 UefiHiiLib:HiiLib.obj
+ 0004:00000294 $pdata$HiiGetBrowserData 0000000000007c54 UefiHiiLib:HiiLib.obj
+ 0004:000002a0 $pdata$HiiSetBrowserData 0000000000007c60 UefiHiiLib:HiiLib.obj
+ 0004:000002ac $pdata$HiiAllocateOpCodeHandle 0000000000007c6c UefiHiiLib:HiiLib.obj
+ 0004:000002b8 $pdata$InternalHiiGrowOpCodeHandle 0000000000007c78 UefiHiiLib:HiiLib.obj
+ 0004:000002c4 $pdata$InternalHiiCreateOpCodeExtended 0000000000007c84 UefiHiiLib:HiiLib.obj
+ 0004:000002d0 $pdata$HiiCreateGuidOpCode 0000000000007c90 UefiHiiLib:HiiLib.obj
+ 0004:000002dc $pdata$InternalHiiUpdateFormPackageData 0000000000007c9c UefiHiiLib:HiiLib.obj
+ 0004:000002e8 $pdata$HiiUpdateForm 0000000000007ca8 UefiHiiLib:HiiLib.obj
+ 0004:000002f4 $pdata$HiiGetSupportedLanguages 0000000000007cb4 UefiHiiLib:HiiLanguage.obj
+ 0004:00000300 $pdata$CopyGuid 0000000000007cc0 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0004:0000030c $pdata$CompareGuid 0000000000007ccc BaseMemoryLibRepStr:MemLibGuid.obj
+ 0004:00000318 $pdata$CopyMem 0000000000007cd8 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0004:00000324 $pdata$CompareMem 0000000000007ce4 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0004:00000330 $pdata$ReadUnaligned32 0000000000007cf0 BaseLib:Unaligned.obj
+ 0004:0000033c $pdata$ReadUnaligned64 0000000000007cfc BaseLib:Unaligned.obj
+ 0004:00000348 $pdata$IoWriteFifo8 0000000000007d08 BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0004:00000354 $pdata$TdIoRead8 0000000000007d14 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0004:00000360 $pdata$TdIoWrite8 0000000000007d20 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:00000000 $unwind$_DriverUnloadHandler 0000000000007d40 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0005:00000010 $unwind$_ModuleEntryPoint 0000000000007d50 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0005:0000001c $unwind$ProcessLibraryConstructorList 0000000000007d5c VlanConfigDxe:AutoGen.obj
+ 0005:0000001c $unwind$CopyMem 0000000000007d5c BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0005:0000001c $unwind$BasePrintLibValueToString 0000000000007d5c BasePrintLib:PrintLibInternal.obj
+ 0005:0000001c $unwind$InternalReallocatePool 0000000000007d5c UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:0000001c $unwind$InternalHiiCompareSubString 0000000000007d5c UefiHiiLib:HiiLib.obj
+ 0005:0000001c $unwind$StrnCmp 0000000000007d5c BaseLib:String.obj
+ 0005:00000030 $unwind$VlanConfigDriverBindingSupported 0000000000007d70 VlanConfigDxe:VlanConfigDriver.obj
+ 0005:00000040 $unwind$VlanConfigDriverBindingStart 0000000000007d80 VlanConfigDxe:VlanConfigDriver.obj
+ 0005:0000004c $unwind$VlanConfigDriverBindingStop 0000000000007d8c VlanConfigDxe:VlanConfigDriver.obj
+ 0005:00000060 $unwind$VlanConfigComponentNameGetDriverName 0000000000007da0 VlanConfigDxe:ComponentName.obj
+ 0005:00000078 $unwind$VlanExtractConfig 0000000000007db8 VlanConfigDxe:VlanConfigImpl.obj
+ 0005:00000098 $unwind$ZeroMem 0000000000007dd8 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0005:00000098 $unwind$CompareIso639LanguageCode 0000000000007dd8 UefiLib:UefiLib.obj
+ 0005:00000098 $unwind$AsciiStrLen 0000000000007dd8 BaseLib:String.obj
+ 0005:00000098 $unwind$VlanRouteConfig 0000000000007dd8 VlanConfigDxe:VlanConfigImpl.obj
+ 0005:00000098 $unwind$StrnLenS 0000000000007dd8 BaseLib:SafeString.obj
+ 0005:00000098 $unwind$InternalAllocateCopyPool 0000000000007dd8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000098 $unwind$IsDevicePathEnd 0000000000007dd8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000098 $unwind$HiiGetSupportedLanguages 0000000000007dd8 UefiHiiLib:HiiLanguage.obj
+ 0005:000000a4 $unwind$VlanCallback 0000000000007de4 VlanConfigDxe:VlanConfigImpl.obj
+ 0005:000000c0 $unwind$VlanUpdateForm 0000000000007e00 VlanConfigDxe:VlanConfigImpl.obj
+ 0005:000000dc $unwind$InstallVlanConfigForm 0000000000007e1c VlanConfigDxe:VlanConfigImpl.obj
+ 0005:000000f0 $unwind$UninstallVlanConfigForm 0000000000007e30 VlanConfigDxe:VlanConfigImpl.obj
+ 0005:000000fc $unwind$StrCpyS 0000000000007e3c BaseLib:SafeString.obj
+ 0005:00000114 $unwind$StrCatS 0000000000007e54 BaseLib:SafeString.obj
+ 0005:00000130 $unwind$IsLanguageSupported 0000000000007e70 UefiLib:UefiLib.obj
+ 0005:00000130 $unwind$InternalHiiGrowOpCodeHandle 0000000000007e70 UefiHiiLib:HiiLib.obj
+ 0005:00000130 $unwind$AsciiStrnCmp 0000000000007e70 BaseLib:String.obj
+ 0005:00000130 $unwind$CompareGuid 0000000000007e70 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0005:00000130 $unwind$HiiIsConfigHdrMatch 0000000000007e70 UefiHiiLib:HiiLib.obj
+ 0005:00000130 $unwind$CopyGuid 0000000000007e70 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0005:00000130 $unwind$StrStr 0000000000007e70 BaseLib:String.obj
+ 0005:00000130 $unwind$StrLen 0000000000007e70 BaseLib:String.obj
+ 0005:00000130 $unwind$IoWriteFifo8 0000000000007e70 BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0005:00000140 $unwind$UnicodeSPrint 0000000000007e80 BasePrintLib:PrintLib.obj
+ 0005:0000014c $unwind$UnicodeValueToStringS 0000000000007e8c BasePrintLib:PrintLib.obj
+ 0005:00000160 $unwind$AsciiSPrint 0000000000007ea0 BasePrintLib:PrintLib.obj
+ 0005:00000168 $unwind$BasePrintLibConvertValueToStringS 0000000000007ea8 BasePrintLib:PrintLibInternal.obj
+ 0005:00000184 $unwind$BasePrintLibSPrintMarker 0000000000007ec4 BasePrintLib:PrintLibInternal.obj
+ 0005:000001a0 $unwind$BasePrintLibSPrint 0000000000007ee0 BasePrintLib:PrintLibInternal.obj
+ 0005:000001a8 $unwind$DebugPrint 0000000000007ee8 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:000001b0 $unwind$DebugPrintMarker 0000000000007ef0 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:000001c4 $unwind$DebugAssert 0000000000007f04 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:000001d0 $unwind$PlatformDebugLibIoPortFound 0000000000007f10 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0005:000001d0 $unwind$DevicePathFromHandle 0000000000007f10 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:000001d0 $unwind$InternalAllocatePool 0000000000007f10 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:000001d0 $unwind$FreePool 0000000000007f10 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:000001d8 $unwind$DevicePathSubType 0000000000007f18 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:000001d8 $unwind$NextDevicePathNode 0000000000007f18 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:000001d8 $unwind$IsDevicePathEndType 0000000000007f18 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:000001d8 $unwind$ReadUnaligned64 0000000000007f18 BaseLib:Unaligned.obj
+ 0005:000001d8 $unwind$DevicePathNodeLength 0000000000007f18 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:000001d8 $unwind$HiiAllocateOpCodeHandle 0000000000007f18 UefiHiiLib:HiiLib.obj
+ 0005:000001d8 $unwind$AllocateZeroPool 0000000000007f18 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:000001d8 $unwind$ReadUnaligned32 0000000000007f18 BaseLib:Unaligned.obj
+ 0005:000001e0 $unwind$NetLibGetVlanHandle 0000000000007f20 DxeNetLib:DxeNetLib.obj
+ 0005:000001e0 $unwind$NetLibGetSnpHandle 0000000000007f20 DxeNetLib:DxeNetLib.obj
+ 0005:000001ec $unwind$NetLibGetMacString 0000000000007f2c DxeNetLib:DxeNetLib.obj
+ 0005:00000208 $unwind$HiiSetString 0000000000007f48 UefiHiiLib:HiiString.obj
+ 0005:00000220 $unwind$HiiAddPackages 0000000000007f60 UefiHiiLib:HiiLib.obj
+ 0005:00000234 $unwind$InternalHiiBrowserCallback 0000000000007f74 UefiHiiLib:HiiLib.obj
+ 0005:00000248 $unwind$HiiConstructConfigHdr 0000000000007f88 UefiHiiLib:HiiLib.obj
+ 0005:00000264 $unwind$HiiGetBrowserData 0000000000007fa4 UefiHiiLib:HiiLib.obj
+ 0005:00000278 $unwind$HiiSetBrowserData 0000000000007fb8 UefiHiiLib:HiiLib.obj
+ 0005:00000288 $unwind$InternalHiiCreateOpCodeExtended 0000000000007fc8 UefiHiiLib:HiiLib.obj
+ 0005:00000288 $unwind$CompareMem 0000000000007fc8 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0005:000002a0 $unwind$HiiCreateGuidOpCode 0000000000007fe0 UefiHiiLib:HiiLib.obj
+ 0005:000002a8 $unwind$InternalHiiUpdateFormPackageData 0000000000007fe8 UefiHiiLib:HiiLib.obj
+ 0005:000002c4 $unwind$HiiUpdateForm 0000000000008004 UefiHiiLib:HiiLib.obj
+ 0005:000002dc $unwind$TdIoRead8 000000000000801c BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:000002e4 $unwind$TdIoWrite8 0000000000008024 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfigProcessed.yml b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfigProcessed.yml
new file mode 100644
index 000000000000..178c0931a861
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/DEBUG/VlanConfigProcessed.yml
@@ -0,0 +1,59 @@
+formset:
+ classguid: '{0x93039971, 0x8545, 0x4b04, {0xb4, 0x5e, 0x32, 0xeb, 0x83, 0x26, 0x4, 0xe}}'
+ component:
+ - varstore:
+ guid: '{0xd79df6b0, 0xef44, 0x43bd, {0x97, 0x97, 0x43, 0xe9, 0x3b, 0xcf, 0x5f, 0xa8}}'
+ name: VlanNvData
+ type: VLAN_CONFIGURATION
+ varid: 1
+ - form:
+ component:
+ - goto:
+ flags: INTERACTIVE
+ formid: 1
+ help: STRING_TOKEN(0x0013)
+ key: 12288
+ prompt: STRING_TOKEN(0x0012)
+ formid: 2
+ title: STRING_TOKEN(0x0004)
+ - form:
+ component:
+ - subtitle:
+ text: STRING_TOKEN(0x0006)
+ - numeric:
+ help: STRING_TOKEN(0x0008)
+ maximum: 4094
+ minimum: 0
+ prompt: STRING_TOKEN(0x0007)
+ varid: VlanNvData.VlanId
+ - numeric:
+ help: STRING_TOKEN(0x000A)
+ maximum: 7
+ minimum: 0
+ prompt: STRING_TOKEN(0x0009)
+ varid: VlanNvData.Priority
+ - text:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x000C)
+ key: 4096
+ prompt: STRING_TOKEN(0x000B)
+ - subtitle:
+ text: STRING_TOKEN(0x0011)
+ - subtitle:
+ text: STRING_TOKEN(0x000D)
+ - label:
+ number: 1
+ - label:
+ number: 65535
+ - text:
+ flags: INTERACTIVE
+ help: STRING_TOKEN(0x0010)
+ key: 8192
+ prompt: STRING_TOKEN(0x000F)
+ formid: 1
+ title: STRING_TOKEN(0x0004)
+ guid: '{0xd79df6b0, 0xef44, 0x43bd, {0x97, 0x97, 0x43, 0xe9, 0x3b, 0xcf, 0x5f, 0xa8}}'
+ help: STRING_TOKEN(0x0003)
+ title: STRING_TOKEN(0x0002)
+include:
+- VlanConfigNvData.h
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/Makefile b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/Makefile
new file mode 100644
index 000000000000..3a31d1455e09
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/Makefile
@@ -0,0 +1,441 @@
+#
+# DO NOT EDIT
+# This file is auto-generated by build utility
+#
+# Module Name:
+#
+# Makefile
+#
+# Abstract:
+#
+# Auto-generated makefile for building modules, libraries or platform
+#
+
+
+#
+# Platform Macro Definition
+#
+PLATFORM_NAME = Ovmf
+PLATFORM_GUID = 5a9e7754-d81b-49ea-85ad-69eaa7b1539b
+PLATFORM_VERSION = 0.1
+PLATFORM_RELATIVE_DIR = OvmfPkg
+PLATFORM_DIR = c:\users\mliang2x\workspace\edk2\OvmfPkg
+PLATFORM_OUTPUT_DIR = Build\OvmfX64
+
+#
+# Module Macro Definition
+#
+MODULE_NAME = VlanConfigDxe
+MODULE_GUID = E4F61863-FE2C-4b56-A8F4-08519BC439DF
+MODULE_NAME_GUID = VlanConfigDxe
+MODULE_VERSION = 1.0
+MODULE_TYPE = UEFI_DRIVER
+MODULE_FILE = VlanConfigDxe.inf
+MODULE_FILE_BASE_NAME = VlanConfigDxe
+BASE_NAME = $(MODULE_NAME)
+MODULE_RELATIVE_DIR = NetworkPkg\VlanConfigDxe
+PACKAGE_RELATIVE_DIR = VlanConfigDxe
+MODULE_DIR = c:\users\mliang2x\workspace\edk2\NetworkPkg\VlanConfigDxe
+FFS_OUTPUT_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\FV\Ffs\E4F61863-FE2C-4b56-A8F4-08519BC439DFVlanConfigDxe
+
+MODULE_ENTRY_POINT = VlanConfigDriverEntryPoint
+ARCH_ENTRY_POINT = VlanConfigDriverEntryPoint
+IMAGE_ENTRY_POINT = _ModuleEntryPoint
+
+INF_VERSION = 0x00010005
+BASE_NAME = VlanConfigDxe
+MODULE_UNI_FILE = VlanConfigDxe.uni
+FILE_GUID = E4F61863-FE2C-4b56-A8F4-08519BC439DF
+MODULE_TYPE = UEFI_DRIVER
+VERSION_STRING = 1.0
+
+#
+# Build Configuration Macro Definition
+#
+ARCH = X64
+TOOLCHAIN = VS2015x86
+TOOLCHAIN_TAG = VS2015x86
+TARGET = DEBUG
+
+#
+# Build Directory Macro Definition
+#
+# PLATFORM_BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86
+BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86
+BIN_DIR = $(BUILD_DIR)\X64
+LIB_DIR = $(BIN_DIR)
+MODULE_BUILD_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe
+OUTPUT_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT
+DEBUG_DIR = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\DEBUG
+DEST_DIR_OUTPUT = $(OUTPUT_DIR)
+DEST_DIR_DEBUG = $(DEBUG_DIR)
+
+#
+# Shell Command Macro
+#
+CP = copy /y
+MV = move /y
+RM = del /f /q
+MD = mkdir
+RD = rmdir /s /q
+
+
+#
+# Tools definitions specific to this module
+#
+APP_FLAGS = /nologo /E /TC
+APP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASL_FLAGS =
+ASL_OUTFLAGS = -p
+ASL = C:\ASL\iasl.exe
+
+ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable
+ASLCC = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE
+ASLDLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\link.exe
+
+ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h
+ASLPP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+ASM = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\ml64.exe
+
+ASM16 = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\ml.exe
+
+ASMLINK_FLAGS = /nologo /tiny
+ASMLINK = C:\WINDDK\3790.1830\bin\bin16\link16.exe
+
+BROTLI_GUID = 3D532050-5CDA-4FD0-879E-0F7F630D5AFB
+BROTLI = BrotliCompress
+
+CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /D DISABLE_NEW_DEPRECATED_INTERFACES /D TDX_GUEST_SUPPORTED /D ENABLE_MD5_DEPRECATED_INTERFACES
+CC = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+CRC32_GUID = FC1BCDB0-7D31-49AA-936A-A4600D9DD083
+CRC32 = GenCrc32
+
+DEPS_FLAGS = /showIncludes
+
+DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+DLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\link.exe
+
+DLINK2_FLAGS =
+
+DTC_FLAGS = -H epapr
+DTC = dtc
+
+DTCPP = cpp
+
+GENFW_FLAGS =
+GENFW = GenFw
+
+LZMA_GUID = EE4E5898-3914-4259-9D6E-DC7BD79403CF
+LZMA = LzmaCompress
+
+LZMAF86_GUID = D42AE6BD-1352-4bfb-909A-CA72A6EAE889
+LZMAF86 = LzmaF86Compress
+
+MAKE = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\nmake.exe
+
+NASM_FLAGS = -Ox -f win64 -g
+NASM = C:\nasm\nasm
+
+NASMB_FLAGS = -f bin
+
+OBJCOPY_ADDDEBUGFLAG = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_NAME).debug
+OBJCOPY_FLAGS = objcopy not needed for
+OBJCOPY = echo
+OBJCOPY_STRIPFLAG = --strip-unneeded -R .eh_frame
+
+OPTROM_FLAGS = -e
+OPTROM = EfiRom
+
+PKCS7SIGN_GUID = 4AAFD29D-68DF-49EE-8AA9-347D375665A7
+PKCS7SIGN = Pkcs7Sign
+
+PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+PP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+PYVFR = PyVfrCompile
+
+RC = c:\Program Files (x86)\Windows Kits\8.1\bin\x64\rc.exe
+
+RSA2048SHA256SIGN_GUID = A7717414-C616-4977-9420-844712A735BF
+RSA2048SHA256SIGN = Rsa2048Sha256Sign
+
+SLINK_FLAGS = /NOLOGO /LTCG
+SLINK = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\lib.exe
+
+SYMRENAME_FLAGS = Symbol renaming not needed for
+SYMRENAME = echo
+
+TIANO_GUID = A31280AD-481E-41B6-95E8-127F4C984779
+TIANO = TianoCompress
+
+VFR_FLAGS = -l -n
+VFR = VfrCompile
+
+VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+VFRPP = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\x86_amd64\cl.exe
+
+VPDTOOL_GUID = 8C3D856A-9BE6-468E-850A-24F7A8D38E08
+VPDTOOL = BPDG
+
+cc_resp_4 = @c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\cc_resp_4.txt
+
+MAKE_FILE = $(MODULE_BUILD_DIR)\Makefile
+
+#
+# Build Macro
+#
+STATIC_LIBRARY_FILES = \
+ $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\OUTPUT\UefiHiiLib.lib \
+ $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\OUTPUT\UefiHiiServicesLib.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\OUTPUT\BaseDebugPrintErrorLevelLib.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\OUTPUT\BaseIoLibIntrinsicSev.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\OUTPUT\BaseLib.lib \
+ $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\OUTPUT\BaseMemoryLibRepStr.lib \
+ $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\OUTPUT\BasePrintLib.lib \
+ $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\OUTPUT\DxePcdLib.lib \
+ $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\OUTPUT\FilterLibNull.lib \
+ $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\OUTPUT\TdxLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\OUTPUT\UefiBootServicesTableLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\OUTPUT\UefiDevicePathLibDevicePathProtocol.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint\OUTPUT\UefiDriverEntryPoint.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\OUTPUT\UefiLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\OUTPUT\UefiMemoryAllocationLib.lib \
+ $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\OUTPUT\UefiRuntimeServicesTableLib.lib \
+ $(BIN_DIR)\NetworkPkg\Library\DxeNetLib\DxeNetLib\OUTPUT\DxeNetLib.lib \
+ $(BIN_DIR)\OvmfPkg\Library\CcProbeLib\CcProbeLib\OUTPUT\CcProbeLib.lib \
+ $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\OUTPUT\PlatformDebugLibIoPort.lib \
+ $(OUTPUT_DIR)\VlanConfigDxe.lib
+
+OBJECT_FILES = \
+ $(OUTPUT_DIR)\AutoGen.obj \
+ $(OUTPUT_DIR)\ComponentName.obj \
+ $(OUTPUT_DIR)\VlanConfig.obj \
+ $(OUTPUT_DIR)\VlanConfigDriver.obj \
+ $(OUTPUT_DIR)\VlanConfigImpl.obj
+
+INC = \
+ /I$(WORKSPACE)\NetworkPkg\VlanConfigDxe \
+ /I$(DEBUG_DIR) \
+ /I$(WORKSPACE)\MdePkg \
+ /I$(WORKSPACE)\MdePkg\Include \
+ /I$(WORKSPACE)\MdePkg\Test\UnitTest\Include \
+ /I$(WORKSPACE)\MdePkg\Include\X64 \
+ /I$(WORKSPACE)\MdeModulePkg \
+ /I$(WORKSPACE)\MdeModulePkg\Include \
+ /I$(WORKSPACE)\NetworkPkg \
+ /I$(WORKSPACE)\NetworkPkg\Include
+
+STATIC_LIBRARY_FILES_LIST = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\static_library_files.lst
+OBJECT_FILES_LIST = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\object_files.lst
+OBJLIST_0 = $(OUTPUT_DIR)\AutoGen.obj $(OUTPUT_DIR)\VlanConfigImpl.obj $(OUTPUT_DIR)\VlanConfigDriver.obj $(OUTPUT_DIR)\VlanConfig.obj $(OUTPUT_DIR)\ComponentName.obj
+
+
+#
+# Overridable Target Macro Definitions
+#
+FORCE_REBUILD = force_build
+INIT_TARGET = init
+PCH_TARGET =
+BC_TARGET =
+CODA_TARGET = c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\VlanConfigDxe.efi \
+ $(FFS_OUTPUT_DIR)\$(MODULE_GUID).map \
+ $(FFS_OUTPUT_DIR)\$(MODULE_GUID).ffs \
+
+
+#
+# Default target, which will build dependent libraries in addition to source files
+#
+
+all: mbuild
+
+
+#
+# Target used when called from platform makefile, which will bypass the build of dependent libraries
+#
+
+pbuild: $(INIT_TARGET) $(BC_TARGET) $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# ModuleTarget
+#
+
+mbuild: $(INIT_TARGET) $(BC_TARGET) gen_libs $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# Build Target used in multi-thread build mode, which will bypass the init and gen_libs targets
+#
+
+tbuild: $(BC_TARGET) $(PCH_TARGET) $(CODA_TARGET)
+
+#
+# Phony target which is used to force executing commands for a target
+#
+force_build:
+ -@
+
+#
+# Target to update the FD
+#
+
+fds: mbuild gen_fds
+
+#
+# Initialization target: print build information and create necessary directories
+#
+init: info dirs
+
+info:
+ -@echo Building ... $(MODULE_DIR)\$(MODULE_FILE) [$(ARCH)]
+
+dirs:
+ -@if not exist $(DEBUG_DIR) $(MD) $(DEBUG_DIR)
+ -@if not exist $(OUTPUT_DIR) $(MD) $(OUTPUT_DIR)
+
+
+strdefs:
+ -@$(CP) $(DEBUG_DIR)\AutoGen.h $(DEBUG_DIR)\$(MODULE_NAME)StrDefs.h
+
+#
+# GenLibsTarget
+#
+gen_libs:
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\CcProbeLib\CcProbeLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\NetworkPkg\Library\DxeNetLib\DxeNetLib\Makefile
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\Makefile
+ @cd $(MODULE_BUILD_DIR)
+
+#
+# Build Flash Device Image
+#
+gen_fds:
+ @"$(MAKE)" $(MAKE_FLAGS) -f $(BUILD_DIR)\Makefile fds
+ @cd $(MODULE_BUILD_DIR)
+
+!INCLUDE $(MODULE_BUILD_DIR)\dependency
+!INCLUDE $(MODULE_BUILD_DIR)\deps_target
+
+#
+# Individual Object Build Targets
+#
+$(DEBUG_DIR)\VlanConfigDxe.dll : $(MAKE_FILE)
+$(DEBUG_DIR)\VlanConfigDxe.dll : $(STATIC_LIBRARY_FILES)
+$(DEBUG_DIR)\VlanConfigDxe.dll : $(STATIC_LIBRARY_FILES_LIST)
+ "$(DLINK)" /OUT:c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\DEBUG\VlanConfigDxe.dll $(DLINK_FLAGS) $(DLINK2_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST)
+ "$(DLINK)" /OUT:c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\DEBUG\VlanConfigDxe.dll $(DLINK_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST)
+
+$(OUTPUT_DIR)\VlanConfigDxe.efi : $(DEBUG_DIR)\VlanConfigDxe.dll
+ "$(GENFW)" -e $(MODULE_TYPE) -o c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\VlanConfigDxe.efi c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\DEBUG\VlanConfigDxe.dll $(GENFW_FLAGS)
+ $(CP) c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\VlanConfigDxe.efi $(DEBUG_DIR)
+ $(CP) c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\VlanConfigDxe.efi $(BIN_DIR)\$(MODULE_NAME_GUID).efi
+ -$(CP) $(DEBUG_DIR)\*.map $(OUTPUT_DIR)
+ -$(CP) $(DEBUG_DIR)\*.pdb $(OUTPUT_DIR)
+
+$(DEBUG_DIR)\VlanConfigDxe.efi : $(OUTPUT_DIR)\VlanConfigDxe.efi
+
+
+$(OUTPUT_DIR)\VlanConfigDxe.map : $(OUTPUT_DIR)\VlanConfigDxe.efi
+
+
+$(OBJLIST_0): \
+ $(MAKE_FILE) \
+ $(DEBUG_DIR)\AutoGen.c \
+ $(DEBUG_DIR)\AutoGen.h \
+ $(DEBUG_DIR)\VlanConfigDxeStrDefs.h \
+ $(DEBUG_DIR)\VlanConfig.c \
+ $(WORKSPACE)\NetworkPkg\VlanConfigDxe\VlanConfigDriver.c \
+ $(WORKSPACE)\NetworkPkg\VlanConfigDxe\ComponentName.c \
+ $(WORKSPACE)\NetworkPkg\VlanConfigDxe\VlanConfigImpl.c
+ "$(CC)" /Foc:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\.\ $(DEPS_FLAGS) $(CC_FLAGS) $(INC) $(cc_resp_4)
+
+$(OUTPUT_DIR)\VlanConfigDxe.lib : $(OBJECT_FILES)
+$(OUTPUT_DIR)\VlanConfigDxe.lib : $(OBJECT_FILES_LIST)
+ "$(SLINK)" $(SLINK_FLAGS) /OUT:c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\VlanConfigDxe.lib @$(OBJECT_FILES_LIST)
+
+$(DEBUG_DIR)\VlanConfig.c : $(MAKE_FILE)
+$(DEBUG_DIR)\VlanConfig.c : $(DEBUG_DIR)\AutoGen.h
+$(DEBUG_DIR)\VlanConfig.c : $(DEBUG_DIR)\VlanConfigDxeStrDefs.h
+$(DEBUG_DIR)\VlanConfig.c : $(WORKSPACE)\NetworkPkg\VlanConfigDxe\VlanConfig.vfr
+ "$(VFRPP)" $(DEPS_FLAGS) $(VFRPP_FLAGS) $(INC) c:\users\mliang2x\workspace\edk2\NetworkPkg\VlanConfigDxe\VlanConfig.vfr > $(OUTPUT_DIR)\VlanConfig.i
+ "$(VFR)" $(VFR_FLAGS) --string-db $(OUTPUT_DIR)\$(MODULE_NAME)StrDefs.hpk --output-directory c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\DEBUG\. $(OUTPUT_DIR)\VlanConfig.i
+ "$(PYVFR)" c:\users\mliang2x\workspace\edk2\NetworkPkg\VlanConfigDxe\VlanConfig.vfr -i $(INC) -m $(MODULE_NAME) -o $(OUTPUT_DIR) --vfr
+
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID).map : $(OUTPUT_DIR)\VlanConfigDxe.map
+ if exist $(OUTPUT_DIR)\VlanConfigDxe.map $(CP) $(OUTPUT_DIR)\VlanConfigDxe.map $(FFS_OUTPUT_DIR)\$(MODULE_GUID).map
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID).ffs : $(FFS_OUTPUT_DIR)\VlanConfigDxeOffset.raw $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.1.pe32 $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ui $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC4.ver
+ GenFfs -t EFI_FV_FILETYPE_DRIVER -g $(MODULE_GUID) -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID).ffs -oi $(FFS_OUTPUT_DIR)\VlanConfigDxeOffset.raw -oi $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.1.pe32 -oi $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ui -oi $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC4.ver
+$(FFS_OUTPUT_DIR)\VlanConfigDxeOffset.raw : $(FFS_OUTPUT_DIR)\VlanConfigDxe.offset
+ if exist $(FFS_OUTPUT_DIR)\VlanConfigDxe.offset GenSec -s EFI_SECTION_RAW -o $(FFS_OUTPUT_DIR)\VlanConfigDxeOffset.raw $(FFS_OUTPUT_DIR)\VlanConfigDxe.offset
+$(FFS_OUTPUT_DIR)\VlanConfigDxe.offset : $(DEBUG_DIR)\VlanConfigDxe.efi
+ Trim --Vfr-Uni-Offset -o $(FFS_OUTPUT_DIR)\VlanConfigDxe.offset --ModuleName=VlanConfigDxe --DebugDir=c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\DEBUG
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.1.pe32 : $(OUTPUT_DIR)\VlanConfigDxe.efi
+ if exist $(OUTPUT_DIR)\VlanConfigDxe.efi GenSec -s EFI_SECTION_PE32 -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC2.1.pe32 $(OUTPUT_DIR)\VlanConfigDxe.efi
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ui : $(MODULE_DIR)\$(MODULE_FILE)
+ GenSec -s EFI_SECTION_USER_INTERFACE -n $(MODULE_NAME) -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC3.ui
+$(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC4.ver : $(MODULE_DIR)\$(MODULE_FILE)
+ GenSec -s EFI_SECTION_VERSION -n 1.0 -o $(FFS_OUTPUT_DIR)\$(MODULE_GUID)SEC4.ver
+
+
+#
+# clean all intermediate files
+#
+clean:
+ if exist $(OUTPUT_DIR) $(RD) $(OUTPUT_DIR)
+ $(RM) AutoGenTimeStamp
+
+#
+# clean all generated files
+#
+cleanall:
+ if exist $(DEBUG_DIR) $(RD) $(DEBUG_DIR)
+ if exist $(OUTPUT_DIR) $(RD) $(OUTPUT_DIR)
+ $(RM) *.pdb *.idb > NUL 2>&1
+ $(RM) $(BIN_DIR)\$(MODULE_NAME).efi
+ $(RM) AutoGenTimeStamp
+
+#
+# clean all dependent libraries built
+#
+cleanlib:
+ -@if exist $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\RegisterFilterLibNull\RegisterFilterLibNull\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\DxePcdLib\DxePcdLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseMemoryLibRepStr\BaseMemoryLibRepStr\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseLib\BaseLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\TdxLib\TdxLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\OvmfPkg\Library\CcProbeLib\CcProbeLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\CcProbeLib\CcProbeLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseDebugPrintErrorLevelLib\BaseDebugPrintErrorLevelLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsicSev\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\BasePrintLib\BasePrintLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\OvmfPkg\Library\PlatformDebugLibIoPort\PlatformDebugLibIoPort\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiDevicePathLibDevicePathProtocol\UefiDevicePathLibDevicePathProtocol\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiLib\UefiLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiServicesLib\UefiHiiServicesLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint\Makefile cleanall
+ -@if exist $(BIN_DIR)\NetworkPkg\Library\DxeNetLib\DxeNetLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\NetworkPkg\Library\DxeNetLib\DxeNetLib\Makefile cleanall
+ -@if exist $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\Makefile "$(MAKE)" $(MAKE_FLAGS) -f $(BIN_DIR)\MdeModulePkg\Library\UefiHiiLib\UefiHiiLib\Makefile cleanall
+ @cd $(MODULE_BUILD_DIR)
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/AutoGen.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/AutoGen.c.deps
new file mode 100644
index 000000000000..455c1ada79e2
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/AutoGen.c.deps
@@ -0,0 +1,32 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\AutoGen.c: \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\vlanconfigdxe\vlanconfigdxe\debug\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\vlanconfigdxe\vlanconfigdxe\debug\VlanConfigDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/ComponentName.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/ComponentName.c.deps
new file mode 100644
index 000000000000..3f72f5bae318
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/ComponentName.c.deps
@@ -0,0 +1,64 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\ComponentName.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\vlanconfigdxe\vlanconfigdxe\debug\VlanConfigDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\vlanconfigdxe\VlanConfigImpl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/VlanConfig.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\vlanconfigdxe\VlanConfigNvData.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/VlanConfigHii.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfig.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfig.c.deps
new file mode 100644
index 000000000000..8b13dc46419e
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfig.c.deps
@@ -0,0 +1,28 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\VlanConfig.obj: \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\vlanconfigdxe\vlanconfigdxe\debug\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\vlanconfigdxe\vlanconfigdxe\debug\VlanConfigDxeStrDefs.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfig.i b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfig.i
new file mode 100644
index 000000000000..c35d36bd7fd6
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfig.i
@@ -0,0 +1,231 @@
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\VlanConfigDxe\\VlanConfig.vfr"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\NetworkPkg\\VlanConfigDxe\\VlanConfigDxe\\DEBUG\\VlanConfigDxeStrDefs.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern unsigned char VlanConfigDxeStrings[];
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 60 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\NetworkPkg\\VlanConfigDxe\\VlanConfigDxe\\DEBUG\\VlanConfigDxeStrDefs.h"
+
+#line 62 "c:\\users\\mliang2x\\workspace\\edk2\\Build\\OvmfX64\\DEBUG_VS2015x86\\X64\\NetworkPkg\\VlanConfigDxe\\VlanConfigDxe\\DEBUG\\VlanConfigDxeStrDefs.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\VlanConfigDxe\\VlanConfig.vfr"
+
+
+
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\networkpkg\\vlanconfigdxe\\VlanConfigNvData.h"
+
+
+
+
+
+
+
+
+
+
+
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Guid/HiiPlatformSetupFormset.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern EFI_GUID gEfiHiiPlatformSetupFormsetGuid;
+extern EFI_GUID gEfiHiiDriverHealthFormsetGuid;
+extern EFI_GUID gEfiHiiUserCredentialFormsetGuid;
+extern EFI_GUID gEfiHiiRestStyleFormsetGuid;
+
+#line 34 "c:\\users\\mliang2x\\workspace\\edk2\\MdePkg\\Include\\Guid/HiiPlatformSetupFormset.h"
+#line 13 "c:\\users\\mliang2x\\workspace\\edk2\\networkpkg\\vlanconfigdxe\\VlanConfigNvData.h"
+#line 1 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\Include\\Guid/VlanConfigHii.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern EFI_GUID { 0xd79df6b0, 0xef44, 0x43bd, { 0x97, 0x97, 0x43, 0xe9, 0x3b, 0xcf, 0x5f, 0xa8 }};
+
+#line 20 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\Include\\Guid/VlanConfigHii.h"
+#line 14 "c:\\users\\mliang2x\\workspace\\edk2\\networkpkg\\vlanconfigdxe\\VlanConfigNvData.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct {
+ UINT16 VlanId;
+ UINT8 Priority;
+ UINT8 VlanList[100];
+} VLAN_CONFIGURATION;
+
+#line 41 "c:\\users\\mliang2x\\workspace\\edk2\\networkpkg\\vlanconfigdxe\\VlanConfigNvData.h"
+#line 10 "c:\\users\\mliang2x\\workspace\\edk2\\NetworkPkg\\VlanConfigDxe\\VlanConfig.vfr"
+
+formset
+ guid = { 0xd79df6b0, 0xef44, 0x43bd, {0x97, 0x97, 0x43, 0xe9, 0x3b, 0xcf, 0x5f, 0xa8 } },
+ title = STRING_TOKEN(0x0002),
+ help = STRING_TOKEN(0x0003),
+ classguid = { 0x93039971, 0x8545, 0x4b04, { 0xb4, 0x5e, 0x32, 0xeb, 0x83, 0x26, 0x4, 0xe } },
+
+ varstore VLAN_CONFIGURATION,
+ varid = 0x0001,
+ name = VlanNvData,
+ guid = { 0xd79df6b0, 0xef44, 0x43bd, {0x97, 0x97, 0x43, 0xe9, 0x3b, 0xcf, 0x5f, 0xa8 } };
+
+ form formid = 0x0002,
+ title = STRING_TOKEN(0x0004);
+
+ goto 0x0001,
+ prompt = STRING_TOKEN (0x0012),
+ help = STRING_TOKEN (0x0013),
+ flags = INTERACTIVE,
+ key = 0x3000;
+
+ endform;
+
+ form formid = 0x0001,
+ title = STRING_TOKEN(0x0004);
+
+ subtitle text = STRING_TOKEN(0x0006);
+
+ numeric varid = VlanNvData.VlanId,
+ prompt = STRING_TOKEN(0x0007),
+ help = STRING_TOKEN(0x0008),
+ minimum = 0,
+ maximum = 4094,
+ endnumeric;
+
+ numeric varid = VlanNvData.Priority,
+ prompt = STRING_TOKEN(0x0009),
+ help = STRING_TOKEN(0x000A),
+ minimum = 0,
+ maximum = 7,
+ endnumeric;
+
+ text
+ help = STRING_TOKEN(0x000C),
+ text = STRING_TOKEN(0x000B),
+ flags = INTERACTIVE,
+ key = 0x1000;
+
+ subtitle text = STRING_TOKEN(0x0011);
+ subtitle text = STRING_TOKEN(0x000D);
+
+ label 0x0001;
+ label 0xffff;
+
+ text
+ help = STRING_TOKEN(0x0010),
+ text = STRING_TOKEN(0x000F),
+ flags = INTERACTIVE,
+ key = 0x2000;
+
+ endform;
+
+endformset;
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDriver.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDriver.c.deps
new file mode 100644
index 000000000000..0d659b7ce142
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDriver.c.deps
@@ -0,0 +1,64 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\VlanConfigDriver.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\vlanconfigdxe\vlanconfigdxe\debug\VlanConfigDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\vlanconfigdxe\VlanConfigImpl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/VlanConfig.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\vlanconfigdxe\VlanConfigNvData.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/VlanConfigHii.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxe.efi b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxe.efi
new file mode 100644
index 0000000000000000000000000000000000000000..ff0681b4b618c6ae6d524de5ccf2f4b63b49d1da
GIT binary patch
literal 32896
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
Y8#ioxdgG>z4I7VcJh@Td_;tegKZJy?E&u=k
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxe.lib b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxe.lib
new file mode 100644
index 0000000000000000000000000000000000000000..d98325d195fc9b353f36f2997023d14cae1fdb69
GIT binary patch
literal 141414
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
MQ%&^8aq;f|52jvAE&u=k
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxe.map b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxe.map
new file mode 100644
index 000000000000..f767d7992000
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxe.map
@@ -0,0 +1,474 @@
+ VlanConfigDxe
+
+ Timestamp is 647848fe (Thu Jun 1 15:30:06 2023)
+
+ Preferred load address is 0000000000000000
+
+ Start Length Name Class
+ 0001:00000000 00000318H .text CODE
+ 0001:00000318 00004d7fH .text$mn CODE
+ 0002:00000000 00001c64H .rdata DATA
+ 0002:00001c64 00000140H .rdata$zzzdbg DATA
+ 0003:00000000 00000828H .data DATA
+ 0003:00000828 00000068H .bss DATA
+ 0004:00000000 0000036cH .pdata DATA
+ 0005:00000000 000002ecH .xdata DATA
+
+ Address Publics by Value Rva+Base Lib:Object
+
+ 0000:00000000 __dynamic_value_reloc_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_longjmp_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_longjmp_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_fids_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_iat_table 0000000000000000 <absolute>
+ 0000:00000000 __guard_iat_count 0000000000000000 <absolute>
+ 0000:00000000 __guard_flags 0000000000000000 <absolute>
+ 0001:00000000 InternalMemZeroMem 00000000000002c0 BaseMemoryLibRepStr:ZeroMem.obj
+ 0001:00000020 InternalMemSetMem16 00000000000002e0 BaseMemoryLibRepStr:SetMem16.obj
+ 0001:00000040 InternalMemCopyMem 0000000000000300 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000080 InternalMemSetMem 0000000000000340 BaseMemoryLibRepStr:SetMem.obj
+ 0001:000000a0 InternalMemCompareMem 0000000000000360 BaseMemoryLibRepStr:CompareMem.obj
+ 0001:000000c0 InternalMemSetMem64 0000000000000380 BaseMemoryLibRepStr:SetMem64.obj
+ 0001:000000e0 InternalMemSetMem32 00000000000003a0 BaseMemoryLibRepStr:SetMem32.obj
+ 0001:00000100 CpuPause 00000000000003c0 BaseLib:CpuPause.obj
+ 0001:00000110 SevNoRepIo 00000000000003d0 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000150 SevIoReadFifo8 0000000000000410 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000172 SevIoReadFifo16 0000000000000432 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000198 SevIoReadFifo32 0000000000000458 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001bb SevIoWriteFifo8 000000000000047b BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001dd SevIoWriteFifo16 000000000000049d BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000203 SevIoWriteFifo32 00000000000004c3 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000230 TdVmCall 00000000000004f0 BaseLib:TdVmcall.obj
+ 0001:000002c0 TdCall 0000000000000580 BaseLib:TdCall.obj
+ 0001:00000318 _DriverUnloadHandler 00000000000005d8 f UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0001:0000049c _ModuleEntryPoint 000000000000075c f UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0001:000005b0 ProcessLibraryConstructorList 0000000000000870 f VlanConfigDxe:AutoGen.obj
+ 0001:00000814 VlanConfigDriverBindingSupported 0000000000000ad4 f VlanConfigDxe:VlanConfigDriver.obj
+ 0001:00000890 VlanConfigDriverBindingStart 0000000000000b50 f VlanConfigDxe:VlanConfigDriver.obj
+ 0001:00000a40 VlanConfigDriverBindingStop 0000000000000d00 f VlanConfigDxe:VlanConfigDriver.obj
+ 0001:00000b3c VlanConfigComponentNameGetDriverName 0000000000000dfc f VlanConfigDxe:ComponentName.obj
+ 0001:00000c4c VlanConfigComponentNameGetControllerName 0000000000000f0c f VlanConfigDxe:ComponentName.obj
+ 0001:00000c58 VlanExtractConfig 0000000000000f18 f VlanConfigDxe:VlanConfigImpl.obj
+ 0001:00000e58 VlanRouteConfig 0000000000001118 f VlanConfigDxe:VlanConfigImpl.obj
+ 0001:00000eb8 VlanCallback 0000000000001178 f VlanConfigDxe:VlanConfigImpl.obj
+ 0001:000010b4 VlanUpdateForm 0000000000001374 f VlanConfigDxe:VlanConfigImpl.obj
+ 0001:00001420 InstallVlanConfigForm 00000000000016e0 f VlanConfigDxe:VlanConfigImpl.obj
+ 0001:0000159c UninstallVlanConfigForm 000000000000185c f VlanConfigDxe:VlanConfigImpl.obj
+ 0001:000016d4 ZeroMem 0000000000001994 f BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0001:00001738 StrnLenS 00000000000019f8 f BaseLib:SafeString.obj
+ 0001:000017a0 StrCpyS 0000000000001a60 f BaseLib:SafeString.obj
+ 0001:00001944 StrCatS 0000000000001c04 f BaseLib:SafeString.obj
+ 0001:00001b2c AsciiStrnLenS 0000000000001dec f BaseLib:SafeString.obj
+ 0001:00001b50 StrLen 0000000000001e10 f BaseLib:String.obj
+ 0001:00001be4 StrnCmp 0000000000001ea4 f BaseLib:String.obj
+ 0001:00001ccc StrStr 0000000000001f8c f BaseLib:String.obj
+ 0001:00001d94 AsciiStrLen 0000000000002054 f BaseLib:String.obj
+ 0001:00001e00 AsciiStrnCmp 00000000000020c0 f BaseLib:String.obj
+ 0001:00001ecc UnicodeSPrint 000000000000218c f BasePrintLib:PrintLib.obj
+ 0001:00001f4c UnicodeValueToStringS 000000000000220c f BasePrintLib:PrintLib.obj
+ 0001:00001fbc AsciiSPrint 000000000000227c f BasePrintLib:PrintLib.obj
+ 0001:00001fe4 BasePrintLibFillBuffer 00000000000022a4 f BasePrintLib:PrintLibInternal.obj
+ 0001:00002018 BasePrintLibValueToString 00000000000022d8 f BasePrintLib:PrintLibInternal.obj
+ 0001:00002090 BasePrintLibConvertValueToStringS 0000000000002350 f BasePrintLib:PrintLibInternal.obj
+ 0001:000023a0 BasePrintLibSPrintMarker 0000000000002660 f BasePrintLib:PrintLibInternal.obj
+ 0001:00003224 BasePrintLibSPrint 00000000000034e4 f BasePrintLib:PrintLibInternal.obj
+ 0001:00003248 DebugPrint 0000000000003508 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:0000326c DebugPrintMarker 000000000000352c f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:000032f4 DebugAssert 00000000000035b4 f PlatformDebugLibIoPort:DebugLib.obj
+ 0001:00003364 PlatformDebugLibIoPortFound 0000000000003624 f PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0001:000033ac InternalAllocatePool 000000000000366c f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:000033dc AllocateZeroPool 000000000000369c f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00003408 InternalAllocateCopyPool 00000000000036c8 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00003480 InternalReallocatePool 0000000000003740 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00003500 FreePool 00000000000037c0 f UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0001:00003544 DevicePathSubType 0000000000003804 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00003574 DevicePathNodeLength 0000000000003834 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:000035c0 NextDevicePathNode 0000000000003880 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:000035f8 IsDevicePathEndType 00000000000038b8 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00003644 IsDevicePathEnd 0000000000003904 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:00003698 DevicePathFromHandle 0000000000003958 f UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0001:000036cc CompareIso639LanguageCode 000000000000398c f UefiLib:UefiLib.obj
+ 0001:00003734 IsLanguageSupported 00000000000039f4 f UefiLib:UefiLib.obj
+ 0001:000037b4 NetLibGetSnpHandle 0000000000003a74 f DxeNetLib:DxeNetLib.obj
+ 0001:0000387c NetLibGetVlanHandle 0000000000003b3c f DxeNetLib:DxeNetLib.obj
+ 0001:00003928 NetLibGetMacString 0000000000003be8 f DxeNetLib:DxeNetLib.obj
+ 0001:00003bb4 HiiSetString 0000000000003e74 f UefiHiiLib:HiiString.obj
+ 0001:00003d04 HiiAddPackages 0000000000003fc4 f UefiHiiLib:HiiLib.obj
+ 0001:00003e40 InternalHiiBrowserCallback 0000000000004100 f UefiHiiLib:HiiLib.obj
+ 0001:00003f50 HiiConstructConfigHdr 0000000000004210 f UefiHiiLib:HiiLib.obj
+ 0001:000041b0 InternalHiiCompareSubString 0000000000004470 f UefiHiiLib:HiiLib.obj
+ 0001:000042cc HiiIsConfigHdrMatch 000000000000458c f UefiHiiLib:HiiLib.obj
+ 0001:00004364 HiiGetBrowserData 0000000000004624 f UefiHiiLib:HiiLib.obj
+ 0001:0000443c HiiSetBrowserData 00000000000046fc f UefiHiiLib:HiiLib.obj
+ 0001:0000455c HiiAllocateOpCodeHandle 000000000000481c f UefiHiiLib:HiiLib.obj
+ 0001:000045ac InternalHiiGrowOpCodeHandle 000000000000486c f UefiHiiLib:HiiLib.obj
+ 0001:00004650 InternalHiiCreateOpCodeExtended 0000000000004910 f UefiHiiLib:HiiLib.obj
+ 0001:00004704 HiiCreateGuidOpCode 00000000000049c4 f UefiHiiLib:HiiLib.obj
+ 0001:00004758 InternalHiiUpdateFormPackageData 0000000000004a18 f UefiHiiLib:HiiLib.obj
+ 0001:000049d0 HiiUpdateForm 0000000000004c90 f UefiHiiLib:HiiLib.obj
+ 0001:00004c40 HiiGetSupportedLanguages 0000000000004f00 f UefiHiiLib:HiiLanguage.obj
+ 0001:00004ce4 CopyGuid 0000000000004fa4 f BaseMemoryLibRepStr:MemLibGuid.obj
+ 0001:00004d68 CompareGuid 0000000000005028 f BaseMemoryLibRepStr:MemLibGuid.obj
+ 0001:00004dcc CopyMem 000000000000508c f BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0001:00004e68 CompareMem 0000000000005128 f BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0001:00004f40 ReadUnaligned32 0000000000005200 f BaseLib:Unaligned.obj
+ 0001:00004f70 ReadUnaligned64 0000000000005230 f BaseLib:Unaligned.obj
+ 0001:00004fa0 IoWriteFifo8 0000000000005260 f BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0001:00004ff4 TdIoRead8 00000000000052b4 f BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0001:00005044 TdIoWrite8 0000000000005304 f BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0002:00000000 ??_C@_0CB@DMEJJJHA@?6ASSERT_EFI_ERROR?5?$CIStatus?5?$DN?5?$CFr?$CJ?6@ 0000000000005360 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:00000028 ??_C@_0CH@BBNBJKHK@?$CB?$CI?$CI?$CIINTN?$CJ?$CIRETURN_STATUS?$CJ?$CIStatus?$CJ@ 0000000000005388 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:00000050 ??_C@_0FI@PIDCFOGG@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000053b0 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0002:000000b0 ??_C@_0HK@PPNAGODA@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000005410 VlanConfigDxe:AutoGen.obj
+ 0002:00000130 ??_C@_0FA@CEOMGDNM@PrivateData?9?$DOSignature?5?$DN?$DN?5?$CI?$CI?$CI?8V?8@ 0000000000005490 VlanConfigDxe:VlanConfigDriver.obj
+ 0002:00000180 ??_C@_0EN@FIHOOBPI@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000054e0 VlanConfigDxe:VlanConfigDriver.obj
+ 0002:000001d0 ??_C@_03LKLGDMJI@eng?$AA@ 0000000000005530 VlanConfigDxe:ComponentName.obj
+ 0002:000001d4 ??_C@_02LFNMGJAP@en?$AA@ 0000000000005534 VlanConfigDxe:ComponentName.obj
+ 0002:000001d8 ??_C@_06DALJLGPG@eng?$DLen?$AA@ 0000000000005538 VlanConfigDxe:ComponentName.obj
+ 0002:000001e0 ??_C@_1DE@GEKDGKOO@?$AAV?$AAL?$AAA?$AAN?$AA?5?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AAu?$AAr?$AAa?$AAt?$AAi?$AAo?$AAn?$AA?5?$AAD?$AAr?$AAi?$AAv?$AAe?$AAr?$AA?$AA@ 0000000000005540 VlanConfigDxe:ComponentName.obj
+ 0002:00000218 ??_C@_0CC@PJDMNBJA@mHiiConfigRouting?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 0000000000005578 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:00000240 ??_C@_0EL@PDOFKHME@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000055a0 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:00000290 ??_C@_0BF@NDBIKIKC@CR?5has?5Bad?5Signature?$AA@ 00000000000055f0 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:000002a8 ??_C@_1O@LFMAFHMH@?$AAO?$AAF?$AAF?$AAS?$AAE?$AAT?$AA?$AA@ 0000000000005608 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:000002b8 ??_C@_0BO@KAEFIFMO@ConfigRequest?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000005618 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:000002d8 ??_C@_1DC@EPJEBJEB@?$AA?$CF?$AAs?$AA?$CG?$AAO?$AAF?$AAF?$AAS?$AAE?$AAT?$AA?$DN?$AA0?$AA?$CG?$AAW?$AAI?$AAD?$AAT?$AAH?$AA?$DN?$AA?$CF?$AA0?$AA1?$AA6?$AAL?$AAX?$AA?$AA@ 0000000000005638 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:00000310 ??_C@_0BO@DCPGBEOP@Configuration?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000005670 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:00000330 ??_C@_0CB@JHMGLMCO@PrivateData?9?$DONumberOfVlan?5?$DM?$DN?5100@ 0000000000005690 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:00000358 ??_C@_0CC@PIBHJFDN@StartOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 00000000000056b8 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:00000380 ??_C@_0CA@FMKGPAPI@EndOpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000056e0 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:000003a0 ??_C@_1BG@KBIPMBNI@?$AA?5?$AA?5?$AAV?$AAL?$AAA?$AAN?$AA?5?$AAI?$AAD?$AA?3?$AA?$AA@ 0000000000005700 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:000003c0 ??_C@_1BI@MIKPFMIO@?$AA?0?$AA?5?$AAP?$AAr?$AAi?$AAo?$AAr?$AAi?$AAt?$AAy?$AA?3?$AA?$AA@ 0000000000005720 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:000003d8 ??_C@_0O@EMMLPDMJ@StringId?5?$CB?$DN?50?$AA@ 0000000000005738 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:000003f0 ??_C@_1DC@FBJMIKHD@?$AAV?$AAL?$AAA?$AAN?$AA?5?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AAu?$AAr?$AAa?$AAt?$AAi?$AAo?$AAn?$AA?5?$AA?$CI?$AAM?$AAA?$AAC?$AA?3?$AA?$AA@ 0000000000005750 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:00000424 ??_C@_13DIBMAFH@?$AA?$CJ?$AA?$AA@ 0000000000005784 VlanConfigDxe:VlanConfigImpl.obj
+ 0002:00000428 ??_C@_0BH@IACGKAP@Buffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000005788 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:00000440 ??_C@_0FF@PKHNKPL@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000057a0 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:00000498 ??_C@_0DG@EEENIGGL@Length?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFFFFFULL@ 00000000000057f8 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0002:000004d0 ??_C@_0FG@BHBOFAHM@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000005830 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00000528 ??_C@_0DI@DAGDPLPG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 0000000000005888 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00000560 ??_C@_0CO@LECKNDNC@?$CI?$CI?$CIUINTN?$CJBuffer?$CJ?5?$CG?5?$CIsizeof?5?$CIValu@ 00000000000058c0 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:00000590 ??_C@_0CF@LEICOABD@?$CILength?5?$CG?5?$CIsizeof?5?$CIValue?$CJ?5?9?51?$CJ?$CJ?5@ 00000000000058f0 BaseMemoryLibRepStr:SetMem16Wrapper.obj
+ 0002:000005b8 ??_C@_0CC@GFNLNIOC@?$CI?$CIUINTN?$CJString?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 0000000000005918 BaseLib:SafeString.obj
+ 0002:000005e0 ??_C@_0EF@MFKKFBPN@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000005940 BaseLib:SafeString.obj
+ 0002:00000628 ??_C@_0CH@LALFPBMC@?$CI?$CIUINTN?$CJDestination?5?$CG?50x00000001@ 0000000000005988 BaseLib:SafeString.obj
+ 0002:00000650 ??_C@_0CC@HEBCMBPF@?$CI?$CIUINTN?$CJSource?5?$CG?50x00000001?$CJ?5?$DN?$DN?5@ 00000000000059b0 BaseLib:SafeString.obj
+ 0002:00000678 ??_C@_0BO@ECNIOIHG@?$CIDestination?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 00000000000059d8 BaseLib:SafeString.obj
+ 0002:00000698 ??_C@_07KBGDFDAM@StrCpyS?$AA@ 00000000000059f8 BaseLib:SafeString.obj
+ 0002:000006a0 ??_C@_0EA@PDPDJJNN@?$CFa?$CI?$CFd?$CJ?5?$CFa?3?5SAFE_STRING_CONSTRAIN@ 0000000000005a00 BaseLib:SafeString.obj
+ 0002:000006e0 ??_C@_0BJ@EAEEJIP@?$CISource?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 0000000000005a40 BaseLib:SafeString.obj
+ 0002:00000700 ??_C@_0EA@BBALOHPI@?$CIDestMax?5?$DM?$DN?5?$CI_gPcd_FixedAtBuild_@ 0000000000005a60 BaseLib:SafeString.obj
+ 0002:00000740 ??_C@_0P@PMIMLIHM@?$CIDestMax?5?$CB?$DN?50?$CJ?$AA@ 0000000000005aa0 BaseLib:SafeString.obj
+ 0002:00000750 ??_C@_0BG@EEGIIOKH@?$CIDestMax?5?$DO?5SourceLen?$CJ?$AA@ 0000000000005ab0 BaseLib:SafeString.obj
+ 0002:00000770 ??_C@_0FH@PPBLBDBJ@InternalSafeStringNoStrOverlap?5?$CI@ 0000000000005ad0 BaseLib:SafeString.obj
+ 0002:000007c8 ??_C@_07EBBOPAKF@StrCatS?$AA@ 0000000000005b28 BaseLib:SafeString.obj
+ 0002:000007d0 ??_C@_0P@BHOOOJPD@?$CICopyLen?5?$CB?$DN?50?$CJ?$AA@ 0000000000005b30 BaseLib:SafeString.obj
+ 0002:000007e0 ??_C@_0BG@BPGICNPK@?$CICopyLen?5?$DO?5SourceLen?$CJ?$AA@ 0000000000005b40 BaseLib:SafeString.obj
+ 0002:000007f8 ??_C@_0BJ@CNKJJNE@?$CIBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 0000000000005b58 BaseLib:SafeString.obj
+ 0002:00000818 ??_C@_0BH@MAAHKCPC@String?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000005b78 BaseLib:String.obj
+ 0002:00000830 ??_C@_0EB@OHCINBMP@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000005b90 BaseLib:String.obj
+ 0002:00000878 ??_C@_0DK@EOJCOAME@Length?5?$DM?5_gPcd_FixedAtBuild_PcdM@ 0000000000005bd8 BaseLib:String.obj
+ 0002:000008b8 ??_C@_0BL@JAAMOCAJ@StrSize?5?$CIFirstString?$CJ?5?$CB?$DN?50?$AA@ 0000000000005c18 BaseLib:String.obj
+ 0002:000008d8 ??_C@_0BM@DALBOILC@StrSize?5?$CISecondString?$CJ?5?$CB?$DN?50?$AA@ 0000000000005c38 BaseLib:String.obj
+ 0002:000008f8 ??_C@_0DL@LFIMEMJP@Length?5?$DM?$DN?5_gPcd_FixedAtBuild_Pcd@ 0000000000005c58 BaseLib:String.obj
+ 0002:00000938 ??_C@_0BG@KBNOLIGE@StrSize?5?$CIString?$CJ?5?$CB?$DN?50?$AA@ 0000000000005c98 BaseLib:String.obj
+ 0002:00000950 ??_C@_0BM@NNBLOHJD@StrSize?5?$CISearchString?$CJ?5?$CB?$DN?50?$AA@ 0000000000005cb0 BaseLib:String.obj
+ 0002:00000970 ??_C@_0DI@MDIKFADO@Length?5?$DM?5_gPcd_FixedAtBuild_PcdM@ 0000000000005cd0 BaseLib:String.obj
+ 0002:000009a8 ??_C@_0BL@IKFBNFIL@AsciiStrSize?5?$CIFirstString?$CJ?$AA@ 0000000000005d08 BaseLib:String.obj
+ 0002:000009c8 ??_C@_0BM@EDNOKLLE@AsciiStrSize?5?$CISecondString?$CJ?$AA@ 0000000000005d28 BaseLib:String.obj
+ 0002:000009e8 ??_C@_0DJ@JJHGIFMP@Length?5?$DM?$DN?5_gPcd_FixedAtBuild_Pcd@ 0000000000005d48 BaseLib:String.obj
+ 0002:00000a28 ??_C@_0N@KGHEHMDL@Divisor?5?$CB?$DN?50?$AA@ 0000000000005d88 BaseLib:DivU64x32.obj
+ 0002:00000a38 ??_C@_0CI@BGLNHBLM@?$CI?$CI?$CIUINTN?$CJ?5?$CIStartOfBuffer?$CJ?$CJ?5?$CG?50x0@ 0000000000005d98 BasePrintLib:PrintLib.obj
+ 0002:00000a60 ??_C@_0EI@PHEOPKNG@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000005dc0 BasePrintLib:PrintLib.obj
+ 0002:00000aa8 ??_C@_0CH@KJLBGOBB@?$CI?$CI?$CIUINTN?$CJ?5?$CIFormatString?$CJ?$CJ?5?$CG?50x01@ 0000000000005e08 BasePrintLib:PrintLib.obj
+ 0002:00000ad0 ??_C@_0CB@LDBAOPMG@?$CI?$CI?$CIUINTN?$CJ?5?$CIBuffer?$CJ?$CJ?5?$CG?50x01?$CJ?5?$DN?$DN?50@ 0000000000005e30 BasePrintLib:PrintLib.obj
+ 0002:00000b00 ??_C@_0FA@JGMHCDLA@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000005e60 BasePrintLib:PrintLibInternal.obj
+ 0002:00000b50 ??_C@_0EB@HDGIDCIO@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 0000000000005eb0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000ba0 ??_C@_0FJ@HAEMOBLP@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 0000000000005f00 BasePrintLib:PrintLibInternal.obj
+ 0002:00000c00 ??_C@_0CO@OJNGHNJG@?$CI?$CIFlags?5?$CG?5?$HO?$CI0x01?5?$HM?50x08?5?$HM?50x20?5?$HM@ 0000000000005f60 BasePrintLib:PrintLibInternal.obj
+ 0002:00000c30 ??_C@_0DB@HIDPIAGP@?$CI?$CI?$CIFlags?5?$CG?50x08?$CJ?5?$DN?$DN?50?$CJ?5?$HM?$HM?5?$CI?$CIFlag@ 0000000000005f90 BasePrintLib:PrintLibInternal.obj
+ 0002:00000c68 ??_C@_0N@PNKFBKME@?$CIWidth?5?$DM?538?$CJ?$AA@ 0000000000005fc8 BasePrintLib:PrintLibInternal.obj
+ 0002:00000c78 ??_C@_0CI@HPJOGFNE@?$CIBufferSize?5?$DO?$DN?5?$CIWidth?5?$CL?51?$CJ?5?$CK?5Inc@ 0000000000005fd8 BasePrintLib:PrintLibInternal.obj
+ 0002:00000ca0 ??_C@_0BJ@PPAKKDJG@?$CIFormat?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$CJ?$AA@ 0000000000006000 BasePrintLib:PrintLibInternal.obj
+ 0002:00000cc0 ??_C@_0ED@LPDDCECB@?$CIBufferSize?5?$DM?$DN?5?$CI_gPcd_FixedAtBui@ 0000000000006020 BasePrintLib:PrintLibInternal.obj
+ 0002:00000d10 ??_C@_0IM@BFJJFLGB@?$CIStrnLenS?5?$CI?$CICHAR16?5?$CK?$CJFormat?0?5?$CI_g@ 0000000000006070 BasePrintLib:PrintLibInternal.obj
+ 0002:00000da0 ??_C@_0ID@PLGJGION@?$CIAsciiStrnLenS?5?$CIFormat?0?5?$CI_gPcd_F@ 0000000000006100 BasePrintLib:PrintLibInternal.obj
+ 0002:00000e28 ??_C@_0O@MLOLIMFM@?$DMnull?5string?$DO?$AA@ 0000000000006188 BasePrintLib:PrintLibInternal.obj
+ 0002:00000e38 ??_C@_0M@BJJDNPHK@?$DMnull?5guid?$DO?$AA@ 0000000000006198 BasePrintLib:PrintLibInternal.obj
+ 0002:00000e48 ??_C@_0DB@PMLHLBMO@?$CF08x?9?$CF04x?9?$CF04x?9?$CF02x?$CF02x?9?$CF02x?$CF02x@ 00000000000061a8 BasePrintLib:PrintLibInternal.obj
+ 0002:00000e80 ??_C@_0M@LHGBCIKM@?$DMnull?5time?$DO?$AA@ 00000000000061e0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000e90 ??_C@_0BK@FCPKCIDD@?$CF02d?1?$CF02d?1?$CF04d?5?5?$CF02d?3?$CF02d?$AA@ 00000000000061f0 BasePrintLib:PrintLibInternal.obj
+ 0002:00000eac ??_C@_04JIMNDDED@?$CF08X?$AA@ 000000000000620c BasePrintLib:PrintLibInternal.obj
+ 0002:00000eb4 ??_C@_02PCIJFNDE@?$AN?6?$AA@ 0000000000006214 BasePrintLib:PrintLibInternal.obj
+ 0002:00000eb8 ??_C@_01LIIJDEN@?$AN?$AA@ 0000000000006218 BasePrintLib:PrintLibInternal.obj
+ 0002:00000ec0 mWarningString 0000000000006220 BasePrintLib:PrintLibInternal.obj
+ 0002:00000f60 mErrorString 00000000000062c0 BasePrintLib:PrintLibInternal.obj
+ 0002:00001220 mHexStr 0000000000006580 BasePrintLib:PrintLibInternal.obj
+ 0002:00001230 ??_C@_0BH@LKMBFCBF@Format?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006590 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:00001250 ??_C@_0FD@OABGLBHF@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000065b0 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:000012a8 ??_C@_0BE@ECBJLCDE@ASSERT?5?$CFa?$CI?$CFLu?$CJ?3?5?$CFa?6?$AA@ 0000000000006608 PlatformDebugLibIoPort:DebugLib.obj
+ 0002:000012c0 ??_C@_0BN@COECPDCC@gImageHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006620 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:000012e0 ??_C@_0GE@FKBNDHHB@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000006640 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00001348 ??_C@_0BE@DGNHAHIL@gST?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000066a8 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00001360 ??_C@_0BE@BDFJLGLN@gBS?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000066c0 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0002:00001380 ??_C@_0FO@BEMDJMPM@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000066e0 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:000013e0 ??_C@_0DO@GEEICOOO@AllocationSize?5?$DM?$DN?5?$CI0xFFFFFFFFFFF@ 0000000000006740 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0002:00001420 ??_C@_0BE@OBDFIHND@gRT?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006780 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:00001440 ??_C@_0GK@FJIMGEPP@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000067a0 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0002:000014b0 ??_C@_0GI@KEFAHLGJ@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000006810 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00001518 ??_C@_0DC@CNNBPJA@mDevicePathLibDevicePathUtilitie@ 0000000000006878 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00001550 ??_C@_0BF@CBLMFKOC@Node?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000068b0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0002:00001570 ??_C@_0EK@CMFOJGEC@c?3?2users?2mliang2x?2workspace?2edk2@ 00000000000068d0 UefiLib:UefiDriverModel.obj
+ 0002:000015c0 ??_C@_0FO@HNLMMFDN@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000006920 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0002:00001620 ??_C@_0EK@GBBIEMHN@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000006980 DxeNetLib:DxeNetLib.obj
+ 0002:00001670 ??_C@_0BK@GPKNKKJO@MacString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000069d0 DxeNetLib:DxeNetLib.obj
+ 0002:00001690 ??_C@_0BK@KLJHMMPJ@HiiHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 00000000000069f0 UefiHiiLib:HiiString.obj
+ 0002:000016b0 ??_C@_0EN@DDBLCGFI@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000006a10 UefiHiiLib:HiiString.obj
+ 0002:00001700 ??_C@_06PLDEFKP@x?9UEFI?$AA@ 0000000000006a60 UefiHiiLib:HiiString.obj
+ 0002:00001708 ??_C@_0CA@OEKIMLLB@PackageListGuid?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006a68 UefiHiiLib:HiiString.obj
+ 0002:00001730 ??_C@_0EK@CCOCGB@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000006a90 UefiHiiLib:HiiLib.obj
+ 0002:00001780 ??_C@_0BN@EHPNHAIF@ConfigString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006ae0 UefiHiiLib:HiiLib.obj
+ 0002:000017a0 ??_C@_0BG@MJAHJKJ@Block?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006b00 UefiHiiLib:HiiLib.obj
+ 0002:000017b8 ??_C@_1M@DPLGJLCD@?$AAG?$AAU?$AAI?$AAD?$AA?$DN?$AA?$AA@ 0000000000006b18 UefiHiiLib:HiiLib.obj
+ 0002:000017c8 ??_C@_1O@FMIENBLJ@?$AA?$CG?$AAN?$AAA?$AAM?$AAE?$AA?$DN?$AA?$AA@ 0000000000006b28 UefiHiiLib:HiiLib.obj
+ 0002:000017d8 ??_C@_1O@GGMHNGIF@?$AA?$CG?$AAP?$AAA?$AAT?$AAH?$AA?$DN?$AA?$AA@ 0000000000006b38 UefiHiiLib:HiiLib.obj
+ 0002:000017e8 ??_C@_0BM@LENJOOBF@FirstString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006b48 UefiHiiLib:HiiLib.obj
+ 0002:00001808 ??_C@_0BN@CGMEJHHH@SecondString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006b68 UefiHiiLib:HiiLib.obj
+ 0002:00001828 ??_C@_0CC@BCKDEPBB@StartSearchString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 0000000000006b88 UefiHiiLib:HiiLib.obj
+ 0002:00001850 ??_C@_0CB@NPMPBLHL@StopSearchString?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ@ 0000000000006bb0 UefiHiiLib:HiiLib.obj
+ 0002:00001878 ??_C@_0BK@LFDBOAFJ@ConfigHdr?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006bd8 UefiHiiLib:HiiLib.obj
+ 0002:00001898 ??_C@_1M@IDEFLMF@?$AA?$CF?$AAs?$AA?$CG?$AA?$CF?$AAs?$AA?$AA@ 0000000000006bf8 UefiHiiLib:HiiLib.obj
+ 0002:000018a8 ??_C@_0BN@OKKMNGPH@OpCodeHandle?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006c08 UefiHiiLib:HiiLib.obj
+ 0002:000018c8 ??_C@_0BP@IOABAFLF@OpCodeTemplate?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006c28 UefiHiiLib:HiiLib.obj
+ 0002:000018e8 ??_C@_0CF@DPHCOLMP@?$CIOpCodeSize?5?$CL?5ExtensionSize?$CJ?5?$DM?$DN?5@ 0000000000006c48 UefiHiiLib:HiiLib.obj
+ 0002:00001910 mConfigHdrTemplate 0000000000006c70 UefiHiiLib:HiiLib.obj
+ 0002:00001980 mEndOfPakageList 0000000000006ce0 UefiHiiLib:HiiLib.obj
+ 0002:00001990 ??_C@_0EP@LMJDKFAP@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000006cf0 UefiHiiLib:HiiLanguage.obj
+ 0002:000019e0 ??_C@_0ED@MKGCMJG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 0000000000006d40 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00001a30 ??_C@_0FF@LLAFLLDM@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000006d90 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00001a88 ??_C@_0DO@MAOBOFEG@?$CILength?5?9?51?$CJ?5?$DM?$DN?5?$CI0xFFFFFFFFFFFFF@ 0000000000006de8 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0002:00001ac8 ??_C@_0CC@JOEHDGKB@DestinationBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50@ 0000000000006e28 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00001af0 ??_C@_0FI@NCCCHAEB@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000006e50 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00001b48 ??_C@_0BN@MDMCNBCC@SourceBuffer?5?$CB?$DN?5?$CI?$CIvoid?5?$CK?$CJ?50?$CJ?$AA@ 0000000000006ea8 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0002:00001b70 ??_C@_0EE@FAJFAODK@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000006ed0 BaseLib:Unaligned.obj
+ 0002:00001bc0 ??_C@_0EN@EIGKPMFG@c?3?2users?2mliang2x?2workspace?2edk2@ 0000000000006f20 BaseLib:DivU64x32Remainder.obj
+ 0003:00000000 gEfiLoadedImageProtocolGuid 0000000000007120 VlanConfigDxe:AutoGen.obj
+ 0003:00000010 gEfiIfrTianoGuid 0000000000007130 VlanConfigDxe:AutoGen.obj
+ 0003:00000020 gEfiComponentName2ProtocolGuid 0000000000007140 VlanConfigDxe:AutoGen.obj
+ 0003:00000030 gEfiVlanConfigProtocolGuid 0000000000007150 VlanConfigDxe:AutoGen.obj
+ 0003:00000040 gEfiDevicePathProtocolGuid 0000000000007160 VlanConfigDxe:AutoGen.obj
+ 0003:00000050 VlanConfigDxeStrings 0000000000007170 VlanConfigDxe:AutoGen.obj
+ 0003:00000438 gEfiSimpleNetworkProtocolGuid 0000000000007558 VlanConfigDxe:AutoGen.obj
+ 0003:00000448 gEfiHiiConfigRoutingProtocolGuid 0000000000007568 VlanConfigDxe:AutoGen.obj
+ 0003:00000458 gEfiHiiImageProtocolGuid 0000000000007578 VlanConfigDxe:AutoGen.obj
+ 0003:00000468 gEfiDevicePathUtilitiesProtocolGuid 0000000000007588 VlanConfigDxe:AutoGen.obj
+ 0003:00000478 gEfiHiiDatabaseProtocolGuid 0000000000007598 VlanConfigDxe:AutoGen.obj
+ 0003:00000488 gEfiHiiStringProtocolGuid 00000000000075a8 VlanConfigDxe:AutoGen.obj
+ 0003:00000498 gEfiHiiConfigAccessProtocolGuid 00000000000075b8 VlanConfigDxe:AutoGen.obj
+ 0003:000004a8 gEfiManagedNetworkServiceBindingProtocolGuid 00000000000075c8 VlanConfigDxe:AutoGen.obj
+ 0003:000004b8 gEfiFormBrowser2ProtocolGuid 00000000000075d8 VlanConfigDxe:AutoGen.obj
+ 0003:000004c8 gEfiDriverBindingProtocolGuid 00000000000075e8 VlanConfigDxe:AutoGen.obj
+ 0003:000004d8 gEfiComponentNameProtocolGuid 00000000000075f8 VlanConfigDxe:AutoGen.obj
+ 0003:000004e8 gEfiCallerIdGuid 0000000000007608 VlanConfigDxe:AutoGen.obj
+ 0003:000004f8 gEfiManagedNetworkProtocolGuid 0000000000007618 VlanConfigDxe:AutoGen.obj
+ 0003:00000510 gVlanConfigFormSetGuid 0000000000007630 VlanConfigDxe:AutoGen.obj
+ 0003:00000520 gEfiHiiFontProtocolGuid 0000000000007640 VlanConfigDxe:AutoGen.obj
+ 0003:00000530 gVlanConfigDriverBinding 0000000000007650 VlanConfigDxe:VlanConfigDriver.obj
+ 0003:00000560 gVlanConfigComponentName2 0000000000007680 VlanConfigDxe:ComponentName.obj
+ 0003:00000578 gVlanConfigComponentName 0000000000007698 VlanConfigDxe:ComponentName.obj
+ 0003:00000590 mVlanConfigDriverNameTable 00000000000076b0 VlanConfigDxe:ComponentName.obj
+ 0003:000005b0 mVlanConfigPrivateDateTemplate 00000000000076d0 VlanConfigDxe:VlanConfigImpl.obj
+ 0003:000006e0 mVlanStorageName 0000000000007800 VlanConfigDxe:VlanConfigImpl.obj
+ 0003:000006f8 mHiiVendorDevicePathNode 0000000000007818 VlanConfigDxe:VlanConfigImpl.obj
+ 0003:00000710 VlanConfigBin 0000000000007830 VlanConfigDxe:VlanConfig.obj
+ 0003:00000820 mNetVlanDevicePathTemplate 0000000000007940 DxeNetLib:DxeNetLib.obj
+ 0003:00000828 mHiiConfigRouting 0000000000007948 VlanConfigDxe:VlanConfigImpl.obj
+ 0003:00000838 gST 0000000000007958 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00000840 gBS 0000000000007960 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00000848 gImageHandle 0000000000007968 UefiBootServicesTableLib:UefiBootServicesTableLib.obj
+ 0003:00000850 gRT 0000000000007970 UefiRuntimeServicesTableLib:UefiRuntimeServicesTableLib.obj
+ 0003:00000858 mDevicePathLibDevicePathUtilities 0000000000007978 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0003:00000860 gHiiString 0000000000007980 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000868 gHiiFont 0000000000007988 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000870 gHiiConfigRouting 0000000000007990 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000878 gHiiImage 0000000000007998 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000880 gHiiDatabase 00000000000079a0 UefiHiiServicesLib:UefiHiiServicesLib.obj
+ 0003:00000888 mUefiFormBrowser2 00000000000079a8 UefiHiiLib:HiiLib.obj
+
+ entry point at 0001:0000049c
+
+ Static symbols
+
+ 0001:0000005a InternalMemCopyMem.0 000000000000031a BaseMemoryLibRepStr:CopyMem.obj
+ 0001:0000006a @CopyBackward 000000000000032a BaseMemoryLibRepStr:CopyMem.obj
+ 0001:00000073 @CopyBytes 0000000000000333 BaseMemoryLibRepStr:CopyMem.obj
+ 0001:0000014a @UseRepIo 000000000000040a BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000014c @SevNoRepIo_Done 000000000000040c BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000164 @IoReadFifo8_NoRep 0000000000000424 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000166 @IoReadFifo8_Loop 0000000000000426 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000016e @IoReadFifo8_Done 000000000000042e BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000187 @IoReadFifo16_NoRep 0000000000000447 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000189 @IoReadFifo16_Loop 0000000000000449 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000194 @IoReadFifo16_Done 0000000000000454 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001ac @IoReadFifo32_NoRep 000000000000046c BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001ae @IoReadFifo32_Loop 000000000000046e BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001b7 @IoReadFifo32_Done 0000000000000477 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001cf @IoWriteFifo8_NoRep 000000000000048f BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001d1 @IoWriteFifo8_Loop 0000000000000491 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001d9 @IoWriteFifo8_Done 0000000000000499 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001f2 @IoWriteFifo16_NoRep 00000000000004b2 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001f4 @IoWriteFifo16_Loop 00000000000004b4 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:000001ff @IoWriteFifo16_Done 00000000000004bf BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000217 @IoWriteFifo32_NoRep 00000000000004d7 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000219 @IoWriteFifo32_Loop 00000000000004d9 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:00000222 @IoWriteFifo32_Done 00000000000004e2 BaseIoLibIntrinsicSev:IoFifoSev.obj
+ 0001:0000028e TdVmCall.no_return_data 000000000000054e BaseLib:TdVmcall.obj
+ 0001:0000030b TdCall.exit 00000000000005cb BaseLib:TdCall.obj
+ 0003:00000830 mDebugIoPortChecked 0000000000007950 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0003:00000831 mDebugIoPortFound 0000000000007951 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0004:00000000 $pdata$_DriverUnloadHandler 00000000000079c0 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0004:0000000c $pdata$_ModuleEntryPoint 00000000000079cc UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0004:00000018 $pdata$ProcessLibraryConstructorList 00000000000079d8 VlanConfigDxe:AutoGen.obj
+ 0004:00000024 $pdata$VlanConfigDriverBindingSupported 00000000000079e4 VlanConfigDxe:VlanConfigDriver.obj
+ 0004:00000030 $pdata$VlanConfigDriverBindingStart 00000000000079f0 VlanConfigDxe:VlanConfigDriver.obj
+ 0004:0000003c $pdata$VlanConfigDriverBindingStop 00000000000079fc VlanConfigDxe:VlanConfigDriver.obj
+ 0004:00000048 $pdata$VlanConfigComponentNameGetDriverName 0000000000007a08 VlanConfigDxe:ComponentName.obj
+ 0004:00000054 $pdata$VlanExtractConfig 0000000000007a14 VlanConfigDxe:VlanConfigImpl.obj
+ 0004:00000060 $pdata$VlanRouteConfig 0000000000007a20 VlanConfigDxe:VlanConfigImpl.obj
+ 0004:0000006c $pdata$VlanCallback 0000000000007a2c VlanConfigDxe:VlanConfigImpl.obj
+ 0004:00000078 $pdata$VlanUpdateForm 0000000000007a38 VlanConfigDxe:VlanConfigImpl.obj
+ 0004:00000084 $pdata$InstallVlanConfigForm 0000000000007a44 VlanConfigDxe:VlanConfigImpl.obj
+ 0004:00000090 $pdata$UninstallVlanConfigForm 0000000000007a50 VlanConfigDxe:VlanConfigImpl.obj
+ 0004:0000009c $pdata$ZeroMem 0000000000007a5c BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0004:000000a8 $pdata$StrnLenS 0000000000007a68 BaseLib:SafeString.obj
+ 0004:000000b4 $pdata$StrCpyS 0000000000007a74 BaseLib:SafeString.obj
+ 0004:000000c0 $pdata$StrCatS 0000000000007a80 BaseLib:SafeString.obj
+ 0004:000000cc $pdata$StrLen 0000000000007a8c BaseLib:String.obj
+ 0004:000000d8 $pdata$StrnCmp 0000000000007a98 BaseLib:String.obj
+ 0004:000000e4 $pdata$StrStr 0000000000007aa4 BaseLib:String.obj
+ 0004:000000f0 $pdata$AsciiStrLen 0000000000007ab0 BaseLib:String.obj
+ 0004:000000fc $pdata$AsciiStrnCmp 0000000000007abc BaseLib:String.obj
+ 0004:00000108 $pdata$UnicodeSPrint 0000000000007ac8 BasePrintLib:PrintLib.obj
+ 0004:00000114 $pdata$UnicodeValueToStringS 0000000000007ad4 BasePrintLib:PrintLib.obj
+ 0004:00000120 $pdata$AsciiSPrint 0000000000007ae0 BasePrintLib:PrintLib.obj
+ 0004:0000012c $pdata$BasePrintLibValueToString 0000000000007aec BasePrintLib:PrintLibInternal.obj
+ 0004:00000138 $pdata$BasePrintLibConvertValueToStringS 0000000000007af8 BasePrintLib:PrintLibInternal.obj
+ 0004:00000144 $pdata$BasePrintLibSPrintMarker 0000000000007b04 BasePrintLib:PrintLibInternal.obj
+ 0004:00000150 $pdata$BasePrintLibSPrint 0000000000007b10 BasePrintLib:PrintLibInternal.obj
+ 0004:0000015c $pdata$DebugPrint 0000000000007b1c PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000168 $pdata$DebugPrintMarker 0000000000007b28 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000174 $pdata$DebugAssert 0000000000007b34 PlatformDebugLibIoPort:DebugLib.obj
+ 0004:00000180 $pdata$PlatformDebugLibIoPortFound 0000000000007b40 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0004:0000018c $pdata$InternalAllocatePool 0000000000007b4c UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:00000198 $pdata$AllocateZeroPool 0000000000007b58 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:000001a4 $pdata$InternalAllocateCopyPool 0000000000007b64 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:000001b0 $pdata$InternalReallocatePool 0000000000007b70 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:000001bc $pdata$FreePool 0000000000007b7c UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0004:000001c8 $pdata$DevicePathSubType 0000000000007b88 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000001d4 $pdata$DevicePathNodeLength 0000000000007b94 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000001e0 $pdata$NextDevicePathNode 0000000000007ba0 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000001ec $pdata$IsDevicePathEndType 0000000000007bac UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:000001f8 $pdata$IsDevicePathEnd 0000000000007bb8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000204 $pdata$DevicePathFromHandle 0000000000007bc4 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0004:00000210 $pdata$CompareIso639LanguageCode 0000000000007bd0 UefiLib:UefiLib.obj
+ 0004:0000021c $pdata$IsLanguageSupported 0000000000007bdc UefiLib:UefiLib.obj
+ 0004:00000228 $pdata$NetLibGetSnpHandle 0000000000007be8 DxeNetLib:DxeNetLib.obj
+ 0004:00000234 $pdata$NetLibGetVlanHandle 0000000000007bf4 DxeNetLib:DxeNetLib.obj
+ 0004:00000240 $pdata$NetLibGetMacString 0000000000007c00 DxeNetLib:DxeNetLib.obj
+ 0004:0000024c $pdata$HiiSetString 0000000000007c0c UefiHiiLib:HiiString.obj
+ 0004:00000258 $pdata$HiiAddPackages 0000000000007c18 UefiHiiLib:HiiLib.obj
+ 0004:00000264 $pdata$InternalHiiBrowserCallback 0000000000007c24 UefiHiiLib:HiiLib.obj
+ 0004:00000270 $pdata$HiiConstructConfigHdr 0000000000007c30 UefiHiiLib:HiiLib.obj
+ 0004:0000027c $pdata$InternalHiiCompareSubString 0000000000007c3c UefiHiiLib:HiiLib.obj
+ 0004:00000288 $pdata$HiiIsConfigHdrMatch 0000000000007c48 UefiHiiLib:HiiLib.obj
+ 0004:00000294 $pdata$HiiGetBrowserData 0000000000007c54 UefiHiiLib:HiiLib.obj
+ 0004:000002a0 $pdata$HiiSetBrowserData 0000000000007c60 UefiHiiLib:HiiLib.obj
+ 0004:000002ac $pdata$HiiAllocateOpCodeHandle 0000000000007c6c UefiHiiLib:HiiLib.obj
+ 0004:000002b8 $pdata$InternalHiiGrowOpCodeHandle 0000000000007c78 UefiHiiLib:HiiLib.obj
+ 0004:000002c4 $pdata$InternalHiiCreateOpCodeExtended 0000000000007c84 UefiHiiLib:HiiLib.obj
+ 0004:000002d0 $pdata$HiiCreateGuidOpCode 0000000000007c90 UefiHiiLib:HiiLib.obj
+ 0004:000002dc $pdata$InternalHiiUpdateFormPackageData 0000000000007c9c UefiHiiLib:HiiLib.obj
+ 0004:000002e8 $pdata$HiiUpdateForm 0000000000007ca8 UefiHiiLib:HiiLib.obj
+ 0004:000002f4 $pdata$HiiGetSupportedLanguages 0000000000007cb4 UefiHiiLib:HiiLanguage.obj
+ 0004:00000300 $pdata$CopyGuid 0000000000007cc0 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0004:0000030c $pdata$CompareGuid 0000000000007ccc BaseMemoryLibRepStr:MemLibGuid.obj
+ 0004:00000318 $pdata$CopyMem 0000000000007cd8 BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0004:00000324 $pdata$CompareMem 0000000000007ce4 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0004:00000330 $pdata$ReadUnaligned32 0000000000007cf0 BaseLib:Unaligned.obj
+ 0004:0000033c $pdata$ReadUnaligned64 0000000000007cfc BaseLib:Unaligned.obj
+ 0004:00000348 $pdata$IoWriteFifo8 0000000000007d08 BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0004:00000354 $pdata$TdIoRead8 0000000000007d14 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0004:00000360 $pdata$TdIoWrite8 0000000000007d20 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:00000000 $unwind$_DriverUnloadHandler 0000000000007d40 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0005:00000010 $unwind$_ModuleEntryPoint 0000000000007d50 UefiDriverEntryPoint:DriverEntryPoint.obj
+ 0005:0000001c $unwind$ProcessLibraryConstructorList 0000000000007d5c VlanConfigDxe:AutoGen.obj
+ 0005:0000001c $unwind$CopyMem 0000000000007d5c BaseMemoryLibRepStr:CopyMemWrapper.obj
+ 0005:0000001c $unwind$BasePrintLibValueToString 0000000000007d5c BasePrintLib:PrintLibInternal.obj
+ 0005:0000001c $unwind$InternalReallocatePool 0000000000007d5c UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:0000001c $unwind$InternalHiiCompareSubString 0000000000007d5c UefiHiiLib:HiiLib.obj
+ 0005:0000001c $unwind$StrnCmp 0000000000007d5c BaseLib:String.obj
+ 0005:00000030 $unwind$VlanConfigDriverBindingSupported 0000000000007d70 VlanConfigDxe:VlanConfigDriver.obj
+ 0005:00000040 $unwind$VlanConfigDriverBindingStart 0000000000007d80 VlanConfigDxe:VlanConfigDriver.obj
+ 0005:0000004c $unwind$VlanConfigDriverBindingStop 0000000000007d8c VlanConfigDxe:VlanConfigDriver.obj
+ 0005:00000060 $unwind$VlanConfigComponentNameGetDriverName 0000000000007da0 VlanConfigDxe:ComponentName.obj
+ 0005:00000078 $unwind$VlanExtractConfig 0000000000007db8 VlanConfigDxe:VlanConfigImpl.obj
+ 0005:00000098 $unwind$ZeroMem 0000000000007dd8 BaseMemoryLibRepStr:ZeroMemWrapper.obj
+ 0005:00000098 $unwind$CompareIso639LanguageCode 0000000000007dd8 UefiLib:UefiLib.obj
+ 0005:00000098 $unwind$AsciiStrLen 0000000000007dd8 BaseLib:String.obj
+ 0005:00000098 $unwind$VlanRouteConfig 0000000000007dd8 VlanConfigDxe:VlanConfigImpl.obj
+ 0005:00000098 $unwind$StrnLenS 0000000000007dd8 BaseLib:SafeString.obj
+ 0005:00000098 $unwind$InternalAllocateCopyPool 0000000000007dd8 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:00000098 $unwind$IsDevicePathEnd 0000000000007dd8 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:00000098 $unwind$HiiGetSupportedLanguages 0000000000007dd8 UefiHiiLib:HiiLanguage.obj
+ 0005:000000a4 $unwind$VlanCallback 0000000000007de4 VlanConfigDxe:VlanConfigImpl.obj
+ 0005:000000c0 $unwind$VlanUpdateForm 0000000000007e00 VlanConfigDxe:VlanConfigImpl.obj
+ 0005:000000dc $unwind$InstallVlanConfigForm 0000000000007e1c VlanConfigDxe:VlanConfigImpl.obj
+ 0005:000000f0 $unwind$UninstallVlanConfigForm 0000000000007e30 VlanConfigDxe:VlanConfigImpl.obj
+ 0005:000000fc $unwind$StrCpyS 0000000000007e3c BaseLib:SafeString.obj
+ 0005:00000114 $unwind$StrCatS 0000000000007e54 BaseLib:SafeString.obj
+ 0005:00000130 $unwind$IsLanguageSupported 0000000000007e70 UefiLib:UefiLib.obj
+ 0005:00000130 $unwind$InternalHiiGrowOpCodeHandle 0000000000007e70 UefiHiiLib:HiiLib.obj
+ 0005:00000130 $unwind$AsciiStrnCmp 0000000000007e70 BaseLib:String.obj
+ 0005:00000130 $unwind$CompareGuid 0000000000007e70 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0005:00000130 $unwind$HiiIsConfigHdrMatch 0000000000007e70 UefiHiiLib:HiiLib.obj
+ 0005:00000130 $unwind$CopyGuid 0000000000007e70 BaseMemoryLibRepStr:MemLibGuid.obj
+ 0005:00000130 $unwind$StrStr 0000000000007e70 BaseLib:String.obj
+ 0005:00000130 $unwind$StrLen 0000000000007e70 BaseLib:String.obj
+ 0005:00000130 $unwind$IoWriteFifo8 0000000000007e70 BaseIoLibIntrinsicSev:IoLibFifo.obj
+ 0005:00000140 $unwind$UnicodeSPrint 0000000000007e80 BasePrintLib:PrintLib.obj
+ 0005:0000014c $unwind$UnicodeValueToStringS 0000000000007e8c BasePrintLib:PrintLib.obj
+ 0005:00000160 $unwind$AsciiSPrint 0000000000007ea0 BasePrintLib:PrintLib.obj
+ 0005:00000168 $unwind$BasePrintLibConvertValueToStringS 0000000000007ea8 BasePrintLib:PrintLibInternal.obj
+ 0005:00000184 $unwind$BasePrintLibSPrintMarker 0000000000007ec4 BasePrintLib:PrintLibInternal.obj
+ 0005:000001a0 $unwind$BasePrintLibSPrint 0000000000007ee0 BasePrintLib:PrintLibInternal.obj
+ 0005:000001a8 $unwind$DebugPrint 0000000000007ee8 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:000001b0 $unwind$DebugPrintMarker 0000000000007ef0 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:000001c4 $unwind$DebugAssert 0000000000007f04 PlatformDebugLibIoPort:DebugLib.obj
+ 0005:000001d0 $unwind$PlatformDebugLibIoPortFound 0000000000007f10 PlatformDebugLibIoPort:DebugLibDetect.obj
+ 0005:000001d0 $unwind$DevicePathFromHandle 0000000000007f10 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:000001d0 $unwind$InternalAllocatePool 0000000000007f10 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:000001d0 $unwind$FreePool 0000000000007f10 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:000001d8 $unwind$DevicePathSubType 0000000000007f18 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:000001d8 $unwind$NextDevicePathNode 0000000000007f18 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:000001d8 $unwind$IsDevicePathEndType 0000000000007f18 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:000001d8 $unwind$ReadUnaligned64 0000000000007f18 BaseLib:Unaligned.obj
+ 0005:000001d8 $unwind$DevicePathNodeLength 0000000000007f18 UefiDevicePathLibDevicePathProtocol:UefiDevicePathLib.obj
+ 0005:000001d8 $unwind$HiiAllocateOpCodeHandle 0000000000007f18 UefiHiiLib:HiiLib.obj
+ 0005:000001d8 $unwind$AllocateZeroPool 0000000000007f18 UefiMemoryAllocationLib:MemoryAllocationLib.obj
+ 0005:000001d8 $unwind$ReadUnaligned32 0000000000007f18 BaseLib:Unaligned.obj
+ 0005:000001e0 $unwind$NetLibGetVlanHandle 0000000000007f20 DxeNetLib:DxeNetLib.obj
+ 0005:000001e0 $unwind$NetLibGetSnpHandle 0000000000007f20 DxeNetLib:DxeNetLib.obj
+ 0005:000001ec $unwind$NetLibGetMacString 0000000000007f2c DxeNetLib:DxeNetLib.obj
+ 0005:00000208 $unwind$HiiSetString 0000000000007f48 UefiHiiLib:HiiString.obj
+ 0005:00000220 $unwind$HiiAddPackages 0000000000007f60 UefiHiiLib:HiiLib.obj
+ 0005:00000234 $unwind$InternalHiiBrowserCallback 0000000000007f74 UefiHiiLib:HiiLib.obj
+ 0005:00000248 $unwind$HiiConstructConfigHdr 0000000000007f88 UefiHiiLib:HiiLib.obj
+ 0005:00000264 $unwind$HiiGetBrowserData 0000000000007fa4 UefiHiiLib:HiiLib.obj
+ 0005:00000278 $unwind$HiiSetBrowserData 0000000000007fb8 UefiHiiLib:HiiLib.obj
+ 0005:00000288 $unwind$InternalHiiCreateOpCodeExtended 0000000000007fc8 UefiHiiLib:HiiLib.obj
+ 0005:00000288 $unwind$CompareMem 0000000000007fc8 BaseMemoryLibRepStr:CompareMemWrapper.obj
+ 0005:000002a0 $unwind$HiiCreateGuidOpCode 0000000000007fe0 UefiHiiLib:HiiLib.obj
+ 0005:000002a8 $unwind$InternalHiiUpdateFormPackageData 0000000000007fe8 UefiHiiLib:HiiLib.obj
+ 0005:000002c4 $unwind$HiiUpdateForm 0000000000008004 UefiHiiLib:HiiLib.obj
+ 0005:000002dc $unwind$TdIoRead8 000000000000801c BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
+ 0005:000002e4 $unwind$TdIoWrite8 0000000000008024 BaseIoLibIntrinsicSev:IoLibInternalTdx.obj
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxe.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxe.txt
new file mode 100644
index 000000000000..24088ec20d38
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxe.txt
@@ -0,0 +1,2 @@
+MODULE_SIZE = 32896
+TIME_STAMP = 0
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxe.uni b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxe.uni
new file mode 100644
index 000000000000..dd68acd766ed
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxe.uni
@@ -0,0 +1,17 @@
+// /** @file
+// This module provides one way to configurate VALN setting.
+//
+// This module produces EFI HII Configuration Access Protocol to provide one way to
+// configurate VALN setting
+//
+// Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
+//
+// SPDX-License-Identifier: BSD-2-Clause-Patent
+//
+// **/
+
+
+#string STR_MODULE_ABSTRACT #language en-US "Provides a way to configure VLAN settings"
+
+#string STR_MODULE_DESCRIPTION #language en-US "This module produces EFI HII Configuration Access Protocol to provide a way to configure VLAN settings."
+
--git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxeExtra.uni b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxeExtra.uni
new file mode 100644
index 000000000000..a1e2a5959ad5
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxeExtra.uni
@@ -0,0 +1,14 @@
+// /** @file
+// VlanConfigDxe Localized Strings and Content
+//
+// Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.<BR>
+//
+// SPDX-License-Identifier: BSD-2-Clause-Patent
+//
+// **/
+
+#string STR_PROPERTIES_MODULE_NAME
+#language en-US
+"VLAN Configuration DXE Driver"
+
+
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxeOffset.bin b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxeOffset.bin
new file mode 100644
index 0000000000000000000000000000000000000000..a8f95621fb161600cfa2431b05d5405033445472
GIT binary patch
literal 48
xcmaEGRJik-ahvb#kIwHq|FESM6f%IpmYO{m+_U06R|yufyWL`2WKaPS2LK0{5rzN&
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxeStrDefs.hpk b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxeStrDefs.hpk
new file mode 100644
index 0000000000000000000000000000000000000000..248ff8279bf64a4726ce8c4116d12068a5f0a7c8
GIT binary patch
literal 992
zcma)*-A=+l5QUG?N8kbW0hFLIQ7;LSXre|zy(jGgMt+PfMQ?moAH{Drma@bmgtogo
zb7sz*nf>0^!KoyB{`>98&yJq@YIHTzNE5v%(->6aSvP9yPEH-oF%B_}w9vZ-%30f4
z<d)RBIlyy(4&XRsaDY9#WjKGulCm$bC48f>J7%wUbGjntL~j<i0}UT4@FX=7OTJ~T
zIJmW~)3q*RHg@13J^TZ0=T@ZGM<~)%GEuAehpY>-o6PBIy#V0?!l|V%`qt7#=w4uR
zPf(NF-nl-F&p93^YU)@IAU7R$%W`Ic+R!i}YXZay4KQx1RMxpb(sZR|ebqtsc!YeE
z)iG)|cezpOqsD|MVOtH3b#00W1z((cYuku@Y{+mcW5p>mi^AW=KF7=YwrzxN@tHCG
rKum5A+YCsT3-ZXj$2y0eHNOhD?M6(016C!LJ#dsBt5sdNCIs{YbkCm0
literal 0
HcmV?d00001
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxeUni.json b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxeUni.json
new file mode 100644
index 000000000000..20548de7da2d
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigDxeUni.json
@@ -0,0 +1,32 @@
+{
+ "LanguageDef": [
+ [
+ "en-US",
+ "English"
+ ]
+ ],
+ "UniString": {
+ "en-US": {
+ "$LANGUAGE_NAME": "en-US",
+ "$PRINTABLE_LANGUAGE_NAME": "English",
+ "STR_VLAN_FORM_SET_TITLE": "VLAN Configuration",
+ "STR_VLAN_FORM_SET_TITLE_HELP": "VLAN configuration for this network device",
+ "STR_VLAN_FORM_TITLE": "VLAN Configuration",
+ "STR_VLAN_FORM_HELP": "VLAN Configuration Help",
+ "STR_VLAN_CREATE_VLAN": "Create new VLAN",
+ "STR_VLAN_VID_PROMPT": " VLAN ID",
+ "STR_VLAN_VID_HELP": "VLAN ID of new VLAN or existing VLAN, valid value is 0~4094",
+ "STR_VLAN_PRIORITY_PROMPT": " Priority",
+ "STR_VLAN_PRIORITY_HELP": "802.1Q Priority, valid value is 0~7",
+ "STR_VLAN_ADD_VLAN_PROMPT": "Add VLAN",
+ "STR_VLAN_ADD_VLAN_HELP": "Create a new VLAN or update existing VLAN",
+ "STR_VLAN_VLAN_LIST": "Configured VLAN List",
+ "STR_VLAN_VLAN_LIST_HELP": "Select for remove",
+ "STR_VLAN_REMOVE_VLAN_PROMPT": "Remove VLAN",
+ "STR_VLAN_REMOVE_VLAN_HELP": "Remove selected VLANs",
+ "STR_VLAN_NULL_STRING": "",
+ "STR_GET_CURRENT_SETTING": "Enter Configuration Menu",
+ "STR_GET_CURRENT_SETTING_HELP": "Press ENTER to enter configuration menu for VLAN configuration."
+ }
+ }
+}
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigImpl.c.deps b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigImpl.c.deps
new file mode 100644
index 000000000000..33b6680f757b
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/VlanConfigImpl.c.deps
@@ -0,0 +1,64 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\VlanConfigImpl.obj: \
+"c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\DEBUG\AutoGen.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h" \
+"c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\vlanconfigdxe\vlanconfigdxe\debug\VlanConfigDxeStrDefs.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\vlanconfigdxe\VlanConfigImpl.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/VlanConfig.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h" \
+"c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h" \
+"c:\users\mliang2x\workspace\edk2\networkpkg\vlanconfigdxe\VlanConfigNvData.h" \
+"c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/VlanConfigHii.h"
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/cc_resp_4.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/cc_resp_4.txt
new file mode 100644
index 000000000000..4071c47681da
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/cc_resp_4.txt
@@ -0,0 +1 @@
+ c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\DEBUG\AutoGen.c c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\DEBUG\VlanConfig.c c:\users\mliang2x\workspace\edk2\NetworkPkg\VlanConfigDxe\VlanConfigDriver.c c:\users\mliang2x\workspace\edk2\NetworkPkg\VlanConfigDxe\ComponentName.c c:\users\mliang2x\workspace\edk2\NetworkPkg\VlanConfigDxe\VlanConfigImpl.c
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/object_files.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/object_files.lst
new file mode 100644
index 000000000000..65299101f276
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/object_files.lst
@@ -0,0 +1,5 @@
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/VlanConfigDxe/VlanConfigDxe/OUTPUT/ComponentName.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/VlanConfigDxe/VlanConfigDxe/OUTPUT/VlanConfigDriver.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/VlanConfigDxe/VlanConfigDxe/OUTPUT/VlanConfigImpl.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/VlanConfigDxe/VlanConfigDxe/OUTPUT/VlanConfig.obj
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/VlanConfigDxe/VlanConfigDxe/OUTPUT/AutoGen.obj
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/static_library_files.lst b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/static_library_files.lst
new file mode 100644
index 000000000000..c49a8c7f8eaf
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/OUTPUT/static_library_files.lst
@@ -0,0 +1,20 @@
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/RegisterFilterLibNull/RegisterFilterLibNull/OUTPUT/FilterLibNull.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/DxePcdLib/DxePcdLib/OUTPUT/DxePcdLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr/OUTPUT/BaseMemoryLibRepStr.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BaseLib/BaseLib/OUTPUT/BaseLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/TdxLib/TdxLib/OUTPUT/TdxLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/OvmfPkg/Library/CcProbeLib/CcProbeLib/OUTPUT/CcProbeLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib/OUTPUT/BaseDebugPrintErrorLevelLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsicSev/OUTPUT/BaseIoLibIntrinsicSev.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/BasePrintLib/BasePrintLib/OUTPUT/BasePrintLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort/OUTPUT/PlatformDebugLibIoPort.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib/OUTPUT/UefiBootServicesTableLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib/OUTPUT/UefiMemoryAllocationLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib/OUTPUT/UefiRuntimeServicesTableLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol/OUTPUT/UefiDevicePathLibDevicePathProtocol.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiLib/UefiLib/OUTPUT/UefiLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib/OUTPUT/UefiHiiServicesLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint/OUTPUT/UefiDriverEntryPoint.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/Library/DxeNetLib/DxeNetLib/OUTPUT/DxeNetLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/MdeModulePkg/Library/UefiHiiLib/UefiHiiLib/OUTPUT/UefiHiiLib.lib
+c:/users/mliang2x/workspace/edk2/Build/OvmfX64/DEBUG_VS2015x86/X64/NetworkPkg/VlanConfigDxe/VlanConfigDxe/OUTPUT/VlanConfigDxe.lib
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/VlanConfigDxe.makefile b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/VlanConfigDxe.makefile
new file mode 100644
index 000000000000..7aa10caaee43
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/VlanConfigDxe.makefile
@@ -0,0 +1 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\Makefile
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/dependency b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/dependency
new file mode 100644
index 000000000000..9004aa37ea21
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/dependency
@@ -0,0 +1,27 @@
+
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\DEBUG\VlanConfig.vfr.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\DEBUG\VlanConfig.vfr.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\AutoGen.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\AutoGen.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\ComponentName.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\ComponentName.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\VlanConfig.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\VlanConfig.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\VlanConfigDriver.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\VlanConfigDriver.c.deps
+!ENDIF
+
+!IF EXIST(c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\VlanConfigImpl.c.deps)
+!INCLUDE c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\OUTPUT\VlanConfigImpl.c.deps
+!ENDIF
+
+
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/deps.txt b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/deps.txt
new file mode 100644
index 000000000000..2a962a3ebcb4
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/deps.txt
@@ -0,0 +1,66 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\DEBUG\AutoGen.h
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\DEBUG\VlanConfigDxeStrDefs.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/VlanConfig.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/VlanConfigHii.h
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h
+c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\vlanconfigdxe\vlanconfigdxe\debug\AutoGen.h
+c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\vlanconfigdxe\vlanconfigdxe\debug\VlanConfigDxeStrDefs.h
+c:\users\mliang2x\workspace\edk2\networkpkg\vlanconfigdxe\VlanConfigImpl.h
+c:\users\mliang2x\workspace\edk2\networkpkg\vlanconfigdxe\VlanConfigNvData.h
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/deps_target b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/deps_target
new file mode 100644
index 000000000000..994600004c8b
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/VlanConfigDxe/deps_target
@@ -0,0 +1,66 @@
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\DEBUG\AutoGen.h:
+c:\users\mliang2x\workspace\edk2\Build\OvmfX64\DEBUG_VS2015x86\X64\NetworkPkg\VlanConfigDxe\VlanConfigDxe\DEBUG\VlanConfigDxeStrDefs.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Guid/MdeModuleHii.h:
+c:\users\mliang2x\workspace\edk2\MdeModulePkg\Include\Library/HiiLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Base.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiFormMapMethodGuid.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/HiiPlatformSetupFormset.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/PcAnsi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Guid/WinCertificate.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi10.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi20.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi30.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi40.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi50.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi51.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi60.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi61.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi62.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi63.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Acpi64.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/AcpiAml.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\IndustryStandard/Bluetooth.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/BaseMemoryLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DebugLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/DevicePathLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/MemoryAllocationLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/PrintLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiBootServicesTableLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiDriverEntryPoint.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Library/UefiLib.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ComponentName2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DevicePath.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverBinding.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverConfiguration2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/DriverDiagnostics2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/FormBrowser2.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/GraphicsOutput.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigAccess.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/HiiConfigRouting.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/Ip6.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/ManagedNetwork.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleFileSystem.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleNetwork.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextIn.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextInEx.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/SimpleTextOut.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Protocol/VlanConfig.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiBaseType.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiGpt.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiMultiPhase.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiPxe.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\Uefi/UefiSpec.h:
+c:\users\mliang2x\workspace\edk2\MdePkg\Include\X64\ProcessorBind.h:
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Guid/VlanConfigHii.h:
+c:\users\mliang2x\workspace\edk2\NetworkPkg\Include\Library/NetLib.h:
+c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\vlanconfigdxe\vlanconfigdxe\debug\AutoGen.h:
+c:\users\mliang2x\workspace\edk2\build\ovmfx64\debug_vs2015x86\x64\networkpkg\vlanconfigdxe\vlanconfigdxe\debug\VlanConfigDxeStrDefs.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\vlanconfigdxe\VlanConfigImpl.h:
+c:\users\mliang2x\workspace\edk2\networkpkg\vlanconfigdxe\VlanConfigNvData.h:
\ No newline at end of file
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/__init__.py b/BaseTools/Source/Python/tests/vfr_yaml_compiler/__init__.py
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/conftest.py b/BaseTools/Source/Python/tests/vfr_yaml_compiler/conftest.py
new file mode 100644
index 000000000000..068379209838
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/conftest.py
@@ -0,0 +1,136 @@
+# -*- coding: utf-8 -*-
+import pytest
+import sys
+import os
+import re
+
+from configparser import ConfigParser
+
+sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
+
+from VfrCompiler.IfrCompiler import VfrCompiler, CmdParser
+
+workspace = os.path.dirname(
+ os.path.dirname(os.path.dirname(
+ os.path.dirname(os.path.dirname(os.path.dirname(__file__)))))).lower()
+
+outputDirRe = re.compile('^OUTPUT_DIR =')
+debugDirRe = re.compile('^DEBUG_DIR =')
+pyvfrRe = re.compile('\$\(PYVFR\)')
+moduleNameRe = re.compile('^MODULE_NAME =')
+
+vfr_compilers = list()
+
+
+class Namespace:
+ args_data = {
+ 'AutoDefault': None,
+ 'CPreprocessorOptions': None,
+ 'CheckDefault': None,
+ 'CreateIfrPkgFile': None,
+ 'CreateJsonFile': None,
+ 'CreateRecordListFile': None,
+ 'CreateYamlFile': None,
+ 'IncludePaths': None,
+ 'InputFileName': None,
+ 'LaunchVfrCompiler': True,
+ 'LaunchYamlCompiler': False,
+ 'ModuleName': '',
+ 'OldOutputDirectory': None,
+ 'OutputDirectory': None,
+ 'OverrideClassGuid': None,
+ 'SkipCPreprocessor': None,
+ 'StringFileName': None,
+ 'WarningAsError': None,
+ 'Workspace': None
+ }
+
+ def __init__(self, **kwargs):
+ self.args_data.update(kwargs)
+
+ def get_argv(self):
+ argv = 1
+ for key in self.args_data.keys():
+ self.__setattr__(key, self.args_data[key])
+ if self.args_data[key]:
+ argv += 1
+ return argv
+
+
+def preprocess_data_of_pytestini():
+ vfr_compilers.clear()
+ conf = ConfigParser()
+ conf.read(
+ os.path.join(os.path.dirname(os.path.dirname(__file__)), 'pytest_vfrcompiler.ini'))
+ vars = conf.items('target_folder')
+
+ makefiles = list()
+ for floder_path in vars[0][1].strip().split(','):
+ if not os.path.isabs(floder_path.replace('\n', '')):
+ file_path = os.path.join(os.path.dirname(
+ __file__), floder_path.replace('\n', ''), 'Makefile')
+
+ if os.path.isfile(file_path) and os.path.exists(file_path):
+ makefiles.append(file_path)
+
+ for makefile in list(set(makefiles)):
+ with open(makefile, 'r') as file:
+ makefile = file.readlines()
+ scops = dict()
+ launch = ''
+ for line in makefile:
+ if '#' in line:
+ continue
+ elif re.match(
+ moduleNameRe, line):
+ lines = line.split('=')
+ scops[lines[0].strip()] = lines[-1].strip().replace('\n', '')
+ elif re.match(outputDirRe, line) or re.match(debugDirRe,
+ line):
+ lines = line.split('=')
+ values = lines[-1].strip().split(os.sep)
+ scops[lines[0].strip()] = os.path.join(
+ os.path.dirname(__file__), values[-2], values[-1])
+ elif re.search(pyvfrRe, line):
+ scops['InputFileName'] = os.path.normpath(
+ workspace + os.path.normpath(line.split(' ')[1].strip().split('edk2')[-1]))
+ launch = line.split(' ')[-1].strip()
+
+ if launch == '--vfr':
+ scops['LaunchVfrCompiler'] = True
+ scops['LaunchYamlCompiler'] = False
+ vfr_compilers.append(scops)
+
+ return vfr_compilers
+
+
+@pytest.fixture(scope='class', params=preprocess_data_of_pytestini(), ids=[os.path.basename(
+ i['InputFileName']) for i in preprocess_data_of_pytestini()])
+def vfr_compiler(request):
+ args = Namespace(
+ InputFileName=request.param['InputFileName'],
+ OutputDirectory=request.param['OutputDirectory'] if request.param.get(
+ 'OutputDirectory') else request.param.get(
+ 'OUTPUT_DIR'),
+ ModuleName=request.param['ModuleName'] if request.param.get(
+ 'ModuleName') else request.param.get('MODULE_NAME'),
+ LaunchVfrCompiler=request.param['LaunchVfrCompiler'],
+ LaunchYamlCompiler=request.param['LaunchYamlCompiler'],
+ Workspace=request.param.get('Workspace', workspace),
+ )
+ argv = args.get_argv()
+ cmd = CmdParser(args, argv)
+ if request.param['LaunchVfrCompiler']:
+ compiler = VfrCompiler(cmd)
+ request.cls.compiler = compiler
+ yield
+ if os.path.exists(compiler.Options.LaunchVfrCompiler):
+ os.remove(compiler.Options.JsonFileName)
+ if os.path.exists(compiler.Options.PkgOutputFileName):
+ os.remove(compiler.Options.PkgOutputFileName)
+ if os.path.exists(compiler.Options.RecordListFileName):
+ os.remove(compiler.Options.RecordListFileName)
+ if os.path.exists(compiler.Options.COutputFileName):
+ os.remove(compiler.Options.COutputFileName)
+ if os.path.exists(compiler.Options.YamlFileName):
+ os.remove(compiler.Options.YamlFileName)
diff --git a/BaseTools/Source/Python/tests/vfr_yaml_compiler/test_Vfrcompiler.py b/BaseTools/Source/Python/tests/vfr_yaml_compiler/test_Vfrcompiler.py
new file mode 100644
index 000000000000..0540bafa53a5
--- /dev/null
+++ b/BaseTools/Source/Python/tests/vfr_yaml_compiler/test_Vfrcompiler.py
@@ -0,0 +1,53 @@
+import pytest
+import os
+
+
+@pytest.mark.usefixtures('vfr_compiler')
+class TestVfrCompiler:
+ def test_vfr_preprocess(self):
+ self.compiler.PreProcess()
+
+ def test_vfr_compiler(self):
+ self.compiler.Compile()
+ assert os.path.exists(self.compiler.Options.JsonFileName)
+
+ def test_vfr_GenBinaryFiles(self):
+ self.compiler.GenBinaryFiles()
+ assert os.path.exists(self.compiler.Options.PkgOutputFileName)
+ assert os.path.exists(self.compiler.Options.COutputFileName)
+ assert os.path.exists(self.compiler.Options.RecordListFileName)
+
+ def test_vfr_DumpSourceYaml(self):
+ self.compiler.DumpSourceYaml()
+ assert os.path.exists(self.compiler.Options.YamlFileName)
+
+ def test_vfr_lst_file(self):
+ with open(self.compiler.Options.RecordListFileName, 'r') as file:
+ pyVfr_opcode_list = self.get_opcode_list(file)
+ with open(os.path.join(os.path.dirname(self.compiler.Options.RecordListFileName),
+ os.path.basename(self.compiler.Options.RecordListFileName).split('_')[1]), 'r') as f:
+ cVfr_opcode_list = self.get_opcode_list(f)
+
+ for i, opcode in enumerate(pyVfr_opcode_list):
+ assert opcode == cVfr_opcode_list[i]
+
+ @classmethod
+ def get_opcode_list(cls, file):
+ all_opcode_record_list = list()
+ start_opcode_flags = False
+ for line in file.readline():
+ if '#' in line or line == '\n':
+ continue
+ if 'All Opcode Record List' in line:
+ start_opcode_flags = True
+ continue
+ if start_opcode_flags and '>' in line:
+ all_opcode_record_list.append(line)
+ continue
+ if 'Total Size of all record' in line:
+ break
+ return all_opcode_record_list
+
+
+if __name__ == '__main__':
+ pytest.main(['-vs', 'test_Vfrcompiler.py'])
--
2.27.0.windows.1
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2023-06-21 14:09 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-21 14:08 [Patch V1 2/2] BaseTools: Add python vfrcompiler unit test cases Yuwei Chen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox